Настройка Firebolt
Некоторая основная функциональность может быть ограничена. Если вы заинтересованы в участии, ознакомьтесь с исходным кодом репозитория, указанного ниже.
- Поддерживается: Firebolt
- Авторы: Firebolt
- Репозиторий GitHub: firebolt-db/dbt-firebolt
- Пакет PyPI:
dbt-firebolt - Канал в Slack: #db-firebolt
- Поддерживаемая версия dbt Core: v1.1.0 и новее
- Поддержка dbt: Не поддерживается
- Минимальная версия платформы данных: n/a
Установка dbt-firebolt
Установите адаптер с помощью pip. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с 1.8 установка адаптера не устанавливает dbt-core автоматически. Это потому, что версии адаптеров и dbt Core были развязаны, и мы больше не хотим перезаписывать существующие установки dbt-core.
Используйте следующую команду для установки:
python -m pip install dbt-core dbt-firebolt
Настройка dbt-firebolt
Конфигурацию, специфичную для Firebolt, см. на странице настроек Firebolt.
Для получения другой информации, включая поддержку функций Firebolt, см. GitHub README и changelog.
Подключение к Firebolt
Для получения дополнительной информации, включая поддержку возможностей Firebolt, см. README в GitHub и changelog.
Подключение к Firebolt
Чтобы подключиться к Firebolt из dbt, необходимо добавить профиль в файл profiles.yml. Профиль Firebolt соответствует следующему синтаксису:
<profile-name>:
target: <target-name>
outputs:
<target-name>:
type: firebolt
client_id: "<id>"
client_secret: "<secret>"
database: "<database-name>"
engine_name: "<engine-name>"
account_name: "<account-name>"
schema: <tablename-prefix>
threads: 1
#опциональные поля
host: "<hostname>"
Описание полей профиля Firebolt
Чтобы указать значения в качестве переменных окружения, используйте формат {{ env_var('<variable_name>' }}. Например, {{ env_var('DATABASE_NAME' }}.
| Loading table... |
Устранение неполадок подключения
Если у вас возникают проблемы с подключением к Firebolt из dbt, убедитесь, что выполнены следующие условия:
- У вас должны быть достаточные права доступа к движку и базе данных.
- Ваша учетная запись службы должна быть привязана к пользователю.
- Движок должен быть запущен.
Поддержка параллельной разработки
В dbt схемы баз данных используются для разделения сред разработчиков, чтобы параллельная разработка не вызывала конфликтов имен table. Однако Firebolt в настоящее время не поддерживает схемы баз данных (это в планах). Чтобы обойти это, мы рекомендуем добавить следующий макрос в ваш проект. Этот макрос будет использовать поле schema из вашего файла profiles.yml в качестве префикса имени таблицы.
-- macros/generate_alias_name.sql
{% macro generate_alias_name(custom_alias_name=none, node=none) -%}
{%- if custom_alias_name is none -%}
{{ node.schema }}__{{ node.name }}
{%- else -%}
{{ node.schema }}__{{ custom_alias_name | trim }}
{%- endif -%}
{%- endmacro %}
Для примера того, как это работает, предположим, что Шахар и Эрик работают над одним и тем же проектом.
В своем .dbt/profiles.yml Шахар устанавливает schema=sh, тогда как Эрик устанавливает schema=er. Когда каждый из них запускает модель customers, модели будут размещены в базе данных как таблицы с именами sh_customers и er_customers соответственно. При запуске dbt в производственной среде вы бы использовали еще один profiles.yml с выбранной вами строкой.