在不复制的情况下在 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 数据选项卡的默认数据库中。