Перейти к основному содержимому
(Версии dbt: v2.0 и новее)

Подключение Apache Spark к dbt v2 Бета-версия

dbt v2 поддерживает Apache Spark, ускоряя компиляцию и выполнение ваших проектов dbt на базе Spark. В настоящее время dbt v2 поддерживает только Apache Spark 3.0.

dbt v2 и Spark​

При работе со Spark dbt v2 использует диалект Databricks SQL для статического анализа. Databricks SQL — это надмножество Spark SQL, поэтому ваш SQL проверяется в соответствии с семантикой Databricks. Это обеспечивает всестороннюю проверку ошибок и функции анализа SQL. В одном из будущих выпусков планируется добавить отдельный диалект Spark SQL для статического анализа.

Аутентификация​

Адаптер Spark в dbt v2 поддерживает:

  • Thrift
    • Механизм PLAIN протокола Simple Authentication and Security Layer (SASL)
    • Без SASL (NOSASL)
  • Livy
    • Базовую аутентификацию (имя пользователя и пароль)
    • При развертывании в Amazon Web Services (AWS): AWS Signature Version 4
      • Поддерживается аутентификация с использованием единого входа, служебных учетных записей или пользовательских токенов

Настройка dbt v2​

Настройте подключение к Spark в profiles.yml:

~/.dbt/profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: spark
method: CONNECTION_METHOD # thrift, http, or livy
port: PORT_NUMBER
auth: AUTH_METHOD
schema: SCHEMA_NAME
host: HOSTNAME
platform_hint: PLATFORM_HINT # optional; aws_emr_serverless or aws_emr_eks
server_side_parameters: # optional; required keys depend on platform_hint
livy.server.session.ttl: SESSION_TTL_SECONDS # optional when using method: livy
Поле профиляОбязательноеОписаниеПример
methodДаМетод подключения. Допустимые значения: thrift, http или livy.thrift
portДаНомер порта для подключения.443
authДаМетод аутентификации.SASL PLAIN, NOSASL, AWS_SIGV4
schemaДаИмя базы данных или схемы, в которой dbt будет создавать объекты и выполнять запросы к ним.analytics
hostДаИмя хоста кластера Spark или рабочей области Databricks.yourorg.sparkhost.com
platform_hintНетУказывает dbt v2, какую платформу Spark вы используете. dbt v2 использует это значение для проверки обязательных параметров в server_side_parameters. Допустимые значения: aws_emr_serverless, aws_emr_eks. Если параметр не указан, dbt v2 предполагает, что используется обычный кластер Spark.aws_emr_serverless
server_side_parametersНетПараметры сеанса Spark, передаваемые кластеру.

Обязательные ключи при использовании platform_hint:
- Для aws_emr_serverless используйте emr-serverless.session.executionRoleArn.
- Для aws_emr_eks используйте spark.kubernetes.namespace.

При использовании method: livy можно задать livy.server.session.ttl, чтобы настроить время, в течение которого сеанс может оставаться неактивным до его завершения.
См. примеры профилей.

Примеры профилей​

~/.dbt/profiles.yml
spark-local-thrift-binary:
target: spark
outputs:
spark:
type: spark
method: thrift
port: 10000
auth: NOSASL
host: localhost
schema: my_schema

Подробные сведения о параметрах конфигурации см. на странице Настройка Spark.

Нашли ошибку?

0
Loading