Compartir a través de

使用 Azure 数据工厂或 Synapse Analytics 从 Google BigQuery 存储复制数据

适用于:Azure 数据工厂 Azure Synapse Analytics

本文概述如何使用 Azure 数据工厂和 Synapse Analytics 管道中的复制活动从 Google BigQuery 复制数据。 本文基于总体概述复制活动的复制活动概述一文。

重要

新的 Google BigQuery 连接器提供更卓越的本机 Google BigQuery 支持。 如果你在解决方案中使用的是旧版 BigQuery 连接器,请在 2024 年 10 月 31 日之前升级 BigQuery 连接器。 有关旧版和最新版本之间的差异的详细信息,请参阅此部分

支持的功能

以下功能支持此 Google BigQuery 连接器:

支持的功能 IR
复制活动(源/-) ① ②
Lookup 活动 ① ②

① Azure 集成运行时 ② 自承载集成运行时

有关复制活动支持作为源或接收器的数据存储列表,请参阅支持的数据存储表。

服务提供了内置驱动程序,用来启用连接。 因此,无需要手动安装驱动程序即可使用此连接器。

注意

此 Google BigQuery 连接器在 BigQuery API 的基础上构建。 请注意,BigQuery 会限制传入请求的最大速率并按项目强制实施适当的配额,请参阅配额和限制 - API 请求。 请确保不会触发过多的帐户并发请求。

入门

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建一个到 Google BigQuery 的链接服务

使用以下步骤在 Azure 门户 UI 中创建一个到 Google BigQuery 的链接服务。

  1. 浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:

  2. 搜索 Google BigQuery 并选择连接器。

    Google BigQuery 连接器的屏幕截图。

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    Google BigQuery 的链接服务配置的屏幕截图。

连接器配置详细信息

对于特定于 Google BigQuery 连接器的实体,以下部分提供了有关用于定义这些实体的属性的详细信息。

链接服务属性

Google BigQuery 链接服务支持以下属性。

属性 描述 必需
type type 属性必须设置为 GoogleBigQueryV2。
projectId 针对其查询的默认 BigQuery 项目的项目 ID。
authenticationType 用于身份验证的 OAuth 2.0 身份验证机制。
允许的值为 UserAuthentication 和 ServiceAuthentication。 有关这些身份验证类型的其他属性和 JSON 示例,请分别参阅此表格下面的部分。

使用用户身份验证

将“authenticationType”属性设置为“UserAuthentication” ,并指定以下属性及上节所述的泛型属性:

属性 描述 必须
clientId 应用程序的 ID,用于生成刷新令牌。
clientSecret 应用程序的机密,用于生成刷新令牌。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密
refreshToken 从 Google 获得的刷新令牌,用于授权访问 BigQuery。 从获取 OAuth 2.0 访问令牌此社区博客了解如何获取刷新令牌。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密

示例:

{
    "name": "GoogleBigQueryLinkedService",
    "properties": {
        "type": "GoogleBigQueryV2",
        "typeProperties": {
            "projectId" : "<project ID>",
            "authenticationType" : "UserAuthentication",
            "clientId": "<client ID>",
            "clientSecret": {
                "type": "SecureString",
                "value":"<client secret>"
            },
            "refreshToken": {
                "type": "SecureString",
                "value": "<refresh token>"
            }
        }
    }
}

使用服务身份验证

将“authenticationType”属性设置为“ServiceAuthentication” ,并指定以下属性及上节所述的泛型属性。

properties 描述 必须
keyFileContent 用于对服务帐户进行身份验证的密钥文件(采用 JSON 格式)。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密

示例:

{
    "name": "GoogleBigQueryLinkedService",
    "properties": {
        "type": "GoogleBigQueryV2",
        "typeProperties": {
            "projectId": "<project ID>",
            "authenticationType": "ServiceAuthentication",
            "keyFileContent": {
                "type": "SecureString",
                "value": "<key file JSON string>"
            }
        }
    }
}

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Google BigQuery 数据集支持的属性列表。

要从 Google BigQuery 复制数据,请将数据集的 type 属性设置为 GoogleBigQueryV2Object。 支持以下属性:

属性 描述 必需
type 数据集的 type 属性必须设置为:GoogleBigQueryV2Object
dataset Google BigQuery 数据集的名称。 否(如果指定了活动源中的“query”)
表的名称。 否(如果指定了活动源中的“query”)

示例

{
    "name": "GoogleBigQueryDataset",
    "properties": {
        "type": "GoogleBigQueryV2Object",
        "linkedServiceName": {
            "referenceName": "<Google BigQuery linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [],
        "typeProperties": {
            "dataset": "<dataset name>",
            "table": "<table name>"
        }
    }
}

复制活动属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Google BigQuery 源类型支持的属性列表。

以 GoogleBigQuerySource 作为源类型

要从 Google BigQuery 复制数据,请将复制活动中的源类型设置为 GoogleBigQueryV2Source。 复制活动的 source 节支持以下属性。

属性 描述 必需
type 复制活动源的 type 属性必须设置为 GoogleBigQueryV2Source。
query 使用自定义 SQL 查询读取数据。 示例为 "SELECT * FROM MyTable"。 有关详细信息,请转到查询语法 否(如果指定了数据集中的“dataset”和“table” )

示例:

"activities":[
    {
        "name": "CopyFromGoogleBigQuery",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Google BigQuery input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "GoogleBigQueryV2Source",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

查找活动属性

若要了解有关属性的详细信息,请查看 Lookup 活动

升级 Google BigQuery 连接器

若要升级 Google BigQuery 连接器,请创建一个新的 Google BigQuery 链接服务,并按照链接服务属性对其进行配置。

Google BigQuery 和 Google BigQuery 之间的差异(旧版)

Google BigQuery 连接器提供新功能,并与 Google BigQuery(旧版)连接器的大多数功能兼容。 下表显示了 Google BigQuery 和 Google BigQuery(旧版)之间的功能差异。

Google BigQuery Google BigQuery(旧版)
Azure 集成运行时和自承载集成运行时支持服务身份验证。
不支持受信任的CertPath、useSystemTrustStore、电子邮件和 keyFilePath 的属性,因为它们仅在自承载集成运行时上可用。
服务身份验证仅受自承载集成运行时支持。
支持 trustedCertPath、useSystemTrustStore、电子邮件和 keyFilePath 属性。
以下映射用于从 Google BigQuery 数据类型到服务内部使用的临时数据类型。

Numeric -> Decimal
Timestamp -> DateTimeOffset
Datetime -> DatetimeOffset
以下映射用于从 Google BigQuery 数据类型到服务内部使用的临时数据类型。

Numeric -> String
Timestamp -> DateTime
Datetime -> DateTime
不支持 requestGoogleDriveScope。 还需要通过引用选择 Google Drive API 范围查询驱动器数据来应用 Google BigQuery 服务中的权限。 支持请求 GoogleDriveScope。
不支持 additionalProjects。 或者,使用 Google Cloud 控制台查询公共数据集。 支持 additionalProjects。

有关复制活动支持作为源和接收器的数据存储的列表,请参阅受支持的数据存储