將資料從 SQL Server 複製到 BigQuery


本教學課程將說明如何建立及部署工作,以便持續將變更的資料從 Microsoft SQL Server 資料庫複製到 BigQuery 資料表。

目標

在本教學課程中,您將執行下列作業:

  1. 在 SQL Server 資料庫中啟用變更資料擷取 (CDC) 功能。
  2. 建立並執行 Cloud Data Fusion 複製工作。
  3. 在 BigQuery 中查看結果。

費用

在本文件中,您會使用 Google Cloud的下列計費元件:

您可以使用 Pricing Calculator 根據預測用量產生預估費用。 新 Google Cloud 使用者可能符合申請免費試用的資格。

複製作業執行時,系統會向您收取 Dataproc 叢集費用,並產生 BigQuery 處理費用。為盡量降低這些費用,我們強烈建議您使用 BigQuery 固定費率價格

事前準備

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.

    Enable the APIs

  4. 在 6.3.0 以上版本建立公開 Cloud Data Fusion 執行個體。如果您建立私人執行個體,請設定 VPC 網路互連。
    • 建立執行個體時,請按一下「新增加速器」,然後選取「複製」核取方塊,啟用複製功能。
    • 如要在現有執行個體中啟用複製功能,請參閱「啟用複製功能」。
  5. 如要進一步瞭解網路,請參閱「搭配使用 HAProxy 和 Cloud Data Fusion 來瀏覽複雜的網路拓撲」。

    必要的角色

    如要取得本教學課程所需的權限,請參閱「使用 IAM 進行存取權控管」和「授予服務帳戶使用者權限」。

選用:設定 SQL Server VM 執行個體

  1. 建立 SQL Server 執行個體

  2. 下載 AdventureWorks2017 (OLTP) 資料庫,然後將資料載入 SQL Server 執行個體。

在 SQL Server 資料庫中啟用 CDC

如要進行複製,請在資料庫和要複製的資料表上啟用變更資料擷取 (CDC)。

建立及執行 Cloud Data Fusion 複製工作

上傳 JDBC 驅動程式

  1. 下載 SQL Server JDBC 驅動程式至本機電腦。

  2. 在 Cloud Data Fusion 網頁介面中,上傳 JDBC 驅動程式。使用這些值設定 JDBC 驅動程式:

    • 在「Name」(名稱) 欄位中輸入 sqlserver
    • 在「Class Name」欄位中輸入 com.microsoft.sqlserver.jdbc.SQLServerDriver
    • 保留「Version」欄位的預設值。

建立工作

  1. 在 Cloud Data Fusion 網頁介面中,按一下「Replication」(複製)

  2. 按一下 「建立複寫工作」

  3. 在「Create new replication job」(建立新的複製工作) 頁面中,指定複製工作「Name」,然後按一下「Next」

  4. 設定來源:

    1. 選取「Microsoft SQL Server」做為來源。
    2. 在「Host」 中,輸入要讀取的 SQL Server 主機名稱。
    3. 在「Port」 中,輸入用於連線至 SQL Server 的通訊埠:1433
    4. 針對「JDBC 外掛程式名稱」,選取 sqlserver 或您在設定 JDBC 驅動程式時指定的名稱。
    5. 在「Database name」(資料庫名稱) 中輸入 AdventureWorks2017
    6. 在「憑證」部分中,輸入存取 SQL Server 的使用者名稱和密碼。
  5. 點按「Next」

  6. 設定目標:

    1. 選取 BigQuery 目標。
    2. 系統會自動偵測專案 ID服務帳戶金鑰。請保留預設值。
    3. 選用:在「進階」部分,您可以設定 Cloud Storage 值區的名稱和位置、載入間隔、暫存資料表前置字串,以及刪除資料表或資料庫時的行為。
  7. 點按「Next」

  8. 如果連線成功,系統會顯示 AdventureWorks2017 資料表清單。在本教學課程中,請選取幾個資料表和事件,例如 InsertUpdateDelete 事件。

  9. 選用步驟:設定進階屬性。在本教學課程中,您可以接受預設設定。

  10. 點按「Next」

  11. 在「評估評估結果」頁面上,按一下任一表格的「查看對應項目」,即可評估結構定義問題、缺少的功能,或複製期間可能發生的連線問題。您必須先解決問題,才能繼續操作。在本教學課程中,如果有任何資料表發生問題,請返回選取資料表的步驟,然後選取沒有問題的資料表或事件。

    如要進一步瞭解從來源資料庫轉換至 BigQuery 目的地的資料類型,請參閱「複製資料類型」。

  12. 點選 [Back] (上一步)

  13. 點按「Next」

  14. 查看複本工作摘要詳細資料,然後按一下「部署複本工作」

開始工作

  • 在「複製工作詳細資料」頁面中,按一下「開始」

複寫工作會從「佈建中」變更為「啟動中」,然後變更為「執行中」狀態。在執行狀態下,複製工作會將所選資料表 (例如 People 資料表) 的初始快照載入 BigQuery。在這個狀態下,People 資料表的狀態會列為「Snapshotting」。初始快照載入 BigQuery 後,對 People 資料表所做的任何變更都會複製到 BigQuery。資料表的狀態會列為「複製中」

監控工作

您可以啟動及停止複製作業、查看複製作業的設定和記錄,以及監控複製作業。

您可以透過「複本工作詳細資料」頁面監控複本工作活動。

  1. 在「複寫」頁面中,按一下複寫工作「名稱」

  2. 按一下「監控」

在 BigQuery 中查看結果

複製工作會在 BigQuery 中建立複製的資料集和資料表,名稱會繼承對應的 SQL Server 資料庫和資料表名稱。

  1. 在Google Cloud 控制台開啟 BigQuery

  2. 在左側面板中,按一下專案名稱,展開資料集清單。

  3. 選取 adventureworks2017 資料集,然後選取要查看的資料表。

詳情請參閱 BigQuery 說明文件

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本教學課程中所用資源的相關費用,請刪除含有該項資源的專案,或者保留專案但刪除個別資源。

完成教學課程後,請刪除在Google Cloud上建立的資源。

刪除 VM 執行個體

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

刪除 Cloud Data Fusion 執行個體

請按照 操作說明刪除 Cloud Data Fusion 執行個體

刪除專案

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

後續步驟