powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Hash vs Surrogate keys
19 сообщений из 19, страница 1 из 1
Hash vs Surrogate keys
    #39490509
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,

Кто использовал в своих проектах хэш ключи вместо суррогатных ключей, поделитесь впечатлениями, пожалуйста. На сколько садится производительность джойнов и растёт размер базы по сравнению с возможностью грузить одновременно измерения и факты
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490580
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир ШтепаКоллеги,

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

Я использую на проектах с DV 2.0 и ms sql. Ключ MD5 преобразован в char(32) Производительность садится очень сильно особенно на загрузке данных при перестройках индексов. Играл с разными хеш-функциями в т.ч. и не криптографическими, которые можно преобразовать и хранить в bigint, результат тестов разница в два раза по скорости вставки в таблицу. Вставка через left join, соединение источника с целевой таблицей по ключевым полям.

одна из рекомендаций - нельзя использовать кластерный индекс по полю с хеш-ключем

На оракле пока не пробовал.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490831
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.,

меня интересует производительность join при выполнении аналитических запросов а также, если вы строите SSAS куб, то что вы используете в качестве ключей измерения?

У меня создается впечатления, что на хэш ключах можно построить надежный сундук (Vault) но он "чемодан без ручки", так как витрины (StarSchema ROLAP) и кубы на таких ключах будут черепахой, тяжелой и неповоротливой.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490873
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир ШтепаПолковник.,

меня интересует производительность join при выполнении аналитических запросов а также, если вы строите SSAS куб, то что вы используете в качестве ключей измерения?

У меня создается впечатления, что на хэш ключах можно построить надежный сундук (Vault) но он "чемодан без ручки", так как витрины (StarSchema ROLAP) и кубы на таких ключах будут черепахой, тяжелой и неповоротливой.

Тащим HK до витрины и дальше в куб (MOLAP), сначала пошли по пути виртуализации (витрина на представлениях), а потом пришлось строить витрину на таблицах из за низкой производительности джойнов на HK, джойнов в DV очень много, я сильно нормализовал модель линков, доведя до линк - связь только пары таблиц.

Рекомендаций не даю, только проверять на конкретном железе на своем объеме данных. Коллега мой бывший в Германии смотрит в сторону мемориоптимайзед таблиц для ускорения DV 2.0, я пробовал, возможно что то делаю не так но грузятся такие таблицы очень долго, отказался.

Линстедт рекомендует MPP архитектуру для виртуализации витрины на DV 2.0, но она стоит как самолет, никто в России на такое не пойдет.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490882
RioMare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Штепа,
В прямом виде чистый hash очень медленно работает. Немного преобразованный в bigint из SHA1 вроде более-менее ( правда проект был на MOLAP ).
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490894
RioMare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Штепа возможностью грузить одновременно измерения и факты

Это и была основная проблема : правда грузить надо было не одновременно, а по-отдельности и в разное время : измерения приходили из одной системы, а факты - из 3 и чисто технически факты прийти раньше измерений
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490895
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RioMare,

Длинна ключа MD5 не позволяет его в bigint преобразовать, а другой алгоритм вычисления может давать коллизии.

Я пробовал не криптографические Fowler–Noll–Vo и MurmurHash3 в BIGINT разница по скорости в два раза по сравнению с MD5 в char(32).

Дальше нужно было исследовать на предмет коллизий, но времени не было, проект шел уже полным ходом, на том этапе было поздно что либо переделывать.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490922
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.,

авторКоллега мой бывший в Германии смотрит в сторону мемориоптимайзед таблиц

Если вы имеете ввиду column store, то на них JOINS при высокой кардинальности работают архимедленно, так как batchmode выполнения запросов вываливается в row mode, со всеми присущими побочными негативами.

Т.е. получается, что ничего, чем можно гордится, на HashKey пока еще не вышло.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39490971
RioMare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.,
MD5 сам по себе даёт коллизии, преобразовывалось SHA1 ( обычный CONVERT(bigint, HASHBYTES(SHA1, compound_key ) )).
Как я понял для MSSQL всё то, что не INT работает медленно или очень медлено, может на ORA по-другому.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39491210
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Штепагрузить одновременно измерения и факты

почему бы и не грузить вместе?
просто для фактов налету формировать необогащенные элементы измерения,
когда справочники приедут - просто дообогатить
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39491583
Voyager_lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Штепа,

Если только для OLAP, то указанный CONVERT(bigint, HASHBYTES(SHA1, compound_key ) ) вполне себе устроит. Что вполне актуально для пилотного решения. Если и добавит объем то не более 20%. По скорости на MD SSAS не заметите.
Если же еще SQL adhoc-запросы пулять к ТФ, то не стоит. Всяко медленнее.
B про Tabular думаю стоит упоминуть: bigint вместо int/smallint....Размер имеет значение
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39491760
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикВладимир Штепагрузить одновременно измерения и факты

почему бы и не грузить вместе?
просто для фактов налету формировать необогащенные элементы измерения,
когда справочники приедут - просто дообогатить
ну так все и делают. Может тут пытаются блокировок избегать.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39494302
Юрий Кудрявцев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир ШтепаПолковник.,

авторКоллега мой бывший в Германии смотрит в сторону мемориоптимайзед таблиц

Если вы имеете ввиду column store, то на них JOINS при высокой кардинальности работают архимедленно, так как batchmode выполнения запросов вываливается в row mode, со всеми присущими побочными негативами.

Т.е. получается, что ничего, чем можно гордится, на HashKey пока еще не вышло.

Проект тут на Vertica со всем этим DV 2.0 на md5 ключах, очень жалко смотреть как хорошая база убивается на этих джойнах, причем данных с одной стороны ~20Tb, с другой стороны всего 20 Тб ) Причем загрузка здесь последовательная (измерения и потом факты), так что смысл вообще потеряли по пути )
Я пока не видел места, где бы md5 сильно помогал бы, не видел места где нельзя было бы "дообогатить" измерения потом. Это надо совсем непрерывный поток иметь без окон, не доводилось пока.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39494321
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Кудрявцев
Проект тут на Vertica со всем этим DV 2.0 на md5 ключах, очень жалко смотреть как хорошая база убивается на этих джойнах, причем данных с одной стороны ~20Tb, с другой стороны всего 20 Тб ) Причем загрузка здесь последовательная (измерения и потом факты), так что смысл вообще потеряли по пути )
Я пока не видел места, где бы md5 сильно помогал бы, не видел места где нельзя было бы "дообогатить" измерения потом. Это надо совсем непрерывный поток иметь без окон, не доводилось пока.
Я имел некоторый опыт с vertica в т.ч и на DV 2.0. Скажу так эта база для джойнов вообще не предназначена, она для другого. Если хотите джойнов на вертике увеличивайте кол-во узлов и готовьтесь покупать хорошее железо.
Вы пишите про загрузку последовательную загрузку измерений и фактов, вы что то напутали - в DV нет измерений и фактов, или вы про загрузку из DV датамарта? Ну это скорее особенности вашей реализации. Я например в текущем проекте с DV 2.0 измерения вообще не гружу, они виртуальные, гружу только таблицы фактов
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39495668
Юрий Кудрявцев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.Я имел некоторый опыт с vertica в т.ч и на DV 2.0. Скажу так эта база для джойнов вообще не предназначена, она для другого. Если хотите джойнов на вертике увеличивайте кол-во узлов и готовьтесь покупать хорошее железо.
Вы пишите про загрузку последовательную загрузку измерений и фактов, вы что то напутали - в DV нет измерений и фактов, или вы про загрузку из DV датамарта? Ну это скорее особенности вашей реализации. Я например в текущем проекте с DV 2.0 измерения вообще не гружу, они виртуальные, гружу только таблицы фактов

Спасибо за совет, если можно было бы избавиться от джойнов, избавились бы ) Но, как часто в больших компаниях / проектах, я делаю свой маленький кусок (и там есть pre-joined projections), а караван уже 10 лет идет. К тому же сидит команда поддержки в 20 человек, что они делать будут, если все заработает? )

И да, вы правы, над DV тут еще уровень витрин со звездами, и там последовательно все грузится. Но и DV слой тоже грузится последовательно, поэтому бонус от хеширования где-то давно потерян.

Т.е. вы тоже таблицы фактов из DV пересобираете для репортинга? Оставляя md5 ключи к измерениям? Я до сих пор не вижу ничего такого в md5, что компенсировало бы потери производительности на витринах.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39496308
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Кудрявцев,

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

Да, грузим звёзды из DV, оставляем суррогатные ключи md5, потери есть но не значительные, и больше потерь на загрузке индексов, чем на чтении.

Вы в Австралии? Там самое сильное комьюнити DV 2.0
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39496385
Юрий Кудрявцев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.Юрий Кудрявцев,

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


Тут помогают. Но да, в идеале надо грузить простыню уже преджойненную, так лучше всего.



Полковник.Вы в Австралии? Там самое сильное комьюнити DV 2.0

Да, тут в CommBank DV сам Линдстедт настроил в свое время таких масштабов, что по всему рынку волнами расходится ) Там все навороченно (hadoop + terradata), 200+ человек занимаются.
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39522104
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и в ЦБ РФ Data Vault пилят
...
Рейтинг: 0 / 0
Hash vs Surrogate keys
    #39522187
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_496и в ЦБ РФ Data Vault пилят

То что в РФ "пилят" это не не новость, а что по теме топика?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Hash vs Surrogate keys
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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