|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Это простой автоинкремент с единицы? Или какие-то сложные длинные константы? Я всегда использовал автоинкремент, но когда стал спрашивать у знакомых разрабов, то они они говорят, типа, обычный численный ID в измерениях и фактах вообще не используем. Создаём в нём сложный составной ключ и используем его в качестве ID. Что он из себя представляет и для чего - у них добиться мне не удалось, поэтому стало интересно, какие у вас взгляды на формирование суррогатных ключей таблиц и фактов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2021, 23:42 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Встречал еще такое: - автоинкремент с шагом в 10 N и начальным значением, соответствующим задаче (номер АС, из которой пришли данные, номер таблицы, номер потока ETL и т.п.) - хэш из бизнес-данных (применимо с ограничеями, например, когда при историческом хранении нет необходимости различать идентичные по бизнес-данным записи) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2021, 23:52 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Charles Weyland, Автоинкремент в виде identity в таблице или сиквенс в некоторых случаях ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2021, 23:53 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Про сложный составной суррогатный ключ см. тему Читаю книгу Кимбалла. "Факты должны быть представлены составными ключами", но как? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 01:03 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Хеши MD5 или SHA, вычисляется по бизнес-ключам. Это когда данные грузятся из Staging в DV. В витринах - используются те же хеши или суррогатные ключи, создаваемые при переносе данных в витрины. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 17:38 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Ferdipux, MD5 почти умер уже, скоро и функции по его вычислению будут deprecated, поэтому не рекомендую ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 17:43 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Ferdipux Хеши MD5 или SHA, вычисляется по бизнес-ключам. Это когда данные грузятся из Staging в DV. В витринах - используются те же хеши или суррогатные ключи, создаваемые при переносе данных в витрины. И получать доп. гемморой при апдейтах бизнес ключей. p.s. только не надо начинать про "бизнес ключи не меняются...." ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 18:30 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Ivan Durak И получать доп. гемморой при апдейтах бизнес ключей. p.s. только не надо начинать про "бизнес ключи не меняются...." Меняются. Поэтому в DV загружаем как есть, и дальше - со знанием что на что поменялось - связываем два объекта в интегрированной части DV. Все равно что было два каталога продуктов в двух разных системах, их дедуплицировали. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 18:42 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Критик Ferdipux, MD5 почти умер уже, скоро и функции по его вычислению будут deprecated, поэтому не рекомендую Вы правы. Он короткий и уязвимый как криптографичный, поэтому и будет deprecated. Коллеги использовали google CityHash и FarmHash, понравилось - быстро и мало коллизий. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 18:50 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Ferdipux ...понравилось - быстро и мало коллизий... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 17:06 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
vikkiv, ну, обычно в документации описывается, что данные верны на 99.9%, поэтому баг превращается в фичу ps главное, чтобы не было накопления ошибок, то есть правильная DQ как часть ХД решает проблему, пусть даже она будет работать, скажем, только по выходным ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 19:04 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
Все нижесказанное мое IMHO ...А все потому, что базисты не умеют грузить данные взаимодействующими потоками и не могут передать разрешенный идентификатор в соседний поток сразу, не дожидаясь окончания потока. Нет, надо все прочитать из БД (зачастую не один раз), сделать какое-то элементарное действо, записать данные обратно в БД (несколько раз), и так далее до полной победы коммунизма. На этом фоне даже запись в файлы вместо БД позволяет выглядеть загрузке скаковой лошадью рядом с улиткой. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 19:41 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
.Евгений ...На этом фоне даже запись в файлы вместо БД позволяет выглядеть загрузке скаковой лошадью рядом с улиткой... гигабайты / миллиарды строк по партициям за считанные секунды обратывают хотя те-же MPP (Azure Synapse) по схожему принципу с дисками (DataLake Storage) работают.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 20:04 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
vikkiv, это я не хочу комментировать в силу недостаточного знания матчасти. От меня хотели ХД дешево (на посредственной виртуалке в качестве сервера ETL) и быстро (с нормальной задержкой менее минуты) - и получили его. Всякие контейнеровозы с экипажем девопсов и зоопарком фреймворков от меня далеки хотя бы чисто идеологически. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 20:35 |
|
что вы используете в качестве суррогатного ключа КХД?
|
|||
---|---|---|---|
#18+
vikkiv неприемлемо, для больших данных по качественным причинам нужна чёткая детерминированность, т.е. чтобы было " нет коллизий " Генерация последовательности суррогатных ключей - это однопоточная операция. Следовательно, схема ETL\ELT подстравиватеся под эту парадигму - грузим данные объекта строго в один поток, обеспечиваем синхронизации и блокировки. Загрузки - делаем в порядке графа зависимостей (не обязательно, но технику early arriving data почему-то не любят), hubs -> satellites links или anchors -> ties. Сложно в исполнении, долго работает, нужно делать поиск по справочнику bus key -> id. Или - используем хеши. Единственное усложнение - проверяем в процессе загрузки на возможную коллизию, если она случилась - генерируем хеш еще раз и снова проверяем, пока хеш не станет уникальным. Факты коллизий и их решений записываем в специальные таблицы рядом. По опыту - в таких таблицах не было более 5 записей на 10^10 оригинальных. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2021, 11:24 |
|
|
start [/forum/topic.php?fid=49&msg=40044968&tid=1857191]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 367ms |
0 / 0 |