powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 4 очень общих вопроса о проектировании DWH, инет молчит
24 сообщений из 24, страница 1 из 1
4 очень общих вопроса о проектировании DWH, инет молчит
    #40035641
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Думаю тут КХД сделать.
Бизнес-пользователями обзавелись, "добро" дано, внешние системы данные о давать готовы, их туча, команда и экспертиза определённая есть, осталось только клепать ETL, витрины и отчёты.

Вопросы общего характера:
1. У вас в зоне очистки (stage) постоянно данные хранятся, или это как папка темп, которая вычищается постоянно до или после ETL?
2. Какими пользуетесь соглашениями по именованию таблиц и колонок? русский или английский язык?
3. Где хранятся правила вычистки? напр., что все поступающие из 1С "Метёлки" заменять на "веники" и пр.
4. Из скольких баз данных состоит ваше хранилище? всё никак не могу определиться с этим вопросом. типа, одна база для стейджинга, 10 штук - витрины, ещё одна для хранения пришедших данных в сыром виде, или не нужна она? или вообще всё в одной хранить? тогда сколько? у меня ж их там штук 100 будет, не меньше, т. к. просят самые разные области бизнеса анализировать, но какие-то общие измерения (сотрудники, города...) там универсальны для всех

Понятное дело, что могу для себя ответить на эти вопросы, но интересно, какая практика?
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40035652
Master_Detail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По опыту нескольких проектов:
1. А смысл хранить данные в stage долго? Мы их заполняли перед валидацией, после загрузки в target удаляли. Ну либо хранили 1 день на случай, если вдруг потребуется перезагрузка, чтобы сократить время и не заполнять stage заново. Ну это если речь про факты
2. Что-то вроде МОДУЛЬ_СУЩНОСТЬ_F(_FS, _D). Русский? Транслит что ли?(а, ну хотя не знаю о какой БД вы говорите, у нас был Oracle)
3. У нас было непосредственно в ETL процессах. Каких-то особых универсальных правил для всех сущностей не было, выносить их в некие внешние справочники необходимости не было.
4. Видимо, вы строите на MSSQL или Postgre. В Oracle была одна БД, разные схемы - staging, target и схемы с данными источников (онлайн репликация, чтобы не грузить пром базы операционных систем(либо стенд бай))
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40035684
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nika gnome,

1. Хранение - определяется регламентом работы. Если по регламенту все вопросы с проблематичными данными должны решиться за неделю - хранить сырье более 2 недель смысла нет (и то это с запасом на авось :).
2. ИМХО, лучше - английский или транслит, <Область>_<Сущность>_<Суффиксы>, суффиксы - описывают что это и т.п.
3. Правила -- реализуются в ETL, хранятся -- это вопрос. Если проект не очень большой, можно все запихать в ETL, преимущество - контроль версий (понятно кто сделал изменение), недостаток - делать это ETL-щикам. Если размер большой или нужно делегировать ведение правил - хранили в БД с обязательным логом изменений, такая конструкция сложнее.
4. Вопрос баз (или схем для Oracle) - это скорее вопрос инфраструктурный. БД могут иметь различное хранилище (tiering дисков и пр), бекапы, планы обслуживания, настройки производительности - лимиты ресурсов для пользователей и т.п. То есть определитесь в своей СУБД - какие операции делаются для всей базы. Думайте с этой стороны - как вы будете использовать различные компоненты, режим или способ использования, чтобы для них операции обслуживания были общими.
Ну и -- хорошим тоном разбить объекты/таблицы на базы так, чтобы в запросах использовать данные только одной базы. Что позволит без проблем или доп упражнений в дальнейшем разделить базы по разным серверам, даже что-то отключить/архивировать.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40035696
sergeyns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome,
2) однозначно НЕ русский. А то вас ждет куча интересных открытий, в скольких местах присутствуют языковые и региональные настройки в OS, базах данных, шинах и всех ИС с которыми вы будете работать (они и так вас ждут)
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40035709
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome,

На текущем проекте:
1. Стейджинг чистится от загруженных данных после каждой загрузки. Именно от загруженных, а не от всех - часть не проходит СККД и будет пытаться грузиться повторно, пока проблема не будет разрешена.
Наряду со стейджингом имеются архив, где хранятся все сырые данные за предыдущие дни, и журнал, в котором содержится история применения сырых данных на данных ХД. В совокупности это позволяет иметь историю без историчности данных в ХД, разбирать кейсы практически любой давности (что временами бывает нужно). "Сырость" данных относительна - это XML сообщения систем-источников.
2. Только английский - не нужны проблемы на ровном месте. Имена по смыслу.
3. В документации и внутри ЕТЛ. Любой дополнительный слой БД - снижение темпа загрузки и усложнение процесса. Но у меня именно ЕТЛ, а не ЕЛТ.
4. Пока 5 БД: архив, сегодняшние сырые данные + журнал, стейджинг + отсев СККД, ХД, витрины под кубы.

Работал с другими ХД, где:
1. Стейджинг копился.
2. Только английский.
3. В ХП и таблицах (динамическое выполнение).
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40035918
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. У вас в зоне очистки (stage) постоянно данные хранятся, или это как папка темп, которая вычищается постоянно до или после ETL?
Зависит "от". Если это чисто ХДшный stage, то хранить там можно 1 загрузку.
Однако, если у вас появляется несколько систем-потребителей (именно первичных данных), то ваш stage можно конвертировать в ODS, и там должны быть все данные.

2. Какими пользуетесь соглашениями по именованию таблиц и колонок? русский или английский язык?
UNDER_SCORE, английский

3. Где хранятся правила вычистки? напр., что все поступающие из 1С "Метёлки" заменять на "веники" и пр.
рядом лежащая НСИ-система

4. Из скольких баз данных состоит ваше хранилище? всё никак не могу определиться с этим вопросом. типа, одна база для стейджинга, 10 штук - витрины, ещё одна для хранения пришедших данных в сыром виде, или не нужна она? или вообще всё в одной хранить? тогда сколько? у меня ж их там штук 100 будет, не меньше, т. к. просят самые разные области бизнеса анализировать, но какие-то общие измерения (сотрудники, города...) там универсальны для всех
Зависит чисто от требований, например, по требованиям безопасности какие-то данные просто не должны попадать в общую базу витрин. Но обычно: stage/ODS, DDS-база, база витрин. Плюс базы-архивы для DDS и витрин. НСИ/MDM я не включая в базы ХД, хотя они и важны для него.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40039454
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за ваши ответы!

Один только вопрос остался... Кто-то сталкивался с проблемами при именовании полей по-русски?
Когда в SSAS создаю новое измерение "дата", он даже сам создаёт физически таблицу в базе, у которой все поля называются по-русски.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40039470
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome,

Календарь нужно создавать руками в виде таблицы, потом на основе нее создается измерение
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40039559
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome
Кто-то сталкивался с проблемами при именовании полей по-русски?
Я думаю, что абсолютно ВСЕ сталкивались. Причем одна из самых поганых ошибок - не знаешь, где стрельнет. А так как стек продуктов постоянно меняется, и далеко не все новые продукты понимают наименование полей, отличных от ASC II (что бы там не твердили про Unicode), то вероятность неожиданно напороться на подобную ошибку - крайне высока. Не рекомендуем.

С Уважением,
Георгий
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40040251
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично, спасибо за ёмкую аргументацию
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041543
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome
Отлично, спасибо за ёмкую аргументацию

по первому пункту - очень рекомендую иметь минимум одно место где у тебя все сырье храниться всегда.
Это спасет тебе не одну прядь волос от поседения
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041552
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durak,

Это чисто вопрос денег, если компания готова выделить несколько десятков Тб, то это очень круто. Только я таких компаний пока не встречал )
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041769
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик
если компания готова выделить несколько десятков Тб, то это очень круто.

Есть практика хранения архива (PSA) в Hadoop, вполне себе. Правда, там только с полтора десятка Tb :).
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041813
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть практика хранения архива в 7z архивах (извиняюсь за тавтологию), с доступом из БД через процедуру, ~100 Гб/год (сжатие ~100:1).
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041910
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений,

Ради интереса на Питоне (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.
# Python / PySpak ss=sq.SparkSession(sc).builder.config(conf=conf).enableHiveSupport().getOrCreate()
df=ss.read.option("sep","\t").option("setMaxColumns",6).csv("c:/tmp/RU.txt").select(F.col("_c0").alias("pid"),F.col("_c2").alias("Place"),F.col("_c4").alias("Lat"),F.col("_c5").alias("Long")).sort("pid","Place","Lat","Long")
for x in ["none","bzip2","gzip","lz4","snappy","deflate"]:
    try:
        df.write.csv(f"e:/tmp/in/csv/RUct{x}",header=True,mode="overwrite",compression=x)
        print("csv - trying "+x)
    except:
        print("   "+x+" failed")
#... and so on

Но параметры компрессии наверное подкрутить можно, сортировками, типами данных, кодировками экспорта и пр., 100:1 конечно неплохое сжатие.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041933
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv, компрессия <1 доставила
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40041963
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

исходный формат - XML, сжатие - solid ppmd с максимальным сжатием.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40042185
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George Nordic,

вопрос ведь чисто из теории относительности - взял csv за базу,
можно было и с самым тяжелым несжатым parquet сравнивать, или с экстремальным json



.Евгений,

от структуры зависит, цифры/текст и их разнобойность/плотность
с xml на самом деле понятно почему - лишнего мусора довольно много,
пробелами много чего забито и прочим хламом..
простота и гибкость - одна из причин почему индустрия на json перешла
(хотя и тут хватает лишнего, жесткие структуры не особо имеет смысла так писать)
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40042220
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

если покопаться в типовых таблицах stage, то там очень часто можно найти множество экземпляров одних и тех же данных, забранных в различное время (особенно, если обмен осуществляется не через шину), реальный инкремент может быть сравнительно мал. Надо приспосабливаться к данным.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40043435
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Ivan Durak,

Это чисто вопрос денег, если компания готова выделить несколько десятков Тб, то это очень круто. Только я таких компаний пока не встречал )

не смешите мои тапки, для автора с его 1С-кой и планами на один сервер.. там и одного терабайта не наберется
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40043821
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. У вас в зоне очистки (stage) постоянно данные хранятся, или это как папка темп, которая вычищается постоянно до или после ETL?

у нас временно, просто мусорка, куда сваливаются все данные, чтобы как можно быстрее освободить источники и каналы связи, а дальше спокойненько разгребаем, никому не мешая
перед заполнением делаем truncate
однако каждый раз после работы ЕТЛ, успешной или нет, мы делаем бекап. Бекапы хранятся пару недель потом перезаписываются. Поэтому в случае необходимости разбора полетов можно отресторить и посмотреть что там было в stage
2. Какими пользуетесь соглашениями по именованию таблиц и колонок? русский или английский язык?
За время эксплуатации накопился достаточный словарь. Если что-то новое, то варианты отправляются на согласование старшим разработчикам. Русский или английский - я уже запускал тут опрос, можете посмотреть на результаты и аргументы. Конечно же труъ базаданщики скажут что только инглиш и у каждого из них уровень знания инглиша over С80, но как ни возьмешь крупный коммерческий продукт (за миллионы), так сразу видно... магазин у них - это shop (в контексте супермаркетов), что тут скажешь... Хотя сам продукт качественный. На мой взгляд, если у вас стек микрасофта и нет зоопарка из всяких экзотических или жутко православных и кривых модных продуктов, про которые пишут на хабре, и "вэба", то используйте любой из вариантов, который нравится, если не раздражает переключение раскладок (и пусть кидают в меня тапки). А если и понадобится подключить нечто подобное, сделаете вьюшку на понятном этому экзотическому зверю языке. Делать куб на инглише и потом прикручивать к нему транслейты - то еще извращение, особенно когда знание английского не самое лучшее. Пользователь скажет техподдержке: у меня подразделения в акциях не выводятся и иди потом ищи, как реально называется то, что пользователь видит в кубе под названием "Подразделение".
3. Где хранятся правила вычистки? напр., что все поступающие из 1С "Метёлки" заменять на "веники" и пр.
В основном в ЕТЛ, но некоторые вещи во воьюшках для конечных потребителей. Для куба например. В БД храним честно (как есть), а для куба подменяем/форматируем, по разным причинам. Эксель (определенных версий), например, иногда ведет себя неадекватно, когда установлен фильтр на элементах, в названиях которых есть кавычки.
4. Из скольких баз данных состоит ваше хранилище? всё никак не могу определиться с этим вопросом. типа, одна база для стейджинга, 10 штук - витрины, ещё одна для хранения пришедших данных в сыром виде, или не нужна она? или вообще всё в одной хранить? тогда сколько? у меня ж их там штук 100 будет, не меньше, т. к. просят самые разные области бизнеса анализировать, но какие-то общие измерения (сотрудники, города...) там универсальны для всех
В одной базе, но в разных схемах. Разделяем по тематикам: tgt, stg, какие-то специфические вещи, настройки, выгрузки из AD и прочие вспомогательные вещи, не имеющие отношения к основной деятельности предприятия.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40047948
Igor.Ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
+1 к п.2 от TJ001


Если 1С то синхронизируйтесь с ней через регистрацию изменений, если Вас 1С-ники пустят к заднему проходу ))). Грузите 1 в 1, складывая GUID отдельно для замены на int.
Если Microsoft то смело делайте на рус. название полей и таблиц = названию в конфе 1С. SSAS или Power BI это проглотит аж бегом, проблем никаких не будет. Поддерживать будет проще.

Если кто то из пользователей 1С напишет что в OLAP данные не соответсвуют 1С то Ваши стэйдж архивы и прочую мутотень которую кто то там архивирует месяцами никто рассматривать не будет, а просто порекомендуют выровнять данные. Главное расталковать пользователям что между OLTP OLAP есть лаг.

Если у Вас транснациональная компания с кучей разнородных систем и пользователи SSAS будут из разных стран тогда путь описанный выше не для Вас.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40048050
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor.Ko
Если кто то из пользователей 1С напишет что в OLAP данные не соответсвуют 1С то Ваши стэйдж архивы и прочую мутотень которую кто то там архивирует месяцами никто рассматривать не будет, а просто порекомендуют выровнять данные.
Я, конечно, утрирую... самую малость.

1. Просто выровняйте данные.
2. В источнике сделаны доработки - см. п.1
3. В данных источника обнаружена неконсистентность или иная ошибка - см. п.1
4. Если выравнивание данных не помогло - см. п.1
5. Если после выравнивания ранее правильные данные стали неправильными - см. п.1
6. Упал сервер - см. п.1
7. Упала сеть - см. п.1
8. Упал пользователь (со стула) - см. п.1
9. Упала гривна - см. п.1
И т.д.
...
Рейтинг: 0 / 0
4 очень общих вопроса о проектировании DWH, инет молчит
    #40048106
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
грешно смеяться над 1С
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 4 очень общих вопроса о проектировании DWH, инет молчит
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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