將資料從 MySQL 複製到 BigQuery


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

目標

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

  1. 在 Compute Engine 上部署 MySQL 資料庫。
  2. 設定 MySQL 資料庫以啟用複製功能。
  3. 建立及執行 Cloud Data Fusion 複製作業。
  4. 在 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. Verify that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  4. 建立公開的 Cloud Data Fusion 執行個體,版本須為 6.3.0 以上。如果建立私人執行個體,請設定虛擬私有雲網路對等互連。
    • 建立執行個體時,按一下「新增加速器」,然後選取「複製」核取方塊,即可啟用複製功能。
    • 如要在現有執行個體中啟用這項功能,請參閱「啟用複製功能」。
  5. 必要的角色

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

    在 Compute Engine 中安裝 MySQL

    1. 下載 MySQL Server Docker 映像檔。

    2. 上傳 Docker 映像檔至 Artifact Registry。

    3. 部署新的 VM 執行個體上的 Docker 映像檔。

    4. 在 Compute Engine 的「Disks」頁面中,將磁碟大小變更為 500 GB,然後重新啟動 VM。

      前往「Disks」(磁碟) 頁面

    5. 為 VM 執行個體建立防火牆

    6. 安裝 Sakila 範例資料庫

    在 MySQL 資料庫中啟用複製功能

    如要啟用複製功能,請在 MySQL 中設定變更資料擷取 (CDC)

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

    上傳 JDBC 驅動程式

    1. 將 MySQL JDBC 驅動程式 (版本 8 以上) 下載至本機電腦。

    2. 在 Cloud Data Fusion 網頁介面中上傳 JDBC 驅動程式

      使用這些值設定 JDBC 驅動程式:

      • 在「Name」(名稱) 欄位中輸入 mysql
      • 保留「Version」(版本) 欄位的預設值。
      • 在「Class Name」(類別名稱) 欄位中輸入 com.mysql.jdbc.Driver

    建立工作

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

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

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

    4. 設定來源:

      1. 選取「MySQL」MySQL做為來源。
      2. 在「Host」(主機) 部分,輸入要從中讀取資料的 MySQL 伺服器主機名稱。
      3. 在「通訊埠」中,輸入用來連線至 MySQL 伺服器的通訊埠:3306
      4. 在「JDBC Plugin Name」部分,選取 mysql 或您設定 JDBC 驅動程式時指定的名稱。
      5. 在「Database Name」(資料庫名稱) 中輸入 sakila
      6. 在「憑證」部分,輸入使用者名稱和密碼,存取 MySQL 伺服器。
    5. 點選「下一步」

    6. 設定目標:

      1. 選取 BigQuery 目標。
      2. 系統會自動偵測專案 ID服務帳戶金鑰。 請保留預設值。
      3. 選用:在「進階」部分,設定暫存值區的名稱、位置、載入間隔、暫存表格前置字元,以及表格或資料庫遭捨棄時的行為。
    7. 點選「下一步」

    8. 如果連線成功,系統會顯示 Sakila 範例資料庫表格清單。在本教學課程中,請選取要複製的幾個表格和事件,例如「插入」、「更新」和「刪除」事件。

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

    10. 點選「下一步」

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

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

    12. 點選「下一步」

    13. 查看摘要複製工作詳細資料,然後按一下「Deploy replication job」(部署複製工作)

    啟動工作

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

    複製作業會從「佈建中」轉換為「啟動中」,然後進入「執行中」狀態。在執行狀態下,複寫工作會將您選取的資料表資料初始快照載入 BigQuery。在此狀態下,表格的狀態會列為「Snapshotting」(建立快照)。將初始快照載入 BigQuery 後,對資料表所做的任何變更都會複製到 BigQuery,且資料表的狀態會列為「正在複製」

    監控工作

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

    您可以在「Replication job details」(複寫工作詳細資料) 頁面監控複寫工作活動。

    1. 在「Replication」(複寫) 頁面中,按一下複寫作業的「Name」(名稱)

    2. 按一下「監控」

    在 BigQuery 中查看結果

    複製作業會在 BigQuery 中建立複製的資料集和資料表,並沿用對應的 MySQL 資料庫和資料表名稱。

    1. 前往 Google Cloud 控制台的「BigQuery」頁面。

      前往 BigQuery

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

    3. 如要查看結果,請選取 sakila 資料集,然後選取資料表。

    詳情請參閱 BigQuery 說明文件

    清除所用資源

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

    完成本教學課程後,請清除您在Google Cloud 上建立的資源,這樣這些資源就不會占用配額,您日後也無須為其付費。下列各節將說明如何刪除或關閉這些資源。

    刪除 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.

    後續步驟