本页介绍了在从 BigQuery 向 Spanner 运行联合查询时如何使用 Spanner Data Boost。借助数据提升 联合查询在运行,对 预配的 Spanner 实例。
借助 Spanner 联合,BigQuery 能够实时查询驻留在 Spanner 中的数据,而无需复制或移动数据。
如需了解 Spanner 联合查询,请参阅 Spanner 联合查询。
如需了解 Data Boost,请参阅 Data Boost 概览。
准备工作
尝试使用 流量提升。
启用 BigQuery Connection API
借助 BigQuery Connection API,您可以 与外部数据源的 BigQuery 连接。
-
Enable the BigQuery connection API.
如需了解详情,请参阅 BigQuery Connection API。
向主账号授予 Data Boost 的 IAM 权限
主账号需要拥有 spanner.instances.get
和 spanner.databases.useDataBoost
Identity and Access Management (IAM) 权限,才能使用 Data Boost 运行查询和导出数据。
我们建议您根据上述说明创建自定义 IAM 角色,
Spanner Database Reader
(roles/spanner.databaseReader
) 并添加
spanner.instances.get
和 spanner.databases.useDataBoost
。
如需了解详情,请参阅预定义角色。
使用 Data Boost 为 Spanner 创建 BigQuery 连接
借助 BigQuery 连接,您可以查询存储在 BigQuery 之外的数据。要在 使用 BigQuery 和 Spanner,您需要创建一个外部数据 连接。然后,您可以运行将 BigQuery 数据与 Spanner 数据。
如需创建使用 Data Boost 的 Spanner 外部数据连接,请选择以下选项之一:
控制台
前往 BigQuery 文档中的创建 Spanner 连接部分,然后按照 Cloud 控制台中的说明操作。
在外部数据源窗格中,选中从 并行和使用 Spanner Data Boost 复选框。
bq
转到创建 Spanner 连接 ,然后按照 bq 操作说明。
将以下连接属性设置为
true
:
useParallelism
useDataBoost
以下示例使用 bq
mk
创建名为“my_connection
”的新连接
Data Boost 的必需属性:
bq mk --connection --connection_type='CLOUD_SPANNER' --location='us' \
--properties='{"database":"projects/my-project/instances/my-instance/databases/my-database", "useParallelism":true, "useDataBoost": true}' my_connection
运行联合查询
如需使用 Data Boost 运行联合查询,请使用指定使用 Data Boost 的 BigQuery 连接。如需了解详情,请参阅为启用了 Data Boost 的 Spanner 创建 BigQuery 连接。
您可以从 Google Cloud 控制台的 Spanner 页面或 BigQuery 开始。
从控制台的 Spanner 页面开始
前往 Google Cloud 控制台中的 Spanner 实例页面。
控制台会显示 Spanner 列表 实例。
选择一个 Spanner 实例,然后选择一个数据库。
在数据库概览页面的导航菜单中,点击 Spanner Studio。
点击在 BiqQuery 中查看标签页。
在在 BigQuery 中查看对话框中,输入连接 ID。
这会创建一个新连接。如果 ID 已存在,则会发生错误。
填写对话框的其余部分,然后选择并行读取数据和 使用 Spanner Data Boost 复选框。
点击在 BigQuery 中查看。
BigQuery Studio 随即打开。输入并运行您的 联合查询。
以下示例向名为
orders
的 Spanner 数据库发出联合查询,并将结果与名为mydataset.customers
的 BigQuery 表联接。SELECT c.customer_id, c.name, rq.first_order_date FROM mydataset.customers AS c LEFT OUTER JOIN EXTERNAL_QUERY( 'my-project.us.example-db', '''SELECT customer_id, MIN(order_date) AS first_order_date FROM orders GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id GROUP BY c.customer_id, c.name, rq.first_order_date;
从 BigQuery 开始
在浏览器中输入以下网址:
https://console.cloud.google.com/bigquery
BigQuery 会在您最近访问的项目中打开,并显示 BigQuery Studio。在此处运行联合查询。
后续步骤
- 如需了解 Data Boost,请访问 Data Boost 概览。
- 在应用中使用 Data Boost
- 监控 Data Boost 用量
- 监控和管理 Data Boost 配额使用情况