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

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

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

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

重要

该服务发布了一款新的 Google BigQuery 连接器,它提供了更好的原生 Google BigQuery 支持。有关详细信息,请参阅 Google 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 并选择 Google BigQuery 连接器。

    Google BigQuery 连接器的屏幕截图。

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

    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 只能在自承载集成运行时上使用。
允许的值为 UserAuthenticationServiceAuthentication。 有关这些身份验证类型的其他属性和 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 .p12.json 密钥文件的完整路径,该文件用于对服务帐户电子邮件地址进行身份验证。
trustedCertPath 包含受信任 CA 证书(通过 TLS 进行连接时用来验证服务器)的 .pem 文件的完整路径。 仅当在自承载集成运行时上使用 TLS 时,才能设置此属性。 默认值是随集成运行时一起安装的 cacerts.pem 文件。
useSystemTrustStore 指定是使用系统信任存储中的 CA 证书还是使用指定 .pem 文件中的 CA 证书。 默认值是 false秒。

示例:

{
    "name": "GoogleBigQueryLinkedService",
    "properties": {
        "type": "GoogleBigQuery",
        "typeProperties": {
            "project" : "<project id>",
            "requestGoogleDriveScope" : true,
            "authenticationType" : "ServiceAuthentication",
            "email": "<email>",
            "keyFilePath": "<.p12 or .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 表的名称。 支持此属性是为了向后兼容。 对于新的工作负荷,请使用 datasettable 否(如果指定了活动源中的“query”)

示例

{
    "name": "GoogleBigQueryDataset",
    "properties": {
        "type": "GoogleBigQueryObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<GoogleBigQuery linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

复制活动属性

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

以 GoogleBigQuerySource 作为源类型

要从 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 活动

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