如何使用 delta live table 与 google 云存储

问题描述 投票:0回答:2

[来自 databrick 社区的交叉发布:link]

我一直在研究一个 POC 探索带 GCS 位置的 delta 实时表。

我有一些疑问:

如何访问 gcs bucket。我们必须使用数据块服务帐户建立连接。在正常的集群创建中,我们转到集群页面并在

Advanced Options
下我们提供databricks服务帐户电子邮件。对于 delta live 表,因为集群的创建不在我们的控制之下,如何将此电子邮件添加到集群以使 gcs 存储桶路径可访问。

我还尝试通过在 google 服务帐户块下添加服务帐户 sa 来从 UI 编辑增量实时表集群。保存集群失败

  **Error : Dlt prefixed spark images cannot be used outside of Delta live tables service**
当我提供 gs 存储桶路径作为 delta 实时表的 storage 位置时遇到的错误日志:

DataPlaneException: Failed to start the DLT service on cluster <cluster_id>. Please check the stack trace below or driver logs for more details.
 
com.databricks.pipelines.execution.service.EventLogInitializationException: Failed to initialize event log
 
java.io.IOException: Error accessing gs://<path>
 
shaded.databricks.com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
 
GET https://storage.googleapis.com/storage/v1/b/<path>?fields=bucket,name,timeCreated,updated,generation,metageneration,size,contentType,contentEncoding,md5Hash,crc32c,metadata
 
{
 
  "code" : 403,
 
  "errors" : [ {
 
    "domain" : "global",
 
    "message" : "Caller does not have storage.objects.get access to the Google Cloud Storage object. Permission 'storage.objects.get' denied on resource (or it may not exist).",
 
    "reason" : "forbidden"
 
  } ],
 
  "message" : "Caller does not have storage.objects.get access to the Google Cloud Storage object. Permission 'storage.objects.get' denied on resource (or it may not exist)."
 
}
google-cloud-platform databricks delta-lake gcs delta-live-tables
2个回答
0
投票

我们正在努力为 UI 添加更多用于配置存储权限的选项。同时,您可以通过编辑管道的 JSON 设置来控制 DLT 中使用的集群的所有属性:https://docs.databricks.com/workflows/delta-live-tables/delta-live-tables- configuration.html#cluster-configuration


0
投票

首先将DBFS位置挂载到GCS云存储,请看文档

挂载存储账户

并了解如何使用 DLT 轻松构建和部署 SQL 和 Python 管道,并直接在 Google Cloud 上的 Lakehouse 上运行 ETL 工作负载。 请看文档

Databricks 文档

© www.soinside.com 2019 - 2024. All rights reserved.