Re:
От | Dmitry E. Oboukhov |
---|---|
Тема | Re: |
Дата | |
Msg-id | 20150312202414.GD11054@vdsl.uvw.ru обсуждение исходный текст |
Ответ на | Re: (Konstantin Gerasimenko <kred@gmx.net>) |
Список | pgsql-ru-general |
>> очень сомнительный совет. если на постгре такая задача отлично >> решается, то хадуп потребует где-то x20 ресурсов железных при том >> что только теоретически будет масштабируем. PS: у нас подобная >> задача: собираем координаты с тысяч устройств, но передают они их >> не раз в секунду а раз в 10 секунд (разница непринципиальная). >> поставили перед постгрисом аггрегатор (демончик) который либо ждет >> 10 секунд и сбрасывает данные в постгрис либо ждет накопления 1000 >> точек и так же льет. в итоге сейчас постгриска в контейнере OpenVZ >> на одном CPU вполне собирает за день где-то 2-4гига точек и при >> этом отвечает быстро на вопрос "дай мне ближайших к заданной" и >> отвечает относительно быстро на вопрос "дай мне трек машинки XXX >> со времени A по время B" партицируем тупо по датам: новый день - >> новая партиция. > Дмитрий у вас записей по максимуму 1000*6*60*24*365*3=9.460.800.000 > (9.5 миллиарда.) я сказал "тысячи", вот сегодня у нас на линии 15 тыс таксистов наименьшее число - во вторник утром, наибольшее - в пятницу вечером. в среднем где-то 15К. вы посчитали ориентируясь на 1К, то есть в 15 раз ошиблись. итого 9.5 млрд * 15 ~= 150 млрд сравнить с 500 млрд - вполне сопоставимые вещи. >> Есть 5000 устройств присылающих информация примерное 1 раз в секунду. >> Хранить информацию в доступном резерве надо около 3-х лет. > 5000*1*24*60*60*365*3 = 473.040.000.000 (473 миллиарда.) > Мне кажется разница видна не вооруженным взглядом. да и она очень небольшая. таблица за день набегает как я говорил 2-4 гигабайта (вместе с индексами). триггерами собираем таблицу "последние точки" и таким образом постгрис из индекса (GIST) отвечает на вопрос "дай ближайшие машины к данной" и из индекса (BTREE) отвечает на вопрос "дай трек вот этого водителя за период от A до B" CHECK'и на таблицах позволяют во всех запросах обращаться не более чем к двум таблицам. итого: 1. две таблицы за день помещаются в RAM и хорошо кешируются 2. можно делать реляционные запросы (при "разборах полетов" например) 3. все это вертится в одном контейнере OpenVZ (8 Гиг RAM, дофига дисков) на одном CPU > К тому же предположение что потребуется х20 ресурсов как то ... > слишком пессимистически рассчитано. реалистично, я бы сказал :) хадуп мы пробовали. для задачи "запись большого трафика данных" он реально x20 от Pg. а Pg где-то x20 от raw xlog (если xlog писать самим) при этом на вопросы, на которые отвечают GIST, GIN индексы в хадупе надо еще очень подумать как ответить :) > На хадуп понадобиться минимум три сервера остальное точно по > желанию, в варианте с постгрестом > понадобиться минимум два мощных сервера или мы все надеемся что один > сервак никогда не сломается ? зачем не сломается? мы это хозяйство еще и реплицируем + бакапы делаем. да, до шардинга еще не добрались, но пока не упирались в железо-то :) > Вы привели только два запроса к данным и сразу намекая что такой то > запрос "отвечает относительно быстро", а > сколько у вас рассчитываюся более сложные запросы ? а есть какая то > аналитика по данным или она не входит в задачу ? у нас агрегатор служб такси. как я сказал выше - сейчас в среднем 15 тыс машин. от сервиса координат требуется отвечать на вопросы 1. трек водителя 2. ближайшие машины к точке 3. иногда (ручные запросы) - разбор полетов первый вопрос отвечает быстро - из индекса по 15К (25К в пике) последних точек. второй вопрос отвечает в среднем быстро, но если получается нужен трек с двумя или более переходами через партицию, то вот тут иногда начинаются подъемы данных с диска в кеши. но такие запросы нужны тоже очень редко, поэтому мы пока схему партицирования и не пересматривали. а среднестатистический трек поднимается так же из индекса - все хорошо. -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Вложения
В списке pgsql-ru-general по дате отправления: