將 My SQL 資料庫 CDC 來源新增至 Eventstream
注意
本文包含 SLAVE
一詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。
本文說明如何將 MySQL 異動數據擷取來源新增至事件數據流。 目前,可從下列服務支援 MySQL 資料庫 CDC,其中可以公開存取資料庫:
- 適用於 MySQL 的 Azure 資料庫
- Amazon RDS for MySQL(適用於MySQL的Amazon關聯式資料庫服務)
- Amazon Aurora MySQL
- Google Cloud SQL for MySQL (GCP)。
本指南使用 適用於 MySQL 的 Azure 資料庫 CDC 作為範例。
將 MySQL 資料庫 CDC 來源新增至事件數據流之後,它會擷取指定數據表的數據列層級變更。 然後,這些變更可以實時處理,並傳送到不同的目的地,以進行進一步分析。
注意
工作區容量的下列區域不支援此來源: 美國西部 3、 瑞士西部。
必要條件
- 在 Fabric 容量授權模式中存取工作區,或具有參與者或更高許可權的試用版授權模式。
- 存取 MySQL 資料庫的實例,例如:適用於 MySQL 的 Azure 資料庫中的資料庫 - 彈性伺服器。
- 您的 MySQL 資料庫必須可公開存取,且不可位於防火牆後方或在 Azure 虛擬網路中受保護。
- 如果您沒有 eventstream, 請建立 eventstream。
設定 MySQL DB
連接器會使用Debezium MySQL連接器來擷取 MySQL 資料庫中的變更。 您必須在傳訊連接器可從中擷取變更的所有資料庫上,定義具有適當權限的 MySQL 使用者。 您可以直接使用 系統管理員使用者 連線到通常具有適當許可權的資料庫,或者您可以遵循下列步驟來建立新的使用者:
注意
新的使用者或系統管理員帳戶和對應的密碼將用於稍後在 Eventstream 內連線到資料庫。
在
mysql
命令提示字元中,建立 MySQL 使用者:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
將所需的權限授與使用者:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
注意
當無法使用全域讀取鎖定時,在像 Amazon RDS 或 Aurora 等雲端託管服務中,使用數據表層級鎖定來建立一致的快照集。 在此情況下,您必須將
LOCK TABLES
許可權授與使用者。 此外,若要在快照集期間支援FLUSH
作業,您可能也需要賦予RELOAD
或FLUSH_TABLES
許可權。完成使用者的權限:
mysql> FLUSH PRIVILEGES;
若要確認使用者或系統管理員是否已授與必要許可權,請執行此命令,然後顯示步驟 2 中的必要許可權:
SHOW GRANTS FOR user;
如需將必要權限授與使用者的詳細資訊,請參閱 MySQL 的 Debezium 連接器:Debezium 檔。
啟用 binlog
您必須啟用 MySQL 複寫的二進位記錄。 二進位記錄事務歷史記錄事務更新,以供復寫工具傳播變更。 本節使用 Azure 資料庫適用於 MySQL 的 CDC 作為範例來顯示設定步驟。
在適用於 MySQL 的 Azure 資料庫帳戶的 Azure 入口網站頁面中,在左側導覽中選取 [設定] 下的 [伺服器參數]。
在 [ 伺服器參數] 頁面上,設定下列屬性,然後選取 [ 儲存]。
針對 [binlog_row_image],選取 [ 完整]。
針對 binlog_expire_logs_seconds,設定服務在清除二進位記錄檔之前等候的秒數。 設定值以符合環境的需求,例如 86400。
將 MySQL DB (CDC) 新增為來源
如果您尚未將任何來源新增至事件串流,請選取 [ 使用外部來源 ] 圖格。
如果您要將來源新增至已發行的事件串流,請切換至 [編輯 模式],選取 功能區上的 [新增來源 ],然後選取 [ 外部來源]。
在 [選取數據源] 頁面上,搜尋並選取 [MySQL DB (CDC)] 圖格上的 [連線]。
設定並連線到 MySQL DB (CDC)
在 [連線] 畫面的 [連線] 底下,選取 [新增連線] 以建立雲端連線。
輸入下列 連線設定 和 MySQL DB 連線憑證,然後選取 [連線]。
伺服器: MySQL 資料庫的伺服器位址,例如 my-mysql-server.mysql.database.azure.com。
資料庫:資料庫名稱,例如 my_database。
線上名稱:自動產生,或者您可以輸入此連線的新名稱。
Username 和 Password:輸入 MySQL 資料庫的認證。 請確定您輸入 伺服器管理員帳戶 或 以授與必要權限所建立的用戶帳戶。
輸入下列資訊來配置 MySQL DB CDC 資料來源,然後選取 下一步。
Table(s):輸入以逗號分隔的資料表名稱清單。 每個資料表名稱皆必須遵循
<database name>.<table name>
格式,例如 my_database.users。伺服器標識碼:輸入 MySQL 叢集中每個伺服器和復寫用戶端的唯一值。 預設值為 1000。
埠:保留預設值不變。
您也可以在右側的 [串流詳細數據] 區段中選取 [來源名稱] 的 [鉛筆] 按鈕,以編輯來源名稱。
注意
為每個讀取器設定不同的伺服器識別碼。 讀取 binlog 的每個 MySQL 資料庫用戶端都應該有唯一標識碼,稱為伺服器識別碼。 MySQL 伺服器會使用此標識符來維護網路連線和 binlog 位置。 共用相同伺服器識別碼的不同作業可能會導致從錯誤的 binlog 位置讀取。 因此,建議為每個讀取器設定不同的伺服器標識符。
在 [檢閱 + 連線] 頁面上,檢閱 MySQL DB CDC 來源的摘要之後,選取 [新增] 以完成設定。
注意
一個 Eventstream 的來源和目的地數目上限為 11。
檢視更新的事件串流
相關內容
其他連接器: