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

Быстрый старт для dbt Cloud и Starburst Galaxy

dbt Cloud
Quickstart
Beginner
Menu

    Введение

    В этом руководстве по быстрому старту вы узнаете, как использовать dbt Cloud с Starburst Galaxy. Оно покажет вам, как:

    • Загрузить данные в Amazon S3 bucket. В этом руководстве используется AWS в качестве облачного провайдера для демонстрационных целей. Starburst Galaxy также поддерживает другие источники данных, такие как Google Cloud, Microsoft Azure и другие.
    • Подключить Starburst Galaxy к Amazon S3 bucket.
    • Создать таблицы с помощью Starburst Galaxy.
    • Подключить dbt Cloud к Starburst Galaxy.
    • Взять пример запроса и превратить его в модель в вашем проекте dbt. Модель в dbt — это оператор select.
    • Добавить тесты к вашим моделям.
    • Документировать ваши модели.
    • Запланировать выполнение задания.
    • Подключиться к нескольким источникам данных в дополнение к вашему S3 bucket.
    Видео для вас

    Вы можете бесплатно ознакомиться с Основами dbt, если вас интересует обучение с видео.

    Вы также можете посмотреть видео на YouTube Создайте лучшие конвейеры данных с dbt и Starburst, созданное Starburst Data, Inc.

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

    Связанные материалы

    Загрузка данных в Amazon S3 bucket

    С помощью Starburst Galaxy вы можете создавать таблицы и также преобразовывать их с помощью dbt. Начните с загрузки данных Jaffle Shop (предоставленных dbt Labs) в ваш Amazon S3 bucket. Jaffle Shop — это вымышленное кафе, продающее еду и напитки в нескольких городах США.

    1. Скачайте эти CSV файлы на ваш локальный компьютер:

    2. Загрузите эти файлы в S3. Для получения подробной информации обратитесь к Загрузка объектов в документации Amazon S3.

      При загрузке этих файлов вы должны создать следующую структуру папок и загрузить соответствующий файл в каждую папку:

      <bucket/blob>
      dbt-quickstart (папка)
      jaffle-shop-customers (папка)
      jaffle_shop_customers.csv (файл)
      jaffle-shop-orders (папка)
      jaffle_shop_orders.csv (файл)
      stripe-payments (папка)
      stripe-payments.csv (файл)

    Подключение Starburst Galaxy к Amazon S3 bucket

    Если ваш экземпляр Starburst Galaxy еще не подключен к вашему S3 bucket, вам нужно создать кластер, настроить каталог, который позволит Starburst Galaxy подключаться к S3 bucket, добавить каталог в ваш новый кластер и настроить параметры привилегий.

    В дополнение к Amazon S3, Starburst Galaxy поддерживает множество других источников данных. Чтобы узнать больше о них, вы можете обратиться к Обзор каталогов в документации Starburst Galaxy.

    1. Создайте кластер. Нажмите Clusters на левой боковой панели интерфейса Starburst Galaxy, затем нажмите Create cluster в основной части страницы.

    2. В модальном окне Create a new cluster вам нужно установить только следующие параметры. Вы можете использовать значения по умолчанию для других параметров.

      • Cluster name — Введите имя для вашего кластера.
      • Cloud provider region — Выберите регион AWS.

      Когда закончите, нажмите Create cluster.

    3. Создайте каталог. Нажмите Catalogs на левой боковой панели интерфейса Starburst Galaxy, затем нажмите Create catalog в основной части страницы.

    4. На странице Create a data source выберите плитку Amazon S3.

    5. В разделе Name and description страницы Amazon S3 заполните поля.

    6. В разделе Authentication to S3 страницы Amazon S3 выберите механизм аутентификации AWS (S3), который вы выбрали для подключения.

    7. В разделе Metastore configuration установите следующие параметры:

      • Default S3 bucket name — Введите имя вашего S3 bucket, к которому вы хотите получить доступ.
      • Default directory name — Введите имя папки, где находятся данные Jaffle Shop в S3 bucket. Это то же самое имя папки, которое вы использовали в Загрузка данных в Amazon S3 bucket.
      • Allow creating external tables — Включите эту опцию.
      • Allow writing to external tables — Включите эту опцию.

      Страница Amazon S3 должна выглядеть примерно так, за исключением раздела Authentication to S3, который зависит от вашей настройки:

      Настройки подключения Amazon S3 в Starburst GalaxyНастройки подключения Amazon S3 в Starburst Galaxy
    8. Нажмите Test connection. Это проверяет, может ли Starburst Galaxy получить доступ к вашему S3 bucket.

    9. Нажмите Connect catalog, если тест подключения прошел успешно.

      Успешный тест подключенияУспешный тест подключения
    10. На странице Set permissions нажмите Skip. Вы можете добавить разрешения позже, если хотите.

    11. На странице Add to cluster выберите кластер, в который вы хотите добавить каталог, из выпадающего списка и нажмите Add to cluster.

    12. Добавьте привилегию местоположения для вашего S3 bucket к вашей роли в Starburst Galaxy. Нажмите Access control > Roles and privileges на левой боковой панели интерфейса Starburst Galaxy. Затем в таблице Roles нажмите имя роли accountadmin.

      Если вы используете существующий кластер Starburst Galaxy и не имеете доступа к роли accountadmin, выберите роль, к которой у вас есть доступ.

      Чтобы узнать больше о контроле доступа, обратитесь к Контроль доступа в документации Starburst Galaxy.

    13. На странице Roles нажмите вкладку Privileges и нажмите Add privilege.

    14. На странице Add privilege установите следующие параметры:

      • What would you like to modify privileges for? — Выберите Location.
      • Enter a storage location provide — Введите местоположение хранения вашего S3 bucket и папки, где находятся данные Jaffle Shop. Убедитесь, что в конце местоположения включен /*.
      • Create SQL — Включите эту опцию.

      Когда закончите, нажмите Add privileges.

      Добавление привилегии к роли accountadminДобавление привилегии к роли accountadmin

    Создание таблиц с помощью Starburst Galaxy

    Чтобы выполнять запросы к данным Jaffle Shop с помощью Starburst Galaxy, вам нужно создать таблицы, используя данные Jaffle Shop, которые вы загрузили в ваш S3 bucket. Вы можете сделать это (и выполнить любой SQL-запрос) из редактора запросов.

    1. Нажмите Query > Query editor на левой боковой панели интерфейса Starburst Galaxy. Основная часть страницы теперь является редактором запросов.

    2. Настройте редактор запросов так, чтобы он выполнял запросы к вашему S3 bucket. В правом верхнем углу редактора запросов выберите ваш кластер в первом сером поле и выберите ваш каталог во втором сером поле:

      Установка кластера и каталога в редакторе запросовУстановка кластера и каталога в редакторе запросов
    3. Скопируйте и вставьте эти запросы в редактор запросов. Затем выполните каждый запрос по отдельности.

      Замените YOUR_S3_BUCKET_NAME на имя вашего S3 bucket. Эти запросы создают схему с именем jaffle_shop, а также создают таблицы jaffle_shop_customers, jaffle_shop_orders и stripe_payments:

      CREATE SCHEMA jaffle_shop WITH (location='s3://YOUR_S3_BUCKET_NAME/dbt-quickstart/');

      CREATE TABLE jaffle_shop.jaffle_shop_customers (
      id VARCHAR,
      first_name VARCHAR,
      last_name VARCHAR
      )

      WITH (
      external_location = 's3://YOUR_S3_BUCKET_NAME/dbt-quickstart/jaffle-shop-customers/',
      format = 'csv',
      type = 'hive',
      skip_header_line_count=1

      );

      CREATE TABLE jaffle_shop.jaffle_shop_orders (

      id VARCHAR,
      user_id VARCHAR,
      order_date VARCHAR,
      status VARCHAR

      )

      WITH (
      external_location = 's3://YOUR_S3_BUCKET_NAME/dbt-quickstart/jaffle-shop-orders/',
      format = 'csv',
      type = 'hive',
      skip_header_line_count=1
      );

      CREATE TABLE jaffle_shop.stripe_payments (

      id VARCHAR,
      order_id VARCHAR,
      paymentmethod VARCHAR,
      status VARCHAR,
      amount VARCHAR,
      created VARCHAR
      )

      WITH (

      external_location = 's3://YOUR_S3_BUCKET_NAME/dbt-quickstart/stripe-payments/',
      format = 'csv',
      type = 'hive',
      skip_header_line_count=1

      );
    4. Когда запросы будут выполнены, вы сможете увидеть следующую иерархию на левой боковой панели редактора запросов:

      Иерархия данных в редакторе запросовИерархия данных в редакторе запросов
    5. Убедитесь, что таблицы были успешно созданы. В редакторе запросов выполните следующие запросы:

      select * from jaffle_shop.jaffle_shop_customers;
      select * from jaffle_shop.jaffle_shop_orders;
      select * from jaffle_shop.stripe_payments;

    Подключение dbt Cloud к Starburst Galaxy

    1. Убедитесь, что вы все еще вошли в Starburst Galaxy.

    2. Если вы еще не сделали этого, установите роль вашего аккаунта на accountadmin. Нажмите на ваш адрес электронной почты в правом верхнем углу, выберите Switch role и выберите accountadmin.

      Если эта роль не указана для вас, выберите роль, которую вы выбрали в Подключение Starburst Galaxy к Amazon S3 bucket, когда добавляли привилегию местоположения для вашего S3 bucket.

    3. Нажмите Clusters на левой боковой панели.

    4. Найдите ваш кластер в таблице View clusters и нажмите Connection info. Выберите dbt из выпадающего списка Select client. Держите модальное окно Connection information открытым. Вы будете использовать детали из этого модального окна в dbt Cloud.

    5. В другой вкладке браузера войдите в dbt Cloud.

    6. Создайте новый проект в dbt Cloud. Нажмите на имя вашего аккаунта в левом меню, выберите Account settings и нажмите + New Project.

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

    8. Выберите Starburst в качестве вашего подключения и нажмите Next.

    9. Введите Settings для вашего нового проекта:

      • Host – Значение Host из модального окна Connection information в вашей вкладке Starburst Galaxy.
      • Port – 443 (по умолчанию)
    10. Введите Development Credentials для вашего нового проекта:

      • User – Значение User из модального окна Connection information в вашей вкладке Starburst Galaxy. Убедитесь, что вы используете всю строку, включая роль аккаунта, которая идет после /. Если вы не включите ее, будет использована ваша роль по умолчанию, которая может не иметь правильных разрешений для разработки проекта.
      • Password – Пароль, который вы используете для входа в ваш аккаунт Starburst Galaxy.
      • Database – Каталог Starburst, в который вы хотите сохранить ваши данные (например, при записи новых таблиц). Для справки, database является синонимом catalog между dbt Cloud и Starburst Galaxy.
      • Оставьте остальные параметры как есть. Вы можете использовать их значения по умолчанию.
    11. Нажмите Test Connection. Это проверяет, может ли dbt Cloud получить доступ к вашему кластеру Starburst Galaxy.

    12. Нажмите Next, если тест прошел успешно. Если он не прошел, возможно, вам нужно проверить настройки и учетные данные Starburst Galaxy.

    Настройка управляемого репозитория dbt Cloud

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

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

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

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

    Инициализация вашего проекта dbt и начало разработки

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

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

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

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

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

    Назовите новую ветку 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 dbt_quickstart.jaffle_shop.jaffle_shop_customers
    ),

    orders as (

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

    from dbt_quickstart.jaffle_shop.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 on customers.customer_id = customer_orders.customer_id
    )
    select * from final

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

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

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

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

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

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

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

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

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

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

        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 dbt_quickstart.jaffle_shop.jaffle_shop_customers
      models/stg_orders.sql
      select
      id as order_id,
      user_id as customer_id,
      order_date,
      status

      from dbt_quickstart.jaffle_shop.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 on customers.customer_id = customer_orders.customer_id

      )

      select * from final

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

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

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

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

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

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

    Чтобы добавить тесты в ваш проект:

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

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

      models/schema.yml
      version: 2

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

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

      - name: stg_orders
      columns:
      - name: order_id
      tests:
      - unique
      - not_null
      - name: status
      tests:
      - accepted_values:
      values: ['placed', 'shipped', 'completed', 'return_pending', 'returned']
      - name: customer_id
      tests:
      - not_null
      - relationships:
      to: ref('stg_customers')
      field: customer_id

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

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

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

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

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

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

    1. Обновите ваш файл models/schema.yml, чтобы включить в него некоторые описания, как показано ниже.

      models/schema.yml
      version: 2

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

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

      - name: stg_orders
      description: Эта модель очищает данные о заказах
      columns:
      - name: order_id
      description: Первичный ключ
      tests:
      - unique
      - not_null
      - name: status
      tests:
      - accepted_values:
      values: ['placed', 'shipped', 'completed', 'return_pending', 'returned']
      - name: customer_id
      tests:
      - not_null
      - relationships:
      to: ref('stg_customers')
      field: customer_id
    2. Запустите dbt docs generate, чтобы сгенерировать документацию для вашего проекта. dbt анализирует ваш проект и ваш склад данных, чтобы создать файл с подробной документацией о вашем проекте.

    1. Нажмите на значок книги в интерфейсе Develop, чтобы открыть документацию в новой вкладке.

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

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

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

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

    Если вы редактировали непосредственно в защищенной основной ветке:

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

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

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

    Разверните dbt

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

    Создайте среду развертывания

    1. В верхнем левом углу выберите Deploy, затем нажмите Environments.
    2. Нажмите Create Environment.
    3. В поле Name напишите название вашей среды развертывания. Например, "Production."
    4. В поле dbt Version выберите последнюю версию из выпадающего списка.
    5. В разделе Deployment connection введите название набора данных, который вы хотите использовать в качестве целевого, например, "Analytics". Это позволит dbt строить и работать с этим набором данных. Для некоторых хранилищ данных целевой набор данных может называться "схемой".
    6. Нажмите Save.

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

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

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

    1. После создания вашей среды развертывания вы должны быть перенаправлены на страницу новой среды. Если нет, выберите Deploy в верхнем левом углу, затем нажмите Jobs.
    2. Нажмите Create one и укажите имя, например, "Production run", и свяжите с только что созданной средой.
    3. Прокрутите вниз до раздела Execution Settings.
    4. В разделе Commands добавьте эту команду как часть вашего задания, если вы ее не видите:
      • dbt build
    5. Выберите флажок Generate docs on run, чтобы автоматически генерировать обновленную документацию проекта каждый раз, когда выполняется ваше задание.
    6. Для этого упражнения не устанавливайте расписание для выполнения вашего проекта — хотя проект вашей организации должен выполняться регулярно, нет необходимости запускать этот пример проекта по расписанию. Планирование задания иногда называют развертыванием проекта.
    7. Выберите Save, затем нажмите Run now, чтобы запустить ваше задание.
    8. Нажмите на выполнение и наблюдайте за его прогрессом в разделе "Run history."
    9. После завершения выполнения нажмите View Documentation, чтобы увидеть документацию вашего проекта.

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

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

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

    Подключение к нескольким источникам данных

    Этот быстрый старт сосредоточен на использовании dbt Cloud для выполнения моделей против озера данных (S3) с использованием Starburst Galaxy в качестве движка запросов. В большинстве реальных сценариев данные, необходимые для выполнения моделей, фактически распределены по нескольким источникам данных и хранятся в различных форматах. С помощью Starburst Galaxy, Starburst Enterprise и Trino вы можете выполнять ваши модели на любых данных, которые вам нужны, независимо от того, где они хранятся.

    Если вы хотите попробовать это, вы можете обратиться к документации Starburst Galaxy, чтобы добавить больше источников данных и загрузить данные Jaffle Shop в выбранный вами источник. Затем расширьте ваши модели, чтобы выполнять запросы к новому источнику данных и источнику данных, который вы создали в этом быстром старте.

    0