本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
注意
除了中國區域和亞太區域 (馬來西亞) AWS 區域之外 AWS GovCloud (US) Regions,Firehose 支援資料庫做為所有 的來源。此功能處於預覽狀態,可能會有所變更。請勿將其用於您的生產工作負載。
開始之前,請先完成下列先決條件。
-
來源資料庫組態 – 您需要下列來源資料庫組態,才能使用資料庫做為 Firehose 串流的來源。
-
建立具有正確許可的快照浮水印資料表 – 對於資料表中資料的初始複製 (快照),Firehose 使用增量複製方法搭配浮水印來追蹤進度。此增量複製方法有助於從停止的位置繼續複製,然後在發生任何中斷時重新擷取資料表。Firehose 會在資料庫中使用浮水印資料表來存放所需的浮水印。Firehose 每個 Firehose 串流都需要一個浮水印資料表。如果在建立 Firehose 串流之前尚未建立資料表,則 Firehose 會將此資料表建立為建立串流的一部分。您必須提供適當的許可,Firehose 才能建立此資料表。
-
建立資料庫使用者 – Firehose 需要具有適當許可的資料庫使用者帳戶,才能建立資料表的初始複本、從交易日誌讀取 CDC 事件、存取浮水印資料表,以及建立浮水印資料表。您將使用此資料庫使用者名稱和密碼做為 Firehose 登入資料的一部分,以在串流設定期間連線至您的資料庫。
-
啟用交易日誌 – 交易日誌會依遞交至資料庫的順序記錄所有資料庫變更,例如 INSERT、UPDATE 和 DELETE。Firehose 會讀取交易日誌,並將變更複寫至 Apache Iceberg 資料表。如果交易日誌未啟用,您必須啟用它。
-
新增傳入和傳出規則 – 若要允許資料庫的私有連線,您必須在資料庫 VPC 的安全群組中新增 HTTPS 流量的傳入規則和傳出規則,以及資料庫 VPC 中資料庫 (MySQL 或 PostgreSQL) 流量的傳入規則。對於來源資料欄,請使用 VPC 的 IPv4 CIDR 範圍。
若要建立浮水印資料表、資料庫使用者和啟用交易日誌,請遵循中的步驟設定資料庫連線。
-
-
啟用資料庫的私有連線 – Firehose 支援使用 AWS PrivateLink 技術連線至 VPC 內的資料庫。若要啟用資料庫的私有連線,請參閱使用 AWS PrivateLink 和 Network Load Balancer 跨 VPCs 存取 Amazon RDS
。以下是連線至資料庫時需要注意的一些要點。 -
這些步驟也適用於在 EC2 上執行的資料庫。
-
您必須將此範例中使用的 Lambda 函數逾時從預設的 3 秒增加到 5 分鐘。
-
在執行 Lambda 函數將主要執行個體 IP 地址更新為 Network Load Balancer 之前,您必須建立 VPC 端點, AWS 其服務名稱與資料庫 VPC
com.amazonaws.us-east-1.elasticloadbalancing
相同,因此 Lambda 可以與 Elastic Load Balancing 服務通訊。 -
您必須允許列出 Firehose 服務主體,
firehose.amazonaws.com
才能 AWS PrivateLink 建立至您的 VPC。如需詳細資訊,請參閱管理許可。請勿新增此服務角色的 ARN。僅firehose.amazonaws.com
新增至允許主體。 -
您必須確保透過 Amazon VPC 停用所需的接受選項,以允許端點服務自動接受連線請求。這可讓 Firehose 建立必要的端點連線,而不需要任何手動介入。如需如何停用連線請求的詳細資訊,請參閱接受或拒絕連線請求。
-
-
將登入資料存放於 AWS Secrets Manager - Firehose 使用 AWS Secrets Manager 來擷取用於連線至資料庫的登入資料。新增您在先前先決條件中建立的資料庫使用者登入資料,做為 中的秘密 AWS Secrets Manager。如需詳細資訊,請參閱 Amazon Data Firehose AWS Secrets Manager 中的使用 驗證 。
-
建立具有必要許可的 IAM 角色 – Firehose 需要具有特定許可的 IAM 角色,才能存取 AWS Secrets Manager、 AWS Glue 製作資料表並將資料寫入 Amazon S3。相同角色用於授予對 Amazon S3 儲存貯體的 AWS Glue 存取權。當您建立 Apache Iceberg 資料表和 Firehose 時,需要此 IAM 角色。如需詳細資訊,請參閱授予 Firehose 將資料庫變更複寫至 Apache Iceberg 資料表的存取權。
-
建立 Apache Iceberg 資料表 – 如果您在 Firehose 串流建立期間啟用設定,Firehose 可以自動建立 Iceberg 資料表。如果您不希望 Firehose 建立 Iceberg 資料表,則必須使用與來源資料庫資料表相同的名稱和結構描述來建立 Iceberg 資料表。如需使用 Glue 建立 Iceberg 資料表的詳細資訊,請參閱建立 Iceberg 資料表。
注意
您必須使用下列映射建立 Apache Iceberg 資料表。
-
對於 MySQL 來源資料庫名稱映射至 AWS Glue 資料庫名稱,來源資料表名稱映射至 AWS Glue 資料表名稱。
-
對於 PostgreSQL,來源資料庫名稱會映射至 AWS Glue 資料庫,來源結構描述名稱和資料表名稱會以
<SchemaName>_<TableName>
格式映射至 AWS Glue 資料表名稱。如果您自行建立資料表,來源和目標結構描述應完全相符。
-