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

Настройка SingleStore

Плагин, поддерживаемый поставщиком

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

  • Поддерживается: SingleStore, Inc.
  • Авторы: SingleStore, Inc.
  • Репозиторий на GitHub: memsql/dbt-singlestore
  • Пакет на PyPI: dbt-singlestore
  • Канал в Slack: db-singlestore
  • Поддерживаемая версия dbt Core: v1.0.0 и новее
  • Поддержка dbt Cloud: Не поддерживается
  • Минимальная версия платформы данных: v7.5

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

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

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

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

Настройка цели SingleStore

Цели SingleStore должны быть настроены с использованием следующей конфигурации в вашем файле profiles.yml. Если вы используете SingleStore Managed Service, необходимые данные для подключения можно найти на странице вашего кластера в разделе "Connect" -> вкладка "SQL IDE".

~/.dbt/profiles.yml
singlestore:
target: dev
outputs:
dev:
type: singlestore
host: [hostname] # необязательно, по умолчанию localhost
port: [port number] # необязательно, по умолчанию 3306
user: [user] # необязательно, по умолчанию root
password: [password] # необязательно, по умолчанию пусто
database: [database name] # обязательно
schema: [prefix for tables that dbt will generate] # обязательно
threads: [1 or more] # необязательно, по умолчанию 1

Рекомендуется также задать необязательные параметры.

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

ПолеОбязательноОписание
typeДаДолжно быть установлено в singlestore. Это должно быть включено либо в profiles.yml, либо в файл dbt_project.yml.
hostНетИмя хоста сервера SingleStore для подключения.
userНетВаше имя пользователя базы данных SingleStore.
passwordНетВаш пароль базы данных SingleStore.
databaseДаИмя вашей базы данных. Если вы используете пользовательские имена баз данных в конфигурации моделей, они должны быть созданы до запуска этих моделей.
schemaДаСтрока для префикса имен сгенерированных таблиц, если добавлен макрос generate_alias_name (см. ниже). Если вы используете пользовательское имя схемы в конфигурации модели, оно будет объединено с указанным в профиле с помощью _.
threadsНетКоличество потоков, доступных для dbt.

Схема и параллельная разработка

SingleStore не имеет концепции schema, которая соответствует используемой в dbt (пространство имен в базе данных). schema в вашем профиле необходима для корректной работы dbt с метаданными вашего проекта. Например, вы увидите это на странице "dbt docs", даже если это не присутствует в базе данных.

Для поддержки параллельной разработки schema может использоваться для префикса имен таблиц, которые dbt создает в вашей базе данных. Чтобы включить это, добавьте следующий макрос в ваш проект. Этот макрос будет использовать поле 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 %}

Таким образом, если вы установите schema=dev в вашем файле .dbt/profiles.yml и запустите модель customers с соответствующим профилем, dbt создаст таблицу с именем dev__customers в вашей базе данных.

0