將資料從 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. 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. 必要的角色

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

在 Compute Engine 中安裝 MySQL

  1. 下載 MySQL Server Docker 映像檔。

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

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

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

    前往「磁碟」

  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」(建立新的複製工作) 頁面中,指定複製工作「Name」,然後按一下「Next」

  4. 設定來源:

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

  6. 設定目標:

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

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

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

  10. 點按「Next」

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

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

  12. 點按「Next」

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

開始工作

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

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

監控工作

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

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

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

  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.

後續步驟