本文介绍如何使用 COPY INTO
命令将数据从 Azure 帐户中的 Azure Data Lake Storage (ADLS) 容器加载到 Databricks SQL 中的表中。
本文中的步骤假定管理员已将 SQL 仓库配置为使用 Azure Databricks 服务主体,以便可以在 ADLS 中访问源文件。 如果管理员使用存储凭据配置了 Unity Catalog 外部位置,请参阅使用 COPY INTO 和 Unity Catalog 卷/外部位置加载数据。 如果管理员为你提供了临时凭据(Blob SAS 令牌),请按照使用 COPY INTO 和临时凭据加载数据中的步骤操作。
Databricks 建议在 Databricks SQL 中使用 COPY INTO 命令进行增量和批量数据加载。
备注
COPY INTO
适用于包含数千个文件的数据源。 Databricks 建议使用自动加载程序加载数百万个文件,Databricks SQL 不支持这些文件。
在将数据加载到 Azure Databricks 之前,请确保满足以下条件:
- 访问 ADLS 中的数据。 管理员必须先完成配置数据访问以进行引入中的步骤,以便 Databricks SQL 仓库可以读取你的源文件。
- Databricks SQL 仓库。
- 对 SQL 仓库拥有“可管理”权限。
- 您的数据在 ADLS 容器中的路径。
- 熟悉 Databricks SQL 用户界面。
若要确认你是否有权访问云对象存储中的正确数据,请执行以下操作:
在边栏中,单击“创建”>“查询”。
在 SQL 编辑器的菜单栏中选择一个 SQL 仓库。
在 SQL 编辑器中粘贴以下代码:
select * from csv.<path>
将
<path>
替换为您从管理员处收到的ADLS容器路径。例如,abfss://<container>@<storage-account>.dfs.core.chinacloudapi.cn/<folder>
。单击 “运行” 。
此步骤说明如何在 Azure Databricks 工作区中创建一个表用于保存传入的数据。
在 SQL 编辑器中粘贴以下代码:
CREATE TABLE <catalog_name>.<schema_name>.<table_name> ( tpep_pickup_datetime TIMESTAMP, tpep_dropoff_datetime TIMESTAMP, trip_distance DOUBLE, fare_amount DOUBLE, pickup_zip INT, dropoff_zip INT );
单击 “运行” 。
此步骤介绍如何将数据从 ADLS 容器加载到 Azure Databricks 工作区中的表中。
在边栏中,单击“创建”>“查询”。
在 SQL 编辑器的菜单栏中选择一个 SQL 仓库,并确保该 SQL 仓库正在运行。
在 SQL 编辑器中粘贴以下代码。 在此代码中,请将:
-
<container>
替换为存储帐户中你的ADLS容器的名称。 - 将
<storage-account>
替换为 ADLS 存储帐户的名称。 -
<folder>
替换为包含你的数据的文件夹的名称。 -
<blob-sas-token>
替换为管理员提供的“Blob SAS 令牌”值。
COPY INTO <catalog-name>.<schema-name>.<table-name> FROM 'abfss://<container>@<storage-account>.dfs.core.chinacloudapi.cn/<folder>' FILEFORMAT = CSV FORMAT_OPTIONS ( 'header' = 'true', 'inferSchema' = 'true' ); SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
备注
FORMAT_OPTIONS
与FILEFORMAT
不同。 在本例中,header
选项指示 Azure Databricks 将 CSV 文件的第一行视为标头,inferSchema
选项指示 Azure Databricks 自动确定 CSV 文件中每个字段的数据类型。-
单击 “运行” 。
备注
再次单击“运行”不会将新数据加载到表中。 这是因为,
COPY INTO
命令只处理它视为新数据的内容。
如果你不再想要保留工作区中的关联资源,可以清理这些资源。
在边栏中,单击“创建”>“查询”。
选择一个 SQL 仓库,并确保该 SQL 仓库正在运行。
粘贴以下代码:
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
单击 “运行” 。
将鼠标悬停在此查询的选项卡上,然后单击“X”图标。
在边栏中单击“SQL 编辑器”。
在 SQL 编辑器的菜单栏中,将鼠标悬停在为本教程创建的每个查询的选项卡上,然后单击 X 图标。
- COPY INTO 参考文章