Skip to main content

Что такое etlCraft

etlCraft — это методология по организации хранилища данных (хранилище — это просто набор таблиц в базе данных, в котором происходит и их обработка) и инструмент для реализации этой методологии. etlCraft нацелен на инженеров данных. Цель инструмента — получить из исходных данных финальную таблицу, которую можно анализировать и визуализировать.

В хранилище данных поступают данные из разных систем. В области маркетинга — это рекламные площадки (Яндекс.Директ, ВК), системы аналитики (Яндекс Метрика, Гугл Аналитика), CRM-системы, ERP и т.д. В каждой системе своя логика хранения данных. Чтобы построить сквозную отчетность, нужно все данные привести к одному формату, сделать, чтобы колонки назывались везде единообразно, объединить данные из разных источников, относящиеся к одним и тем же показателям и разбивкам, рассчитать нужные для отчетности показатели.

То есть после того, как данные из систем загрузили в хранилище, нужно проделать несколько десятков операций, прежде чем эти данные можно будет использовать. Эти операции обычно соответствуют SQL-запросам, которые перемещают из одной таблицы в другую с применением разных преобразований. Без заранее составленного плана инженер данных может легко прийти к хаотичному набору преобразований, который сложно поддерживать и изменять. Методология etlCraft как раз и дает такой план.

Методология

Методология etlCraft основывается на трех принципах:

  • для хранилища составляется модель данных. Это файл в формате YAML (то есть предназначенный и для редактирования человеком, и для простого парсинга машиной). В файле указывается, какие существуют сущности в предметной области и связи между ними, как эти сущности соотносятся с разными таблицами в хранилище. Такая модель позволяет частично автоматизировать рутинные задачи, связанные с приведением данных к одному виду и их объединением.

  • все таблицы разбиваются на слои. Данные переходят из слоя в слой. Каждый слой отвечает за какую-то отдельную задачу,

  • Vault — упрощенный Data Vault. В 2000 году была разработана методика Data Vault. Она предназначена для того, чтобы организовать хранение данных, то есть определить, как должны называться таблицы и колонки, что в них должно содержаться, чтобы это было унифицированно. Методология была заточена на эффективную работу с “традиционными” СУБД типа Microsoft SQL Server. Сейчас для аналитического хранилища чаще выбирают “колоночные” СУБД, вроде BigQuery, Greenplum и ClickHouse. Мы вдохновились Data Vault и создали свою методологию Vault, которая проще для понимания и ориентирована на колоночные базы данных.

Инструмент

Для практической реализации методологии etlCraft предлагает набор шаблонов в dbt. dbt - это инструмент обработки данных, который позволяет производить трансформацию данных с помощью SQL-запросов и шаблонов на языке Jinja. В etlCraft есть шаблоны типичных запросов, необходимых для следования методологии. Это упрощает работу инженера данных, так как ему остается только выбрать нужные шаблоны и подставить значения в них, работа по ручному написанию запросов и кода сводится к минимуму.