BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по dbt (Data Build Tool) » dbt Core, Snowflake и GitHub Actions: пет-проект для дата-инженеров

dbt Core, Snowflake и GitHub Actions: пет-проект для дата-инженеров

Пет-проект для дата-инженеров: популярные инструменты современного стека данных - dbt Core, Snowflake, Fivetran и GitHub Actions.

 

Представляю Вашему вниманию достаточно простой и быстрый пет-проект для дата-инженеров, которые хотят поближе познакомиться с такими инструментами современного стека данных, как dbt Core, Snowflake, Fivetran и GitHub Actions. Этот наглядный пример позволит Вам разработать полный жизненный цикл данных, начиная с извлечения данных из Google Calendar и заканчивая их представлением в дашборде Snowflake. Кроме того, я поделюсь с Вами своими соображениями и рекомендациями по данному вопросу.  Смотрите репозиторий Github

 

Технический обзор

Архитектура проекта представлена следующим образом:

Google Календарь-> Fivetran -> Snowflake -> dbt -> дашборд Snowflake при участии GitHub Actions, организующей развертывание.

 

Давайте рассмотрим наш проект в соответствии с этапами жизненного цикла данных, указанных в книге Джо Рейса "Основы инженерии данных" (Fundamentals of Data engineering):

 

Генерирование данных — Google Календарь, Fivetran

Если Вы пользуетесь Google Календарем, то, скорее всего, накопили в нем огромное количество данных. Теперь Вы можете легко извлечь их, воспользовавшись "платформами перемещения данных", такими как Fivetran. Данный инструмент полностью автоматизирует процесс ELT (Extract, Load, Transform), интегрируя Ваши данные из исходной системы Google Календарь в хранилище данных Snowflake.

На данный момент Fivetran предлагает 14-дневную бесплатную пробную версию - ссылка. Процесс регистрации прост до невозможности.

 

Хранение данных — Snowflake

В качестве инструмента для хранения данных выберем Snowflake, облачное хранилище данных. Объем данных, с которыми мы будем иметь дело, сравнительно невелик, поэтому мы не будем задействовать расширенные возможностями Snowflake, обойдемся базовыми. Особое внимание уделим контролю доступа (он будет использоваться для доступа к dbt). Вам необходимо создать пробный аккаунт, который предоставляет возможность  бесплатной работы с продуктом в течение  30 дней.

 

Поглощение данных — Fivetran

Поглощение данных может быть организовано как с помощью Fivetran, так и с помощью Snowflake благодаря функции Partner Connect. Выберите предпочтительный метод и настройте коннектор Google Календаря. После синхронизации Вы получите доступ к своим данным. Посетить веб-страницу коннектора и просмотреть схему можно здесь.

 

Специально для синхронизации с Fivetran будет создана новая БД, а также хранилище для выполнения рабочих нагрузок SQL. В целом, для разных рабочих нагрузок (ad-hoc, синхронизация, BI-аналитика) или разных сред (dev, prod) настоятельно рекомендую  использовать разные хранилища данных.

Для соединения с Fivetran используйте функцию Partner Connect

 

Настройте коннектор Google Календаря в Fivetran

 

Синхронизированные данные отобразятся в Snowflake

Преобразование данных — dbt Core

Как только данные занесены в Snowflake (и по умолчанию автоматически синхронизируются каждые 6 часов), мы переходим к этапу трансформации с помощью dbt Core. dbt (инструмент для создания данных) значительно облегчает модулизацию SQL-запросов, позволяя повторно использовать и контролировать версии рабочих процессов SQL. Существует два способа получить доступ к dbt: dbt Cloud и dbt Core. dbt Cloud - это платная облачная версия сервиса, а dbt Core - это python-пакет, предоставляющий весь функционал продукта, который Вы можете использовать абсолютно бесплатно.

Установите dbt Core, инициализируйте проект с помощью команды "dbt init" в CLI и настройте подключение к Snowflake. Смотрите пример моего файла - profiles.yml file.

 

Для того, чтобы подключиться к Snowflake, нам потребуется выполнить несколько DCL команд (Data Control Language),  найти их можно здесь. Следуя принципу наименьших привилегий, создадим отдельного пользователя для dbt и предоставим ему доступ только к исходной БД (куда Fivetran синхронизирует данные) и базам данных разработки и производства (куда мы будем сливать преобразованные данные).

 

Следуя лучшим практикам в области структурирования данных, создадим три папки, соответствующие staging, intermediate и marts уровням преобразования данных. Вы можете экспериментировать со своими собственными моделями или скопировать мои примеры из Google Календаря.

В репозитории Вы найдете файл "sources.yml", в котором перечислены все таблицы в схеме Google Календаря. Всего создано 3 модели staging (event.sql, attendee.sql, recurrence.sql), 1 модель преобразования (utc_event.sql) и 1 модель mart (event_attendee_summary.sql).

Важными особенностями dbt являются Jinja и  макросы,  которые можно добавить в SQL, повысив тем самым эффективность обработки запросов.

Выбор различных типов материализации моделей

 

Для обеспечения качества данных обозначьте требования к  данным с помощью общих или единичных тестов в dbt. Некоторые правила качества данных размещены в файле "source.yml", а также в папке "/tests". Во время выполнения команды "dbt build" проверка качества данных будет выполняться вместе со сборкой моделей, чтобы предотвратить повреждение данных.

 

Для захвата данных об изменениях и медленно меняющихся измерений второго типа воспользуйтесь функцией Snapshot в dbt. В нашем  примере мы фиксируем изменения в таблице "Повторяемость".

 

Потратьте время на создание документации dbt с помощью команды "dbt docs generate". Вы увидите граф data lineage и метаданные, которые автоматически создаются из Вашего проекта.

Хорошая документация обеспечивает лучшую обнаруживаемость данных, а также более эффективное управление данными.

 

​Предоставление данных — Snowflake Dashboard

И, наконец, визуализируйте преобразованные данные с помощью Snowflake Dashboards. Создайте свой дашборд и поэкспериментируйте с графиками на основе Ваших SQL -запросов.

 

Развертывание — GitHub Actions

Хотя dbt Cloud предлагает достаточно простой вариант развертывания, мы будем использовать GitHub Actions. Вам нужно создать файл .yml, который будет запускаться каждый раз, когда в репозиторий GitHub dbt будут загружаться изменения. В моем примере Вы можете увидеть двухэтапный процесс развертывания: сборка dbt для среды разработки и, в случае успеха, сборка dbt для производственной среды.

Примечание: замените секреты, такие как учетная запись и пароль Snowflake, на секреты GitHub. Для этого на веб-странице Вашего репозитория перейдите в раздел Settings -> Secrets and Variables -> Actions.

Каждый раз при обновлении ветки "master" Вы сможете увидеть рабочий процесс на вкладке Actions:

В данной статье мы всего лишь одним глазком взглянули на различные технологии современного стека данных. Это отличная отправная точка для более глубокого изучения вопроса. Благодарю за внимание и желаю успехов в собственных проектах!

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Dbt или не dbt, вот в чем вопрос
Следующая статья →
Зачем инструмент dbt нужен аналитику
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ЭГИС - международная фармацевтическая компания, основанная в 1907 году в Венгрии. Компания имеет представительства более чем в 60 странах мира, в том числе в России. Компания ЭГИС является одним из ведущих производителей дженерических лекарственных средств в Центральной и Восточной Европе. Её деятельность охватывает все звенья производственно-сбытовой фармацевтической цепочки.

  • КАМИ – компания-лидер по поставкам тяжёлых станков в России, занимающаяся продажей и обслуживанием оборудования для обработки металла и дерева, изготовления мебели и не только. На сегодняшний день в компании работают более 1300 человек, запущено 10 обучающих центров, в продаже более 7000 единиц техники. 

  • ПАО АНК «Башнефть» — российская вертикально-интегрированная нефтяная компания, с 2016 года входит в ПАО НК «Роснефть». Главный офис расположен в городе Уфе (Башкортостан). Добыча углеводородов – более 21 млн тонн нефти в год. Объем переработки – более 18 млн тонн нефти в год. Число сотрудников – более 33 тыс. человек.

  • Novikov group – первый российский ресторанный холдинг, основанный в 1991 году. Это команда профессионалов под управлением Аркадия Новикова, реализующая широкий спектр услуг в сфере гостеприимства: от проведения event-мероприятия до управления рестораном, от установления стандартов сервиса до контроля качества готовой продукции, от построения бизнес-плана проекта до реализации франшизы.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.