|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Добрый день! Думаю тут КХД сделать. Бизнес-пользователями обзавелись, "добро" дано, внешние системы данные о давать готовы, их туча, команда и экспертиза определённая есть, осталось только клепать ETL, витрины и отчёты. Вопросы общего характера: 1. У вас в зоне очистки (stage) постоянно данные хранятся, или это как папка темп, которая вычищается постоянно до или после ETL? 2. Какими пользуетесь соглашениями по именованию таблиц и колонок? русский или английский язык? 3. Где хранятся правила вычистки? напр., что все поступающие из 1С "Метёлки" заменять на "веники" и пр. 4. Из скольких баз данных состоит ваше хранилище? всё никак не могу определиться с этим вопросом. типа, одна база для стейджинга, 10 штук - витрины, ещё одна для хранения пришедших данных в сыром виде, или не нужна она? или вообще всё в одной хранить? тогда сколько? у меня ж их там штук 100 будет, не меньше, т. к. просят самые разные области бизнеса анализировать, но какие-то общие измерения (сотрудники, города...) там универсальны для всех Понятное дело, что могу для себя ответить на эти вопросы, но интересно, какая практика? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 03:27 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
По опыту нескольких проектов: 1. А смысл хранить данные в stage долго? Мы их заполняли перед валидацией, после загрузки в target удаляли. Ну либо хранили 1 день на случай, если вдруг потребуется перезагрузка, чтобы сократить время и не заполнять stage заново. Ну это если речь про факты 2. Что-то вроде МОДУЛЬ_СУЩНОСТЬ_F(_FS, _D). Русский? Транслит что ли?(а, ну хотя не знаю о какой БД вы говорите, у нас был Oracle) 3. У нас было непосредственно в ETL процессах. Каких-то особых универсальных правил для всех сущностей не было, выносить их в некие внешние справочники необходимости не было. 4. Видимо, вы строите на MSSQL или Postgre. В Oracle была одна БД, разные схемы - staging, target и схемы с данными источников (онлайн репликация, чтобы не грузить пром базы операционных систем(либо стенд бай)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 08:11 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Nika gnome, 1. Хранение - определяется регламентом работы. Если по регламенту все вопросы с проблематичными данными должны решиться за неделю - хранить сырье более 2 недель смысла нет (и то это с запасом на авось :). 2. ИМХО, лучше - английский или транслит, <Область>_<Сущность>_<Суффиксы>, суффиксы - описывают что это и т.п. 3. Правила -- реализуются в ETL, хранятся -- это вопрос. Если проект не очень большой, можно все запихать в ETL, преимущество - контроль версий (понятно кто сделал изменение), недостаток - делать это ETL-щикам. Если размер большой или нужно делегировать ведение правил - хранили в БД с обязательным логом изменений, такая конструкция сложнее. 4. Вопрос баз (или схем для Oracle) - это скорее вопрос инфраструктурный. БД могут иметь различное хранилище (tiering дисков и пр), бекапы, планы обслуживания, настройки производительности - лимиты ресурсов для пользователей и т.п. То есть определитесь в своей СУБД - какие операции делаются для всей базы. Думайте с этой стороны - как вы будете использовать различные компоненты, режим или способ использования, чтобы для них операции обслуживания были общими. Ну и -- хорошим тоном разбить объекты/таблицы на базы так, чтобы в запросах использовать данные только одной базы. Что позволит без проблем или доп упражнений в дальнейшем разделить базы по разным серверам, даже что-то отключить/архивировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 10:59 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Nika gnome, 2) однозначно НЕ русский. А то вас ждет куча интересных открытий, в скольких местах присутствуют языковые и региональные настройки в OS, базах данных, шинах и всех ИС с которыми вы будете работать (они и так вас ждут) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 11:22 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Nika gnome, На текущем проекте: 1. Стейджинг чистится от загруженных данных после каждой загрузки. Именно от загруженных, а не от всех - часть не проходит СККД и будет пытаться грузиться повторно, пока проблема не будет разрешена. Наряду со стейджингом имеются архив, где хранятся все сырые данные за предыдущие дни, и журнал, в котором содержится история применения сырых данных на данных ХД. В совокупности это позволяет иметь историю без историчности данных в ХД, разбирать кейсы практически любой давности (что временами бывает нужно). "Сырость" данных относительна - это XML сообщения систем-источников. 2. Только английский - не нужны проблемы на ровном месте. Имена по смыслу. 3. В документации и внутри ЕТЛ. Любой дополнительный слой БД - снижение темпа загрузки и усложнение процесса. Но у меня именно ЕТЛ, а не ЕЛТ. 4. Пока 5 БД: архив, сегодняшние сырые данные + журнал, стейджинг + отсев СККД, ХД, витрины под кубы. Работал с другими ХД, где: 1. Стейджинг копился. 2. Только английский. 3. В ХП и таблицах (динамическое выполнение). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 11:42 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
1. У вас в зоне очистки (stage) постоянно данные хранятся, или это как папка темп, которая вычищается постоянно до или после ETL? Зависит "от". Если это чисто ХДшный stage, то хранить там можно 1 загрузку. Однако, если у вас появляется несколько систем-потребителей (именно первичных данных), то ваш stage можно конвертировать в ODS, и там должны быть все данные. 2. Какими пользуетесь соглашениями по именованию таблиц и колонок? русский или английский язык? UNDER_SCORE, английский 3. Где хранятся правила вычистки? напр., что все поступающие из 1С "Метёлки" заменять на "веники" и пр. рядом лежащая НСИ-система 4. Из скольких баз данных состоит ваше хранилище? всё никак не могу определиться с этим вопросом. типа, одна база для стейджинга, 10 штук - витрины, ещё одна для хранения пришедших данных в сыром виде, или не нужна она? или вообще всё в одной хранить? тогда сколько? у меня ж их там штук 100 будет, не меньше, т. к. просят самые разные области бизнеса анализировать, но какие-то общие измерения (сотрудники, города...) там универсальны для всех Зависит чисто от требований, например, по требованиям безопасности какие-то данные просто не должны попадать в общую базу витрин. Но обычно: stage/ODS, DDS-база, база витрин. Плюс базы-архивы для DDS и витрин. НСИ/MDM я не включая в базы ХД, хотя они и важны для него. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 18:50 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
спасибо за ваши ответы! Один только вопрос остался... Кто-то сталкивался с проблемами при именовании полей по-русски? Когда в SSAS создаю новое измерение "дата", он даже сам создаёт физически таблицу в базе, у которой все поля называются по-русски. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 18:56 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Nika gnome, Календарь нужно создавать руками в виде таблицы, потом на основе нее создается измерение ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 20:24 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Nika gnome Кто-то сталкивался с проблемами при именовании полей по-русски? С Уважением, Георгий ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2021, 10:05 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Отлично, спасибо за ёмкую аргументацию ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2021, 15:08 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Nika gnome Отлично, спасибо за ёмкую аргументацию по первому пункту - очень рекомендую иметь минимум одно место где у тебя все сырье храниться всегда. Это спасет тебе не одну прядь волос от поседения ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 13:07 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Ivan Durak, Это чисто вопрос денег, если компания готова выделить несколько десятков Тб, то это очень круто. Только я таких компаний пока не встречал ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 13:21 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Критик если компания готова выделить несколько десятков Тб, то это очень круто. Есть практика хранения архива (PSA) в Hadoop, вполне себе. Правда, там только с полтора десятка Tb :). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 18:14 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Есть практика хранения архива в 7z архивах (извиняюсь за тавтологию), с доступом из БД через процедуру, ~100 Гб/год (сжатие ~100:1). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 20:06 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
.Евгений, Ради интереса на Питоне (PySpark) прогнал быстрый тест для данных по геолокациями (было что-то из старого для geography типа данных Latitude/Longitude под SQL Server) отсюда: http://download.geonames.org/export/dump/ FormatComprSizeMBCompr/Ratcsvnone13.471csvbzip24.273.2csvdeflate5.212.6csvgzip5.212.6csvlz48.121.7jsonnone25.970.5jsonbzip24.293.1jsondeflate5.772.3jsongzip5.782.3jsonlz49.541.4orcnone12.371.1orczlib5.382.5orclzo8.341.6orcsnappy8.541.6parquetnone17.010.8parquetuncompressed17.010.8parquetgzip5.552.4parquetsnappy9.111.5parquetlz49.351.4 Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2021, 02:48 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
vikkiv, компрессия <1 доставила ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2021, 09:01 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
vikkiv, исходный формат - XML, сжатие - solid ppmd с максимальным сжатием. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2021, 10:09 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
George Nordic, вопрос ведь чисто из теории относительности - взял csv за базу, можно было и с самым тяжелым несжатым parquet сравнивать, или с экстремальным json .Евгений, от структуры зависит, цифры/текст и их разнобойность/плотность с xml на самом деле понятно почему - лишнего мусора довольно много, пробелами много чего забито и прочим хламом.. простота и гибкость - одна из причин почему индустрия на json перешла (хотя и тут хватает лишнего, жесткие структуры не особо имеет смысла так писать) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2021, 15:34 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
vikkiv, если покопаться в типовых таблицах stage, то там очень часто можно найти множество экземпляров одних и тех же данных, забранных в различное время (особенно, если обмен осуществляется не через шину), реальный инкремент может быть сравнительно мал. Надо приспосабливаться к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2021, 16:19 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Критик Ivan Durak, Это чисто вопрос денег, если компания готова выделить несколько десятков Тб, то это очень круто. Только я таких компаний пока не встречал ) не смешите мои тапки, для автора с его 1С-кой и планами на один сервер.. там и одного терабайта не наберется ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 18:02 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
1. У вас в зоне очистки (stage) постоянно данные хранятся, или это как папка темп, которая вычищается постоянно до или после ETL? у нас временно, просто мусорка, куда сваливаются все данные, чтобы как можно быстрее освободить источники и каналы связи, а дальше спокойненько разгребаем, никому не мешая перед заполнением делаем truncate однако каждый раз после работы ЕТЛ, успешной или нет, мы делаем бекап. Бекапы хранятся пару недель потом перезаписываются. Поэтому в случае необходимости разбора полетов можно отресторить и посмотреть что там было в stage 2. Какими пользуетесь соглашениями по именованию таблиц и колонок? русский или английский язык? За время эксплуатации накопился достаточный словарь. Если что-то новое, то варианты отправляются на согласование старшим разработчикам. Русский или английский - я уже запускал тут опрос, можете посмотреть на результаты и аргументы. Конечно же труъ базаданщики скажут что только инглиш и у каждого из них уровень знания инглиша over С80, но как ни возьмешь крупный коммерческий продукт (за миллионы), так сразу видно... магазин у них - это shop (в контексте супермаркетов), что тут скажешь... Хотя сам продукт качественный. На мой взгляд, если у вас стек микрасофта и нет зоопарка из всяких экзотических или жутко православных и кривых модных продуктов, про которые пишут на хабре, и "вэба", то используйте любой из вариантов, который нравится, если не раздражает переключение раскладок (и пусть кидают в меня тапки). А если и понадобится подключить нечто подобное, сделаете вьюшку на понятном этому экзотическому зверю языке. Делать куб на инглише и потом прикручивать к нему транслейты - то еще извращение, особенно когда знание английского не самое лучшее. Пользователь скажет техподдержке: у меня подразделения в акциях не выводятся и иди потом ищи, как реально называется то, что пользователь видит в кубе под названием "Подразделение". 3. Где хранятся правила вычистки? напр., что все поступающие из 1С "Метёлки" заменять на "веники" и пр. В основном в ЕТЛ, но некоторые вещи во воьюшках для конечных потребителей. Для куба например. В БД храним честно (как есть), а для куба подменяем/форматируем, по разным причинам. Эксель (определенных версий), например, иногда ведет себя неадекватно, когда установлен фильтр на элементах, в названиях которых есть кавычки. 4. Из скольких баз данных состоит ваше хранилище? всё никак не могу определиться с этим вопросом. типа, одна база для стейджинга, 10 штук - витрины, ещё одна для хранения пришедших данных в сыром виде, или не нужна она? или вообще всё в одной хранить? тогда сколько? у меня ж их там штук 100 будет, не меньше, т. к. просят самые разные области бизнеса анализировать, но какие-то общие измерения (сотрудники, города...) там универсальны для всех В одной базе, но в разных схемах. Разделяем по тематикам: tgt, stg, какие-то специфические вещи, настройки, выгрузки из AD и прочие вспомогательные вещи, не имеющие отношения к основной деятельности предприятия. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2021, 22:06 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
+1 к п.2 от TJ001 Если 1С то синхронизируйтесь с ней через регистрацию изменений, если Вас 1С-ники пустят к заднему проходу ))). Грузите 1 в 1, складывая GUID отдельно для замены на int. Если Microsoft то смело делайте на рус. название полей и таблиц = названию в конфе 1С. SSAS или Power BI это проглотит аж бегом, проблем никаких не будет. Поддерживать будет проще. Если кто то из пользователей 1С напишет что в OLAP данные не соответсвуют 1С то Ваши стэйдж архивы и прочую мутотень которую кто то там архивирует месяцами никто рассматривать не будет, а просто порекомендуют выровнять данные. Главное расталковать пользователям что между OLTP OLAP есть лаг. Если у Вас транснациональная компания с кучей разнородных систем и пользователи SSAS будут из разных стран тогда путь описанный выше не для Вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 18:09 |
|
4 очень общих вопроса о проектировании DWH, инет молчит
|
|||
---|---|---|---|
#18+
Igor.Ko Если кто то из пользователей 1С напишет что в OLAP данные не соответсвуют 1С то Ваши стэйдж архивы и прочую мутотень которую кто то там архивирует месяцами никто рассматривать не будет, а просто порекомендуют выровнять данные. 1. Просто выровняйте данные. 2. В источнике сделаны доработки - см. п.1 3. В данных источника обнаружена неконсистентность или иная ошибка - см. п.1 4. Если выравнивание данных не помогло - см. п.1 5. Если после выравнивания ранее правильные данные стали неправильными - см. п.1 6. Упал сервер - см. п.1 7. Упала сеть - см. п.1 8. Упал пользователь (со стула) - см. п.1 9. Упала гривна - см. п.1 И т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2021, 00:12 |
|
|
start [/forum/topic.php?fid=49&fpage=5&tid=1857184]: |
0ms |
get settings: |
12ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 394ms |
0 / 0 |