Создать новый проект в dbt

Перейдите в раздел Настройки аккаунтаПроекты в dbt. Он должен иметь URL-адрес, например: https://cloud.getdbt.com/#/accounts/YOUR_ACCOUNT_NUM/settings/

Нажмите Новый проект.

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

Нажмите Начать.

Дайте ему имя и Продолжить. Обратите внимание, что это имя находится в пространстве имен вашей учетной записи dbt, поэтому оно должно быть уникальным только для этой учетной записи.

Выберите хранилище данных BigQuery.

Создайте учетную запись службы Google

Вы можете оставить Name как «Bigquery» — это просто имя типа соединения в dbt.

Мы хотим загрузить JSON-файл сервисного аккаунта, а это значит, что нам нужно перейти в наш аккаунт BigQuery.

В этом пошаговом руководстве предполагается, что у вас уже есть проект и набор данных BigQuery. Если вы этого не сделаете, документ dbt Начало работы Настройка и подключение BigQuery поможет вам разобраться с вашим первым проектом и набором данных BigQuery. (Я также приобрел курс Udemy Введение в Google Cloud BigQuery и нашел его полезным для быстрой настройки в BigQuery. Хотя это и не обязательно.)

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

Перейдите к Мастеру учетных данных BigQuery. Убедитесь, что вы вошли в правильную учетную запись Google и выбрали правильный проект. Если нет, переключитесь на другой аккаунт в правом верхнем углу.

Сначала нам нужно создать «служебную учетную запись» — учетную запись, которой Google разрешит доступ к BigQuery API.

Выберите BigQuery API, Данные приложения и Нет, я их не использую в полях в разделе Тип учетных данных. . Затем нажмите Далее.

На этом этапе мастер учетных данных предоставит вам возможность использовать существующую учетную запись службы. Я создам новую учетную запись, потому что я предоставляю доступ к новому проекту и новому набору данных.

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

Вот Рекомендации Google по использованию и управлению сервисными аккаунтами.

Нажав кнопку Продолжить, мы сможем продолжить создание новой служебной учетной записи.

Заполните имя сервисного аккаунта. Мое соглашение: application + + dataset . Например: dbt-marketing.

Идентификатор сервисного аккаунта создается автоматически из имени.

Опишите, что вы хотите, чтобы этот сервисный аккаунт делал в Описании сервисного аккаунта.

Нажмите Создать и продолжить.

Далее мы предоставим этому сервисному аккаунту доступ к нашим данным BigQuery. В документах dbt рекомендуют назначать роль BigQuery Admin.

Вы также можете назначить две роли:

  • Владелец данных BigQuery
  • Пользователь задания BigQuery

что я думаю, это одно и то же.

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

После предоставления ролей нажмите Продолжить.

Пропустите шаг 3, Предоставьте пользователям доступ к этому сервисному аккаунту. Нажмите Готово.

Создать ключевой файл

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

Нажмите на адрес электронной почты своего сервисного аккаунта в таблице Сервисные аккаунты.

Затем перейдите на вкладку Ключи.

Выберите Создать новый ключ в раскрывающемся списке Добавить ключ.

Откроется модальное окно. Выберите JSON, затем Создать.

Откроется диалоговое окно «Сохранить как», чтобы сохранить этот ключевой файл JSON на свой компьютер. Примечание: это угроза безопасности! Чтобы снизить этот риск:

  1. Дайте файлу явное имя, чтобы его было легко найти.
  2. Сохраните его где-нибудь, где вы сможете его найти.
  3. Удалите его после загрузки в dbt и завершения этого руководства.

Я сохранил его прямо на рабочем столе как dbt-marketing-keyfile.json.

Теперь вы увидите, что ключ активен.

Проверьте соединение с базой данных в dbt

Вернитесь к мастеру настройки dbt.

Настройки BigQuery

Нажмите Загрузить JSON-файл сервисного аккаунта в разделе Настройка подключения к базе данныхНастройки BigQuery.

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

На этой же странице находятся Необязательные настройки BigQuery и Учетные данные для разработчиков.

Дополнительные настройки BigQuery

Местоположение. Я предпочитаю установить местоположение таким же, как и у вашего набора данных в BigQuery. И местоположение моего набора данных BigQuery часто находится ближе всего ко мне или моей команде разработчиков. (Предостережение: см. раздел Как запрашивать наборы данных в разных местах ниже.)

Главная причина:

Я веду базу данных аналитики. Доступность в разных регионах меня не волнует. Скорее, я хочу эффективной производительности вычислений и более быстрых запросов во время разработки. Я могу опубликовать результаты своих преобразований в более доступной базе данных или витрине данных, если это потребуется позже.

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

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

Влияние расположения наборов данных на производительность выполнения запросов BigQuery: региональный - vs- мультирегиональный

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

Вот список всех кодов местоположений BigQuery, или «регионов

Найдите регион вашего набора данных и введите его в поле Местоположение.

Как запрашивать наборы данных в разных местах:Если у вас есть несколько наборов данных BigQuery в разных местах, вы все равно можете запрашивать их в одном проекте DBT, просто оставьте местоположение поле пустое! (Мне потребовалось слишком много времени, чтобы понять это.)

Затем вы можете изменить Время ожидания выполнения задания в секундах или оставить его. В настоящее время установлено значение 5 минут или 300 секунд. Для меня это немного долго — я не пишу очень длинные запросы и регулярно очищаю свои таблицы, чтобы сократить время вычислений. Я установил свой на 120, или 2 минуты.

Я оставляю Повторные попытки задания равным 1.

Полномочия разработки

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

Мне нравится соглашение об именах: dbt + _+ dataset_name+ _ + username . Так что мой в этом примере, dbt_marketing_mzetlow.

Я оставляю Target Name и Threads по умолчанию.

Проверьте свое подключение к BigQuery

Прокрутите страницу вверх и нажмите кнопку Проверить.

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

Нажмите Продолжить.

ВАЖНО: удалите свой ключевой файл

Удалите ключевой файл с вашего компьютера. Не просто переместите его в корзину. Опорожните корзину. Убедитесь, что он удален. Это угроза безопасности, просто сидеть на вашем компьютере!

Подключить dbt к Github

После того, как вы нажмете Продолжить, вы попадете на страницу для подключения к репозиторию Github.

Сначала войдите в Github под своей личной учетной записью/учетной записью разработчика.

Создайте новый репозиторий с правильным владельцем. Назовите репозиторий. Вам пока не нужно включать README или изменять какие-либо другие настройки. dbt имеет процесс init, который через минуту инициализирует репозиторий.

Возвращаясь к dbt, вы пока не увидите этот репозиторий. Вам нужно предоставить dbt доступ к репо.

Выберите вкладку Github, затем откройте гиперссылку профиль в новой вкладке.

Вы перейдете на страницу Интеграции. Нажмите Настроить интеграцию с Github.

Это приведет вас к окну Github, где вы сможете установить или настроить интеграцию dbt Cloud для Github. Нажмите на организацию, в которую вы хотите добавить интеграцию dbt.

Предоставьте Доступ к репозиторию Только избранным репозиториям. Выберите только что созданный репозиторий из раскрывающегося списка. Затем нажмите Сохранить.

Теперь, вернувшись в мастер dbt, если вы обновите страницу Настроить репозиторий и перейдете на вкладку Github, вы увидите свой репозиторий.

Нажмите на свой репозиторий. Подождите, пока он будет импортирован. Когда вы увидите предупреждение «Репозиторий успешно импортирован», нажмите Продолжить.

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

Сделайте свой первый коммит

В среде IDE мы инициализируем наш репозиторий. Нажмите Инициализировать проект.

Затем нажмите Подтвердить на той же зеленой кнопке. Затем введите сообщение фиксации и нажмите другую кнопку Commit в появившемся диалоговом окне.

После успешного завершения вы увидите зеленый значок Готово в правом нижнем углу среды IDE. Вы также можете проверить, что ваша фиксация была отправлена ​​в репозиторий Github.

Вернувшись в dbt Cloud IDE, нажмите создать новую ветку, чтобы создать первую ветку. Назовите и сохраните ветку.

Теперь вы готовы использовать dbt для кодирования в этой ветке!

Первое, что я часто делаю, — это создаю папку staging в папке models, а затем в ней файл test.sql.

А внутри test.sql вы готовы к «приветствующему миру» SQL-запросов (из секционированной таблицы):

  1. выбирать *
  2. из `YOUR_BQ_PROJECT.YOUR_DATASET.YOUR_TABLE`
  3. где дата (_PARTITIONTIME) › «2022–01–01»
  4. ограничение 10