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

Конфигурация Salesforce Data Cloud

Предупреждение

Этот адаптер находится на стадии Alpha и не готов для использования в production. Его следует использовать только в sandbox или тестовых окружениях.

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

Поддерживаемые материализации

MaterializationSupportedNotes
View
TableСоздаёт пакетное преобразование данных (batch data transform) и объект Data Lake Object (DLO)
IncrementalComing soon
Ephemeral
Seeds
SourcesОбязательно
Custom data tests
Snapshots
Loading table...

Источники данных (sources)

Для моделей, которые запрашивают сырые данные Data Cloud, необходимо ссылаться на таблицу через dbt source. Прямой выбор DLO не поддерживается.

Например:

sources:
- name: default
tables:
- name: raw_customers__dll
description: "Customers raw table stored in default dataspace"
columns:
- name: id__c
description: "Customer ID"
data_tests:
- not_null
- unique
- name: first_name__c
description: "Customer first name"
- name: last_name__c
description: "Customer last name"
- name: email__c
description: "Customer email address"
data_tests:
- not_null
- unique

Материализация таблиц

dbt Fusion поддерживает материализацию Table в Salesforce Data Cloud. Выполнение такой материализации приводит к созданию batch data transform и Data Lake Object (DLO), который используется для запросов.

В настоящее время поддерживается только DLO типа profile. Поддержка DLO типа engagement появится в ближайшее время. Для Profile DLO в конфигурации модели обязательно должен быть указан primary_key. Например:

{{ config(
materialized='table',
primary_key='customer_id__c',
category='Profile'
) }}

select

id__c as customer_id__c,
first_name__c,
last_name__c,
email__c as customer_email__c

from {{ source('default', 'raw_customers__dll') }}

Правила именования и обязательные конфигурации

  • Все имена dbt‑моделей должны оканчиваться на __dll. Если этот суффикс отсутствует в имени файла, он будет автоматически добавлен при выполнении (например, model_name станет model_name__dll). Это приведёт к поломке downstream‑ссылок dbt, поскольку dbt будет искать DLO с именем model_name, тогда как в Data Cloud он будет называться model_name__dll.
  • Имена колонок должны оканчиваться на __c. Отсутствие этого суффикса приводит к ошибке Data Cloud «unknown syntax».
  • Имена моделей не могут содержать двойные подчёркивания (__) за пределами финального суффикса __dll. Например, модель supplies__agg__dll будет собрана как agg__dll, что может вызвать путаницу в downstream‑refs.
  • Все dbt‑модели должны быть сконфигурированы с primary_key и category='Profile' в конфигурации модели. Эти настройки также можно задать в resources.yml и dbt_project.yml.

Известные ограничения

  • Повторные запуски dbt‑моделей: из‑за архитектуры Data Cloud, связанной с управлением метаданными и зависимостями, dbt не может повторно запустить одну и ту же модель, если преобразование данных и DLO уже существуют. Это связано с тем, что dbt не может удалить DLO при последующих запусках table‑материализаций, как это обычно происходит в дата‑вейрхаусах. Если вы изменили логику между запусками, необходимо вручную удалить зависимости преобразования данных и DLO в UI перед выполнением dbtf run. Исправление находится в разработке.
  • Статический анализ в VS Code: затрагиваются линейдж на уровне колонок и кнопки dbt (Build и Test). Вы можете либо временно отключить статический анализ, запуская команды с флагом --static-analysis off, либо настроить переменные окружения, установив DBT_STATIC_ANALYSIS=off.
  • Произвольные запросы (например, SELECT 1 AS foo): все запросы должны быть привязаны к определённому dbt source перед созданием dbt‑модели.
  • select *: запросы к метаданным могут завершаться ошибкой, так как Data Cloud добавляет системные колонки в каждый DLO. Исправление бага находится в разработке.

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

0
Loading