| 
 | 
| 
 
что вы используете в качестве суррогатного ключа КХД? 
 | 
|||
|---|---|---|---|
| 
 #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?desktop=1&fid=49&tid=1857191]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    38ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    47ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 11ms | 
| total: | 143ms | 

| 0 / 0 | 
