Сегодня мы рады объявить о непрерывной интеграции для dbt. Мы считаем, что это радикальное упрощение процесса машинного обучения (ML) для пользователей dbt и представляет собой четко определенный путь, который устраняет разрыв между аналитикой данных и наукой о данных. Читайте дальше, чтобы узнать больше об этой интеграции и о том, как начать работу.

Что такое Непрерывный?

Continual — это автоматизированная операционная платформа искусственного интеллекта, созданная для современного стека данных. Он предлагает оптимизированный процесс развертывания вариантов использования ИИ в рабочей среде для пользователей облачных хранилищ данных. Continual легко доступен для всех пользователей данных, позволяет быстро создавать прототипы и версии для машинного обучения, а также обеспечивает простой производственный рабочий процесс, соответствующий передовым методам разработки программного обеспечения. Независимо от того, являетесь ли вы экспертом по машинному обучению или новичком в области ИИ, Continual позволяет вам быстро итерировать свои проблемы и операционализировать свои результаты, не создавая сложных конвейеров данных, не теряясь в записных книжках и не становясь экспертом по Kubernetes.

Современный стек данных быстро демократизирует данные и аналитику, но масштабное развертывание ИИ в бизнес-операциях, продуктах или услугах остается проблемой для большинства компаний. Continual дает свежий взгляд на эту проблему. Благодаря декларативному подходу к операционному искусственному интеллекту и сквозной автоматизации Continual позволяет современным группам по обработке данных и аналитике создавать постоянно совершенствуемые модели машинного обучения непосредственно в своем облачном хранилище данных без сложного проектирования.

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

Что такое дбт?

С сайта ДБТ:

dbt — это рабочий процесс преобразования, который позволяет командам быстро и совместно развертывать аналитический код в соответствии с передовыми методами разработки программного обеспечения, такими как модульность, переносимость, CI/CD и документация. Теперь любой, кто знает SQL, может создавать конвейеры данных производственного уровня.

dbt стал стержнем современного стека данных, и легко понять, почему. Проще говоря:

  1. Он устраняет барьеры в процессах анализа данных. Это позволяет всем работникам данных говорить на одном языке и использовать рабочий процесс, с которым они все согласны. Это просто, но эффективно, и независимо от того, являетесь ли вы аналитиком данных или инженером-программистом, каждому найдется что-то, что может понравиться и с чем можно найти достаточно точек соприкосновения для счастливого сотрудничества.
  2. Он создан для облака. Независимо от того, используете ли вы ядро ​​dbt или более элегантное облачное хранилище dbt, dbt легко внедрить в свой облачный рабочий процесс, и это не налагает на пользователей никакой нагрузки по обслуживанию.
  3. Он прост в эксплуатации. В той части мира данных, где до его появления катастрофически не хватало операционных возможностей, dbt появился как глоток свежего воздуха и имеет свое собственное мнение о том, как лучше всего реализовать ваши конвейеры данных. Первоначально инструмент был представлен как «заставляющий аналитиков данных чувствовать себя инженерами-программистами», и мы думаем, что они выполнили это обещание.

Почему непрерывная интеграция для dbt?

Область науки о данных все еще относительно нова, но она быстро и непрерывно растет, в значительной степени независимо от толпы аналитиков. Это создает несколько проблем в организации данных компании:

  1. Аналитики данных и специалисты по данным говорят на разных языках и используют разные инструменты. Это создает ненужную сложность в рабочих процессах данных и создает барьеры между различными частями организации, которые препятствуют текучести процессов и препятствуют совместной работе.
  2. Теперь эти команды, вероятно, тратят нетривиальное количество времени на дублирование одной и той же работы. Даже если обе команды хорошо справляются с работой внутри своей команды, барьеры на пути к совместной работе означают, что идеи неизбежно теряются, и люди неизбежно заново изобретают велосипед вместо того, чтобы работать вместе как единая команда.
  3. Внедрить ML сложно. Вместо того, чтобы следовать передовым методам, изложенным группой аналитиков, команда специалистов по данным, скорее всего, возьмет на себя задачу поддержки сложных систем конвейеров данных, чтобы попытаться повысить производительность своей работы. Это хрупкий процесс, который накапливает значительную часть технического долга и, как правило, противоречит подходу команды аналитиков.

В беседах с организациями, где команды специалистов по данным действительно используют dbt, мы все же заметили, что часто возникает неудобный переход между рабочими процессами dbt и рабочими процессами ML. Это создает ненужные трения, которые, по нашему мнению, можно решить с помощью правильного инструмента. Непрерывная интеграция для dbt устраняет разрыв между группами аналитики и машинного обучения для данных и устанавливает общий рабочий процесс для разных ролей. Это не только обеспечивает тесную интеграцию между инженерией/аналитикой данных и рабочими процессами машинного обучения, но также означает, что пользователи всех типов могут начать использовать возможности машинного обучения в своей работе.

Кроме того, Continual разработан совместно с современным стеком данных и соответствует основным принципам dbt. Мы считаем, что у нас синергия в нескольких ключевых областях:

  1. Оба инструмента являются декларативными. Декларативный характер проекта dbt является одной из ключевых причин его успеха. Точно так же Continual построен на декларативной основе, и, что еще лучше, пользователи dbt могут напрямую интегрироваться с Continual, просто добавив несколько метатегов в свои существующие проекты dbt. Это не может быть проще. (Подробности ниже!)
  2. Оба инструмента рабочие. Сочетание декларативного интерфейса с удобным интерфейсом командной строки означает, что пользователи могут управлять всем своим рабочим процессом с помощью нескольких быстрых команд. Это упрощает интеграцию нижестоящих потоков в конвейеры CI/CD и тому подобное. И да, эти утверждения верны как для dbt, так и для Continual.
  3. Оба инструмента следуют передовым методам разработки программного обеспечения. Пользователи dbt часто говорят мне, что удобный для GitOps рабочий процесс — одна из ключевых причин, по которой они используют этот инструмент. Будь то управление версиями ваших преобразований, простое переключение профилей или простота использования интеграции dbt core или dbt Cloud в существующий конвейер CI/CD: вам есть за что любить (в том числе для тех, кто соответствует требованиям). Точно так же Continual имеет точно такие же функции и даже может использовать ваши профили dbt для создания изолированных сред в Continual.

Благодаря dbt и Continual теперь любой, кто знает SQL, может создавать конвейеры машинного обучения производственного уровня!

«Команда dbt была основана на идее, что разблокировка для групп данных — это совместный рабочий процесс, который вовлекает больше людей в процесс создания знаний. Continual привносит ту же точку зрения в машинное обучение, добавляя новые возможности в набор инструментов инженеров-аналитиков. Мы рады сотрудничать с Continual, чтобы помочь внедрить операционный ИИ в сообщество dbt».

— Нихил Котари, руководитель отдела технологического партнерства в dbt Labs

Как это работает?

Давайте перейдем к гайкам и болтам интеграции. Если вы новичок в Continual, вам нужно будет выполнить несколько простых шагов, чтобы начать:

  1. Зарегистрируйте аккаунт на https://cloud.continual.ai
  2. Создайте свой первый проект.
  3. Установите Постоянный клиент и авторизуйтесь в Постоянном.

Теперь мы готовы использовать Continual с dbt! Использовать Continual в проекте dbt очень просто. Просто выполните следующие действия:

  1. Аннотируйте свой проект dbt с помощью Continual configuration
  2. Выполните dbt run [ВАРИАНТЫ], чтобы создать свой проект dbt.
  3. Выполните непрерывный запуск [ВАРИАНТЫ], чтобы построить свой непрерывный проект.

Конфигурация для непрерывной интеграции должна быть определена в мета файлах конфигурации в dbt. метаполя могут быть определены в трех местах:

  1. Блок модели в файле dbt_project.yml.
  2. YML-файл схемы модели в каталоге /models (например, schema.yml).
  3. Как конфигурация непосредственно в вашей модели данных dbt.

Например, ниже приведен пример включения вашей конфигурации в файл schema.yml:

models:
  - name: customer_churn
    description: “historic customer churn information”
    meta:
      continual:
        type: “Model”
        index: “ID”
        target: “churn”

Однако мы могли бы аналогичным образом определить это в файле customer_churn.sql:

{{ config(
  meta = {
    continual: {
      'type': 'Model',
      'index': 'ID',
      'target': 'churn',
    }
  })
}}
SELECT …

В приведенном выше примере мы сообщаем Continual, что таблица, созданная dbt, представляет собой предиктивную модель. В этой модели мы будем использовать столбец Churn в качестве цели, а столбец ID в качестве индекса для модели. Когда эта информация будет передана в Continual, он сможет извлекать данные из хранилища данных, проводить эксперименты и выбирать выигрышную модель машинного обучения, а также генерировать прогнозы обратно в хранилище данных. Пользователи могут дополнительно указать более сложные конфигурации в метаполях, которые будут делать все, от управления частотой обновления моделей и прогнозов до работы механизма AutoML. Подробности смотрите в нашей документации.

Пользователи могут выполнять Continual непосредственно поверх настроенного проекта dbt с помощью интерфейса командной строки Continual. Команда выглядит следующим образом (Примечание: вам нужно убедиться, что вы выполнили «dbt run» перед выполнением непрерывного запуска!):

continual run [OPTIONS]

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

  • —-target: переопределяет цель по умолчанию, найденную в profiles.yml. Будет использоваться Continual для создания изолированной среды в Continual.
  • —-profiles-dir: каталог, содержащий ваш файл profiles.yml.
  • --project-dir: Каталог проекта dbt, то есть каталог, содержащий ваш файл dbt_project.yml.
  • --profile: переопределяет профиль по умолчанию, найденный в dbt_project.yml.

Есть, конечно, и команды, специфичные для континуума. Наиболее важны следующие:

  • --project: постоянный проект для использования. Переопределяет текущий установленный проект.
  • --continual-dir: подкаталог в вашем dbt_project для сохранения непрерывных файлов yaml. По умолчанию для этого задано значение target-path в файле dbt_project.yml.

Continual поддерживает использование изолированных сред. Концептуально они похожи на ветки в git. Для пользователей dbt Continual автоматически создаст и выполнит рабочий процесс в ветке, связанной с конфигурацией вашего профиля dbt. В частности, имя среды в Continual будет таким же, как имя профиля в dbt, а Continual будет использовать схему, определенную в профиле, для построения ваших ресурсов Continual (например, прогнозов). Если вы не хотите смешивать свои схемы dbt с прогнозами, созданными Continual, мы рекомендуем настроить новый профиль специально для Continual. Использование сред имеет решающее значение для построения согласованного производственного процесса и упрощает интеграцию Continual с вашими рабочими процессами CI/CD.

Расширенная интеграция БДТ

Мы считаем, что особого внимания заслуживает то, что Continual имеет расширенную интеграцию с dbt через воздействие и источники. Их можно включить либо для всего проекта, либо для каждой модели отдельно с помощью параметров конфигурации create_exposures и create_sources. Первый создаст файл экспозиции в вашем проекте dbt, который содержит все зависимости для вашей модели ML. При создании вашей документации dbt теперь будет включать это как ресурс в ваш проект, и вы сможете легко просмотреть происхождение ваших моделей, как показано ниже (Примечание: вы всегда можете дополнительно просмотреть происхождение в непрерывном пользовательском интерфейсе в любое время) :

Пользователи нередко хотят провести некоторый анализ прогнозов после их создания. Мы упростили этот процесс, позволив вам указать Continual создать исходный файл в вашем проекте dbt. Это упрощает быстрое обращение к таблицам, созданным Continual, а также позволяет начать включать эти ресурсы в вашу документацию dbt и родословную. Более того, вы можете использовать create_stubs для создания файлов-заглушек .sql в вашем проекте dbt. Эти файлы действуют как скелеты, которые ссылаются на новые исходные файлы, которые вы можете использовать, чтобы начать анализ своих прогнозов.

Рабочий пример

Чтобы увидеть работающий пример интеграции dbt, обратитесь к нашей документации.

Начните сегодня

С помощью Continual и dbt пользователи могут начать решать варианты использования ИИ и масштабировать свои рабочие нагрузки. dbt — великолепный инструмент, который творил чудеса в области анализа данных, и ему часто приписывают превращение аналитиков данных в инженеров-аналитиков. Точно так же мы считаем, что Continual — это еще один шаг в процессе превращения инженеров-аналитиков в инженеров по машинному обучению. Однако не верьте нам на слово. Подпишитесь на бесплатную пробную версию сегодня и испытайте силу dbt и Continual!

(Примечание: эта статья изначально была опубликована в Постоянном блоге.)