Большое спасибо! А то я всё никак не мог найти внятное-простое-доступное объяснение, зачем нужен Data Vault. Как его строить - есть информация, а вот в каких случаях использовать и в чём преимущество перед звездой/снежинкой - нету :)
Как не было? :) ... Я же упоминал, что ключ хаба может формироваться с учетом исходной системы. Думаю, в следующей лекции я постараюсь описать этот кейс - половина данных о хабе из одной системы, а половина из другой, и как сопоставлять ключи. Если вкратце, как минимум, тут понадобиться более мелко дробить сателиты... Это будет одной из проблем Data Vault, которая впоследствии породила Anchor Modeling.
Подскажите пжлст, как будет устроена запись о клиенте в Хабе Клиенты, если данные о клиенте есть в разных системах - допустим CRM и ДБО ? При этом, ИД 1 системы не равен ИД 2 системы. В Хабе будет только 1 запись, или допускаются 2 записи из разных источников для 1-го физического клиента? PS Отсылка к 16-17 мин видео
К вопросу Hadoop + DV. В Hadoop (Hive, Spark) ключевой момент, как вы партицируете данные. На мой взгляд BIgData не может обойтись без партицирования по датам. Если sql-запрос затрагивает только ограниченное количество партиций, то join в Hive и тем более в Spark уже не проблема. Если у вас появляется очень большая (терабайты) таблица, которую нельзя эффективно партицировать по датам, если эта таблица в sql-запросах читается целиком, то вот тут проблема. Причем это проблема как для классической РСУБД с поддержкой join на индексах, так и тем более для NoSQL без поддержки полноценных индексов (в формате дерева поиска). Здесь уже надо погружаться в специфику задачи и как-то нетривиально оптимизировать хранение данных.
Схема на 22:25 Если мы просто от схемы звезды переместим в сателлиты атрибуты сущности, то при добавлении нового хаба мы добавляем новый столбец в ссылку. Я правильно понял?
Это очень хороший вопрос :) Потому что человечество, научное сообщество, конечно же, придумало много чего еще. Но в публичное пространство попадает только то, про что были сделаны усилия по популяризации (видео, книги, выступления). Например, про Anchor Modeling вы знаете из-за успеха в Авито. А иначе методология могла бы остаться в списке таких методологий как: Hyperagility Focal Point Ensemble Modeling
Был вопрос про удаление данных в Data Vault. У меня вопрос к решению. Как определить, когда удаление сущности реализовывать через атрибут, а когда через атрибуты from_date, to_date сателита ?
Через даты from_date/to_date реализуется кейс "значение/линк заменено отсутствием". Опять же, сейчас часто используют однодатную историчность, только from_date, тогда запись нельзя закрыть апдейтом to_date. про это будет в следующем видео. Атрибут удаления нужен для пометки записей, которые пришли по ошибке, т.е. их не должно было быть, но на их основе уже были приняты какие-то решения. В общем, редкий случай, в большинстве случаев такое вообне не нужно.
Этот момент прозвучал в начале - финалом развития Data Vault 1.0 стало понимание, что подлинно неизменным является только бизнес-ключ, идентификатор сущности, лежащей в хабе. Т.к. изменение бизнес ключа = другая сущность, автоматическая защита от изменений... PS... И продолжая анонс второй серии, про Data Vault 2.0 и Anchor Modeling - одной из причин рождения новых методологий было понимание того, что, на самом деле, меняется даже бизнес-ключ.... Но в Data Vault мы такой мысли не допускаем :)
@@Niarlototep , ха-ха, прикольно. Про business key я себе отметил, смотря вебинар. Мне стало интересно про другие атрибуты. К примеру, load_sys. Что ж ) буду ждать вашего следующего вебинара про Data Vault 2.
@@vadimosipov2147 , load_sys это не атрибут, это техническое поле, для отладки. Маркер первой системы, откуда прилетело значение хаба. ПРо технические поля я не рассказывал из-за временных ограничений вебинара.
Есть пара, тройка вопросов - (1) - что является ключом распределения для таблиц DV в MMP архитектуры? (2) каждый сателлит по сути является медленно меняющейся размерностью 2-го типа, если у вас сателлит в несколько терабайт, то что бы найти строку изменения для сравнения по HDIFF нужно сканировать всю таблицу каждый раз на загрузке, как это обойти? (3) ничего не сказано о саталлитах линков, меняются не только данные но и отношения между сущностями, сколько должно быть ключей драйверов в линке как выбирать поле для ключа драйвера?
Николай, спасибо за доклад, В конце затронули тему дат, хотелось бы для себя закрепить, как лучше сделать, если дат много: дата захода клиента на сайт, дата приезда клиента, дата оплаты, дата отгрузки, дата производства, дата резерва, дата возврата и тд… Каждую дату вещать сателлитом на подходящий хаб??
Каждая дата - это атрибут типа "дата", полный аналог атрибутов типа "текст" или "число". Их можно и нужно добавить в подходящие сателиты соответствующих хабов.
если про ETL-поддержку, то не сильно что-то меняется, процесс ETL не меняется, плюс код загрузки однообразен. Бизнес-поддержка увеличивается пропорционально при любой методологии.
Смотрю я на картинку с хабом "чеки" и вижу чистую 3НФ. Особенно если отдельным хабом добавлять строки чека. Все точно также - есть сущности, есть аттбрибуты, есть связи. Так в чем же все таки отличие ? В том что Дата Волт не обязует к строгости и позволяет строить смешанные линки ? Сложилось впечатление, что 3НФ - предельная форма Дата Волт
Это и есть 3НФ :) ... Я про это упоминал в видео. Data Vault - это способ быстро и понятно объяснить обычному человека, как проектировать модель данных в 3НФ. Алгоритм.
А есть способ для быстрого нахождения всех сателитов клиента ? Есть гипотеза, что это можно делать через "S_" + + "_" + . И все же хочется узнать мнение специалистов.
"S_" + + "_" + - это моя стратегия нейминга, линстэдт эту тему не уточняет, насколько я знаю. В принципе, в Data Vault полезно делать документацию со списком атрибутов каждого сателита.
А есть ли полу-практический пример. вот чем мне нравилаь книжка Кимбалал там была куча примеров (пусть упрощенных) ну воти и вопрос : допустим кефир Кефирный : в 0.5л и, 0.2 пакетах и в бутылках - я так понимаю это 3 разных товара но с ОДНИМ каким то общим атрибутом (Кефирный ) по которому и можно подбить все итоги по нему в независимости от тары ? зы Не уверен что такие примеры есть (копирайт )- но вдруг
Может быть на сайте Линстедта, но, как показывает практика, лучше консультировать индивидуально, чем собирать примеры в книжку... никто больше не читает толстых книжек.
По сути примера - я не понял, в чем вопрос? ... Да, это 3 разных товара, у них разные штрихкоды. Но они в одной товарной группе, в кисломолочке, и у них названия похожие. и производитель один.
@@Niarlototep ага понял собирать инфу можно по другим атрибутам (названия похожие - типа name like '' , а по произвдоителю == ) да хотелось бы послушать такую же лекцию по Data Vault 2.0 and Anchor.
Лучшая лекция по Data Vault, что встретилась на просторах интернета.
Очень доступно и понятно объясняется материал, плюс грамотно поставлена речь у спикера. Спасибо!
Переношу все видео в Rutube, тоже канал Data Learn.
Да, будет интересно послушать про Data Vault 2.0 and Anchor.
Лекция супер, огромное спасибо! Побольше бы таких материалов
Огромное спасибо, лекция ну очень дельная!
Николай классно объясняет
Большое спасибо!
А то я всё никак не мог найти внятное-простое-доступное объяснение, зачем нужен Data Vault. Как его строить - есть информация, а вот в каких случаях использовать и в чём преимущество перед звездой/снежинкой - нету :)
Обращайтесь :) ... Любые вопросы за разумные деньги.
Супер объяснение, спасибо большое!
Жалко что не было сказано о ситуации, когда части данные о сущности приходят из нескольких источников.
Как не было? :) ... Я же упоминал, что ключ хаба может формироваться с учетом исходной системы. Думаю, в следующей лекции я постараюсь описать этот кейс - половина данных о хабе из одной системы, а половина из другой, и как сопоставлять ключи.
Если вкратце, как минимум, тут понадобиться более мелко дробить сателиты...
Это будет одной из проблем Data Vault, которая впоследствии породила Anchor Modeling.
Подскажите пжлст, как будет устроена запись о клиенте в Хабе Клиенты, если данные о клиенте есть в разных системах - допустим CRM и ДБО ? При этом, ИД 1 системы не равен ИД 2 системы. В Хабе будет только 1 запись, или допускаются 2 записи из разных источников для 1-го физического клиента? PS Отсылка к 16-17 мин видео
С нетерпением ждём продолжения.
Очень круто, большое спасибо!
оличные лекции у Голова. спасибо
спасибо большое)
Подача и примеры отличные. Подскажите, пожалуйста, когда реально нужны bridge или это больше полу-декоративные вещи, как и pit?
Крутое объяснение, спасибо!
К вопросу Hadoop + DV. В Hadoop (Hive, Spark) ключевой момент, как вы партицируете данные. На мой взгляд BIgData не может обойтись без партицирования по датам. Если sql-запрос затрагивает только ограниченное количество партиций, то join в Hive и тем более в Spark уже не проблема.
Если у вас появляется очень большая (терабайты) таблица, которую нельзя эффективно партицировать по датам, если эта таблица в sql-запросах читается целиком, то вот тут проблема. Причем это проблема как для классической РСУБД с поддержкой join на индексах, так и тем более для NoSQL без поддержки полноценных индексов (в формате дерева поиска). Здесь уже надо погружаться в специфику задачи и как-то нетривиально оптимизировать хранение данных.
Спасибо!
Молодец и спасибо! Чувствуется что ты разбираешься в предмете!
Кстати, sap bw это использовала еще с начала 2000х.
+
очень интересно, спасибо!
Прикрепляйте ссылки в первом комментарии или описании, пожалуйста. А так -- всё очень круто, спасибо большое
Схема на 22:25
Если мы просто от схемы звезды переместим в сателлиты атрибуты сущности, то при добавлении нового хаба мы добавляем новый столбец в ссылку.
Я правильно понял?
А есть ли что-то еще кроме 3NF, Star/Snowflake, Data Vault и Anchor modeling? Или это все, что человечество смогло придумать для моделирования данных?
Это очень хороший вопрос :)
Потому что человечество, научное сообщество, конечно же, придумало много чего еще. Но в публичное пространство попадает только то, про что были сделаны усилия по популяризации (видео, книги, выступления).
Например, про Anchor Modeling вы знаете из-за успеха в Авито.
А иначе методология могла бы остаться в списке таких методологий как:
Hyperagility
Focal Point
Ensemble Modeling
Не знаю когда это придумали, но в Парусе8 это было реализовано ещё в 2007 году и я думаю раньше. Любой бизнес ложился на архитектуру базы
Был вопрос про удаление данных в Data Vault. У меня вопрос к решению.
Как определить, когда удаление сущности реализовывать через атрибут, а когда через атрибуты from_date, to_date сателита ?
Через даты from_date/to_date реализуется кейс "значение/линк заменено отсутствием". Опять же, сейчас часто используют однодатную историчность, только from_date, тогда запись нельзя закрыть апдейтом to_date. про это будет в следующем видео.
Атрибут удаления нужен для пометки записей, которые пришли по ошибке, т.е. их не должно было быть, но на их основе уже были приняты какие-то решения. В общем, редкий случай, в большинстве случаев такое вообне не нужно.
Любопытно было бы услышать о секционировании в DV
Если такие атрибуты пол, дата рождения могут менять, то на что можно опираться при выделении атрибутов на изменяемые и неизменяемые ?
Этот момент прозвучал в начале - финалом развития Data Vault 1.0 стало понимание, что подлинно неизменным является только бизнес-ключ, идентификатор сущности, лежащей в хабе. Т.к. изменение бизнес ключа = другая сущность, автоматическая защита от изменений...
PS... И продолжая анонс второй серии, про Data Vault 2.0 и Anchor Modeling - одной из причин рождения новых методологий было понимание того, что, на самом деле, меняется даже бизнес-ключ.... Но в Data Vault мы такой мысли не допускаем :)
@@Niarlototep , ха-ха, прикольно. Про business key я себе отметил, смотря вебинар. Мне стало интересно про другие атрибуты. К примеру, load_sys.
Что ж ) буду ждать вашего следующего вебинара про Data Vault 2.
@@vadimosipov2147 , load_sys это не атрибут, это техническое поле, для отладки. Маркер первой системы, откуда прилетело значение хаба. ПРо технические поля я не рассказывал из-за временных ограничений вебинара.
Есть пара, тройка вопросов - (1) - что является ключом распределения для таблиц DV в MMP архитектуры? (2) каждый сателлит по сути является медленно меняющейся размерностью 2-го типа, если у вас сателлит в несколько терабайт, то что бы найти строку изменения для сравнения по HDIFF нужно сканировать всю таблицу каждый раз на загрузке, как это обойти? (3) ничего не сказано о саталлитах линков, меняются не только данные но и отношения между сущностями, сколько должно быть ключей драйверов в линке как выбирать поле для ключа драйвера?
Николай, спасибо за доклад,
В конце затронули тему дат, хотелось бы для себя закрепить, как лучше сделать, если дат много: дата захода клиента на сайт, дата приезда клиента, дата оплаты, дата отгрузки, дата производства, дата резерва, дата возврата и тд…
Каждую дату вещать сателлитом на подходящий хаб??
Каждая дата - это атрибут типа "дата", полный аналог атрибутов типа "текст" или "число". Их можно и нужно добавить в подходящие сателиты соответствующих хабов.
Как сильно увеличение числа хабов, линков и сателитов может приводить к удорожанию поддержки ?
если про ETL-поддержку, то не сильно что-то меняется, процесс ETL не меняется, плюс код загрузки однообразен.
Бизнес-поддержка увеличивается пропорционально при любой методологии.
Смотрю я на картинку с хабом "чеки" и вижу чистую 3НФ. Особенно если отдельным хабом добавлять строки чека. Все точно также - есть сущности, есть аттбрибуты, есть связи.
Так в чем же все таки отличие ? В том что Дата Волт не обязует к строгости и позволяет строить смешанные линки ?
Сложилось впечатление, что 3НФ - предельная форма Дата Волт
Это и есть 3НФ :) ... Я про это упоминал в видео. Data Vault - это способ быстро и понятно объяснить обычному человека, как проектировать модель данных в 3НФ. Алгоритм.
Смотрю и удивляюсь как это хорошо ложится на DDD
огромное спасибо!) лучше описание дата вольт)
А есть способ для быстрого нахождения всех сателитов клиента ?
Есть гипотеза, что это можно делать через "S_" + + "_" + . И все же хочется узнать мнение специалистов.
"S_" + + "_" + - это моя стратегия нейминга, линстэдт эту тему не уточняет, насколько я знаю. В принципе, в Data Vault полезно делать документацию со списком атрибутов каждого сателита.
@@Niarlototep , спасибо!
А есть ли полу-практический пример. вот чем мне нравилаь книжка Кимбалал там была куча примеров (пусть упрощенных)
ну воти и вопрос : допустим кефир Кефирный : в 0.5л и, 0.2 пакетах и в бутылках - я так понимаю это 3 разных товара
но с ОДНИМ каким то общим атрибутом (Кефирный ) по которому и можно подбить все итоги по нему в независимости от тары ?
зы Не уверен что такие примеры есть (копирайт )- но вдруг
Может быть на сайте Линстедта, но, как показывает практика, лучше консультировать индивидуально, чем собирать примеры в книжку... никто больше не читает толстых книжек.
По сути примера - я не понял, в чем вопрос? ... Да, это 3 разных товара, у них разные штрихкоды. Но они в одной товарной группе, в кисломолочке, и у них названия похожие. и производитель один.
@@Niarlototep ага понял собирать инфу можно по другим атрибутам (названия похожие - типа name like '' , а по произвдоителю == )
да хотелось бы послушать такую же лекцию по Data Vault 2.0 and Anchor.
@@fedorgulin311 пора снимать, факт
Если чека нет, например на старте продаж- то нет связи?
Конечно. Товар есть, его свойства есть. Продажного линка нет, но, возможно, есть линк на склад (поставка на склад).
Есть ли отличия в запросах Data volt?
В каких запросах? :)
Конечно) Теперь запросы в гугле нужно изменить с "Star scheme for dummies" на "Data volt for dummies" ))
@@denisporplenko7214 , data Vault
do you have any presentation on English ?
Почему всегда говорят про хабы, линки, сателлиты, но забывают про рефы?!
не понял по последнему комментарию по типам и отношениям
Есть кто понял и может прокомментировать.
Вот, кстати, интересный доклад про то как и зачем подниать уровень нормировки th-cam.com/video/QY0kpIK2tCY/w-d-xo.html
ага, отличная тема, спасибо :) ... а то у моих знакомых создается ощущение, что за Anchor Modeling только я топлю.
Спасибо!