gpt4 book ai didi

databricks - 如何在现有数据库之上创建具有只读访问权限的 databricks 数据库

转载 作者:行者123 更新时间:2023-12-03 08:46:48 29 4
gpt4 key购买 nike

我将使用这张图片来形象化我的问题: enter image description here

Databricks1 在 Databricks 中创建数据库(和表)并将其数据存储在存储帐户中。在Databricks2中我想读取数据:Databricks2只有读取权限。我可以直接读取原始增量文件,但我想创建一个在 Databricks UI 中可视化的数据库和表。我认为它会按以下方式工作:

CREATE DATABASE IF NOT EXISTS datastore_panels
LOCATION '/mnt/readOnlyTraining/tmp/panels/';

但这会产生权限错误,尽管 tmp/panels 数据库已经就位。

有没有办法从增量之上的现有资源创建具有只读访问权限的数据库/表?

最佳答案

我已经找到解决办法了。我在这个问题上浪费了相当多的时间,但我从未遇到过有同样问题的人。

解决办法其实很简单,但是你需要知道。我有一个对我的存储帐户具有读取权限的服务主体。

像这样创建数据库(不要提及位置):

CREATE DATABASE IF NOT EXISTS datastore_panels

创建表(使用位置,但不设置表属性或分区:它将从增量表元数据中读取此表):

CREATE TABLE IF NOT EXISTS datastore_panels.customer_data
USING delta
LOCATION '/mnt/readOnlyTraining/delta/customer-data/'

对于那些想更好地理解这个问题的人,这是我之前尝试过的

   %sql
CREATE TABLE IF NOT EXISTS datastore_panels.production_bazeilles_press_shopfloor (
reg_id INT,
year INT,
timestamp_utc TIMESTAMP,
unit STRING,
value DECIMAL (18,8),
descr_total STRING,
descr01 STRING,
descr02 STRING,
descr03 STRING,
descr04 STRING,
descr05 STRING,
descr06 STRING,
descr07 STRING,
descr08 STRING,
descr09 STRING,
descr10 STRING
)
USING delta
PARTITIONED BY (year)
LOCATION '/mnt/blob/panels/production/bazeilles/press/shopfloor'
TBLPROPERTIES ('delta.deletedFileRetentionDuration' = "interval 60 days",
'delta.autoOptimize.optimizeWrite' = 'true'
)

这不起作用,因为 Spark 最终只会读取,但由于指定的列,tblproperties 和 Partitionedby Spark 需要以仅读取访问权限登录到存储帐户,而有人试图更改这些属性。此日志记录步骤是不可能的,因此会返回“无权限”错误。

关于databricks - 如何在现有数据库之上创建具有只读访问权限的 databricks 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61144365/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com