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

Настройка Decodable

Плагин сообщества

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

  • Поддерживается: Decodable
  • Авторы: Decodable Team
  • Репозиторий на GitHub: decodableco/dbt-decodable
  • Пакет на PyPI: dbt-decodable
  • Канал в Slack: #general
  • Поддерживаемая версия dbt Core: 1.3.1 и новее
  • Поддержка dbt Cloud: Не поддерживается
  • Минимальная версия платформы данных: n/a

Установка dbt-decodable

Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

Конфигурация dbt-decodable

Для конфигурации, специфичной для Decodable, пожалуйста, обратитесь к конфигурациям Decodable.

Подключение к Decodable с помощью dbt-decodable

Выполните следующие шаги для подключения к Decodable с помощью dbt.

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

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

Шаги

Чтобы подключиться к Decodable с помощью dbt, вам нужно добавить профиль Decodable в ваш файл profiles.yml. Профиль Decodable имеет следующие поля.

~/.dbt/profiles.yml
dbt-decodable:       
target: dev
outputs:
dev:
type: decodable
database: None
schema: None
account_name: [your account]
profile_name: [name of the profile]
materialize_tests: [true | false]
timeout: [ms]
preview_start: [earliest | latest]
local_namespace: [namespace prefix]

Описание полей профиля

ОпцияОписаниеОбязательно?Пример
typeКонкретный адаптер для использованияОбязательноdecodable
databaseОбязательно, но не используется этим адаптером.Обязательно
schemaОбязательно, но не используется этим адаптером.Обязательно
account_nameИмя вашего аккаунта Decodable.Обязательноmy_awesome_decodable_account
profile_nameИмя вашего профиля Decodable.Обязательноmy_awesome_decodable_profile
materialize_testsУкажите, нужно ли материализовать тесты как пару pipeline/stream. По умолчанию false.Необязательноfalse
timeoutВремя в миллисекундах, в течение которого выполняется запрос предварительного просмотра. По умолчанию 60000.Необязательно60000
preview_startУкажите, откуда должен начинаться предварительный просмотр данных. Если установлено значение earliest, предварительный просмотр начнется с самой ранней возможной записи. Если установлено значение latest, предварительный просмотр начнется с последней записи. По умолчанию earliest.Необязательноlatest
local_namespaceУкажите префикс, который будет добавлен ко всем создаваемым на Decodable сущностям. По умолчанию none, что означает, что префикс не добавляется.Необязательноnone

Поддерживаемые функции

НазваниеПоддерживаетсяПримечания
Материализация таблицДаПоддерживается только материализация таблиц. Модель dbt таблицы преобразуется в пару pipeline/stream в Decodable, обе части имеют одно и то же имя. Пайплайны для моделей автоматически активируются при материализации. Чтобы материализовать ваши модели, выполните команду dbt run, которая выполняет следующие действия:
  1. Создает поток с именем модели и схемой, определенной Decodable из SQL модели.
  2. Создает пайплайн, который вставляет результаты SQL в только что созданный поток.
  3. Активирует пайплайн.
По умолчанию адаптер не удаляет и не пересоздает модель на Decodable, если не обнаружены изменения в модели. Вызов dbt с флагом --full-refresh или установка этой опции конфигурации для конкретной модели приводит к уничтожению и созданию соответствующих ресурсов на Decodable с нуля.
Материализация представленийНет
Инкрементальная материализацияНет
Эфемерная материализацияНет
SeedsДаВыполнение команды dbt seed выполняет следующие шаги для каждого указанного seed:
  1. Создает REST-соединение и связанный с ним поток с тем же именем, что и у seed.
  2. Активирует соединение.
  3. Отправляет данные, хранящиеся в файле .csv seed, в соединение как события.
  4. Деактивирует соединение.
После завершения выполнения команды dbt seed вы можете получить доступ к данным seed в только что созданном потоке.
ТестыДаКоманда dbt test ведет себя по-разному в зависимости от опции materialize_tests, установленной для указанной цели.

Если materialize_tests = false, то тесты выполняются только после завершения задания предварительного просмотра и возврата результатов. Время выполнения задания предварительного просмотра, а также какие записи возвращаются, определяются конфигурациями timeout и preview_start соответственно.

Если materialize_tests = true, то dbt сохраняет указанные тесты как пары pipeline/stream в Decodable. Используйте эту конфигурацию для непрерывного тестирования ваших моделей. Вы можете запустить предварительный просмотр на созданном потоке с помощью Decodable CLI или веб-интерфейса для мониторинга результатов.
ИсточникиНетИсточники в dbt соответствуют соединениям источников Decodable. Однако команда dbt source не поддерживается.
Генерация документацииНетДля получения информации о ваших моделях проверьте ваш аккаунт Decodable.
СнимкиНетСнимки и команда dbt snapshot не поддерживаются.

Дополнительные операции

dbt-decodable предоставляет набор команд для управления ресурсами проекта на Decodable. Эти команды можно выполнить с помощью dbt run-operation {name} --args {args}.

Например, следующая команда выполняет операцию delete_streams

dbt run-operation delete_streams --args '{streams: [stream1, stream2], skip_errors: True}'
stop_pipelines(pipelines)
  • pipelines: Необязательный список имен пайплайнов для деактивации. По умолчанию none.

Деактивировать все пайплайны для ресурсов, определенных в проекте. Если аргумент pipelines предоставлен, то деактивируются только указанные пайплайны.



delete_pipelines(pipelines)
  • pipelines: Необязательный список имен пайплайнов для удаления. По умолчанию none.

Удалить все пайплайны для ресурсов, определенных в проекте. Если аргумент pipelines предоставлен, то удаляются только указанные пайплайны.



delete_streams(streams, skip_errors)
  • streams: Необязательный список имен потоков для удаления. По умолчанию none.
  • skip_errors: Укажите, следует ли рассматривать ошибки как предупреждения. Если установлено значение true, любые ошибки удаления потока сообщаются как предупреждения. Если установлено значение false, операция останавливается, когда поток не может быть удален. По умолчанию true.

Удалить все потоки для ресурсов, определенных в проекте. Если поток связан с пайплайном, то ни пайплайн, ни поток не удаляются. См. операцию очистки для полного удаления пар поток/пайплайн.

cleanup(list, models, seeds, tests)
  • list: Необязательный список имен сущностей ресурсов для удаления. По умолчанию none.
  • models: Укажите, следует ли включать модели при очистке. По умолчанию true.
  • seeds: Укажите, следует ли включать seeds при очистке. По умолчанию true.
  • tests: Укажите, следует ли включать тесты при очистке. По умолчанию true.



Удалить все сущности Decodable, полученные в результате материализации ресурсов проекта, т.е. соединения, потоки и пайплайны. Если аргумент list предоставлен, то удаляются только указанные сущности ресурсов. Если аргументы models, seeds или tests предоставлены, то эти типы ресурсов также включаются в очистку. Тесты, которые не были материализованы, не включаются в очистку.

0