# Подключение Decodable к dbt v1

Локальная разработка

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

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

* **Поддерживается**: Decodable
* **Авторы**: Decodable Team
* **Репозиторий GitHub**: [decodableco/dbt-decodable](https://github.com/decodableco/dbt-decodable) [![](https://img.shields.io/github/stars/decodableco/dbt-decodable?style=for-the-badge)](https://github.com/decodableco/dbt-decodable)
* **Пакет PyPI**: `dbt-decodable` [![](https://badge.fury.io/py/dbt-decodable.svg)](https://badge.fury.io/py/dbt-decodable)
* **Канал Slack**: [#general](https://decodablecommunity.slack.com)
* **Поддерживаемая версия dbt**: 1.3.1 и новее
* **Поддержка dbt**: Не поддерживается
* **Минимальная версия платформы данных**: n/a

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

Установите адаптер с помощью \`pip\`: `python -m pip install dbt-decodable`

## Настройка dbt-decodable

Конфигурацию, специфичную для Decodable, см. на странице [настроек Decodable.](https://docs.getdbt.tech/reference/resource-configs/no-configs.md)

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

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

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

Для правильного подключения к Decodable у вас должен быть установлен Decodable CLI, и вы должны хотя бы раз войти в Decodable с его помощью. См. [Установка Decodable CLI](https://docs.decodable.co/docs/setup#install-the-cli-command-line-interface) для получения дополнительной информации.

### Шаги

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

\~/.dbt/profiles.yml

```yaml
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 модели.<br />2. Создает пайплайн, который вставляет результаты SQL в только что созданный поток.<br />3. Активирует пайплайн. По умолчанию адаптер не удаляет и не пересоздает модель на Decodable, если не обнаружены изменения в модели. Вызов dbt с флагом `--full-refresh` или установка этой опции конфигурации для конкретной модели приводит к уничтожению и созданию соответствующих ресурсов на Decodable с нуля. |
| Материализация представлений   | Нет            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Инкрементальная материализация | Нет            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Эфемерная материализация       | Нет            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Seeds                          | Да             | Выполнение команды `dbt seed` выполняет следующие шаги для каждого указанного seed: 1. Создает REST-соединение и связанный с ним поток с тем же именем, что и у seed.<br />2. Активирует соединение.<br />3. Отправляет данные, хранящиеся в файле `.csv` seed, в соединение как события.<br />4. Деактивирует соединение. После завершения выполнения команды `dbt seed` вы можете получить доступ к данным seed в только что созданном потоке.                                                                                                                                                                                                                                                                                                                                                                                   |
| Тесты                          | Да             | Команда `dbt test` ведет себя по-разному в зависимости от опции `materialize_tests`, установленной для указанной цели.<br /><br />Если `materialize_tests = false`, то тесты выполняются только после завершения задания предварительного просмотра и возврата результатов. Время выполнения задания предварительного просмотра, а также какие записи возвращаются, определяются конфигурациями `timeout` и `preview_start` соответственно.<br /><br />Если `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`

```text
dbt run-operation delete_streams --args '{streams: [stream1, stream2], skip_errors: True}'
```

**stop\_pipelines(pipelines)**

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

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

<br />

<br />

**delete\_pipelines(pipelines)**

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

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

<br />

<br />

**delete\_streams(streams, skip\_errors)**

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

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

**cleanup(list, models, seeds, tests)**

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

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