Быстрый старт для dbt Cloud и Snowflake
Введение
В этом руководстве по быстрому старту вы узнаете, как использовать dbt Cloud с Snowflake. Оно покажет вам, как:
- Создать новый рабочий лист Snowflake.
- Загрузить пример данных в ваш аккаунт Snowflake.
- Подключить dbt Cloud к Snowflake.
- Взять пример запроса и превратить его в модель в вашем проекте dbt. Модель в dbt — это оператор select.
- Добавить источники в ваш проект dbt. Источники позволяют вам именовать и описывать необработанные данные, уже загруженные в Snowflake.
- Добавить тесты к вашим моделям.
- Документировать ваши модели.
- Запланировать выполнение задания.
Snowflake также предоставляет руководство по быстрому старту, чтобы вы могли научиться использовать dbt Cloud. Оно использует другой публичный набор данных (Knoema Economy Data Atlas), чем тот, что показан в этом руководстве. Для получения дополнительной информации обратитесь к Ускорение работы команд данных с dbt Cloud и Snowflake в документации Snowflake.
Вы можете бесплатно ознакомиться с Основами dbt, если вас интересует обучение с видео.
Вы также можете посмотреть видео на YouTube о dbt и Snowflake.
Предварительные требования
- У вас есть аккаунт dbt Cloud.
- У вас есть пробный аккаунт Snowflake. При создании пробного аккаунта убедитесь, что выбрали издание Enterprise Snowflake, чтобы у вас был доступ
ACCOUNTADMIN
. Для полной реализации вам следует учитывать организационные вопросы при выборе облачного провайдера. Для получения дополнительной информации см. Введение в облачные платформы в документации Snowflake. Для целей этой настройки все облачные провайдеры и регионы будут работать, так что выберите любой, который вам нравится.
Связанные материалы
- Узнайте больше с курсами dbt Learn
- Как мы настраиваем Snowflake
- CI задания
- Развертывание заданий
- Уведомления о заданиях
- Свежесть источников
Создание нового рабочего листа Snowflake
- Войдите в свой пробный аккаунт Snowflake.
- В интерфейсе Snowflake нажмите + Worksheet в правом верхнем углу, чтобы создать новый рабочий лист.
Загрузка данных
Данные, используемые здесь, хранятся в виде CSV-файлов в публичном S3-бакете, и следующие шаги помогут вам подготовить ваш аккаунт Snowflake для этих данных и загрузить их.
-
Создайте новый виртуальный склад, две новые базы данных (одну для необработанных данных, другую для будущей разработки dbt) и две новые схемы (одну для данных
jaffle_shop
, другую для данныхstripe
).Для этого выполните эти SQL-команды, введя их в редакторе вашего нового рабочего листа Snowflake и нажав Run в правом верхнем углу интерфейса:
create warehouse transforming;
create database raw;
create database analytics;
create schema raw.jaffle_shop;
create schema raw.stripe; -
В базе данных
raw
и схемахjaffle_shop
иstripe
создайте три таблицы и загрузите в них соответствующие данные:-
Сначала удалите все содержимое (очистите) в редакторе рабочего листа Snowflake. Затем выполните эту SQL-команду, чтобы создать таблицу
customer
:create table raw.jaffle_shop.customers
( id integer,
first_name varchar,
last_name varchar
); -
Удалите все содержимое в редакторе, затем выполните эту команду, чтобы загрузить данные в таблицу
customer
: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
); -
Удалите все содержимое в редакторе, затем выполните эту команду, чтобы загрузить данные в таблицу
orders
: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
); -
Удалите все содержимое в редакторе, затем вы полните эту команду, чтобы загрузить данные в таблицу
payment
: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;