适用于:Azure 数据工厂
Azure Synapse Analytics
本文概述如何使用 Azure 数据工厂和 Synapse Analytics 管道中的复制活动从 Google BigQuery 复制数据。 本文基于总体概述复制活动的复制活动概述一文。
重要
新的 Google BigQuery 连接器提供更卓越的本机 Google BigQuery 支持。 如果你在解决方案中使用的是旧版 BigQuery 连接器,请在 2024 年 10 月 31 日之前升级 BigQuery 连接器。 有关旧版和最新版本之间的差异的详细信息,请参阅此部分。
以下功能支持此 Google BigQuery 连接器:
① Azure 集成运行时 ② 自承载集成运行时
有关复制活动支持作为源或接收器的数据存储列表,请参阅支持的数据存储表。
服务提供了内置驱动程序,用来启用连接。 因此,无需要手动安装驱动程序即可使用此连接器。
连接器支持此文章中的 Windows 版本。
注意
此 Google BigQuery 连接器在 BigQuery API 的基础上构建。 请注意,BigQuery 会限制传入请求的最大速率并按项目强制实施适当的配额,请参阅配额和限制 - API 请求。 请确保不会触发过多的帐户并发请求。
若要使用此连接器,需要以下 Google BigQuery 的最低权限:
- bigquery.connections.*
- bigquery.datasets.*
- bigquery.jobs.*
- bigquery.readsessions.*
- bigquery.routines.*
- bigquery.tables.*
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用以下步骤在 Azure 门户 UI 中创建一个到 Google BigQuery 的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索 Google 并选择 Google BigQuery 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
对于特定于 Google BigQuery 连接器的实体,以下部分提供了有关用于定义这些实体的属性的详细信息。
Google BigQuery 链接服务支持以下属性。
属性 | 描述 | 必需 |
---|---|---|
type | type 属性必须设置为 GoogleBigQuery。 | 是 |
project | 针对其查询的默认 BigQuery 项目的项目 ID。 | 是 |
additionalProjects | 要访问的公共 BigQuery 项目的项目 ID 逗号分隔列表。 | 否 |
requestGoogleDriveScope | 是否要请求访问 Google Drive。 允许 Google Drive 访问可支持将 BigQuery 数据与 Google Drive 中的数据组合的联合表。 默认值是 false秒。 | 否 |
authenticationType | 用于身份验证的 OAuth 2.0 身份验证机制。 ServiceAuthentication 只能在自承载集成运行时上使用。 允许的值为 UserAuthentication 和 ServiceAuthentication。 有关这些身份验证类型的其他属性和 JSON 示例,请分别参阅此表格下面的部分。 |
是 |
将“authenticationType”属性设置为“UserAuthentication” ,并指定以下属性及上节所述的泛型属性:
属性 | 描述 | 必须 |
---|---|---|
clientId | 应用程序的 ID,用于生成刷新令牌。 | 是 |
clientSecret | 应用程序的机密,用于生成刷新令牌。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 | 是 |
refreshToken | 从 Google 获得的刷新令牌,用于授权访问 BigQuery。 从获取 OAuth 2.0 访问令牌和此社区博客了解如何获取刷新令牌。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 | 是 |
获取 OAuth 2.0 刷新令牌所需的最低范围为 https://www.googleapis.com/auth/bigquery.readonly
。 如果计划运行可能返回大型结果的查询,则可能需要其他范围。 有关详细信息,请参阅此文章。
示例:
{
"name": "GoogleBigQueryLinkedService",
"properties": {
"type": "GoogleBigQuery",
"typeProperties": {
"project" : "<project ID>",
"additionalProjects" : "<additional project IDs>",
"requestGoogleDriveScope" : true,
"authenticationType" : "UserAuthentication",
"clientId": "<id of the application used to generate the refresh token>",
"clientSecret": {
"type": "SecureString",
"value":"<secret of the application used to generate the refresh token>"
},
"refreshToken": {
"type": "SecureString",
"value": "<refresh token>"
}
}
}
}
将“authenticationType”属性设置为“ServiceAuthentication” ,并指定以下属性及上节所述的泛型属性。 此身份验证类型只能在自承载 Integration Runtime 上使用。
属性 | 描述 | 必须 |
---|---|---|
电子邮件 | 用于 ServiceAuthentication 的服务帐户电子邮件 ID。 它只能在自承载集成运行时上使用。 | 否 |
keyFilePath | .json 密钥文件的完整路径,该文件用于对服务帐户电子邮件地址进行身份验证。 |
是 |
trustedCertPath | 包含受信任 CA 证书(通过 TLS 进行连接时用来验证服务器)的 .pem 文件的完整路径。 仅当在自承载集成运行时上使用 TLS 时,才能设置此属性。 默认值是随集成运行时一起安装的 cacerts.pem 文件。 | 否 |
useSystemTrustStore | 指定是使用系统信任存储中的 CA 证书还是使用指定 .pem 文件中的 CA 证书。 默认值是 false秒。 | 否 |
注意
连接器不再支持 P12 密钥文件。 如果依赖于服务帐户,建议改用 JSON 密钥文件。 还弃用了用于支持 P12 密钥文件的 P12CustomPwd 属性。 有关详细信息,请参阅此文章。
示例:
{
"name": "GoogleBigQueryLinkedService",
"properties": {
"type": "GoogleBigQuery",
"typeProperties": {
"project" : "<project id>",
"requestGoogleDriveScope" : true,
"authenticationType" : "ServiceAuthentication",
"email": "<email>",
"keyFilePath": "<.json key path on the IR machine>"
},
"connectVia": {
"referenceName": "<name of Self-hosted Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Google BigQuery 数据集支持的属性列表。
要从 Google BigQuery 复制数据,请将数据集的 type 属性设置为 GoogleBigQueryObject。 支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | 数据集的 type 属性必须设置为:GoogleBigQueryObject | 是 |
dataset | Google BigQuery 数据集的名称。 | 否(如果指定了活动源中的“query”) |
表 | 表的名称。 | 否(如果指定了活动源中的“query”) |
tableName | 表的名称。 支持此属性是为了向后兼容。 对于新的工作负荷,请使用 dataset 和 table 。 |
否(如果指定了活动源中的“query”) |
示例
{
"name": "GoogleBigQueryDataset",
"properties": {
"type": "GoogleBigQueryObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<GoogleBigQuery linked service name>",
"type": "LinkedServiceReference"
}
}
}
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Google BigQuery 源类型支持的属性列表。
要从 Google BigQuery 复制数据,请将复制活动中的源类型设置为“GoogleBigQuerySource” 。 复制活动的 source 节支持以下属性。
属性 | 描述 | 必需 |
---|---|---|
type | 复制活动源的 type 属性必须设置为 GoogleBigQuerySource。 | 是 |
query | 使用自定义 SQL 查询读取数据。 例如 "SELECT * FROM MyTable" 。 |
否(如果指定了数据集中的“tableName”) |
示例:
"activities":[
{
"name": "CopyFromGoogleBigQuery",
"type": "Copy",
"inputs": [
{
"referenceName": "<GoogleBigQuery input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "GoogleBigQuerySource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
若要了解有关属性的详细信息,请查看 Lookup 活动。
有关复制活动支持作为源和接收器的数据存储的列表,请参阅受支持的数据存储。