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

Настройка DuckDB

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

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

  • Поддерживается: Community
  • Авторы: Josh Wills (https://github.com/jwills)
  • Репозиторий на GitHub: duckdb/dbt-duckdb
  • Пакет на PyPI: dbt-duckdb
  • Канал в Slack: #db-duckdb
  • Поддерживаемая версия dbt Core: v1.0.1 и новее
  • Поддержка dbt Cloud: Not Supported
  • Минимальная версия платформы данных: DuckDB 0.3.2

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

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

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

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

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

DuckDB — это встроенная база данных, похожая на SQLite, но предназначенная для аналитики в стиле OLAP, а не OLTP. Единственный параметр конфигурации, который требуется в вашем профиле (в дополнение к type: duckdb), это поле path, которое должно указывать на путь в вашей локальной файловой системе, где вы хотите, чтобы файл базы данных DuckDB (и его связанный журнал предзаписи) был записан. Вы также можете указать параметр schema, если хотите использовать схему, отличную от стандартной (которая называется main).

Также существует поле database, определенное в классе DuckDBCredentials для согласованности с родительским классом Credentials, но оно по умолчанию установлено в main, и изменение его на что-то другое может привести к странным последствиям, которые невозможно полностью предсказать, поэтому, пожалуйста, избегайте его изменения.

Начиная с версии 1.2.3, вы можете загружать любые поддерживаемые расширения DuckDB, перечисляя их в поле extensions в вашем профиле. Вы также можете задать любые дополнительные опции конфигурации DuckDB через поле settings, включая опции, поддерживаемые в любых загруженных расширениях.

Например, чтобы иметь возможность подключаться к s3 и читать/записывать файлы parquet с использованием ключа доступа AWS и секрета, ваш профиль будет выглядеть примерно так:

profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: duckdb
path: 'file_path/database_name.duckdb'
extensions:
- httpfs
- parquet
settings:
s3_region: my-aws-region
s3_access_key_id: "{{ env_var('S3_ACCESS_KEY_ID') }}"
s3_secret_access_key: "{{ env_var('S3_SECRET_ACCESS_KEY') }}"
0