Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разработка БД под задачу реализации динамической карты / 25 сообщений из 30, страница 1 из 2
14.05.2014, 14:55
    #38641087
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Прошу комментариев от специалистов, которые проектировали реализации динамических подгрузок данных на карты типа Яндекс.

Есть задача, реализовать интерфейс с динамически загружаемыми данными на карту типа Яндекс.(пример http://www.cian.ru/sale/flat/2708215) Тип данных статистический - результирующая сумма по выборке из БД, которую и необходимо спроектировать. Объем данных большой (полная выборка доходит до 10 в 8 степени), особое требование - отсутсвие задержек в отображении информации при перемещении по карте. Предполагаю, что как раз время выполнения запроса и будет тем самым узким местом, которое тормозит обновление данных на карте.

Из исходных данных пока только набор данных с определенной структурой, которую можно переформатировать.
Предстоит решить следующие вопросы:
- технологию реализации БД;
- вопрос оптимизации структуры БД;
- технологию реализации интерфейса;


По поисковым системам нашел много чего, но в этой куче инфы пока разбираюсь. Очень бы хотел ознакомиться с примерами реализаций похожих механизмов.

ДА), сейчас данный механизм реализован в ДОТнете на базе Fireberd, выборка с пересечением из 6 таблиц.\ - вообщем жутко тормозит.
...
Рейтинг: 0 / 0
14.05.2014, 14:59
    #38641101
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
10 в 8 степени чего?

woron_al...Предполагаю, что как раз время выполнения запроса и будет тем самым узким местом, которое тормозит обновление данных на карте...
предполагаю, что Вы не правы

woron_al- технологию реализации БД;
- вопрос оптимизации структуры БД;

предполагаю, что это СИЛЬНО глубоко вторично и СВЯЗАНО со следующим пунктом
woron_al- технологию реализации интерфейса;

И чем будет отрисовываться карта. После этого, вариантов выбора структуры будет не так уж и много. Будет завязано на вендора картографического софта. IMHO & AFAIK

Oracle Map Viewer ?

woron_alсейчас данный механизм реализован в ДОТнете на базе Fireberd, выборка с пересечением из 6 таблиц.\ - вообщем жутко тормозит.

Механизм чего?
...
Рейтинг: 0 / 0
14.05.2014, 15:01
    #38641105
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Если проблема просто с группировками/агрегацией данных - возьмите какую нибудь книжку "DWH для чайников", почитайте. Откройте для себя звезда / снежинка, GROUP BY, материализованные представления и так далее.
...
Рейтинг: 0 / 0
14.05.2014, 15:02
    #38641108
Азагаш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_alПредполагаю, что как раз время выполнения запроса и будет тем самым узким местом, которое тормозит обновление данных на карте
ерунда. отключите прорисовку и убедитесь, что временем выполнения селекта можно пренебречь
...
Рейтинг: 0 / 0
14.05.2014, 15:10
    #38641116
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Oracle Map Viewer ?

woron_alсейчас данный механизм реализован в ДОТнете на базе Fireberd, выборка с пересечением из 6 таблиц.\ - вообщем жутко тормозит.

Механизм чего?[/quot]

На данный момент подобная карта существует в описанном выше варианте , а механизм - средство отображениякарты
...
Рейтинг: 0 / 0
14.05.2014, 15:12
    #38641121
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Так объясните, что такое 10 в 8 степени? Это чего? Точек, линий, полигонов? Товарные чеки которые нужно просуммировать? приход/уход со склада? Или просто байты?

П.С. Ссылка на Ваш пример на cian не работает
...
Рейтинг: 0 / 0
14.05.2014, 15:13
    #38641124
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Азагашworon_alПредполагаю, что как раз время выполнения запроса и будет тем самым узким местом, которое тормозит обновление данных на карте
ерунда. отключите прорисовку и убедитесь, что временем выполнения селекта можно пренебречь

то, что тормозит запрос, при выборке данных, это точно, даже проводились на этот счет исследования, те сам запрос выполняется долго, а карта (существующий сегодня вариант) практически статична и проблем с ее выводом нет.

Но необходимо перевести ее на динамическое обновление данных, вот в этом мой вопрос и заключается..
...
Рейтинг: 0 / 0
14.05.2014, 15:14
    #38641127
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Какой запрос? Что тормозит? При чем тут карта (если она не тормозит)?
...
Рейтинг: 0 / 0
14.05.2014, 15:15
    #38641130
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
- Приборы
- 42
- Что "42" ?
- А что "приборы" ?
...
Рейтинг: 0 / 0
14.05.2014, 15:16
    #38641132
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Leonid KudryavtsevТак объясните, что такое 10 в 8 степени? Это чего? Точек, линий, полигонов? Товарные чеки которые нужно просуммировать? приход/уход со склада? Или просто байты?

П.С. Ссылка на Ваш пример на cian не работает

10 в 8 степени записей в БД при полной выборке, те это максимальное число, которое может выдать запрос при подсчете количества записей. Данные то статистические. Ну грубо говоря необходимо подсчитать сколько магазинов в конкретном городе, в базе есть сведения, какой магазин в каком городе, на карту пользователь тырк и ему выводиться сообщение , что в этом городе столько-то (20 например) магазинов.
...
Рейтинг: 0 / 0
14.05.2014, 15:18
    #38641136
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_al,
для меня эта задача новая, поэтому и обратился к Вам...
...
Рейтинг: 0 / 0
14.05.2014, 15:23
    #38641146
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_al,
вот новая ссылка на пример
http://www.cian.ru/sale/flat/2280006
...
Рейтинг: 0 / 0
14.05.2014, 15:25
    #38641150
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Leonid Kudryavtsev
Oracle Map Viewer ?


спасибо за рекомендацию, изучаю
...
Рейтинг: 0 / 0
14.05.2014, 15:27
    #38641154
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_al особое требование - отсутсвие задержек в отображении информации при перемещении по карте.
Это достигается кэшированием соседних участков, пока клиент пялится на заданный, а не особо хитрой структурой БД.

В целом Вам имхо надо определиться, нужно ли Вам динамическое суммирование или нет - по Вашему примеру
на карту пользователь тырк и ему выводиться сообщение , что в этом городе столько-то (20 например) магазинов

получается что скорее нет (т.е. пользователь может выбрать ограниченное кличество точек (в Вашем примере - городов) и по ним и только по ним получить статистику).
Если пользователь может задать на карте произвольный полигон и сказать "А посчитай-ка мне количество обьектов в этом полигоне" - тут да, придется юзать OLAP в полный рост.
...
Рейтинг: 0 / 0
14.05.2014, 15:41
    #38641173
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
[quot Кот Матроскин]woron_al на карту пользователь тырк и ему выводиться сообщение , что в этом городе столько-то (20 например) магазинов

получается что скорее нет (т.е. пользователь может выбрать ограниченное кличество точек (в Вашем примере - городов) и по ним и только по ним получить статистику).
Если пользователь может задать на карте произвольный полигон и сказать "А посчитай-ка мне количество обьектов в этом полигоне" - тут да, придется юзать OLAP в полный рост.

полигонов, задаваемых пользователем не предвидится, но в зависимости от масштаба карты сведения указывать по городам\районам\областям\краям\республикам\ федеральным округам\ странам
...
Рейтинг: 0 / 0
14.05.2014, 15:42
    #38641176
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
пользователь не выбирает места на карте, данные, сами по факту отображения карты подгружаются на нее
...
Рейтинг: 0 / 0
14.05.2014, 15:48
    #38641183
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_al
полигонов, задаваемых пользователем не предвидится, но в зависимости от масштаба карты сведения указывать по городам\районам\областям\краям\республикам\ федеральным округам\ странам


Классическая задача из учебников, гуглить по словам "OLAP географическая иерархия"
...
Рейтинг: 0 / 0
14.05.2014, 15:48
    #38641187
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_alДанные то статистические. Ну грубо говоря необходимо подсчитать сколько магазинов в конкретном городе, в базе есть сведения, какой магазин в каком городе, на карту пользователь тырк и ему выводиться сообщение , что в этом городе столько-то (20 например) магазинов.

А нафига их "считать"?
Простенькая табличка: город (объект, точка на карте) - кол-во объектов
Считается ОДНИ раз и ВСЕ. Нафига в динамике пересчитывать?

Как реализовывать обновление информации в таблице со статистикой - зависит от БД. В Oracle можно на триггерах, можно на матвиев, можно на уровне прикладного софта.
...
Рейтинг: 0 / 0
14.05.2014, 15:56
    #38641197
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Leonid Kudryavtsevworon_alДанные то статистические. Ну грубо говоря необходимо подсчитать сколько магазинов в конкретном городе, в базе есть сведения, какой магазин в каком городе, на карту пользователь тырк и ему выводиться сообщение , что в этом городе столько-то (20 например) магазинов.

А нафига их "считать"?
Простенькая табличка: город (объект, точка на карте) - кол-во объектов
Считается ОДНИ раз и ВСЕ. Нафига в динамике пересчитывать?

Как реализовывать обновление информации в таблице со статистикой - зависит от БД. В Oracle можно на триггерах, можно на матвиев, можно на уровне прикладного софта.

Пересчитывать необходимо, так как база постоянно обновляется по содержанию, те количество в разных городах может меняться.
Вот этот "В Oracle можно на триггерах" момент мне интересен, я его тоже рассматриваю,
...
Рейтинг: 0 / 0
14.05.2014, 16:15
    #38641226
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_alПересчитывать необходимо, так как база постоянно обновляется по содержанию,
те количество в разных городах может меняться.
Поскольку количество обновлений обычно гораздо меньше чем количество выборок, имеет смысл
пересчитывать хранимые агрегаты при изменениях.

PS: В Firbird в отличие от Oracle таблицы не мутируют, триггера можно применять без
ограничений.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.05.2014, 16:42
    #38641278
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Dimitry Sibiryakovworon_alПересчитывать необходимо, так как база постоянно обновляется по содержанию,
те количество в разных городах может меняться.
Поскольку количество обновлений обычно гораздо меньше чем количество выборок, имеет смысл
пересчитывать хранимые агрегаты при изменениях.

PS: В Firbird в отличие от Oracle таблицы не мутируют, триггера можно применять без
ограничений.


Либо я не понял что вы имеете в виду, либо - в нашем случае хранить результаты выборок не целесообразно, так как их неопределенное количество (по всем городам + несколько критериев по каждому магазину в городе), отсуда и проблема, что необходимо выполнять запрос на выборку с параметрами в момент обращения пользователя.
Есть мысль кэшировать результаты выборок например в Тимес Тен Оракл и в случае повторного обращения от туда их подавать, как Вам такой вариант?
...
Рейтинг: 0 / 0
14.05.2014, 16:46
    #38641283
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_alЕсть мысль кэшировать результаты выборок например в Тимес Тен Оракл и в
случае повторного обращения от туда их подавать, как Вам такой вариант?
Exadata - ваше всё.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.05.2014, 16:47
    #38641285
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Кот Матроскинworon_alполигонов, задаваемых пользователем не предвидится, но в зависимости от масштаба карты сведения указывать по городам\районам\областям\краям\республикам\ федеральным округам\ странам


Классическая задача из учебников, гуглить по словам "OLAP географическая иерархия"

Спасибо за совет,
возможно придется создавать пересеченные таблицы из которых уже выводить результат на карту, и периодически обновлять эти таблицы
...
Рейтинг: 0 / 0
14.05.2014, 16:52
    #38641300
woron_al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
Dimitry Sibiryakovworon_alЕсть мысль кэшировать результаты выборок например в Тимес Тен Оракл и в
случае повторного обращения от туда их подавать, как Вам такой вариант?
Exadata - ваше всё.


Буду знать, спасибо за совет
думаю это слишком серьезная штука, для решения моей задачи))
...
Рейтинг: 0 / 0
14.05.2014, 16:57
    #38641312
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка БД под задачу реализации динамической карты
woron_alЛибо я не понял что вы имеете в виду, либо - в нашем случае хранить результаты выборок не целесообразно, так как их неопределенное количество (по всем городам + несколько критериев по каждому магазину в городе)

Сомневаюсь, что во всем мире 10 в 8 степени городов.

Таким образом, замена представления информации на разрез "по городам" на ПОРЯДКИ уменьшает кол-во обрабатываемой информации. Что там может быть "не целесообразно" и "неопределенное количество", я не знаю. Кол-во городов понятие достаточно определенное, реформы, типа Учреждение о губерниях 1775 г. Екатерины II случаются достаточно редко. AFAIK.

woron_alзапрос на выборку с параметрами в момент обращения пользователя

Можно, конечно, и в момент обращения. Хозяин - барин. Тогда это называется DWH (data warehouse), агрегация, matview, в Oracle может даже сам matview под запросы подкладывать.

woron_alЕсть мысль кэшировать результаты выборок например в Тимес Тен Оракл и в случае повторного обращения от туда их подавать, как Вам такой вариант?

Хороший вариант. У богатых свои причуды. Захотите купить лицензии на Тимес Тен - обращайтесь.
Так же можем и консалтинг продать. Вообще, продать можем почти все!!! Были бы у Вас деньги.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разработка БД под задачу реализации динамической карты / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]