Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описывается, как настроить Lakehouse Federation для выполнения федеративных запросов к данным Salesforce Data 360, которые не управляются Azure Databricks. Дополнительные сведения о Федерации Lakehouse см. в статье "Что такое Федерация Lakehouse?"
Чтобы подключиться к базе данных Salesforce Data 360 с помощью Федерации Lakehouse, необходимо создать следующее в хранилище метаданных каталога Unity Azure Databricks (рабочие области, созданные после 9 ноября 2023 г., уже подготовлены к хранилищу метаданных каталога Unity):
- Подключение к базе данных Salesforce 360.
- Внешний каталог, который отражает базу данных Salesforce Data 360 в каталоге Unity, чтобы использовать синтаксис запросов каталога Unity и средства управления данными для управления доступом пользователей Azure Databricks к базе данных.
Какой соединитель Salesforce следует использовать?
Databricks предлагает несколько соединителей для Salesforce. Существует два соединителя с нулевым копированием: соединитель общего доступа к файлам Salesforce Data 360 (прежнее название — Data Cloud) и соединитель федерации запросов Salesforce Data 360. Они позволяют запрашивать данные в Salesforce Data 360 без перемещения. Существует также коннектор загрузки данных Salesforce, который копирует данные из различных продуктов Salesforce, включая Salesforce Data 360 и Salesforce Sales Cloud.
В следующей таблице приведены различия между соединителями Salesforce в Databricks:
| Соединитель | Сценарий использования | Поддерживаемые продукты Salesforce |
|---|---|---|
| Общий доступ к файлам Salesforce Data 360 | При использовании соединителя общего доступа к файлам Salesforce Data 360 в Федерации Lakehouse Databricks вызывает API Salesforce Data-as-Service (DaaS) для чтения данных в базовом расположении хранилища объектов облака напрямую. Запросы выполняются в вычислениях Databricks без использования протокола JDBC. По сравнению с федерацией запросов общий доступ к файлам идеально подходит для федерации большого объема данных. Она обеспечивает улучшенную производительность при чтении файлов из нескольких источников данных и улучшенные возможности оптимизации работы запросов. См. Lakehouse Federation для совместного использования файлов Salesforce Data 360. |
Salesforce Data 360 |
| Федерация запросов Salesforce Data 360 | При использовании соединителя федерации запросов Salesforce Data 360 в Федерации Lakehouse Databricks использует JDBC для подключения к исходным данным и отправки запросов в Salesforce. См. статью "Запуск федеративных запросов" в Salesforce Data 360. | Salesforce Data 360 |
| Интеграция Salesforce | Коннектор интеграции данных Salesforce в Lakeflow Connect позволяет создавать полностью управляемые конвейеры для загрузки данных с платформы Salesforce. Этот разъем максимизирует ценность, используя не только данные CDP, но и CRM в платформе интеллектуального управления данными. См. загрузка данных из Salesforce. | Узнайте , какие продукты Salesforce поддерживает соединитель приема Salesforce. |
Прежде чем вы начнете
Требования к рабочему пространству
- Рабочая область активирована для Unity Catalog. Рабочие области, созданные после 9 ноября 2023 г., автоматически включены для каталога Unity, включая автоматическую подготовку хранилища метаданных. Вам не нужно создавать хранилище метаданных вручную, если ваша рабочая область была создана до автоматического включения и не была включена для Unity Catalog. См. автоматическое включение каталога Unity.
Требования к вычислениям
- Сетевые подключения от вычислительного ресурса к целевым системам баз данных. Смотрите Рекомендации по сетевым настройкам для федерации Lakehouse.
- Compute Azure Databricks должен использовать Databricks Runtime версии 15.2 или выше и режим доступа Standard или Dedicated.
- Хранилища SQL должны быть профессиональными или бессерверными и должны использовать 2024.30 или более поздней версии.
Требуются разрешения
- Чтобы создать подключение, необходимо быть администратором хранилища метаданных или пользователем с правами
CREATE CONNECTIONв хранилище метаданных каталога Unity, подключенном к рабочей области. В рабочих областях, автоматически включённых в каталог Unity, администраторы рабочих областей по умолчанию имеютCREATE CONNECTIONпривилегии. - Чтобы создать внешний каталог, необходимо иметь разрешение
CREATE CATALOGв хранилище метаданных и быть обладателем подключения или иметь привилегиюCREATE FOREIGN CATALOGна подключение. В рабочих областях, автоматически включённых в каталог Unity, администраторы рабочих областей по умолчанию имеютCREATE CATALOGпривилегии.
Дополнительные требования к разрешениям указаны в каждом из следующих разделов, основанных на задачах.
Создайте подключенное приложение Salesforce
Приложения, подключенные к Salesforce, позволяют внешнему приложению интегрироваться с Salesforce с использованием API и стандартных протоколов. В этом разделе описывается, как создать подключенное приложение с помощью единого входа, чтобы разрешить Databricks проходить проверку подлинности с помощью Salesforce.
Примечание
Дополнительные инструкции см. в статье "Создание подключенного приложения " в документации по Salesforce Data 360.
Чтобы создать подключенное приложение Salesforce, выполните следующие действия:
- В правом верхнем углу data 360 нажмите кнопку "Настройка".
- В разделе "Инструменты платформы" щелкните "Диспетчер приложений".>
- Нажмите Новое подключённое приложение.
- Введите имя и адрес электронной почты контакта .
- Включить настройки OAuth:
- Введите Callback URL в следующем формате:
https://<databricks_instance_url>/login/oauth/salesforce.html. Например:https://cust-success.cloud.databricks.com/login/oauth/salesforce.html. - (Необязательно) Если вы планируете использовать SQL для создания подключения Azure Databricks и каталога сторонних приложений на следующем шаге, ваше приложение "Salesforce Connected App" также должно поддерживать URI перенаправления
https://login.salesforce.com/services/oauth2/success. Это не нужно, если вы планируете использовать обозреватель каталогов для создания подключения Azure Databricks и внешнего каталога. Databricks рекомендует использовать обозреватель каталогов, так как он требует меньше действий вручную, чем другие методы. - Добавьте следующие области действия:
- Доступ ко всем ресурсам API Data 360 (cdp_api)
- Управляйте данными пользователей через API (api)
- Выполнение запросов ANSI SQL для данных 360 (cdp_query_api)
- Выполняйте запросы в любое время (refresh_token, offline_access)
- Нажмите кнопку Сохранить.
- Нажмите кнопку Продолжить.
- Введите Callback URL в следующем формате:
- На странице обзора подключенного приложения нажмите кнопку "Управление сведениями о потребителе". Вам будет предложено пройти аутентификацию.
- После успешной аутентификации раскрываются значения ключа клиента и секрета клиента. Сохраните эти значения. Их потребуется при создании подключения Azure Databricks.
Создайте соединение Azure Databricks
Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать обозреватель каталогов или команду CREATE CONNECTION SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.
Примечание
Вы также можете использовать REST API Databricks или CLI Databricks для создания соединения. См. POST /api/2.1/unity-catalog/connections и команды каталога Unity .
Требуются разрешения: администратор метахранилища или пользователь с привилегиями CREATE CONNECTION.
Обозреватель каталогов
- В рабочей области Azure Databricks щелкните
Каталог.
- В верхней части области каталога щелкните
" и выберите "Создать подключение" в меню. - На странице Основы подключения мастера Настройка подключения введите удобное для пользователя Имя подключения.
- Выберите тип подключенияSalesforce Data 360.
- (Необязательно) Добавьте комментарий.
- На странице проверки подлинности введите следующие свойства подключения для salesforce Data 360:
- (Необязательно) Выберите песочницу
. - идентификатор клиента: ключ потребителя подключенного приложения Salesforce.
- секрет клиента приложения: потребительский секрет подключенного приложения Salesforce.
-
область клиента:
cdp_api api cdp_query_api refresh_token offline_access
- (Необязательно) Выберите песочницу
- Войдите через Salesforce, нажав
. - (OAuth) Вам будет предложено войти в Salesforce Data 360 с помощью учетных данных единого входа.
- После успешного входа вы возвращаетесь в мастер настройки подключения Databricks . Кнопка Войти с помощью Salesforce была заменена сообщением
Successfully authorized. - Нажмите Create connection (Создать подключение).
- На странице Основы каталога введите имя иностранного каталога. Внешний каталог зеркально отражает базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity.
- Войдите в пространство данных Salesforce.
- (Необязательно) Нажмите Проверить подключение, чтобы убедиться, что оно работает.
- Нажмите Создать каталог.
- На странице Access выберите рабочие области, в которых пользователи могут получить доступ к созданному каталогу. Вы можете выбрать Все рабочие области имеют доступ, или нажать Назначить рабочие области, выбрать рабочие области, а затем нажать Назначить.
- Измените владельца , который сможет управлять доступом ко всем объектам в каталоге. Начните вводить адресата в текстовом поле, а затем выберите адресата в возвращенных результатах.
- Предоставить привилегии для каталога. Нажмите кнопку "Предоставить":
- Укажите принципалов , у которых будет доступ к объектам в каталоге. Начните вводить адресата в текстовом поле, а затем выберите адресата в возвращенных результатах.
- Выберите предустановки привилегий , чтобы предоставить их каждому принципалу. Все пользователи учетной записи получают
BROWSEпо умолчанию.- В раскрывающемся меню выберите средство чтения данных , чтобы предоставить привилегии
readобъектам каталога. - Выберите Редактор данных в раскрывающемся меню, чтобы предоставить
readиmodifyпривилегии на объекты в каталоге. - Вручную выберите привилегии для предоставления.
- В раскрывающемся меню выберите средство чтения данных , чтобы предоставить привилегии
- Нажмите Grant.
- Нажмите кнопку Далее.
- На странице метаданных укажите пары "ключ-значение" для тегов. Дополнительные сведения см. в статье Применение тегов к защищаемым объектам каталога Unity.
- (Необязательно) Добавьте комментарий.
- Нажмите кнопку Сохранить.
SQL
Databricks рекомендует использовать обозреватель каталогов для создания подключения и внешнего каталога, так как для этого требуется меньше действий вручную, чем другие методы.
Если вы планируете использовать SQL для создания подключения Azure Databricks и внешнего каталога, ваше приложение Salesforce Connected должно поддерживать URI перенаправления https://login.salesforce.com/services/oauth2/success. Это не требуется, если вы используете обозреватель каталогов.
Создайте коды проверки и вызова для PKCE. Вы можете сделать это, используя инструмент онлайн, такой как https://tonyxu-io.github.io/pkce-generator/, или запустив следующий скрипт на Python:
%python import base64 import re import os import hashlib code_verifier = base64.urlsafe_b64encode(os.urandom(40)).decode('utf-8') code_verifier = re.sub('[^a-zA-Z0-9]+', '', code_verifier) code_challenge = hashlib.sha256(code_verifier.encode('utf-8')).digest() code_challenge = base64.urlsafe_b64encode(code_challenge).decode('utf-8') code_challenge = code_challenge.replace('=', '') print(f"pkce_verifier = \"{code_verifier}\"") print(f"code_challenge = \"{code_challenge}\"")Перейдите по следующему URL-адресу и выполните проверку подлинности с учетными данными Salesforce, чтобы получить
authorization_code(замените<client_id>и<code_challenge>параметрами).https://login.salesforce.com/services/oauth2/authorize ?client_id=<client_id> &redirect_uri=https://login.salesforce.com/services/oauth2/success &response_type=code &code_challenge=<code_challenge>В коде авторизации с кодировкой URL виден перенаправленный URL.
Выполните следующие действия в блокноте или в редакторе запросов SQL Databricks:
CREATE CONNECTION '<Connection name>' TYPE salesforce_data_cloud OPTIONS ( client_id '<Consumer key from Salesforce Connected App>', client_secret '<Consumer secret from Salesforce Connected App>', pkce_verifier '<pkce_verifier from the last step>', authorization_code '<URL decoded `authorization_code`, should end with == instead of %3D%3D>', oauth_redirect_uri "https://login.salesforce.com/services/oauth2/success", oauth_scope "cdp_api api cdp_query_api refresh_token offline access", is_sandbox "false" );Databricks рекомендует использовать секреты Azure Databricks вместо открытых строк для конфиденциальных значений, таких как учетные данные. Рассмотрим пример.
CREATE CONNECTION '<Connection name>' TYPE salesforce_data_cloud OPTIONS ( client_id secret ('<Secret scope>','<Secret key client id>'), client_secret secret ('<Secret scope>','<Secret key client secret>'), pkce_verifier '<pkce_verifier from the last step>', authorization_code '<URL decoded `authorization_code`, should end with == instead of %3D%3D>', oauth_redirect_uri "https://login.salesforce.com/services/oauth2/success", oauth_scope "cdp_api api cdp_query_api refresh_token offline access", is_sandbox "false" );Сведения о настройке секретов см. в разделе "Управление секретами".
Создание внешнего каталога
Примечание
Если вы используете пользовательский интерфейс для создания подключения к источнику данных, включается создание внешнего каталога, и вы можете пропустить этот шаг.
Внешний каталог зеркально отражает базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity. Чтобы создать внешний каталог, вы используете подключение к источнику данных, который уже определен.
Чтобы создать внешний каталог, можно использовать обозреватель каталогов или команду SQL CREATE FOREIGN CATALOG в записной книжке Azure Databricks или редакторе запросов SQL. Для создания каталога можно также использовать REST API Databricks или интерфейс командной строки Databricks. См. POST /api/2.1/unity-catalog/catalogs и команды Unity Catalog.
Требуемые разрешения:CREATE CATALOG разрешение на метахранилище и либо владение соединением, либо привилегия на соединение.
Обозреватель каталогов
- В рабочей области Azure Databricks щелкните
Каталог , чтобы открыть обозреватель каталогов.
- В правом верхнем углу щелкните Создать каталог.
- Введите следующие свойства каталога Salesforce Data 360.
- имя каталога: удобное для пользователя имя каталога.
-
Тип:
Foreign. - Название соединения: Название соединения, на котором будет создан каталог.
- Пространство данных: пространство данных Salesforce.
- Нажмите кнопку Создать.
SQL
Выполните следующую SQL-команду в ноутбуке или редакторе запросов SQL. Элементы в скобках являются необязательными.
CREATE FOREIGN CATALOG [IF NOT EXISTS] '<catalog-name>' USING CONNECTION '<connection-name>'
OPTIONS (dataspace '<dataspace>');
Замените следующие значения:
-
<catalog-name>: -
<connection-name>: -
<dataspace>: Пространство данных Salesforce. Например,default.
Поддерживаемые pushdowns
Поддерживаются следующие методы снижения:
- Фильтры
- Проекции
- Лимит
- Агрегаты
- Смещение
- Актёрский состав
- Содержит, Начинается с, Заканчивается на
Отображения типов данных
При чтении из Salesforce Data 360 в Spark типы данных сопоставляются следующим образом:
| Тип Salesforce Data 360 | Тип Spark |
|---|---|
| Булев | Тип Boolean |
| Дата | Тип данных |
| Дата и время | Тип временной метки |
| Электронная почта, Телефон, Текст, Ссылка | Тип строки |
| Число, Процент | DecimalType(38, 18) |
Ограничения
- Поддерживается только одно пространство данных Salesforce для каталога Databricks.
- В Databricks Runtime версии 16.1 и предыдущих версиях поддержка чувствительных к регистру названий таблиц и схем отсутствует. Сюда входят имена с заглавными буквами на Salesforce Data 360. Например,
MyTableне поддерживается.