powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / что вы используете в качестве суррогатного ключа КХД?
15 сообщений из 15, страница 1 из 1
что вы используете в качестве суррогатного ключа КХД?
    #40044226
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это простой автоинкремент с единицы? Или какие-то сложные длинные константы?

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


Что он из себя представляет и для чего - у них добиться мне не удалось, поэтому стало интересно, какие у вас взгляды на формирование суррогатных ключей таблиц и фактов.
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044228
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встречал еще такое:
- автоинкремент с шагом в 10 N и начальным значением, соответствующим задаче (номер АС, из которой пришли данные, номер таблицы, номер потока ETL и т.п.)
- хэш из бизнес-данных (применимо с ограничеями, например, когда при историческом хранении нет необходимости различать идентичные по бизнес-данным записи)
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044230
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles Weyland,

Автоинкремент в виде identity в таблице или сиквенс в некоторых случаях
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044238
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044534
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хеши MD5 или SHA, вычисляется по бизнес-ключам. Это когда данные грузятся из Staging в DV. В витринах - используются те же хеши или суррогатные ключи, создаваемые при переносе данных в витрины.
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044536
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

MD5 почти умер уже,
скоро и функции по его вычислению будут deprecated,
поэтому не рекомендую
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044566
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux
Хеши MD5 или SHA, вычисляется по бизнес-ключам. Это когда данные грузятся из Staging в DV. В витринах - используются те же хеши или суррогатные ключи, создаваемые при переносе данных в витрины.

И получать доп. гемморой при апдейтах бизнес ключей.
p.s. только не надо начинать про "бизнес ключи не меняются...."
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044578
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan Durak

И получать доп. гемморой при апдейтах бизнес ключей.
p.s. только не надо начинать про "бизнес ключи не меняются...."

Меняются. Поэтому в DV загружаем как есть, и дальше - со знанием что на что поменялось - связываем два объекта в интегрированной части DV. Все равно что было два каталога продуктов в двух разных системах, их дедуплицировали.
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044584
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик
Ferdipux,

MD5 почти умер уже,
скоро и функции по его вычислению будут deprecated,
поэтому не рекомендую

Вы правы. Он короткий и уязвимый как криптографичный, поэтому и будет deprecated.
Коллеги использовали google CityHash и FarmHash, понравилось - быстро и мало коллизий.
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044903
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux
...понравилось - быстро и мало коллизий...
неприемлемо, для больших данных по качественным причинам нужна чёткая детерминированность, т.е. чтобы было " нет коллизий "
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044932
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

ну, обычно в документации описывается, что данные верны на 99.9%, поэтому баг превращается в фичу

ps главное, чтобы не было накопления ошибок, то есть правильная DQ как часть ХД решает проблему, пусть даже она будет работать, скажем, только по выходным
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044942
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все нижесказанное мое IMHO

...А все потому, что базисты не умеют грузить данные взаимодействующими потоками и не могут передать разрешенный идентификатор в соседний поток сразу, не дожидаясь окончания потока.
Нет, надо все прочитать из БД (зачастую не один раз), сделать какое-то элементарное действо, записать данные обратно в БД (несколько раз), и так далее до полной победы коммунизма. На этом фоне даже запись в файлы вместо БД позволяет выглядеть загрузке скаковой лошадью рядом с улиткой.
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044948
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений
...На этом фоне даже запись в файлы вместо БД позволяет выглядеть загрузке скаковой лошадью рядом с улиткой...
Ну так Hadoop под Spark на Scala (PySpark) в кластерах
гигабайты / миллиарды строк по партициям за считанные секунды обратывают
хотя те-же MPP (Azure Synapse) по схожему принципу с дисками (DataLake Storage) работают..
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40044968
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

это я не хочу комментировать в силу недостаточного знания матчасти. От меня хотели ХД дешево (на посредственной виртуалке в качестве сервера ETL) и быстро (с нормальной задержкой менее минуты) - и получили его.

Всякие контейнеровозы с экипажем девопсов и зоопарком фреймворков от меня далеки хотя бы чисто идеологически.
...
Рейтинг: 0 / 0
что вы используете в качестве суррогатного ключа КХД?
    #40045040
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikkiv
неприемлемо, для больших данных по качественным причинам нужна чёткая детерминированность, т.е. чтобы было " нет коллизий "

Генерация последовательности суррогатных ключей - это однопоточная операция. Следовательно, схема ETL\ELT подстравиватеся под эту парадигму - грузим данные объекта строго в один поток, обеспечиваем синхронизации и блокировки. Загрузки - делаем в порядке графа зависимостей (не обязательно, но технику early arriving data почему-то не любят), hubs -> satellites links или anchors -> ties. Сложно в исполнении, долго работает, нужно делать поиск по справочнику bus key -> id.
Или - используем хеши. Единственное усложнение - проверяем в процессе загрузки на возможную коллизию, если она случилась - генерируем хеш еще раз и снова проверяем, пока хеш не станет уникальным. Факты коллизий и их решений записываем в специальные таблицы рядом. По опыту - в таких таблицах не было более 5 записей на 10^10 оригинальных.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / что вы используете в качестве суррогатного ключа КХД?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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