Salesforce Data Cloud 文件共享的 Lakehouse 联邦系统

本页介绍如何使用文件共享连接器读取 Salesforce Data Cloud 中的数据。

我应使用哪个 Salesforce 连接器?

Databricks 为 Salesforce 提供了多个连接器。 有两个零复制连接器:Salesforce Data Cloud 文件共享连接器和 Salesforce Data Cloud 查询联合连接器。 通过它们,可以在 Salesforce Data Cloud 中查询数据,而无需移动数据。 还有一个 Salesforce 引入连接器,用于从各种 Salesforce 产品复制数据。

下表总结了 Databricks 中 Salesforce 连接器之间的差异:

连接器 用例 支持的 Salesforce 产品
Salesforce Data Cloud 文件共享 在 Lakehouse Federation 中使用 Salesforce Data Cloud 文件共享连接器时,Databricks 会调用 Salesforce Data-as-Service (DaaS) API 来直接读取基础云对象存储位置中的数据。 查询在 Databricks 计算上运行,而无需使用 JDBC 协议。
与查询联合相比,文件共享非常适合联合大量数据。 它提高了从多个数据源读取文件的性能,以及更好的下推功能。 请参阅 Lakehouse Federation for Salesforce Data Cloud File Sharing
Salesforce 数据云
Salesforce Data Cloud 查询联合身份验证 在 Lakehouse Federation 中使用 Salesforce Data Cloud 查询联合连接器时,Databricks 使用 JDBC 连接到源数据并将查询向下推送到 Salesforce。 请参阅 在 Salesforce Data Cloud 上运行联合查询 Salesforce 数据云
Salesforce 数据导入 使用 Lakeflow Connect 中的 Salesforce 引入连接器,可以从 Salesforce Platform 数据创建完全托管的引入管道。 此连接器不仅利用 CDP 数据,而且还利用数据智能平台中的 CRM 数据来最大化价值。 请参阅从 Salesforce 引入数据 请参阅 Salesforce 引入连接器支持哪些 Salesforce 产品?

在您开始之前

工作区要求:

  • 已为 Unity Catalog 启用工作区。

计算要求:

  • 从 Databricks 计算资源到 Salesforce Data Cloud API 以及 Salesforce Data Cloud 中存储数据的公有 S3 存储桶的网络连接。 请参阅 Lakehouse Federation 网络建议
  • Azure Databricks 群集必须使用 Databricks Runtime 16.3 或更高版本和标准访问模式。
  • SQL 仓库必须是 Pro 或无服务器仓库。

所需的权限:

  • 若要创建连接,你必须是元存储管理员或对附加到工作区的 Unity Catalog 元存储具有 CREATE CONNECTION 权限的用户。
  • 若要创建外部目录,你必须对元存储具有 CREATE CATALOG 权限,并且是连接的所有者或对连接具有 CREATE FOREIGN CATALOG 特权。

后面的每个基于任务的部分中都指定了其他权限要求。

创建连接和外部目录

连接指定用于访问外部数据库系统的路径和凭据。 若要创建连接,可以使用目录资源管理器,或者使用 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 CREATE CONNECTION SQL 命令。

注释

你还可以使用 Databricks REST API 或 Databricks CLI 来创建连接。 请参阅 POST /api/2.1/unity-catalog/connectionsUnity Catalog 命令

所需的权限:具有 CREATE CONNECTION 特权的元存储管理员或用户。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “数据”图标。目录

  2. 目录窗格顶部,单击Add or plus icon“添加”或“加号”图标,然后从菜单中选择“添加连接”

    或者,在“快速访问”页中,单击“外部数据 >”按钮,转到“连接”选项卡,然后单击“创建连接

  3. 在“设置连接”向导的“连接基本信息”页面上,输入用户友好的连接名称

  4. 选择 Salesforce Data Cloud 文件共享的连接类型

  5. (可选)添加注释。

  6. 单击“ 创建连接”。

  7. “身份验证 ”页上,输入 Salesforce Data Cloud 文件共享实例的以下属性:

    • 租户专用终结点:例如 https://mvsw0mbrmqzdcyj-m02t0mrsh1.pc-rnd.c360a.salesforce.com
    • 核心租户 ID:例如 core/falcontest8-core4sdb26/00DVF000001E16v2AC
  8. “目录基本信息 ”页上,输入外国目录的名称。 外部目录镜像外部数据系统中的数据库,以便可以使用 Azure Databricks 和 Unity Catalog 查询和管理对该数据库中数据的访问。

  9. (可选)单击“测试连接”以确认它是否正常工作。

  10. 单击“创建目录”。

  11. “访问 ”页上,选择用户可以在其中访问所创建的目录的工作区。 您可以选择所有工作区均具有访问权限,或单击分配到工作区,选择工作区,然后单击分配

  12. 更改能够管理对目录中所有对象的访问的 所有者 。 开始在文本框中键入主体,然后单击返回的结果中的主体。

  13. 授予对目录的“特权”。 单击“授权”

    a。 指定将有权访问目录中对象的 主体 。 开始在文本框中键入主体,然后单击返回的结果中的主体。 a。 选择“特权预设”以对每个主体授权。 默认情况下,向所有帐户用户授予 BROWSE

    • 从下拉菜单中选择 “数据读取者 ”,以授予 read 对目录中对象的权限。
    • 从下拉菜单中选择 “数据编辑器”,以向 readmodify 授予目录中对象的权限。
    • 手动选择要授予的权限。

    a。 单击授权

  14. 单击 “下一步”

  15. 在“元数据”页上,指定标记键值对。 有关详细信息,请参阅 将标记应用于 Unity 目录安全对象

  16. (可选)添加注释。

  17. 单击“ 保存”。

  18. 记下Account URLConnection URL。 你需要这些值才能在 Salesforce 中创建数据共享目标。

SQL

  1. 在笔记本或 Databricks SQL 查询编辑器中运行以下命令。

    CREATE CONNECTION <connection-name> TYPE SALESFORCE_DATA_CLOUD_FILE_SHARING
    OPTIONS (
        tenant_specific_endpoint '<tenant_specific_endpoint>',
        core_tenant_id '<core_tenant_id>'
    );
    
  2. 转到新创建连接的连接页面,并记下Account URLConnection URL。 你需要这些值才能在 Salesforce 中创建数据共享目标。

在 Salesforce 中创建数据共享目标

在 Salesforce 中使用您在上一步中检索到的Account URLConnection URL创建数据共享目标。

请参阅 Salesforce 文档中 的“创建数据共享目标”(Databricks )。

数据类型映射

从 Salesforce 数据云文件共享读取到 Spark 时,数据类型映射如下:

Salesforce Data Cloud 文件共享类型 Spark 类型
编号 DecimalType(38,18)
布尔 BooleanType
文本 字符串类型
日期 日期类型
日期/时间 时间戳类型
电子邮件(文本) 字符串类型
百分比(数字) DecimalType(38,18)
电话(短信) 字符串类型
URL (文本) 字符串类型

局限性

  • 连接器不能与单用户群集一起使用。