|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Компания Supportio сообщает о завершении первого в Украине, по ее данным, проекта внедрения аналитического хранилища HP Vertica 7, реализованного в коммерческом банке BitBank. ... «Учитывая объемы и специфику работы с данными, а это, в первую очередь, постоянная актуализация и анализ в режиме реального времени, BitBank остановился на решении Vertica от HP , которое не только показало лучшие результаты benchmark тестов среди лидеров решений (Oracle, IBM Netezza, EMC Greenplum, Sybase IQ) , но и наиболее оптимально подошло заказчику по своим возможностям». http://ko.com.ua/supportio_realizovala_dlya_bitbank_proekt_vnedreniya_hp_vertica_7_104822 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 20:20 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Я уж испугался - думал про политику внутри) Интересно зачем банку реал-тайм интеграция с социальными сетями? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 23:05 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
SergSuperИнтересно зачем банку реал-тайм интеграция с социальными сетями? Должников искать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 23:19 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergSuperИнтересно зачем банку реал-тайм интеграция с социальными сетями? Должников искать.ну если толь через форксквер ловить ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 00:00 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
SergSuperЯ уж испугался - думал про политику внутри) Интересно зачем банку реал-тайм интеграция с социальными сетями? Знаю один, который использует для принятия решения по кредиту такие данные тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 07:03 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
VovakaSergSuperЯ уж испугался - думал про политику внутри) Интересно зачем банку реал-тайм интеграция с социальными сетями? Знаю один, который использует для принятия решения по кредиту такие данные тоже.да наверное все используют, но реал-тайм то зачем? и вообще зачем интеграция - это же надо для потенциального клиента, если он не подходит - то и не будет клиентом и нечего интегрировать, а если подошел - то уже и не важно наверное для чего-то другого, может какая-нибудь рассылка сообщений или типа просмотр баланса вконтакте ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 10:07 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergSuperИнтересно зачем банку реал-тайм интеграция с социальными сетями? Должников искать. реал-тайм? реал-тайм там с соц сетями 100% для рекламы контекстной. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 10:58 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
SergSuperVovakaпропущено... Знаю один, который использует для принятия решения по кредиту такие данные тоже.да наверное все используют, но реал-тайм то зачем? есть и реал-тайм принятия решений по выдаче кредитов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 11:01 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan Durakреал-тайм? Залогинился человек на одноквасниках - групзах выезжает сразу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 11:35 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovIvan Durakреал-тайм? Залогинился человек на одноквасниках - групзах выезжает сразу. КУДА ВЫЕЗЖАЮТ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 18:38 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan DurakКУДА ВЫЕЗЖАЮТ? К месту предполагаемого нахождения цели. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 18:43 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Очередной маркетинговый булшит. Без детализации вот этого вот: Vovaka«Учитывая объемы и специфику работы с данными вааще ниочем... ЗЫ. Объемы, коммерческий банк, Украина - выберите любые два. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 23:27 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
И, да, собственно, о "банке": http://ain.ua/2013/10/11/497702 11 Октября 2013. Запустился первый в Украине банк без отделений BitBank. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 23:41 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
pkarklinИ, да, собственно, о "банке": http://ain.ua/2013/10/11/497702 11 Октября 2013. Запустился первый в Украине банк без отделений BitBank.+1. Мне кажется, что у банка, открывшегося полгода назад, должны быть сильно другие проблемы. Ну и как-то странно звучит аналитическое хранилище, внедренное в первые полгода работы банка (это значит, что его внедрили за месяц-два). Тем боле странно звучит "... которое не только показало лучшие результаты benchmark тестов среди лидеров решений (Oracle, IBM Netezza, EMC Greenplum, Sybase IQ)...". Я ведь тоже могу левой ногой поставить Vertica так, что ее даже MS Access обойдет по производительности, а сроки внедрения ясно дают понять, что специалистов по обруганным системам не привлекали. Вот над этой фразой тоже поржал "В рамках проекта, была проведена интеграция HP Vertica... а также с экосистемой Cloudera Hadoop, отвечающей за real-time интеграцию с социальными сетями". Правда что ли с помощью Hadoop? Всегда считал, что Hadoop предназначен для обработки большого объема данных в пакетном режиме, но никак не для real-time. Короче, мое мнение, что там внедрена витринка данных, и, скорее всего, на бесплатной версии Vertica. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2014, 10:56 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander Ryndin, Саш, не буду с тобой спорить насчет витрин, целесообразности и прочего (маркетинг он такой), но вот насчет левой ноги ты явно погорячился, со всей серьезностью уверяю тебя. Можешь хоть обоими ногами становится на Вертику, но затормозить ее работу просто так не получится, придется постараться и очень извернуться ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 16:56 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUSAlexander Ryndin, Саш, не буду с тобой спорить насчет витрин, целесообразности и прочего (маркетинг он такой), но вот насчет левой ноги ты явно погорячился, со всей серьезностью уверяю тебя. Можешь хоть обоими ногами становится на Вертику, но затормозить ее работу просто так не получится, придется постараться и очень извернуться ;) возможно вертика что то придумала интересное, но больное место всех мрр это ключ распределения данных. Что у терадаты, что у хадупа... Без разницы. Но поинт мой был не в том чтобы принизить заслуги какого то из решений, а в том, что вряд ли тот банк за полгода смог наработать репрезентативноый набор требований, а тем более вряд ли привлекали нормальных партнёров от оракл, терадата и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 02:19 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
P.s. так все таки на бесплатной версии вертики сделано? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 02:21 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander RyndinP.s. так все таки на бесплатной версии вертики сделано? Насколько я знаю, продажа была. Да и вчера на HP World Tour упомянули про это внедрение, бесплатные не включают в презентации. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 08:31 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander Ryndin, Поясни, что ты имеешь ввиду. Сегментация в Вертике работает без проблем, балансировка данных достаточно грамотная, я даже не знал, что там могут быть какие то проблемы. Сегментация Вертикой делается автоматически по полям PK, если явно не указана. При явном указании можно зеркалировать данные для всех нод (что удобно для небольших измерений), для мастер-детайл например указать сегментацию для мастера по PK, для детайла по FK, обеспечив таким образом их соединение JOIN без BROADCAST и т.д. Здесь вообще проблем не возникает, даже если в мастер-детайл лежат десятки миллиардов записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 12:30 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUSAlexander Ryndin, Поясни, что ты имеешь ввиду. Сегментация в Вертике работает без проблем, балансировка данных достаточно грамотная, я даже не знал, что там могут быть какие то проблемы. Сегментация Вертикой делается автоматически по полям PK, если явно не указана. При явном указании можно зеркалировать данные для всех нод (что удобно для небольших измерений), для мастер-детайл например указать сегментацию для мастера по PK, для детайла по FK, обеспечив таким образом их соединение JOIN без BROADCAST и т.д. Здесь вообще проблем не возникает, даже если в мастер-детайл лежат десятки миллиардов записей.Очень простой и довольно распространенный кейс: есть табличка-измерение - 30 млн. клиентов, а также табличка фактов с операциями этих клиентов (для простоты пускай это будут звонки/смс). Допустим 20% звонков/смс сделаны с 2-10 служебных номеров (Яндекс-такси, Сбербанковский информатор и т.д.). Как тогда будешь пилить данные между узлами? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:27 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander RyndinОчень простой и довольно распространенный кейс: есть табличка-измерение - 30 млн. клиентов, а также табличка фактов с операциями этих клиентов (для простоты пускай это будут звонки/смс). Допустим 20% звонков/смс сделаны с 2-10 служебных номеров (Яндекс-такси, Сбербанковский информатор и т.д.). Как тогда будешь пилить данные между узлами? Никак не буду. Клиентам скажу сегментироваться и сортироваться по PK, а звонкам сегментироваться по своему PK, а сортироваться по FK ключ клиента + другие поля, значимые при фильтрах запросов. Дальше оптимизатор Вертики сам все сделает правильно (фильтры+MERGE JOIN+частичный BROADCAST) Как измерение и факт в сегментации связаны и какие здесь проблемы? :) Руками в Вертике такие вещи не делаются, это забота оптимизатора. В общем Саш, ты о чем то таком ручном говоришь не понятном, чего в Вертике просто нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 18:23 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUSAlexander RyndinОчень простой и довольно распространенный кейс: есть табличка-измерение - 30 млн. клиентов, а также табличка фактов с операциями этих клиентов (для простоты пускай это будут звонки/смс). Допустим 20% звонков/смс сделаны с 2-10 служебных номеров (Яндекс-такси, Сбербанковский информатор и т.д.). Как тогда будешь пилить данные между узлами? Никак не буду. Клиентам скажу сегментироваться и сортироваться по PK, а звонкам сегментироваться по своему PK, а сортироваться по FK ключ клиента + другие поля, значимые при фильтрах запросов. Дальше оптимизатор Вертики сам все сделает правильно (фильтры+MERGE JOIN+частичный BROADCAST) Как измерение и факт в сегментации связаны и какие здесь проблемы? :) Руками в Вертике такие вещи не делаются, это забота оптимизатора.Леш, я не с желанием поругать. Мне действительно интересно. Я этот случай видел очень явно на Hadoop и Hadoop ушел и больше не вернулся, поэтому интересно, как этот решается в MPP. Давай этот кейс до конца разберем. Ты же сам говорил автордля мастер-детайл например указать сегментацию для мастера по PK, для детайла по FKИ я понимаю почему. Чтобы не была BROADCAST. А сейчас говоришь про сегментацию и мастера, и детайла по PK. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:12 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUSAlexander RyndinОчень простой и довольно распространенный кейс: есть табличка-измерение - 30 млн. клиентов, а также табличка фактов с операциями этих клиентов (для простоты пускай это будут звонки/смс). Допустим 20% звонков/смс сделаны с 2-10 служебных номеров (Яндекс-такси, Сбербанковский информатор и т.д.). Как тогда будешь пилить данные между узлами? Никак не буду. Клиентам скажу сегментироваться и сортироваться по PK, а звонкам сегментироваться по своему PK, а сортироваться по FK ключ клиента + другие поля, значимые при фильтрах запросов. Дальше оптимизатор Вертики сам все сделает правильно (фильтры+MERGE JOIN+частичный BROADCAST) Как измерение и факт в сегментации связаны и какие здесь проблемы? :) Руками в Вертике такие вещи не делаются, это забота оптимизатора. В общем Саш, ты о чем то таком ручном говоришь не понятном, чего в Вертике просто нет. Сразу видно, что вы не сталкивались с такой проблемой :-) 1) каждый join клиентов на операции будет происходить redistribute (с вертикой не знаком, но в других mpp это так) по ключу клиента (т.к. по нему идёт join) 2) REdistribute приведёт к тому, что на отдельных нодах(процессах, сегментах, amp'ах) окажется больше операций чем на других (т.к. распределение пойдёт по ключу клиента) из-за чего весь комплекс будет работать со скоростью наиболее загруженной ноды. Как решить эту проблему: 1 Вариант простой: select c1, c2, c3 from customer c join operation o on c.cus_id=o.cus_id and c.csu_id NOT IN (перечисляем клиентов у которых те самые 20% записей, которые дают перекос) union all select c1, c2, c3 from customer c join operation o on c.cus_id=o.cus_id and c.csu_id IN (перечисляем клиентов у которых те самые 20% записей, которые дают перекос) В 1-м запросе система просто делает redistribute исключая записи, которые дадут перекос в данных на нодах . Во втором (если оптимизатор умный) система распределит нужные записи из таблички клиентов на все ноды, где локально соединит ихс операциями. 2-й способ относится не ко всем MPP, и не ко всем случаям. Вроде как-то так, если ничего не напутал и не забыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:22 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander RyndinА сейчас говоришь про сегментацию и мастера, и детайла по PK. Клиенты и звонки это никак не мастер-детайл :) Это измерение-факт со связью. Вот CDR+CDR List Of Traffic это как раз мастер-детайл. И там на один сдр где то от 1 до 10 записей детальки, которые имеет смысл уложить рядом с самой записью СДР. P.S. Ну ты сравнил файловую помойку Hadoop и Vertica. У них же вообще абсолютно разные принципы хранения данных, зеркалирования и прочее. Они даже близко не похожи. Поэтому поведение Хадупа на Вертику генерировать не корректно. Так же как и например поведение Нетизы, которая по принципам хотя и ближе к Вертике, но так же отличий столько, что поведение совершенно разное (я уж молчу про ГринПлам). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:23 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
А по поводу "успешного внедрения за полгода" извините не верю. Может парочку витрин сделали, но полноценным внедрением это называть... +ну какие там на украине сейчас кредитные карты, там просрочка должна бы уже в космос улететь, в стране восстание, до должников дела никому нет. А раз так, то не верю я в необходимость MPP - нет там объёмов таких. Короче реклама это всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:28 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUSAlexander RyndinА сейчас говоришь про сегментацию и мастера, и детайла по PK. P.S. Ну ты сравнил файловую помойку Hadoop и Vertica. У них же вообще абсолютно разные принципы хранения данных, зеркалирования и прочее. Они даже близко не похожи. Поэтому поведение Хадупа на Вертику генерировать не корректно. Так же как и например поведение Нетизы, которая по принципам хотя и ближе к Вертике, но так же отличий столько, что поведение совершенно разное (я уж молчу про ГринПлам). BTW интересно, есть ли у хваленой вертики что-то подобное: https://www.google.com/patents/US20110093499 или http://www.teradata.com/web-seminars/PayPal-Dealing-with-Natural-Data-Skew/ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:39 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
loki1984, Алгоритмы будут зависеть от ситуации (статистики и подходящих проекций). Если измерение небольшое, то все измерение просто зеркалируется по нодам, если большое, то произойдет BROADCAST по частям, если на факте висит сортировка по FK, то вместо обьединения через хэш-таблицы (HASH JOIN) произойдет соединение путем объедения записей упорядоченных значений колонок (MERGE JOIN). Ситуацию, чтобы Вертика не смогла эффективно распределить между серверами соединение или агрегацию, уведя большой объем работ на инициализирующую ноду и заставив ее все собирать я видел пару раз в жизни и то это были запросы на соединение больших фактовых таблиц и больших измерений с количеством джойнов более полсотни. Но опять же, под такие большие запросы имеет смысл делать реоптимизацию структуры хранения данных. Например, никто не мешает сделать JOIN проекцию на факт+измерения, если этим измерения всегда цепляются INNER JOIN. В таком случае без разницы, как сегментируются измерения и факты, их джойн проекция будет лежать сразу в одном месте по нужным полям измерений с фактами и все это лежат рядом на серверах. Этакая материальная проекция, позволяющая дематериализовать нужные поля измерений в факты без затрат по кодированию и сопровождению. В ситуации с 30 миллионами клиентов конечно смысла возится с такой проекцией нет, но вот если их хотя бы миллионов 100, наверное имеет смысл уже подумать ее сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:40 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander RyndinОчень простой и довольно распространенный кейс: есть табличка-измерение - 30 млн. клиентов, а также табличка фактов с операциями этих клиентов (для простоты пускай это будут звонки/смс). Допустим 20% звонков/смс сделаны с 2-10 служебных номеров (Яндекс-такси, Сбербанковский информатор и т.д.). Как тогда будешь пилить данные между узлами? Стандартное решение дня МРР: сегментировать и то и то по своим ключам. Получаем равномерное распределение данных, но проблему джойнов. В Вертике можно измерению сказать unsegmented all nodes, тогда оно расклонируется по всем нодам, 30 млн записей - фигня, физического места займут немного, лицензий вообще не потратится дополнительных, зато не будет поражняка в сети кластера и производительность вырастет. Плюс у Вертики всегда есть доп.проекции, которые и сегментируются, и сортируются по другим правилам нежели таблица (суперпроекция). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:47 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUS, у нас конкретный пример от Александра: есть 30 МЛН клиентов, есть операции по ним. Среди этих 30 МЛН есть 5 клиентов, чьи операции занимают 20% от всей таблицы. Допустим у нас 100 параллельных процессов обработки, на которых хранятся данные. Если размазывать данные по клиентам, то на 5 из 100 серверов данных окажется больше в разы. То, что называется skew. Если таблица с операциями будет распределена по своему ключу, то проблема встанет всё равно, т.к. предположительно все равно в момент join будет распределение по ключу клиента. Как конкретно в вертике решена эта проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:50 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
loki1984ASCRUS, у нас конкретный пример от Александра: есть 30 МЛН клиентов, есть операции по ним. Среди этих 30 МЛН есть 5 клиентов, чьи операции занимают 20% от всей таблицы. Допустим у нас 100 параллельных процессов обработки, на которых хранятся данные. Если размазывать данные по клиентам, то на 5 из 100 серверов данных окажется больше в разы. То, что называется skew. Если таблица с операциями будет распределена по своему ключу, то проблема встанет всё равно, т.к. предположительно все равно в момент join будет распределение по ключу клиента. Как конкретно в вертике решена эта проблема? В предыдущем посте ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:52 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
loki1984, Гм, а я недостаточно подробно объяснил как ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:58 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Vovakaloki1984ASCRUS, у нас конкретный пример от Александра: есть 30 МЛН клиентов, есть операции по ним. Среди этих 30 МЛН есть 5 клиентов, чьи операции занимают 20% от всей таблицы. Допустим у нас 100 параллельных процессов обработки, на которых хранятся данные. Если размазывать данные по клиентам, то на 5 из 100 серверов данных окажется больше в разы. То, что называется skew. Если таблица с операциями будет распределена по своему ключу, то проблема встанет всё равно, т.к. предположительно все равно в момент join будет распределение по ключу клиента. Как конкретно в вертике решена эта проблема? В предыдущем посте ответ. Не увидел в момент написания поста. По сути это то же самое, что гонять по сети эти 30 млн в момент join, только снижается нагрузка на сеть, зато растёт объём хранимых данных в N=кол-во параллельных процессов. В принципе справедливо, чем-то надо жертвовать. А вообще пример довольно надуманный конечно. Оракл его везде приводит, т.к. только в этом случае может потягаться с MPP. Если кол-во таких клиентов с большим числом операций будет больше чем кол-во единиц параллелизма, то проблема вообще исчезнет. Или если есть возможность распределить данные по паре ключей, опять же проблемы не будет. Например если у сети магазинов есть гипермаркеты и магазины у дома, остатки можно сегментировать по паре магазин+товар и skew не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:02 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUS, вы нет, vovaka да. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:03 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
loki1984, Я с этим сталкивался просто :) Не из книжек пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:06 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
VovakaAlexander RyndinОчень простой и довольно распространенный кейс: есть табличка-измерение - 30 млн. клиентов, а также табличка фактов с операциями этих клиентов (для простоты пускай это будут звонки/смс). Допустим 20% звонков/смс сделаны с 2-10 служебных номеров (Яндекс-такси, Сбербанковский информатор и т.д.). Как тогда будешь пилить данные между узлами? Стандартное решение дня МРР: сегментировать и то и то по своим ключам. Получаем равномерное распределение данных, но проблему джойнов. В Вертике можно измерению сказать unsegmented all nodes, тогда оно расклонируется по всем нодам, 30 млн записей - фигня, физического места займут немного, лицензий вообще не потратится дополнительных, зато не будет поражняка в сети кластера и производительность вырастет. Плюс у Вертики всегда есть доп.проекции, которые и сегментируются, и сортируются по другим правилам нежели таблица (суперпроекция).Если это измерение из 30 млн. записей раскопировать по всем нодам, то, мне кажется, и JOIN будет происходить несколько медленее. А потом, когда я еще чего нибудь захочу сгруппировать по столбцам, отличным от ключа секционирования, то начнется еще большее веселье. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:09 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
loki1984Vovakaпропущено... В предыдущем посте ответ. А вообще пример довольно надуманный конечно. Оракл его везде приводит, т.к. только в этом случае может потягаться с MPP. Если кол-во таких клиентов с большим числом операций будет больше чем кол-во единиц параллелизма, то проблема вообще исчезнет. Хэш алгоритмы, которые распределяют данные по нодам не столь умны, чтобы каждого такого клиента положить на свою ноду. Есть ненулевая вероятность, что при разбиении на секции они могут упасть на одну ноду. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:12 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander Ryndinloki1984, Я с этим сталкивался просто :) Не из книжек пример. Абонентскую базу явно проще клонировать по нодам MPP. Винты сейчас большие и недорогие. У Facebook кластер Вертики 255 серверов и на каждом 15 х 4ТБ дисков, какой raid не знаю правда, но все равно сильно. Кстати, на пилот в FB кроме Вертики не вышел ни один из вендоров больше, к чему бы это? :) Пилот правда был на 1 ПТ, но что это за проблема для именитых вендоров? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:12 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Alexander RyndinЕсли это измерение из 30 млн. записей раскопировать по всем нодам, то, мне кажется, и JOIN будет происходить несколько медленее. Это почему это? Джойны будут локально на нодах происходить. Alexander RyndinА потом, когда я еще чего нибудь захочу сгруппировать по столбцам, отличным от ключа секционирования, то начнется еще большее веселье. Ну да, тут хуже. Но в Вертике можно сделать проекцию и под такой запрос и опять все полетит, но в жертву принесем физическое место. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:17 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
loki1984ASCRUS, у нас конкретный пример от Александра: есть 30 МЛН клиентов, есть операции по ним. Среди этих 30 МЛН есть 5 клиентов, чьи операции занимают 20% от всей таблицы. Допустим у нас 100 параллельных процессов обработки, на которых хранятся данные. Если размазывать данные по клиентам, то на 5 из 100 серверов данных окажется больше в разы. То, что называется skew. Если таблица с операциями будет распределена по своему ключу, то проблема встанет всё равно, т.к. предположительно все равно в момент join будет распределение по ключу клиента. Как конкретно в вертике решена эта проблема? Еще раз. Данные фактов не будут размазываться по клиентам. Это контрпродуктивно. Так же, как и по городам, полу и прочему :) Данные фактов будут сегментироваться по уникальному ключу, чаще всего это PK. Но помимо сегментации данные фактов будут на каждом сервере храниться в упорядоченном виде, если в сортировке хранения проекции указать Код Клиента. С учетом того, что Вертика колонориентированный сервер, каждой ноде кластера получить с фактов список ключей клиентов и попросить другие ноды дослать ей по этому списку нужные записи для соединения дело миллисекунд. Не нужно будет даже полную копию измерения собирать со всех нод и рассылать на все ноды. BROADCAST будет минимальным. Если же на сам запрос к фактам еще накладывается общий фильтр по другим полям, это вообще будет замечательно выглядеть - оптимизатор наложит фильтр, очертит круг нужных записей, с них получит на каждой ноде ид клиентов, соберет по спискам с других нод, далее в зависимости от запроса сверху каждая нода проведет дальнейшие действия (сортировка, агрегация, окна, ...). Если же соединений очень много и измерения большие, то проще всего даже не зеркалировать их по нодам, указав Вертике в явном виде, а просто сделать преджойн проекцию с денормализацией звезды (полей измерений в факт). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:21 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
VovakaAlexander RyndinЕсли это измерение из 30 млн. записей раскопировать по всем нодам, то, мне кажется, и JOIN будет происходить несколько медленее. Это почему это? Джойны будут локально на нодах происходить. Alexander RyndinА потом, когда я еще чего нибудь захочу сгруппировать по столбцам, отличным от ключа секционирования, то начнется еще большее веселье. Ну да, тут хуже. Но в Вертике можно сделать проекцию и под такой запрос и опять все полетит, но в жертву принесем физическое место. А проекция это что?? эдакое Materialized view? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 10:28 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
ASCRUSкаждой ноде кластера получить с фактов список ключей клиентов и попросить другие ноды дослать ей по этому списку нужные записи для соединения дело миллисекунд. Не нужно будет даже полную копию измерения собирать со всех нод и рассылать на все ноды. BROADCAST будет минимальным. Клевая фича. Броадкаст будет не фактов а измерения. Кстати гринплам так не умеет. Он даже и сортировку внутри нод не делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 10:41 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan DurakА проекция это что?? эдакое Materialized view? Ну больше всего похоже на матвью, да. Это набор колонок таблицы (или нескольких для преджойн проекций), которые хранятся (дублируя данные в суперпроекции) по своим правилам сортировки и сегментирования. Оптимизатор выбирает наиболее подходящую проекцию для запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 11:26 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan DurakASCRUSкаждой ноде кластера получить с фактов список ключей клиентов и попросить другие ноды дослать ей по этому списку нужные записи для соединения дело миллисекунд. Не нужно будет даже полную копию измерения собирать со всех нод и рассылать на все ноды. BROADCAST будет минимальным. Клевая фича. Броадкаст будет не фактов а измерения. Кстати гринплам так не умеет. Он даже и сортировку внутри нод не делает. Там еще один нюанс - Вертике можно же указать способ хранения для столбцов (encoding). Возвращаясь к тому примеру с 20% 5 клиентов от всей таблицы. В фактовой таблице делаем сортировку по полю account_id и назначаем ему ENCODING RLE. Теперь этот столбец будет хранится как КодКлиента:КоличествоИдущихПодрядЗаписей. При чтении контейнеров для запроса Вертика изначально уже не будет просматривать значения колонки клиента по всем записям таблицы, которые легли в этот блок, там будет ровно столько записей на эту колонку, сколько уникальных значений во всех записях этого контейнера кода клиента там присутствует. То есть моментально, вне зависимости от размера контейнера (они по мере ухода в историчность еще и укрупняются, дефрагментируясь). В этом плане кодирование хранения великая штука. Например у нас есть большой символьный код группы, групп ограниченное число, поиск по нему идет, но сортировка не выгодна по каким то причинам. Делаем ENCODING BLOCK_DICT и Вертика в контейнерах вместо самих кодов хранит значения счетчика, а все коды, используемые в записях хранимого контейнера записывает как словарик в начало контейнера кодируя внутренним счетчиком. Теперь при работе с таким кодом группы достаточно просто считать заголовок контейнера и сразу увидеть все значения, которые присутствуют в этом контейнере по этому полю. Так как записей в одном контейенере на таблицу могут быть миллионы, очень экономичный способ поиска информации без дополнительных на хранение или процессорное время, как это происходит при алгоритмах индексации данных, упорядоченного хранения и т.д. Ну а если учесть, что на каждый хранимый контейнер в заголовок пишется его статистика по полям, то вообще быстрый поиск информации без полного просмотра данных на хороших скоростях шуршит. В Нетизе помнится тоже статистика по блокам хранения данных хранится, но в отличие от Вертики у них блоки фиксированной длины, на больших объемах их много просматривать приходится, у Вертики в этом плане склонность к автоматическому укрупнению хранения данных по мере их устаревания мне кажется правильно сделано. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 13:32 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
а это как раз уже все умеют ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 13:47 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan DurakКлевая фича. Броадкаст будет не фактов а измерения. Кстати гринплам так не умеет. Он даже и сортировку внутри нод не делает. Вы хотите сказать что greenplum, сортировку делает только на мастер-ноде? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2014, 18:13 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
SQLMantisIvan DurakКлевая фича. Броадкаст будет не фактов а измерения. Кстати гринплам так не умеет. Он даже и сортировку внутри нод не делает. Вы хотите сказать что greenplum, сортировку делает только на мастер-ноде? нет, сортировку он делает на всех нодах паралельно. Но он НЕ ХРАНИТ данные отсортированными (так как я понял делает Вертика и Террадата) !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:45 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan DurakSQLMantisпропущено... Вы хотите сказать что greenplum, сортировку делает только на мастер-ноде? нет, сортировку он делает на всех нодах паралельно. Но он НЕ ХРАНИТ данные отсортированными (так как я понял делает Вертика и Террадата) !!! проекция (поправте меня если я не прав) - это еще одна копия данных на ноде, которая отсортирована в порядке указанном при ее создании. Чем это отличается от индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:57 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
SQLMantisIvan Durakпропущено... нет, сортировку он делает на всех нодах паралельно. Но он НЕ ХРАНИТ данные отсортированными (так как я понял делает Вертика и Террадата) !!! проекция (поправте меня если я не прав) - это еще одна копия данных на ноде, которая отсортирована в порядке указанном при ее создании. Чем это отличается от индекса? Это вообще про какую субд вопрос??? В гринпламе никаких проекций нет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 20:55 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
SQLMantisпроекция (поправте меня если я не прав) - это еще одна копия данных на ноде, которая отсортирована в порядке указанном при ее создании. Чем это отличается от индекса? Да, так. При создании таблицы в Вертике создается суперпроекция со всеми колонками, сортированная, сегментированная, партиционированная по заданным правилам. Создание доп. проекций означает новую физическую копию части колонок таблицы (или колонок разных таблиц в преджойн проекциях) со своими правилами физического хранения (сортировка, сегментирование). Оптимизатор выберет наиболее подходящую. Больше всего это похоже на матвью. Индексы с успехом заменяют сортировка и формат кодирования хранения данных. Есть еще группировка колонок, когда можно указать набор колонок, которые физически будут храниться вместе. А-ля row storage внутри колоночного :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 22:37 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
VovakaДа, так. При создании таблицы в Вертике создается суперпроекция со всеми колонками, сортированная, сегментированная, партиционированная по заданным правилам. Создание доп. проекций означает новую физическую копию части колонок таблицы (или колонок разных таблиц в преджойн проекциях) со своими правилами физического хранения (сортировка, сегментирование). Оптимизатор выберет наиболее подходящую. Больше всего это похоже на матвью. Индексы с успехом заменяют сортировка и формат кодирования хранения данных. Есть еще группировка колонок, когда можно указать набор колонок, которые физически будут храниться вместе. А-ля row storage внутри колоночного :) Спасибо, большое. Стало интересно и я вчера почитал документацию. Действительно интересная возможность. А почему слияние только inner? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 10:13 |
|
Украина - вперёд с Vertica!
|
|||
---|---|---|---|
#18+
Ivan DurakЭто вообще про какую субд вопрос??? В гринпламе никаких проекций нет Я в курсе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 10:14 |
|
|
start [/forum/topic.php?all=1&fid=35&tid=1552371]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 344ms |
0 / 0 |