分享方式:


使用 Azure Data Factory 或 Synapse Analytics,從 Google BigQuery 複製資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

本文概述如何使用 Azure Data Factory 和 Synapse Analytics 管線中的複製活動,從 Google BigQuery 複製資料。 本文是根據複製活動概觀一文,該文提供複製活動的一般概觀。

重要

新的 Google BigQuery 連接器提供改良的原生 Google BigQuery 支援。 如果您在解決方案中使用舊版 Google BigQuery 連接器,請在 2024 年 10 月 31 日之前升級 Google BigQuery 連接器。 如需舊版與最新版本之間差異的詳細資料,請參閱本節

支援的功能

此 Google BigQuery 連接器支援下列功能:

支援的功能 IR
複製活動 (來源/-) (1) (2)
查閱活動 (1) (2)

① Azure 整合執行階段 ② 自我裝載整合執行階段

如需複製活動所支援作為來源或接收器的資料存放區清單,請參閱支援的資料存放區表格。

該服務會提供內建的驅動程式來啟用連線。 因此,您不需要為了使用此連接器而需手動安裝驅動程式。

連接器支援本文中的 Windows 版本。

連接器不再支援 P12 索引鍵檔。 如果您依賴服務帳戶,建議您改用 JSON 金鑰檔。 用於支援 P12 keyfile 的 P12CustomPwd 屬性也已被取代。 如需詳細資訊,請參閱這篇文章

注意

這個 Google BigQuery 連接器會建置於 BigQuery API 之上。 請注意,BigQuery 會限制傳入要求的速率上限,並根據每個專案強制執行適當的配額,請參閱配額與限制 - API 要求 \(英文\)。 請確定您不會觸發太多對帳戶的並行要求。

開始使用

若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:

使用 UI 建立連結至 Google BigQuery 的服務

使用下列步驟,在 Azure 入口網站 UI 中建立連結至 Google BigQuery 的服務。

  1. 前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:

  2. 搜尋 Google BigQuery 並選取連接器。

    Google BigQuery 連接器的螢幕擷取畫面。

  3. 設定服務詳細資料,測試連線,然後建立新的連結服務。

    Google BigQuery 連結服務組態的螢幕擷取畫面。

連接器設定詳細資料

下列各節提供屬性的相關詳細資料,這些屬性是用來定義 Google BigQuery 連接器專屬的實體。

連結服務屬性

以下是針對 Google BigQuery 連結服務所支援的屬性。

屬性 描述 必要
type 類型屬性必須設定為 GoogleBigQueryV2 Yes
projectId 要據以查詢之預設 BigQuery 專案的專案識別碼。 Yes
authenticationType 用於驗證的 OAuth 2.0 驗證機制。
允許的值為 UserAuthenticationServiceAuthentication。 請分別參閱此關於更多屬性的下列資料表各節以及這些驗證類型的 JSON 範例。
Yes

使用使用者驗證

將 "authenticationType" 屬性設定為 [UserAuthentication],並連同上一節所述的一般屬性指定下列屬性:

屬性 描述 必要
clientId 用來產生重新整理權杖之應用程式的識別碼。 Yes
clientSecret 用來產生重新整理權杖之應用程式的祕密。 將此欄位標記為 SecureString 以便安全儲存,或參考 Azure Key Vault 中儲存的祕密 Yes
refreshToken 從 Google 取得的重新整理權杖,用來授權存取 BigQuery。 了解如何從取得 OAuth 2.0 存取權杖 \(英文\) 和這個社群部落格 \(英文\) 取得權杖。 將此欄位標記為 SecureString 以便安全儲存,或參考 Azure Key Vault 中儲存的祕密 Yes

範例:

{
    "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],並連同上一節所述的一般屬性指定下列屬性。

屬性 描述 必要
keyFileContent JSON 格式的金鑰檔案,用於驗證服務帳戶。 將此欄位標記為 SecureString 以便安全儲存,或參考 Azure Key Vault 中儲存的祕密 Yes

範例:

{
    "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 資料集的類型屬性必須設定為:GoogleBigQueryV2Object Yes
資料集 Google BigQuery 資料集的名稱。 否 (如果已指定活動來源中的「查詢」)
table 資料表的名稱。 否 (如果已指定活動來源中的「查詢」)

範例

{
    "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。 複製活動的 [來源] 區段支援下列屬性。

屬性 描述 必要
type 複製活動來源的 type 屬性必須設定為 GoogleBigQueryV2Source Yes
query 使用自訂 SQL 查詢來讀取資料。 例如 "SELECT * FROM MyTable"。 如需詳細資訊,請移至查詢語法 否 (如果已指定資料集中的「資料集」和「資料表」)

範例:

"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>"
            }
        }
    }
]

查閱活動屬性

若要了解屬性的詳細資料,請參閱查閱活動

升級Google BigQuery 連接器

若要升級Google BigQuery連接器,請建立新的Google BigQuery連結服務,並藉由參考 連結服務屬性加以設定。

Google BigQuery 與 Google BigQuery (舊版) 之間的差異

Google BigQuery 連接器提供新功能,並與 Google BigQuery (舊版) 連接器的大部分功能相容。 下表顯示 Google BigQuery 與 Google BigQuery (舊版) 之間的功能差異。

Google BigQuery Google BigQuery (舊版)
Azure 整合執行階段和自我裝載整合執行階段都支援服務驗證。
不支援 trustedCertPath、useSystemTrustStore、email 和 keyFilePath 屬性,因為這些屬性只適用於自我裝載整合執行階段。
只有自我裝載整合執行階段支援服務驗證。
支援 trustedCertPath、useSystemTrustStore、email 和 keyFilePath 屬性。
從 Google BigQuery 資料類型到服務在內部使用的過渡期資料類型皆會使用下列對應。

數值 -> 十進位
時間戳記 -> DateTimeOffset
日期時間 -> DatetimeOffset
從 Google BigQuery 資料類型到服務在內部使用的過渡期資料類型皆會使用下列對應。

數值 -> 字串
時間戳記 -> 日期時間
日期時間 -> 日期時間
不支援 requestGoogleDriveScope。 您還需要藉由參考選擇 Google 雲端硬碟 API 範圍查詢雲端硬碟資料,在 Google BigQuery 服務中套用權限。 支援 requestGoogleDriveScope。
不支援 additionalProjects。 或者,使用 Google Cloud 主控台查詢公用資料集 支援 additionalProjects。

如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區