|
|
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Коллеги, Кто использовал в своих проектах хэш ключи вместо суррогатных ключей, поделитесь впечатлениями, пожалуйста. На сколько садится производительность джойнов и растёт размер базы по сравнению с возможностью грузить одновременно измерения и факты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 09:05 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир ШтепаКоллеги, Кто использовал в своих проектах хэш ключи вместо суррогатных ключей, поделитесь впечатлениями, пожалуйста. На сколько садится производительность джойнов и растёт размер базы по сравнению с возможностью грузить одновременно измерения и факты Я использую на проектах с DV 2.0 и ms sql. Ключ MD5 преобразован в char(32) Производительность садится очень сильно особенно на загрузке данных при перестройках индексов. Играл с разными хеш-функциями в т.ч. и не криптографическими, которые можно преобразовать и хранить в bigint, результат тестов разница в два раза по скорости вставки в таблицу. Вставка через left join, соединение источника с целевой таблицей по ключевым полям. одна из рекомендаций - нельзя использовать кластерный индекс по полю с хеш-ключем На оракле пока не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 10:50 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Полковник., меня интересует производительность join при выполнении аналитических запросов а также, если вы строите SSAS куб, то что вы используете в качестве ключей измерения? У меня создается впечатления, что на хэш ключах можно построить надежный сундук (Vault) но он "чемодан без ручки", так как витрины (StarSchema ROLAP) и кубы на таких ключах будут черепахой, тяжелой и неповоротливой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 14:27 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир ШтепаПолковник., меня интересует производительность join при выполнении аналитических запросов а также, если вы строите SSAS куб, то что вы используете в качестве ключей измерения? У меня создается впечатления, что на хэш ключах можно построить надежный сундук (Vault) но он "чемодан без ручки", так как витрины (StarSchema ROLAP) и кубы на таких ключах будут черепахой, тяжелой и неповоротливой. Тащим HK до витрины и дальше в куб (MOLAP), сначала пошли по пути виртуализации (витрина на представлениях), а потом пришлось строить витрину на таблицах из за низкой производительности джойнов на HK, джойнов в DV очень много, я сильно нормализовал модель линков, доведя до линк - связь только пары таблиц. Рекомендаций не даю, только проверять на конкретном железе на своем объеме данных. Коллега мой бывший в Германии смотрит в сторону мемориоптимайзед таблиц для ускорения DV 2.0, я пробовал, возможно что то делаю не так но грузятся такие таблицы очень долго, отказался. Линстедт рекомендует MPP архитектуру для виртуализации витрины на DV 2.0, но она стоит как самолет, никто в России на такое не пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 15:08 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир Штепа, В прямом виде чистый hash очень медленно работает. Немного преобразованный в bigint из SHA1 вроде более-менее ( правда проект был на MOLAP ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 15:18 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир Штепа возможностью грузить одновременно измерения и факты Это и была основная проблема : правда грузить надо было не одновременно, а по-отдельности и в разное время : измерения приходили из одной системы, а факты - из 3 и чисто технически факты прийти раньше измерений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 15:32 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
RioMare, Длинна ключа MD5 не позволяет его в bigint преобразовать, а другой алгоритм вычисления может давать коллизии. Я пробовал не криптографические Fowler–Noll–Vo и MurmurHash3 в BIGINT разница по скорости в два раза по сравнению с MD5 в char(32). Дальше нужно было исследовать на предмет коллизий, но времени не было, проект шел уже полным ходом, на том этапе было поздно что либо переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 15:33 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Полковник., авторКоллега мой бывший в Германии смотрит в сторону мемориоптимайзед таблиц Если вы имеете ввиду column store, то на них JOINS при высокой кардинальности работают архимедленно, так как batchmode выполнения запросов вываливается в row mode, со всеми присущими побочными негативами. Т.е. получается, что ничего, чем можно гордится, на HashKey пока еще не вышло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 15:58 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Полковник., MD5 сам по себе даёт коллизии, преобразовывалось SHA1 ( обычный CONVERT(bigint, HASHBYTES(SHA1, compound_key ) )). Как я понял для MSSQL всё то, что не INT работает медленно или очень медлено, может на ORA по-другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 16:44 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир Штепагрузить одновременно измерения и факты почему бы и не грузить вместе? просто для фактов налету формировать необогащенные элементы измерения, когда справочники приедут - просто дообогатить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 21:48 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир Штепа, Если только для OLAP, то указанный CONVERT(bigint, HASHBYTES(SHA1, compound_key ) ) вполне себе устроит. Что вполне актуально для пилотного решения. Если и добавит объем то не более 20%. По скорости на MD SSAS не заметите. Если же еще SQL adhoc-запросы пулять к ТФ, то не стоит. Всяко медленнее. B про Tabular думаю стоит упоминуть: bigint вместо int/smallint....Размер имеет значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 14:08 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
КритикВладимир Штепагрузить одновременно измерения и факты почему бы и не грузить вместе? просто для фактов налету формировать необогащенные элементы измерения, когда справочники приедут - просто дообогатить ну так все и делают. Может тут пытаются блокировок избегать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 17:24 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Владимир ШтепаПолковник., авторКоллега мой бывший в Германии смотрит в сторону мемориоптимайзед таблиц Если вы имеете ввиду column store, то на них JOINS при высокой кардинальности работают архимедленно, так как batchmode выполнения запросов вываливается в row mode, со всеми присущими побочными негативами. Т.е. получается, что ничего, чем можно гордится, на HashKey пока еще не вышло. Проект тут на Vertica со всем этим DV 2.0 на md5 ключах, очень жалко смотреть как хорошая база убивается на этих джойнах, причем данных с одной стороны ~20Tb, с другой стороны всего 20 Тб ) Причем загрузка здесь последовательная (измерения и потом факты), так что смысл вообще потеряли по пути ) Я пока не видел места, где бы md5 сильно помогал бы, не видел места где нельзя было бы "дообогатить" измерения потом. Это надо совсем непрерывный поток иметь без окон, не доводилось пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 03:55 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Юрий Кудрявцев Проект тут на Vertica со всем этим DV 2.0 на md5 ключах, очень жалко смотреть как хорошая база убивается на этих джойнах, причем данных с одной стороны ~20Tb, с другой стороны всего 20 Тб ) Причем загрузка здесь последовательная (измерения и потом факты), так что смысл вообще потеряли по пути ) Я пока не видел места, где бы md5 сильно помогал бы, не видел места где нельзя было бы "дообогатить" измерения потом. Это надо совсем непрерывный поток иметь без окон, не доводилось пока. Я имел некоторый опыт с vertica в т.ч и на DV 2.0. Скажу так эта база для джойнов вообще не предназначена, она для другого. Если хотите джойнов на вертике увеличивайте кол-во узлов и готовьтесь покупать хорошее железо. Вы пишите про загрузку последовательную загрузку измерений и фактов, вы что то напутали - в DV нет измерений и фактов, или вы про загрузку из DV датамарта? Ну это скорее особенности вашей реализации. Я например в текущем проекте с DV 2.0 измерения вообще не гружу, они виртуальные, гружу только таблицы фактов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 07:30 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Полковник.Я имел некоторый опыт с vertica в т.ч и на DV 2.0. Скажу так эта база для джойнов вообще не предназначена, она для другого. Если хотите джойнов на вертике увеличивайте кол-во узлов и готовьтесь покупать хорошее железо. Вы пишите про загрузку последовательную загрузку измерений и фактов, вы что то напутали - в DV нет измерений и фактов, или вы про загрузку из DV датамарта? Ну это скорее особенности вашей реализации. Я например в текущем проекте с DV 2.0 измерения вообще не гружу, они виртуальные, гружу только таблицы фактов Спасибо за совет, если можно было бы избавиться от джойнов, избавились бы ) Но, как часто в больших компаниях / проектах, я делаю свой маленький кусок (и там есть pre-joined projections), а караван уже 10 лет идет. К тому же сидит команда поддержки в 20 человек, что они делать будут, если все заработает? ) И да, вы правы, над DV тут еще уровень витрин со звездами, и там последовательно все грузится. Но и DV слой тоже грузится последовательно, поэтому бонус от хеширования где-то давно потерян. Т.е. вы тоже таблицы фактов из DV пересобираете для репортинга? Оставляя md5 ключи к измерениям? Я до сих пор не вижу ничего такого в md5, что компенсировало бы потери производительности на витринах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 02:43 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Юрий Кудрявцев, Пробовал я эти преджойн проекции, мало помогает. После нескольких месяцев плясок с бубном я из той конторы ушел, вериика меня довела ... Я сильно разлюбил колоночные базы и всякие новомодные фишки. Советуют еще такую вещ - измерения и факты загрузить в одну широкую таблицу, но я не пробовал. Да, грузим звёзды из DV, оставляем суррогатные ключи md5, потери есть но не значительные, и больше потерь на загрузке индексов, чем на чтении. Вы в Австралии? Там самое сильное комьюнити DV 2.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 20:20 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
Полковник.Юрий Кудрявцев, Пробовал я эти преджойн проекции, мало помогает. После нескольких месяцев плясок с бубном я из той конторы ушел, вериика меня довела ... Я сильно разлюбил колоночные базы и всякие новомодные фишки. Советуют еще такую вещ - измерения и факты загрузить в одну широкую таблицу, но я не пробовал. Тут помогают. Но да, в идеале надо грузить простыню уже преджойненную, так лучше всего. Полковник.Вы в Австралии? Там самое сильное комьюнити DV 2.0 Да, тут в CommBank DV сам Линдстедт настроил в свое время таких масштабов, что по всему рынку волнами расходится ) Там все навороченно (hadoop + terradata), 200+ человек занимаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 02:18 |
|
||
|
Hash vs Surrogate keys
|
|||
|---|---|---|---|
|
#18+
и в ЦБ РФ Data Vault пилят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2017, 22:26 |
|
||
|
|

start [/forum/moderation_log.php?user_name=fbs5zr]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 21ms |
| total: | 183ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...