将查询结果导出到 Blob Storage
本文档介绍如何将针对 BigLake 表运行的查询结果导出到 Azure Blob Storage。
如需了解 BigQuery 和 Azure Blob Storage 之间数据流动的方式,请参阅导出数据时的数据流。
限制
如需查看适用于基于 Amazon S3 和 Blob Storage 的 BigLake 表的完整限制列表,请参阅限制。
准备工作
确保您拥有以下资源:
- 用于访问 Blob Storage 的连接。在连接中,必须为要导出到的 Blob Storage 容器路径创建政策。然后,在该政策中,创建具有
Microsoft.Storage/storageAccounts/blobServices/containers/write
权限的角色。 - Blob Storage BigLake 表。
- 如果您使用的是基于容量的价格模式,请确保已为项目启用 BigQuery Reservation API。如需了解价格,请参阅 BigQuery Omni 价格。
导出查询结果
不管现有的任何内容如何,BigQuery Omni 都会将数据写入指定的 Blob Storage 位置。导出查询可能会覆盖现有数据,也可能会将查询结果与现有数据混合在一起。我们建议您将查询结果导出到空 Blob Storage 容器。
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器字段中,输入 GoogleSQL 导出查询:
EXPORT DATA WITH CONNECTION \`CONNECTION_REGION.CONNECTION_NAME\` OPTIONS( uri="azure://AZURE_STORAGE_ACCOUNT_NAME.blob.core.windows.net/CONTAINER_NAME/FILE_PATH/*", format="FORMAT" ) AS QUERY
请替换以下内容:
CONNECTION_REGION
:在其中创建连接的区域。CONNECTION_NAME
:您使用写入容器所需的权限创建的连接名称。AZURE_STORAGE_ACCOUNT_NAME
:要向其中写入查询结果的 Blob Storage 账号的名称。CONTAINER_NAME
:要向其中写入查询结果的容器的名称。FILE_PATH
:您要将导出的文件写入其中的路径。它只能在路径字符串的叶目录中的任何位置包含一个通配符*
,例如../aa/*
、../aa/b*c
、../aa/*bc
、../aa/bc*
。BigQuery 会将*
替换为0000..N
,具体取决于导出的文件数。BigQuery 会确定文件计数和大小。如果 BigQuery 决定导出两个文件,则第一个文件名中的*
会被替换为000000000000
,第二个文件名中的*
会被替换为000000000001
。FORMAT
:支持的格式为JSON
、AVRO
、CSV
、PARQUET
。QUERY
:用于分析存储在 BigLake 表中的数据的查询。
问题排查
如果您收到与 quota failure
相关的错误,请检查您是否为查询预留了容量。如需详细了解槽预留,请参阅本文档中的准备工作部分。
后续步骤
- 了解 BigQuery Omni。
- 了解如何导出表数据。
- 了解如何查询存储在 Blob Storage 中的数据。
- 了解如何为 BigQuery Omni 设置 VPC Service Controls。