[Ultimate]{class="badge positive"}
Databricks
Databricks是一个基于云的平台,专为数据分析、机器学习和AI而设计。 您可以使用Databricks集成并提供整体环境,以便大规模构建、部署和管理数据解决方案。
使用Databricks源连接您的帐户并将Databricks数据摄取到Adobe Experience Platform。
先决条件
完成先决条件步骤以成功将您的Databricks帐户连接到Experience Platform。
检索容器凭据
检索您的Experience Platform Azure Blob Storage凭据,以使您的Databricks帐户以后能够访问它。
要检索您的凭据,请向Connectors API的/credentials端点发出GET请求。
API格式
GET /data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source
请求
以下请求检索Experience Platform Azure Blob Storage的凭据。
| code language-shell |
|---|
|
响应
成功的响应提供了您的凭据(containerName、SASToken、storageAccountName),供以后在Databricks的Apache Spark配置中使用。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| 属性 | 描述 |
containerName |
Azure Blob Storage容器的名称。 稍后在完成Databricks的Apache Spark配置时将使用此值。 |
SASToken |
Azure Blob Storage的共享访问签名令牌。 此字符串包含授权请求所需的所有信息。 |
storageAccountName |
存储帐户的名称。 |
SASUri |
Azure Blob Storage的共享访问签名URI。 此字符串是您正在接受身份验证的Azure Blob Storage的URI及其对应的SAS令牌的组合。 |
expiryDate |
SAS令牌的过期日期。 您必须在到期日期之前刷新您的令牌,以便继续在您的应用程序中使用它来将数据上载到Azure Blob Storage。 如果您未在规定的到期日期之前手动刷新令牌,则它将在执行GET凭据调用时自动刷新并提供新令牌。 |
刷新您的凭据
要刷新凭据,请发出POST请求并包含action=refresh作为查询参数。
API格式
POST /data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source&action=refresh
请求
以下请求刷新您Azure Blob Storage的凭据。
| code language-shell |
|---|
|
响应
成功的响应将返回您的新凭据。
| code language-json |
|---|
|
配置对您的Azure Blob Storage的访问权限
-
如果群集已终止,服务将在流运行期间自动重新启动群集。 但是,在创建连接或数据流时,必须确保群集处于活动状态。 此外,如果您正在执行数据预览或探索等操作,则群集必须处于活动状态,因为这些操作无法提示自动重新启动已终止的群集。
-
您的Azure容器包含一个名为
adobe-managed-staging的文件夹。 为确保数据的无缝摄取,不要修改此文件夹。
接下来,必须确保您的Databricks群集具有访问Experience Platform Azure Blob Storage帐户的权限。 在执行此操作时,您可以使用Azure Blob Storage作为写入delta lake表数据的临时位置。
要提供访问权限,您必须在Databricks群集上将SAS令牌配置为Apache Spark配置的一部分。
在Databricks界面中,选择Advanced options,然后在Spark config输入框中输入以下内容。
fs.azure.sas.{CONTAINER_NAME}.{STORAGE-ACCOUNT}.blob.core.windows.net {SAS-TOKEN}
如果未提供,则流运行中的复制活动将失败并返回以下错误:
Unable to access container '{CONTAINER_NAME}' in account '{STORAGE_ACCOUNT}.blob.core.windows.net' using anonymous credentials. No credentials found in the configuration. Public access is not permitted on this storage account.
Unity目录治理和群集访问模式
Databricks源连接器在摄取期间对Databricks群集执行读写(I/O)操作。 这些操作需要Unity Catalog对象权限,并且根据群集的访问模式,需要其他群集级别的权限。 请在连接前配置这两者。
授予Unity目录权限
将源对象的以下Unity Catalog权限授予连接(服务主体)使用的标识:
USE CATALOGUSE SCHEMASELECT配置群集的访问模式
选择数据库群集使用的访问模式并完成相应的配置。
标准(共享)访问模式
标准(共享)访问模式强制表访问控制。 除了上述Unity Catalog授权外,连接器的I/O操作还需要ANY FILE权限。 将其授予连接器的服务主体:
GRANT SELECT ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
GRANT MODIFY ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
ANY FILE是直接文件访问权限的旧版特权,不受Unity目录管辖 — 它的作用范围比Unity目录对象权限更广,并且本身不会授予或绕过对Unity目录对象的访问权限(Unity目录表仍需要自己的UC权限)。 请与您的安全团队一起审查;要避免授予权限,请改用专用访问模式。如果群集访问模式所需的权限未就位,则在执行期间摄取将失败,并出现以下错误:
[INSUFFICIENT_PERMISSIONS] ... on any file. SQLSTATE: 42501.
将Databricks连接到Experience Platform
现在您已完成先决步骤,可以继续操作,并将您的Databricks帐户连接到Experience Platform: