Быстрый старт с семантическим слоем dbt Cloud и Snowflake
В ведение
Семантический слой dbt, работающий на базе MetricFlow, упрощает настройку ключевых бизнес-метрик. Он централизует определения, избегает дублирования кода и обеспечивает легкий доступ к метрикам в последующих инструментах. MetricFlow помогает легче управлять метриками компании, позволяя вам определять метрики в вашем проекте dbt и запрашивать их в dbt Cloud с помощью команд MetricFlow.
Этот гид по быстрому старту предназначен для пользователей dbt Cloud, использующих Snowflake в качестве своей платформы данных. Он сосредоточен на создании и определении метрик, настройке семантического слоя dbt в проекте dbt Cloud и запросе метрик в Google Sheets.
Для пользователей на других платформах данных
Если вы используете платформу данных, отличную от Snowflake, это руководство также применимо к вам. Вы можете адаптировать настройку для вашей конкретной платформы, следуя инструкциям по настройке учетной записи и загрузке данных, изложенным в следующих вкладках для каждой соответствующей платформы.
Остальная часть этого руководства применима ко всем поддерживаемым платформам, обеспечивая полное использование семантического слоя dbt.
Предварительные требования
-
Вам нужен аккаунт dbt Cloud Trial, Team или Enterprise для всех развертываний. Свяжитесь с вашим представителем для настройки Single-tenant; в противном случае создайте аккаунт, используя это руководство.
-
Иметь правильную лицензию dbt Cloud и разрешения в зависимости от вашего плана:
Подробнее о лицензии и разрешениях -
Создайте пробный аккаунт Snowflake:
- Выберите издание Enterprise Snowflake с доступом ACCOUNTADMIN. Учитывайте организационные вопросы при выборе облачного провайдера, обратитесь к Введению в облачные платформы Snowflake.
- Выберите облачного провайдера и регион. Все облачные провайдеры и регионы будут работать, поэтому выберите тот, который вам больше нравится.
-
Базовое понимание SQL и dbt. Например, вы уже использовали dbt или прошли курс Основы dbt.
Чему вы научитесь
Это руководство охватывает следующие темы:
- Создание нового рабочего листа Snowflake и настройка вашей среды
- Загрузка образцов данных в ваш аккаунт Snowflake
- Подключение dbt Cloud к Snowflake
- Настройка управляемого репозитория dbt Cloud
- Инициализация проекта dbt Cloud и начало разработки
- Создание вашего проекта dbt Cloud
- Создание семантической модели в dbt Cloud
- Определение метрик в dbt Cloud
- Добавление второй семантической модели
- Тестирование и запрос метрик в dbt Cloud
- Запуск производственного задания в dbt Cloud
- Настройка семантического слоя dbt в dbt Cloud
- Подключение и запрос метрик с помощью Google Sheets
Создание нового рабочего листа Snowflake и настройка среды
- Войдите в свой пробный аккаунт Snowflake.
- В пользовательском интерфейсе Snowflake (UI) нажмите + Worksheet в правом верхнем углу.
- Выберите SQL Worksheet, чтобы создать новый рабочий лист.
Настройка среды Snowflake
Данные, используемые здесь, хранятся в виде CSV-файлов в общедоступном S3-бакете, и следующие шаги помогут вам подготовить ваш аккаунт Snowflake для этих данных и загрузить их.
Создайте новый виртуальный склад, две новые базы данных (одну для необработанных данных, другую для будущей разработки dbt) и две новые схемы (одну для данных jaffle_shop
, другую для данных stripe
).
-
Выполните следующие SQL-команды одну за другой, вводя их в редакторе вашего нового рабочего листа SQL Snowflake, чтобы настроить вашу среду.
-
Нажмите Run в правом верхнем углу пользовательского интерфейса для каждой из них:
-- Создайте виртуальный склад с именем 'transforming'
create warehouse transforming;
-- Создайте две базы данных: одну для необработанных данных и другую для аналитики
create database raw;
create database analytics;
-- В базе данных 'raw' создайте две схемы: 'jaffle_shop' и 'stripe'
create schema raw.jaffle_shop;
create schema raw.stripe;
Загрузка данных в Snowflake
Теперь, когда ваша среда настроена, вы можете начать загрузку данных в нее. Вы будете работать в базе данных raw, используя схемы jaffle_shop
и stripe
для организации ваших таблиц.
- Создайте таблицу клиентов. Сначала удалите все содержимое (очистите) в редакторе рабочего листа Snowflake. Затем выполните эту SQL-команду, чтобы создать таблицу клиентов в схеме
jaffle_shop
:
create table raw.jaffle_shop.customers
( id integer,
first_name varchar,
last_name varchar
);
Вы должны увидеть сообщение «Таблица CUSTOMERS
успешно создана».
- Загрузите данные. После создания таблицы удалите все содержимое в редакторе. Выполните эту команду, чтобы загрузить данные из S3-бакета в таблицу клиентов:
copy into raw.jaffle_shop.customers (id, first_name, last_name)
from 's3://dbt-tutorial-public/jaffle_shop_customers.csv'
file_format = (
type = 'CSV'
field_delimiter = ','
skip_header = 1
);
Вы должны увидеть подтверждающее сообщение после выполнения команды.
- Создайте таблицу
orders
. Удалите все содержимое в редакторе. Выполните следующую команду, чтобы создать...
create table raw.jaffle_shop.orders
( id integer,
user_id integer,
order_date date,
status varchar,
_etl_loaded_at timestamp default current_timestamp
);
Вы должны увидеть подтверждающее сообщение после выполнения команды.
- Загрузите данные. Удалите все содержимое в редакторе, затем выполните эту команду, чтобы загрузить данные в таблицу заказов:
copy into raw.jaffle_shop.orders (id, user_id, order_date, status)
from 's3://dbt-tutorial-public/jaffle_shop_orders.csv'
file_format = (
type = 'CSV'
field_delimiter = ','
skip_header = 1
);
Вы должны увидеть подтверждающее сообщение после выполнения команды.
- Создайте таблицу
payment
. Удалите все содержимое в редакторе. Выполните следующую команду, чтобы создать таблицу платежей:
create table raw.stripe.payment
( id integer,
orderid integer,
paymentmethod varchar,
status varchar,
amount integer,
created date,
_batched_at timestamp default current_timestamp
);
Вы должны увидеть подтверждающее сообщение после выполнения команды.
- Загрузите данные. Удалите все содержимое в редакторе. Выполните следующую команду, чтобы загрузить данные в таблицу платежей:
copy into raw.stripe.payment (id, orderid, paymentmethod, status, amount, created)
from 's3://dbt-tutorial-public/stripe_payments.csv'
file_format = (
type = 'CSV'
field_delimiter = ','
skip_header = 1
);
Вы должны увидеть подтверждающее сообщение после выполнения команды.
- Проверьте данные. Убедитесь, что данные загружены, выполнив эти SQL-запросы. Подтвердите, что вы видите вывод для каждого из них, как на следующем изображении подтверждения.
select * from raw.jaffle_shop.customers;
select * from raw.jaffle_shop.orders;
select * from raw.stripe.payment;
Подключение dbt Cloud к Snowflake
Существует два способа подключения dbt Cloud к Snowflake. Первый вариант — Partner Connect, который предоставляет упрощенную настройку для создания вашего аккаунта dbt Cloud из вашего нового пробного аккаунта Snowflake. Второй вариант — создать ваш аккаунт dbt Cloud отдельно и самостоятельно настроить подключение к Snowflake (подключение вручную). Если вы хотите быстро начать, dbt Labs рекомендует использовать Partner Connect. Если вы хотите настроить все с самого начала и ознакомиться с процессом настройки dbt Cloud, dbt Labs рекомендует подключение вручную.
Настройка управляемого репозитория dbt Cloud
Если вы использовали Partner Connect, вы можете перейти к инициализации вашего проекта dbt, так как Partner Connect предоставляет вам управляемый репозиторий. В противном случае вам нужно будет создать ваше подключение к репозиторию.
Инициализация вашего проекта dbt и начало разработки
Это руководство предполагает, что вы используете IDE dbt Cloud для разработки вашего проекта dbt, определения метрик и запроса и предварительного просмотра метрик с помощью команд MetricFlow.
Теперь, когда у вас настроен репозиторий, вы можете инициализировать ваш проект и начать разработку в dbt Cloud, используя IDE:
- Нажмите Начать разработку в IDE dbt Cloud. Это может занять несколько минут, так как ваш проект впервые запускается, устанавливая соединение с git, клонируя ваш репозиторий и тестируя соединение с хранилищем.
- Над деревом файлов слева нажмите Инициализировать ваш проект. Это создаст структуру папок с примерами моделей.
- Сделайте ваш первый коммит, нажав Коммит и синхронизация. Используйте сообщение коммита
initial commit
. Это создаст первый коммит в вашем управляемом репозитории и позволит вам открыть ветку, где вы можете добавить новый код dbt. - Теперь вы можете напрямую запрашивать данные из вашего хранилища и выполнять
dbt run
. Вы можете попробовать это сейчас:- Удалите папку models/examples в Проводнике файлов.
- Нажмите + Создать новый файл, добавьте этот запрос в новый файл и нажмите Сохранить как, чтобы сохранить новый файл:
select * from raw.jaffle_shop.customers
- В командной строке внизу введите dbt run и нажмите Enter. Вы должны увидеть сообщение о успешном выполнении dbt run.
Создание вашего проекта dbt
Следующий шаг — построить ваш проект. Это включает добавление источников, моделей стадий, бизнес-определенных сущностей и пакетов в ваш проект.