|  | 
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ Всем привет! Прошу не судить строго, сейчас только разбираюсь в теме:) Застропорился на том, - как правильно организовать структуру данных на этапе трансформации. На данный момент у меня 2 схемы в БД - stage и сам dwh. Проблема в следующем: 1. На входе есть большая плоская таблица с регистрацией автомобилей, с полями - "почтовый индекс", "номерной знак", "место регистрации"; 2. В данной таблице присутствуют пропуски по этим 3-м полям и я решил сделать составной ключ, который проверяет, есть ли поле "почтовый индекс", если нет - "номерной знак" и далее "место регистрации" и на его основнии я заполняю регион, где зарегистрирован автомобиль; 3. Вопрос в том, где хранить эти 3 таблицы с фиксированными данными, на основании которых производится "склейка". На stage этапе, не по книжке, так как данные там надо удалять:) А в dwh в dimensions они мне по сути не нужны, и тоже вроде как не правильно... 4.Также вопрос в том, что было бы неплохо также туда вносить отсуствующие значения из сырых данных, чтобы их потом дополнять. Заранее спасибо за помощь! ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 00:38 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ Вобщем решил создать еще одну схему service_dir, где буду хранить справочники с фиксированными данными, таккже перекину туда функции и ХП для очистки данных. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 12:16 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ buss, сумбурно у вас. но вроде справочники в ДВХ хранят, и ЕТЛ (склейку) тоже в момент переброски из стейджа в ДВХ надо делать. >>еще одну схему причем здесь схема? (это бантик просто), на какой уровень положили? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 14:09 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ buss, прочитайте про НСИ, по идее внешние справочники должны храниться там, затем они (как и любые другие данные) поступают в STAGE, затем в DDS-слой, а при потоке STAGE->DDS для вашей плоской таблицы вы обогащаете эти данные уже вашими ключами из справочников, которые уже лежат в DDS ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 14:46 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ StarikNavy, Спасибо! Постараюсь более складно объяснить, я вложил фото схемы dwh, как я сделал изначально. Я создала в dwh следующие таблицы: 1. dim_koatuu - содержит в себе данные по полную информацию по териториальному делению (область, район, населенный пункт и т.п.), она в дальнейшем будет выступать как dimension, для опредения региона; 2. dim_plates_region - содержит привязки, "тип номерного знака - регион - ссылка на код КОАТУУ", она нужна только для заполнения составного ключа; 3. dim_tsc_dep - содержит привязки "сервисный центр МВС - адрес - ссылка на код КОАТУУ", в принципе она тоже нужна только для заполнения составного ключа. 4. Залил в них дефолтные данные; 5. В фактовой таблице, я создал поле "koatuu_composite_key", которое заполняется при заливке данных из stage таблицы, в порядке наличия данных в полях dim_koatuu, dim_plates_region, dim_tsc_dep. Все как-бы работает, но чувствую, что не по феншую:) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 15:22 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ Критик, Спасибо, НСИ вроде как раз то, что я искал! ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 15:40 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ buss, "Привязки" не нужно именовать dim_что_то_там, В dim-таблицах ключи должны быть числовые, обычно поля не именуют key, достаточно в имени иметь id, "Соединенное Королевство Великобритании и Северной Ирландии" влезет в ваше country? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 19:00 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ Ну и таблицы, где есть пк, а остальные поля nullable - вызывают вопросы. Собственно, как вы их будете заполнять, если даже сджойнить не сможете? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 19:02 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ Критик, Ещё раз спасибо за помощь и критику. Я писал, что это был первый вариант, как я сделал. Я все сразу запихал в dimensions, сейчас переделаю. По пункатам: 1. В Country хранится абривиатура ua, us и т.п. 2. Поля null я сделал, чтобы из входной таблицы добавлять новые отсуствующие данные и потом их обрабатывать; 3. Сджойнить соответственно потом можно будет, после того как заполню отсуствующие данные. Почитал про НСИ и хотел задать вопрос, так все-таки эти таблицы лучше хранить в отдельной схеме или вообще в отдельной бд и как их наполнять, если мои ответы 2 и 3 неверные? Спасибо! ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 27.04.2021, 20:10 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ buss, до кучи если будете SSAS юзать то лучше тогда View на таблицу фактов сделать - потом менять проще насчет FK дело вкуса - но в DWH (OLAP) чаще их убирают ради производительности при загрузке в большие таблицы - но для вашего примера без разницы да и вообще если SSASб ms-sql то можно взять станд. пример AdventureWorks с примером куба Если БД другая (ну и соответвенно BI тул другой) - не скажу. можно скажем Кимбала почитать - но там довольго много всего. ps НСИ - я бы в одтельной схеме хранил ( nsi. ) если в скл-сервере хотя без разницы можно и префиксы в таблицах юзать ( nsI_country , nsi_ ) Главное зачем это вам - все таки лучше посмотерть на какой-то пример сделанный по каким-то шаблонам для MS-SQL я написал - для других наверно стоит поискать ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.04.2021, 19:07 |  | ||
| 
ETL и DWH- как правильно организовать структуру? | |||
|---|---|---|---|
| #18+ Гулин Федор, Спасибо! Вчера друг DWHшник, просветил как можно реализовать. Выкинуть пару столбцов и оставить все в dwh "снежинка", для начала, чтобы не путиться и запустить. А потом когда Кимпбала дочитаю уже разгрести. Сейчас занимаюсь:) Я делаю на Python и Postgres, чтобы потом перенести на Airflow. Это мне нужно и для учебы и для текущей работы, поэтому и парюсь именно с этими данными... Из примеров в интернете, мне очень понравился: https://github.com/gtoonstra/etl-with-airflow . Но он там на "чистых" данных работает, а у меня тут 50% мусора. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.04.2021, 20:41 |  | ||
|  | 

| start [/forum/topic.php?fid=49&msg=40067394&tid=1857149]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 14ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 46ms | 
| get topic data: | 11ms | 
| get forum data: | 3ms | 
| get page messages: | 54ms | 
| get tp. blocked users: | 1ms | 
| others: | 16ms | 
| total: | 163ms | 

| 0 / 0 | 
