Перейти к основному содержимому

Быстрый старт для dbt и Redshift

Redshift
Платформа dbt
Быстрый старт
Начальный уровень
Menu

    Введение​

    В этом кратком руководстве вы узнаете, как использовать dbt с Redshift. В нём показано, как:

    • Настроить кластер Redshift.
    • Загрузить демонстрационные данные в вашу учётную запись Redshift.
    • Подключить dbt к Redshift.
    • Преобразовать пример запроса в модель в вашем проекте dbt. Модель в dbt — это инструкция select.
    • Добавить тесты к вашим моделям.
    • Создать документацию для ваших моделей.
    • Настроить запуск задания по расписанию.
    Follow along with an AI assistantCopy and paste this prompt into your AI assistant to guide you through each step

    Предварительные требования​

    • У вас есть учетная запись dbt.
    • У вас есть учетная запись AWS с разрешениями на выполнение шаблона CloudFormation для создания необходимых ролей и кластера Redshift.
    Видео для вас

    Если вам нравится учиться по видеокурсам, пройдите бесплатный курс dbt Fundamentals.

    Создание кластера Redshift​

    1. Войдите в свою учетную запись AWS как корневой пользователь или пользователь IAM в зависимости от вашего уровня доступа.
    2. Используйте шаблон CloudFormation, чтобы быстро настроить кластер Redshift. Шаблон CloudFormation — это конфигурационный файл, который автоматически создает необходимые ресурсы в AWS. Запустите стек CloudFormation. Дополнительные сведения о шаблоне можно найти в JSON-файле create-dbtworkshop-infr.
    подсказка

    Чтобы избежать проблем с подключением к dbt, убедитесь, что в настройках групп безопасности Redshift и списков управления сетевым доступом (NACL) разрешен входящий трафик на порт 5439 с IP-адресов dbt.

    1. Нажимайте Next на каждой странице, пока не дойдете до флажка Select acknowledgement. Выберите I acknowledge that AWS CloudFormation might create IAM resources with custom names и нажмите Create Stack. Вы должны попасть на страницу стека со статусом CREATE_IN_PROGRESS.

      Cloud Formation в процессеCloud Formation в процессе
    2. Когда статус стека изменится на CREATE_COMPLETE, нажмите вкладку Outputs вверху, чтобы просмотреть информацию, которую вы будете использовать в остальной части этого руководства. Сохраните эти учетные данные, оставив эту вкладку открытой.

    3. Введите Redshift в строке поиска вверху и нажмите Amazon Redshift.

      Нажмите на RedshiftНажмите на Redshift
    4. Убедитесь, что ваш новый кластер Redshift указан в Cluster overview. Выберите ваш новый кластер. Имя кластера должно начинаться с dbtredshiftcluster-. Затем нажмите Query Data. Вы можете выбрать классический редактор запросов или v2. Для целей этого руководства мы будем использовать версию v2.

    Доступный кластер RedshiftДоступный кластер Redshift
    1. Возможно, вам будет предложено настроить аккаунт. Для этой песочницы мы рекомендуем выбрать "Configure account".

    2. Выберите свой кластер из списка. Во всплывающем окне Connect to заполните учетные данные, используя значения из вывода стека:

      • Authentication — Используйте значение по умолчанию Database user name and password.
      • Database — dbtworkshop
      • User name — dbtadmin
      • Password — Используйте автоматически сгенерированный RSadminpassword из вывода стека и сохраните его для дальнейшего использования.
    Редактор запросов Redshift v2Редактор запросов Redshift v2
    Подключение к кластеру RedshiftПодключение к кластеру Redshift
    1. Нажмите Create connection.

    Загрузка данных​

    Теперь мы загрузим наши примерные данные в S3 bucket, который создал наш шаблон CloudFormation. S3 buckets — это простой и недорогой способ хранения данных вне Redshift.

    1. Данные, используемые в этом курсе, хранятся в виде CSV в публичном S3 bucket. Вы можете использовать следующие URL для загрузки этих файлов. Скачайте их на свой компьютер для использования в следующих шагах.

    2. Теперь мы будем использовать S3 bucket, который вы создали с помощью CloudFormation, и загрузим файлы. Перейдите в строку поиска вверху, введите S3 и нажмите на S3. В bucket уже будут примерные данные, вы можете их игнорировать или использовать для других исследований моделирования. Bucket будет иметь префикс dbt-data-lake.

    Перейти в S3Перейти в S3
    1. Нажмите на name of the bucket S3 bucket. Если у вас несколько S3 bucket, это будет bucket, который был указан под "Workshopbucket" на странице Outputs.
    Перейти в ваш S3 BucketПерейти в ваш S3 Bucket
    1. Нажмите Upload. Перетащите три файла в интерфейс и нажмите кнопку Upload.
    Загрузите ваши CSVЗагрузите ваши CSV
    1. Запомните имя S3 bucket для дальнейшего использования. Оно должно выглядеть так: s3://dbt-data-lake-xxxx. Вам понадобится это для следующего раздела.

    2. Теперь вернемся к редактору запросов Redshift. Найдите Redshift в строке поиска, выберите ваш кластер и выберите Query data.

    3. В вашем редакторе запросов выполните следующий запрос, чтобы создать схемы, в которые мы будем помещать ваши необработанные данные. Вы можете выделить оператор и затем нажать Run, чтобы выполнить их по отдельности. Если вы используете классический редактор запросов, возможно, вам придется вводить их по отдельности в интерфейс. Вы должны увидеть эти схемы, перечисленные под dbtworkshop.

      create schema if not exists jaffle_shop;
      create schema if not exists stripe;
    4. Теперь создайте таблицы в вашей схеме с помощью этих запросов, используя приведенные ниже операторы. Они будут заполнены как таблицы в соответствующих схемах.

      create table jaffle_shop.customers(
      id integer,
      first_name varchar(50),
      last_name varchar(50)
      );

      create table jaffle_shop.orders(
      id integer,
      user_id integer,
      order_date date,
      status varchar(50)
      );

      create table stripe.payment(
      id integer,
      orderid integer,
      paymentmethod varchar(50),
      status varchar(50),
      amount integer,
      created date
      );
    5. Теперь нам нужно скопировать данные из S3. Это позволяет вам выполнять запросы в этом руководстве для демонстрационных целей; это не пример того, как вы бы делали это для реального проекта. Убедитесь, что вы обновили местоположение S3, роль iam и регион. Вы можете найти S3 и роль iam в ваших выводах из стека CloudFormation. Найдите стек, введя CloudFormation в строке поиска, затем нажмите Stacks в плитке CloudFormation.

      copy jaffle_shop.customers( id, first_name, last_name)
      from 's3://dbt-data-lake-xxxx/jaffle_shop_customers.csv'
      iam_role 'arn:aws:iam::XXXXXXXXXX:role/RoleName'
      region 'us-east-1'
      delimiter ','
      ignoreheader 1
      acceptinvchars;

      copy jaffle_shop.orders(id, user_id, order_date, status)
      from 's3://dbt-data-lake-xxxx/jaffle_shop_orders.csv'
      iam_role 'arn:aws:iam::XXXXXXXXXX:role/RoleName'
      region 'us-east-1'
      delimiter ','
      ignoreheader 1
      acceptinvchars;

      copy stripe.payment(id, orderid, paymentmethod, status, amount, created)
      from 's3://dbt-data-lake-xxxx/stripe_payments.csv'
      iam_role 'arn:aws:iam::XXXXXXXXXX:role/RoleName'
      region 'us-east-1'
      delimiter ','
      ignoreheader 1
      Acceptinvchars;

      Убедитесь, что вы можете выполнить select * из каждой из таблиц с помощью следующих фрагментов кода.

      select * from jaffle_shop.customers;
      select * from jaffle_shop.orders;
      select * from stripe.payment;

    Подключение dbt к Redshift​

    1. Создайте новый проект в dbt. Перейдите в Account settings (нажмите на имя своей учетной записи в меню слева) и нажмите + New Project.

    2. Введите имя проекта и нажмите Continue.

    3. В разделе Configure your development environment откройте раскрывающееся меню Connection и выберите Add new connection. Вы перейдете к настройкам подключения.

    4. В разделе Type выберите Redshift.

    5. Введите настройки Redshift. Используйте учетные данные, которые вы сохранили из шаблона CloudFormation.

      • Hostname — Полное имя хоста.
      • Port — 5439
      • Database (в разделе Optional settings) — dbtworkshop
      dbt - Redshift Cluster Settingsdbt - Redshift Cluster Settings
    Как избежать проблем с подключением

    Чтобы избежать проблем с подключением к dbt, обязательно выполните эти минимальные, но важные шаги по настройке сети AWS, поскольку сетевой доступ к Redshift не настраивается автоматически:

    • Разрешите входящий трафик на порт 5439 с IP-адресов dbt в настройках групп безопасности Redshift и списков управления сетевым доступом.
    • Настройте Virtual Private Cloud, добавив необходимые таблицы маршрутизации, шлюзы (например, интернет-шлюз или NAT-шлюз) и правила для входящего трафика.

    Дополнительную информацию см. в документации AWS по настройке взаимодействия групп безопасности Redshift.

    1. Нажмите Save.

    2. Настройте свои учётные данные пользователя, перейдя в Your profile > Credentials.

    3. Выберите проект, использующий подключение к Redshift.

    4. Нажмите ссылку configure your development environment and add a connection. Откроется страница, на которой можно ввести свои учётные данные пользователя.

    5. Укажите свои учётные данные пользователя. dbt будет использовать их для подключения к Redshift. Эти учётные данные (из выходных данных CloudFormation):

      • Username — dbtadmin
      • Password — Автоматически сгенерированный пароль, который вы использовали ранее в этом руководстве
      • Schema — dbt автоматически создаёт для вас имя схемы. По принятому соглашению это dbt_<first-initial><last-name>. Эта схема напрямую связана с вашей средой разработки, и именно в ней будут создаваться ваши модели при запуске dbt в Studio IDE.
      dbt - Redshift User credentialsdbt - Redshift User credentials
    6. Нажмите Test connection. Это позволит проверить, что dbt может получить доступ к вашему кластеру Redshift.

    7. Если проверка прошла успешно, нажмите Save, чтобы завершить настройку. Если проверка завершилась с ошибкой, возможно, потребуется проверить настройки Redshift и учётные данные.

    Настройка репозитория под управлением dbt​

    При разработке в dbt вы можете использовать Git для управления версиями кода.

    Чтобы подключиться к репозиторию, вы можете настроить управляемый репозиторий, размещённый на стороне dbt, или напрямую подключиться к поддерживаемому Git-провайдеру. Управляемые репозитории — отличный способ попробовать dbt без необходимости создавать новый репозиторий. В долгосрочной перспективе лучше подключиться к поддерживаемому Git-провайдеру, чтобы использовать такие возможности, как автоматизация и непрерывная интеграция.

    Чтобы настроить управляемый репозиторий:

    1. В разделе "Настроить репозиторий" выберите Управляемый.
    2. Введите имя для вашего репозитория, например, bbaggins-dbt-quickstart.
    3. Нажмите Создать. Создание и импорт вашего репозитория займет несколько секунд.
    4. Как только вы увидите сообщение "Репозиторий успешно импортирован", нажмите Продолжить.

    Инициализируйте проект dbt и начните разработку​

    Теперь, когда репозиторий настроен, вы можете инициализировать проект и начать разработку в dbt:

    1. Нажмите Start developing in the Studio IDE. Первый запуск проекта может занять несколько минут: за это время устанавливается подключение к Git, клонируется репозиторий и проверяется подключение к хранилищу данных.
    2. Над деревом файлов слева нажмите Initialize dbt project. Это создаст структуру папок с примерами моделей.
    3. Создайте первый коммит, нажав Commit and sync. Укажите сообщение коммита initial commit и нажмите Commit. Это создаст первый коммит в вашем управляемом репозитории и позволит создать ветку, в которой вы сможете добавлять новый код dbt.
    4. Теперь вы можете напрямую запрашивать данные из хранилища и выполнять dbt run. Попробуйте сделать это прямо сейчас:
      • Нажмите + Create new file, добавьте этот запрос в новый файл и нажмите Save as, чтобы сохранить новый файл:
        select * from jaffle_shop.customers
      • В командной строке внизу введите dbt run и нажмите Enter. Вы должны увидеть сообщение dbt run succeeded.

    Создание вашей первой модели​

    Если вы хотите использовать ИИ для создания своей первой модели, ознакомьтесь с инструкцией по созданию модели с помощью dbt Wizard в следующем разделе.

    У вас есть два варианта работы с файлами в Studio IDE:

    • Создать новую ветку (рекомендуется) — Создайте новую ветку для редактирования файлов и фиксации изменений. Перейдите в раздел Version Control на левой боковой панели и нажмите Create branch.
    • Редактировать файлы в защищённой основной ветке — Этот вариант подходит, если вы предпочитаете редактировать, форматировать файлы или проверять их линтером, а также выполнять команды dbt непосредственно в основной ветке git. Studio IDE не позволяет создавать коммиты в защищённой ветке, поэтому вам будет предложено зафиксировать изменения в новой ветке.

    Назовите новую ветку add-customers-model.

    1. Нажмите ... рядом с директорией models, затем выберите Create file.
    2. Назовите файл customers.sql, затем нажмите Create.
    3. Скопируйте следующий запрос в файл и нажмите Save.
    with customers as (

    select
    id as customer_id,
    first_name,
    last_name

    from jaffle_shop.customers

    ),

    orders as (

    select
    id as order_id,
    user_id as customer_id,
    order_date,
    status

    from jaffle_shop.orders

    ),

    customer_orders as (

    select
    customer_id,

    min(order_date) as first_order_date,
    max(order_date) as most_recent_order_date,
    count(order_id) as number_of_orders

    from orders

    group by 1

    ),

    final as (

    select
    customers.customer_id,
    customers.first_name,
    customers.last_name,
    customer_orders.first_order_date,
    customer_orders.most_recent_order_date,
    coalesce(customer_orders.number_of_orders, 0) as number_of_orders

    from customers

    left join customer_orders using (customer_id)

    )

    select * from final
    1. Введите dbt run в командной строке внизу экрана. Вы должны получить успешный запуск и увидеть три модели.

    Позже вы сможете подключить свои инструменты бизнес-аналитики (BI) (например, dbt Charts) к этим представлениям и таблицам, чтобы они считывали только очищенные, а не необработанные данные.

    Часто задаваемые вопросы​

    Как посмотреть SQL, который выполняет dbt?
    Как dbt выбирает, в какой схеме строить мои модели?
    Нужно ли создавать целевую схему перед запуском dbt?
    Если я перезапущу dbt, будет ли простой, пока модели перестраиваются?
    Что произойдет, если в моем SQL-запросе ошибка или я получу ошибку базы данных?

    Создайте модель с помощью ИИ в dbt Wizard​

    Не хотите писать SQL вручную? dbt Wizard может создать для вас ту же модель прямо в Studio IDE или на главной вкладке, опираясь на фактическую схему и граф зависимостей вашего проекта. Но будьте осторожны: говорят, волшебник умеет .

    1. Откройте dbt Wizard в Studio IDE.
    dbt Wizard выполняет рефакторинг модели и показывает граф зависимостей в интерфейсе чата.dbt Wizard выполняет рефакторинг модели и показывает граф зависимостей в интерфейсе чата.
    1. Введите запрос: «Создай модель customers, которая объединяет orders и customers и включает дату последнего заказа и общее количество заказов для каждого клиента».
    2. Проверьте SQL, сгенерированный dbt Wizard, затем примите его, чтобы сохранить модель.
    3. Введите dbt run, чтобы построить модель.

    В любом случае вы получите одну и ту же работающую модель. Узнайте больше о dbt Wizard на платформе dbt.

    Измените способ материализации вашей модели​

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

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

    1. Отредактируйте ваш файл dbt_project.yml.

      • Обновите имя вашего проекта на:

        dbt_project.yml
        name: 'jaffle_shop'
      • Настройте jaffle_shop так, чтобы всё внутри него материализовалось как таблица; и настройте example так, чтобы всё внутри него материализовалось как представление (view). Обновите конфигурацию models в YAML-файле проекта следующим образом:

        dbt_project.yml
        models:
        jaffle_shop:
        +materialized: table
        example:
        +materialized: view
      • Нажмите Сохранить.

    2. Введите команду dbt run. Ваша модель customers теперь должна быть построена как таблица!

      к сведению

      Для этого dbt сначала должен был выполнить оператор drop view (или API вызов на BigQuery), затем оператор create table as.

    3. Отредактируйте models/customers.sql, чтобы переопределить dbt_project.yml только для модели customers, добавив следующий фрагмент в начало, и нажмите Сохранить:

      models/customers.sql
      {{
      config(
      materialized='view'
      )
      }}

      with customers as (

      select
      id as customer_id
      ...

      )

    4. Введите команду dbt run. Ваша модель customers теперь должна быть построена как представление.

      • Пользователям BigQuery необходимо выполнить dbt run --full-refresh вместо dbt run, чтобы полностью применить изменения материализации.
    5. Введите команду dbt run --full-refresh, чтобы изменения вступили в силу в вашем хранилище данных.

    Часто задаваемые вопросы​

    Какие материализации доступны в dbt?
    Какую материализацию использовать для моей модели?
    Какие существуют конфигурации моделей?

    Удаление примерных моделей​

    Теперь вы можете удалить файлы, которые dbt создал при инициализации проекта:

    1. Удалите директорию models/example/.

    2. Удалите ключ example: из вашего файла dbt_project.yml, а также любые конфигурации, которые перечислены под ним.

      dbt_project.yml
      # до
      models:
      jaffle_shop:
      +materialized: table
      example:
      +materialized: view
      dbt_project.yml
      # после
      models:
      jaffle_shop:
      +materialized: table
    3. Сохраните изменения.

    Часто задаваемые вопросы​

    Как удалить удаленные модели из моего хранилища данных?
    Я получил сообщение об ошибке "неиспользуемые конфигурации модели", что это значит?

    Построение моделей на основе других моделей​

    Как лучшая практика в SQL, следует разделять логику, которая очищает ваши данные, от логики, которая трансформирует ваши данные. Вы уже начали делать это в существующем запросе, используя общие табличные выражения (CTE).

    Теперь вы можете поэкспериментировать, разделив логику на отдельные модели и используя функцию ref для построения моделей на основе других моделей:

    Граф, который мы хотим для нашего проекта dbtГраф, который мы хотим для нашего проекта dbt
    1. Создайте новый SQL файл, models/stg_customers.sql, с SQL из CTE customers в нашем исходном запросе.

    2. Создайте второй новый SQL файл, models/stg_orders.sql, с SQL из CTE orders в нашем исходном запросе.

      models/stg_customers.sql
      select
      id as customer_id,
      first_name,
      last_name

      from jaffle_shop.customers
      models/stg_orders.sql
      select
      id as order_id,
      user_id as customer_id,
      order_date,
      status

      from jaffle_shop.orders
    3. Отредактируйте SQL в вашем файле models/customers.sql следующим образом:

      models/customers.sql
      with customers as (

      select * from {{ ref('stg_customers') }}

      ),

      orders as (

      select * from {{ ref('stg_orders') }}

      ),

      customer_orders as (

      select
      customer_id,

      min(order_date) as first_order_date,
      max(order_date) as most_recent_order_date,
      count(order_id) as number_of_orders

      from orders

      group by 1

      ),

      final as (

      select
      customers.customer_id,
      customers.first_name,
      customers.last_name,
      customer_orders.first_order_date,
      customer_orders.most_recent_order_date,
      coalesce(customer_orders.number_of_orders, 0) as number_of_orders

      from customers

      left join customer_orders using (customer_id)

      )

      select * from final

    4. Выполните dbt run.

      На этот раз, когда вы выполнили dbt run, были созданы отдельные представления/таблицы для stg_customers, stg_orders и customers. dbt определил порядок выполнения этих моделей. Поскольку customers зависит от stg_customers и stg_orders, dbt строит customers последним. Вам не нужно явно определять эти зависимости.

    Часто задаваемые вопросы​

    Как запустить одну модель за раз?
    Должны ли имена ресурсов, используемых в ref, быть уникальными?
    Как я создаю больше моделей, как мне организовать мой проект? Как мне назвать мои модели?

    Добавьте тесты к вашим моделям​

    Добавление data tests в проект помогает убедиться, что ваши модели работают корректно.

    Чтобы добавить data tests в проект:

    1. Создайте новый YAML-файл в директории models, назвав его models/schema.yml.

    2. Добавьте в файл следующее содержимое:

      models/schema.yml
      version: 2

      models:
      - name: customers
      columns:
      - name: customer_id
      data_tests:
      - unique
      - not_null

      - name: stg_customers
      columns:
      - name: customer_id
      data_tests:
      - unique
      - not_null

      - name: stg_orders
      columns:
      - name: order_id
      data_tests:
      - unique
      - not_null
      - name: status
      data_tests:
      - accepted_values:
      arguments: # available in v1.10.5 and higher. Older versions can set the <argument_name> as the top-level property.
      values: ['placed', 'shipped', 'completed', 'return_pending', 'returned']
      - name: customer_id
      data_tests:
      - not_null
      - relationships:
      arguments:
      to: ref('stg_customers')
      field: customer_id

    3. Запустите dbt test и убедитесь, что все ваши тесты прошли успешно.

    Когда вы запускаете dbt test, dbt проходит по вашим YAML-файлам и создает запрос для каждого теста. Каждый запрос вернет количество записей, которые не прошли тест. Если это число равно 0, то тест считается успешным.

    Часто задаваемые вопросы​

    Какие тесты доступны для использования в dbt? Могу ли я добавить свои собственные тесты?
    Как протестировать одну модель за раз?
    Один из моих тестов не прошел, как я могу его отладить?
    Должен ли мой файл с тестами называться `schema.yml`?
    Почему файлы YAML для моделей и источников всегда начинаются с `version: 2`?
    Какие тесты данных стоит добавить в проект?
    Когда следует запускать data tests?

    Документируйте ваши модели​

    Добавление документации в ваш проект позволяет подробно описывать ваши модели и делиться этой информацией с вашей командой. Здесь мы добавим базовую документацию в наш проект.

    Обновите файл models/schema.yml, добавив описания, например приведённые ниже.

    models/schema.yml
    version: 2

    models:
    - name: customers
    description: Одна запись на каждого клиента
    columns:
    - name: customer_id
    description: Первичный ключ
    data_tests:
    - unique
    - not_null
    - name: first_order_date
    description: NULL, если клиент еще не сделал заказ.

    - name: stg_customers
    description: Эта модель очищает данные о клиентах
    columns:
    - name: customer_id
    description: Первичный ключ
    data_tests:
    - unique
    - not_null

    - name: stg_orders
    description: Эта модель очищает данные о заказах
    columns:
    - name: order_id
    description: Первичный ключ
    data_tests:
    - unique
    - not_null
    - name: status
    data_tests:
    - accepted_values:
    arguments: # available in v1.10.5 and higher. Older versions can set the <argument_name> as the top-level property.
    values: ['placed', 'shipped', 'completed', 'return_pending', 'returned']
    - name: customer_id
    data_tests:
    - not_null
    - relationships:
    arguments:
    to: ref('stg_customers')
    field: customer_id

    Catalog предоставляет мощные инструменты для работы с вашими проектами dbt, в том числе с документацией:

    1. Выполните одну из следующих команд:
      • dbt docs generate, если вы используете dbt v1
      • dbt build, если вы используете dbt v2
    2. Нажмите Catalog в меню навигации, чтобы открыть Catalog.
    3. По умолчанию Catalog отображает среду Production. Если в вашей учетной записи есть дополнительные среды (например, Staging), вы можете выбрать их в раскрывающемся списке сред.
    Выбор среды в Catalog.Выбор среды в Catalog.
    1. Выберите свой проект в дереве файлов.
    2. Используйте строку поиска или просмотрите список ресурсов, чтобы найти модель customers.
    3. Нажмите на модель, чтобы просмотреть сведения о ней, включая добавленные вами описания.
    Просмотр документации модели и графа зависимостей в Catalog.Просмотр документации модели и графа зависимостей в Catalog.

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

    Часто задаваемые вопросы​

    Как писать развернутые объяснения в описаниях?
    Как получить доступ к документации в dbt Catalog?

    Зафиксируйте изменения​

    Теперь, когда вы построили модель customers, нужно закоммитить внесённые в проект изменения, чтобы в репозитории оказался ваш актуальный код.

    Если вы вносили изменения непосредственно в защищённую основную ветку:

    1. Нажмите кнопку Commit and sync git. Это действие подготовит ваши изменения к коммиту.
    2. Появится модальное окно с заголовком Commit to a new branch.
    3. В модальном окне задайте новой ветке имя add-customers-model. Будет создана ветка от вашей основной ветки с внесёнными изменениями.
    4. Добавьте сообщение коммита, например «Добавлена модель customers, тесты и документация», и создайте коммит с вашими изменениями.
    5. Нажмите Merge this branch to main, чтобы добавить эти изменения в ветку main вашего репозитория.

    Если вы создали новую ветку до редактирования:

    1. Поскольку вы уже ответвились от защищённой основной ветки, слева перейдите в Version Control.
    2. Нажмите Commit and sync, чтобы добавить сообщение.
    3. Добавьте сообщение коммита, например «Добавить модель customers, тесты и документацию».
    4. Нажмите Merge this branch to main, чтобы добавить эти изменения в ветку main вашего репозитория.

    Разверните dbt​

    Используйте планировщик dbt, чтобы уверенно запускать задания в продакшене и обеспечивать наблюдаемость ваших процессов. Далее вы узнаете, как создать среду развертывания и запустить задание.

    Создайте окружение развертывания (deployment environment)​

    1. В главном меню перейдите в Orchestration > Environments.
    2. Нажмите Create environment.
    3. В поле Name введите имя среды развертывания. Например, "Production".
    4. В поле dbt version по умолчанию выбрана последняя доступная версия. Мы рекомендуем использовать последнюю версию dbt для всех новых проектов.
    5. В разделе Deployment connection введите имя набора данных, который вы хотите использовать в качестве целевого, например "Analytics". Это позволит dbt создавать объекты в этом наборе данных и работать с ним. В некоторых хранилищах данных целевой набор данных может называться «схемой».
    6. Нажмите Save.

    Создайте и запустите job​

    Jobs — это набор команд dbt, которые вы хотите запускать по расписанию. Например, dbt build.

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

    1. После создания окружения развертывания вы должны попасть на страницу нового окружения. Если нет — в главном меню выберите Orchestration, затем нажмите Jobs.
    2. Нажмите Create job > Deploy job.
    3. Укажите имя job (например, «Production run») и выберите окружение, которое вы только что создали.
    4. Прокрутите вниз до раздела Execution settings.
    5. В разделе Commands добавьте эту команду как часть job, если её нет:
      • dbt build
    6. (Версии dbt: v2.0 и новее) Добавлять шаг создания документации не нужно. При каждом запуске задания метаданные вашего проекта в Catalog обновляются автоматически.
    7. В этом упражнении не задавайте расписание запуска проекта — хотя проект вашей организации должен запускаться регулярно, для этого примера запуск по расписанию не нужен. Настройку запуска задания по расписанию иногда называют развёртыванием проекта.
    8. Нажмите Save, затем нажмите Run now, чтобы запустить задание.
    9. Нажмите на запуск и следите за его ходом в разделе Run summary.
    10. После завершения запуска (Версии dbt: v2.0 и новее) нажмите Catalog на панели навигации, чтобы изучить свой проект.

    Поздравляем 🎉! Вы только что развернули свой первый dbt‑проект!

    Часто задаваемые вопросы​

    Что произойдет, если один из моих запусков завершится неудачей?
    Подключите свой ИИ-инструмент к этому проекту

    Теперь, когда ваш проект настроен и работает, подключите к нему свой ИИ-инструмент (например, Claude или ChatGPT) через dbt MCP server, чтобы задавать вопросы о моделях на естественном языке. Описания, тесты и семантические модели помогут сделать его ответы ещё лучше.

    Нашли ошибку?

    0