在不复制的情况下在 Databricks 中将云数据源注册为全局 table
Registering a cloud data source as global table in Databricks without copying
鉴于我在 Azure 存储中有一个 Delta table:
wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata
这可以从我的 Databricks 环境中获得。我现在希望通过全局 tables 获得这些数据,自动加载到所有集群并在“数据”部分可见。
我可以通过复制轻松做到这一点:
spark.read\
.load("wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata")\
.write.saveAsTable("my_new_table")
但这很昂贵,我偶尔需要 运行(不过,结构化流媒体会有所帮助)。 但是是否可以直接将源注册为全局table,而不必复制所有文件?
您可以在数据块笔记本单元格中使用 CREATE TABLE USING 语句:
%sql
CREATE TABLE IF NOT EXISTS default.my_new_table
USING DELTA
LOCATION "wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata"
Table my_new_table 应该出现在 databricks 数据选项卡的默认数据库中。
鉴于我在 Azure 存储中有一个 Delta table:
wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata
这可以从我的 Databricks 环境中获得。我现在希望通过全局 tables 获得这些数据,自动加载到所有集群并在“数据”部分可见。
我可以通过复制轻松做到这一点:
spark.read\
.load("wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata")\
.write.saveAsTable("my_new_table")
但这很昂贵,我偶尔需要 运行(不过,结构化流媒体会有所帮助)。 但是是否可以直接将源注册为全局table,而不必复制所有文件?
您可以在数据块笔记本单元格中使用 CREATE TABLE USING 语句:
%sql
CREATE TABLE IF NOT EXISTS default.my_new_table
USING DELTA
LOCATION "wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata"
Table my_new_table 应该出现在 databricks 数据选项卡的默认数据库中。