AI資料準備功能支援將MySQL資料庫的資料轉送到AnalyticDB PostgreSQL版執行個體。本文以源庫為RDS MySQL執行個體為例,為您介紹操作步驟。
適用範圍
已建立儲存空間大於源RDS MySQL執行個體已佔用儲存空間的目標AnalyticDB PostgreSQL版執行個體。
說明引擎版本需選擇7.0 標準版、節點規格(segment)需選擇4C16G及以上規格、AI節點開關需選擇開啟、AI節點數量至少為1個。
建立方法,請參見建立執行個體。
目標AnalyticDB PostgreSQL版執行個體已開啟向量檢索引擎最佳化。
已在目標AnalyticDB PostgreSQL版執行個體中建立用於接收資料的資料庫、Schema、具有主鍵的表。更多資訊,請參見SQL文法和資料類型映射關係。
說明建議目標AnalyticDB PostgreSQL版執行個體中的表名和列名與源庫中的一致。
注意事項
源庫限制
頻寬要求:源庫所屬的伺服器需具備足夠的出口頻寬(大於等於100 Mb/s),否則將影響資料轉送的速率。
Binlog日誌要求:
RDS MySQL執行個體預設已開啟Binlog,您需確保
binlog_row_image的值為full,否則預檢查階段提示報錯,且無法成功啟動資料準備任務。參數設定方法,請參見設定執行個體參數。重要若源執行個體為自建MySQL,則需開啟Binlog,並將
binlog_format設定為row,且將binlog_row_image設定為full。若源執行個體自建MySQL是雙主叢集(兩者互為主從),為保障DTS能擷取全部的Binlog日誌,則您需開啟參數
log_slave_updates。具體操作請參見為自建MySQL建立帳號並設定binlog。
RDS MySQL執行個體的本地Binlog日誌需保留3天及以上(建議保留7天),自建MySQL資料庫的本地Binlog日誌需保留7天及以上。否則DTS可能會因無法擷取Binlog而導致資料準備任務失敗,極端情況下甚至可能會導致資料不一致或資料丟失。由於您所設定的Binlog日誌儲存時間低於DTS要求的時間而導致的問題,不在DTS的SLA保障範圍內。
說明RDS MySQL執行個體的本地Binlog日誌保留時間長度的設定方法,請參見自動刪除本地日誌。
傳輸對象限制:
不記錄Binlog的變更操作所產生的資料(例如通過物理備份功能恢複、級聯操作等產生的資料),不會被傳輸到目標庫。
不支援VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT類型的資料。
暫不支援傳輸首碼索引。
若待傳輸的對象為表層級,且需進行編輯(如表列名映射),則單個資料準備任務僅支援至多1000張表。當超出表數量限制時,建議您拆分為多個資料準備任務,或者配置整庫的資料準備任務。
若源庫待傳輸的資料中存在日期類型的資料
0000-00-00 00:00:00,則可能會導致資料準備任務失敗。說明DTS將該日期資料轉送到目標庫時會轉換為
null。您可以臨時將源庫資料修改為0001-01-01 00:00:00,或者將目標庫對應欄位設定為可空。若源庫為8.0.23及更高版本的MySQL資料庫,且待傳輸的資料中包含不可見的隱藏列,則可能會因為無法擷取該列的資料而導致資料丟失。
說明您可以使用
ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;命令,將該隱藏列設定為可見。更多資訊,請參見Invisible Columns。無主鍵的表會自動產生不可見的隱藏主鍵,您也需要將該隱藏主鍵設定為可見。更多資訊,請參見Generated Invisible Primary Keys。
源庫的操作限制:
若源庫為自建MySQL且進行了主備切換,將會導致資料準備任務失敗。
在資料準備任務運行期間,請勿執行修改主鍵和添加註釋的DDL操作(如
ALTER TABLE table_name COMMENT='表的注釋';),否則可能會導致該DDL執行失敗。
其他限制
目標表暫不支援AO表。
若待傳輸的表存在主鍵,則目標表的主鍵列需與源表一致;若待傳輸的表不存在主鍵,則目標表的主鍵列需與分布鍵保持一致。
目標表的唯一鍵(含主鍵列)必須包含分布鍵的所有列。
在建立資料準備任務前需評估源庫和目標庫的效能,同時建議在業務低峰期啟動資料準備任務。
DTS會在源庫定時執行CREATE DATABASE IF NOT EXISTS `test`命令以推進Binlog位點。
若目標表的結構與源表不一致,則可能會導致資料丟失或任務失敗。
DTS會嘗試恢複七天之內運行失敗的資料準備任務。因此在業務切換至目標執行個體前,請務必結束或釋放該任務,或者用
revoke命令回收DTS訪問目標執行個體帳號的寫入權限。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。由於DTS增量任務的延遲時間是根據寫入到目標庫最後一條資料的時間戳記和目前時間戳對比得出,源庫長時間未執行更新操作可能導致延遲資訊不準確。如果資料準備任務顯示的延遲時間過大,您可以在源庫執行一個更新操作來更新延遲資訊。
若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。
說明在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。
費用說明
詳情請參見AI資料準備計費方式。
支援的SQL操作
操作類型 | SQL動作陳述式 |
DML | INSERT、UPDATE、DELETE |
資料庫帳號的許可權要求
資料庫 | 要求的權限 | 帳號建立及授權方法 |
源RDS MySQL執行個體 | 待傳輸資料的讀寫權限。 | |
目標AnalyticDB PostgreSQL版執行個體 | 目標庫的讀寫權限。 | 說明 您可以使用初始帳號或具備RDS_SUPERUSER許可權的帳號。 |
若您使用的源庫帳號不是通過RDS MySQL控制台建立且授權,您需確保該帳號具備REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和SELECT許可權。
操作步驟
進入目標地區的資料準備工作清單頁面。
在左側導覽列,單擊數據準備。
在頁面左上方,選擇資料準備執行個體所屬地區。
可選:單擊數據準備任務頁簽。
單擊創建任務,進入任務配置頁面。
配置源庫及目標庫資訊。
類別
配置
說明
無
任務名稱
DTS會自動產生一個任務名稱,建議配置具有業務意義的名稱(無唯一性要求),便於後續識別。
源庫資訊
選擇已有串連資訊
若您需要使用已錄入系統(建立或儲存)的資料庫執行個體,請在下拉式清單中選擇所需的資料庫執行個體,下方的資料庫資訊將自動進行配置。
若您未將資料庫執行個體錄入到系統,或無需使用已錄入系統的資料庫執行個體,則需要手動設定下方的資料庫資訊。
資料庫類型
選擇MySQL。
接入方式
選擇雲執行個體。
執行個體地區
選擇源RDS MySQL執行個體所屬地區。
是否跨阿里雲帳號
本樣本使用當前阿里雲帳號下的資料庫執行個體,需選擇不跨帳號。
RDS執行個體ID
選擇源RDS MySQL執行個體ID。
資料庫帳號
填入源RDS MySQL執行個體的資料庫帳號。許可權要求,請參見資料庫帳號的許可權要求。
資料庫密碼
填入該資料庫帳號對應的密碼。
串連方式
根據資料庫實際情況選擇非加密串連或SSL安全連線。
說明RDS MySQL執行個體的SSL加密功能,請參見使用雲端認證快速開啟SSL鏈路加密。
目標庫資訊
選擇已有串連資訊
若您需要使用已錄入系統(建立或儲存)的資料庫執行個體,請在下拉式清單中選擇所需的資料庫執行個體,下方的資料庫資訊將自動進行配置。
若您未將資料庫執行個體錄入到系統,或無需使用已錄入系統的資料庫執行個體,則需要手動設定下方的資料庫資訊。
資料庫類型
選擇AnalyticDB PostgreSQL。
接入方式
選擇雲執行個體。
執行個體地區
選擇目標AnalyticDB PostgreSQL版執行個體所屬的地區。
執行個體ID
選擇目標AnalyticDB PostgreSQL版執行個體的名ID。
資料庫名稱
填入目標AnalyticDB PostgreSQL版執行個體中用於接收資料的資料庫名稱。
資料庫帳號
填入目標AnalyticDB PostgreSQL版執行個體的資料庫帳號。許可權要求,請參見資料庫帳號的許可權要求。
資料庫密碼
填入該資料庫帳號對應的密碼。
配置完成後,在頁面下方單擊測試連接以進行下一步。
說明請確保DTS服務的IP位址區段能夠被自動或手動添加至源庫和目標庫的安全設定中,以允許DTS伺服器的訪問。更多資訊,請參見添加DTS伺服器IP地址白名單。
若源庫或目標庫為自建資料庫(接入方式不是雲執行個體),則還需要在彈出的DTS伺服器訪問授權對話方塊單擊測試連接。
配置任務對象。
在對象配置地區,配置待傳輸的對象。
配置
說明
任務步驟
根據業務需求進行選擇,支援全量同步和增量同步。
執行個體層級選擇所需同步的DDL和DML
您可以按執行個體層級選擇需要增量傳輸的SQL操作。
目標已存在表的處理模式
無需配置,保持預設即可。
源庫對象
在源庫對象框中單擊待傳輸的對象,然後單擊
將其移動到已選擇對象框。說明若目標庫中的表名和列名與源庫完全一致,則對象選擇的粒度支援為整庫和表。否則,對象選擇的粒度僅支援為表。
已選擇對象
在已選擇對象框中,按右鍵從源庫對象中移動過來的資料庫。
在彈出的編輯庫對話方塊中,將目標庫名修改為目標AnalyticDB PostgreSQL版執行個體中用於接收資料的Schema名稱。
單擊確定。
在映射列地區配置映射列資訊,以儲存資料準備操作產生的向量資料。
單擊添加映射列。
在源 (庫/錶/列)列中,按層級關係選擇源庫中需要映射的列。
DTS會將您在源 (庫/錶/列)中選擇的庫、表、列,填充至目標 (庫/表)和目標映射列。
可選:根據實際情況,將目標 (庫/表)和目標映射列的資訊,修改為目標AnalyticDB PostgreSQL版執行個體中用於儲存向量資料的庫名、表名、列名。
可選:重複上述步驟,添加多個映射列。
單擊下一步向量配置。
如需為映射列配置解析、Chunk及Embedding策略,請執行以下操作。
在目標映射列的所在行,單擊操作列的修改配置。
在彈出的修改配置面板,選擇對應策略地區的推薦策略。
修改推薦策略。
策略名稱稱
參數名稱
說明
解析策略
保留元素
以元素為粒度對映射列的資料進行過濾(包含需保留和需排除的元素),將符合要求的資料轉送至目標AnalyticDB PostgreSQL版執行個體的映射列。
說明多個元素以英文逗號(,)分隔。
排除元素
Chunk策略
Chunk 演算法
將文本切分為Chunk時,使用的演算法。
每個 Chunk 塊最大字符數
將文本切分為Chunk時,每個Chunk中最多能包含的字元數(ChunkSize)。
兩個 Chunk 塊間最大重疊字符數
將文本切分為Chunk時,兩個相鄰Chunk之間最大允許重疊的字元數(ChunkOverlap)。
保留 Chunk 原文
若您需要保留Chunk原文,則還需填寫目標AnalyticDB PostgreSQL版執行個體中用於儲存Chunk原文的列名。
保留 Chunk ID
若您需要保留Chunk ID,則還需填寫目標AnalyticDB PostgreSQL版執行個體中用於儲存Chunk ID的列名。
Embedding策略
選擇 Embedding 模型
預設為AnalyticDB-PostgreSQL,且不支援修改。
配置完成後,單擊確定。
單擊下一步高級配置,進行進階參數配置。
配置
說明
源庫、目標庫無法串連後的重試時間
在資料準備任務啟動後,若源庫或目標庫串連失敗則DTS會報錯,並會立即進行持續的重試串連,預設持續重試時間為720分鐘,您也可以在取值範圍(10~1440分鐘)內自訂重試時間,建議設定30分鐘以上。如果DTS在設定的重試時間內重新串連上源庫、目標庫,資料準備任務將自動回復。否則,資料準備任務將會失敗。
說明針對同源或者同目標的多個DTS執行個體,如DTS執行個體A和DTS執行個體B,設定網路重試時間時A設定30分鐘,B設定60分鐘,則重試時間以低的30分鐘為準。
由於串連重試期間,DTS將收取任務運行費用,建議您根據業務需要自訂重試時間,或者在源和目標庫執行個體釋放後儘快釋放DTS執行個體。
源庫、目標庫出現其他問題後的重試時間
在資料準備任務啟動後,若源庫或目標庫出現非串連性的其他問題(如DDL或DML執行異常),則DTS會報錯並會立即進行持續的重試操作,預設持續重試時間為10分鐘,您也可以在取值範圍(1~1440分鐘)內自訂重試時間,建議設定10分鐘以上。如果DTS在設定的重試時間內相關操作執行成功,資料準備任務將自動回復。否則,資料準備任務將會失敗。
重要源庫、目標庫出現其他問題後的重試時間的值需要小於源庫、目標庫無法串連後的重試時間的值。
是否限制增量同步處理速率
您也可以根據實際情況,選擇是否對增量任務進行限速設定(設定每秒增量同步處理的行數RPS和每秒增量同步處理的數據量(MB)BPS),以緩解目標庫的壓力。
為目標對象添加引號
選擇是否需要為目標對象添加引號。
選擇是:若源庫存在以下情況,DTS會在增量資料轉送階段,自動為符合要求的Schema、表或列名添加半形單引號(')或半形雙引號(")。
源庫所屬的業務環境對大小寫敏感且大小寫混用。
源表名不是以字母開頭,且包含字母、數字或特殊字元以外的字元。
說明特殊字元僅支援底線(_),井號(#)和貨幣符號($)。
待傳輸的Schema、表或列名稱是目標庫的關鍵字、保留字或非法字元。
選擇否:DTS不會為目標對象添加引號。
是否去除正反向任務的心跳錶 SQL
根據業務需求選擇是否在DTS執行個體運行時,在源庫中寫入心跳SQL資訊。
是:不在源庫中寫入心跳SQL資訊,DTS執行個體可能會顯示有延遲。
否:在源庫中寫入心跳SQL資訊,可能會影響源庫的物理備份和複製等功能。
環境標籤
您可以根據實際情況,選擇用於標識執行個體的環境標籤。本樣本無需選擇。
配置ETL功能
監控警示
是否設定警示,當資料準備任務失敗或延遲超過閾值後,將通知警示連絡人。
不設定:不設定警示。
設定:設定警示,您還需要設定警示閾值和警示通知。更多資訊,請參見在配置任務過程中配置監控警示。
儲存任務並進行預檢查。
若您需要查看調用API介面配置該執行個體時的參數資訊,請將滑鼠游標移動至下一步儲存任務並預檢查按鈕上,然後單擊氣泡中的預覽OpenAPI參數。
若您無需查看或已完成查看API參數,請單擊頁面下方的下一步儲存任務並預檢查。
說明在資料準備任務正式啟動之前,會先進行預檢查。只有預檢查通過後,才能成功啟動資料準備任務。
如果預檢查失敗,請單擊失敗檢查項後的查看詳情,並根據提示修複後重新進行預檢查。
如果預檢查產生警告:
對於不可以忽略的檢查項,請單擊失敗檢查項後的查看詳情,並根據提示修複後重新進行預檢查。
對於可以忽略無需修複的檢查項,您可以依次單擊點擊確認警示詳情、確認屏蔽、確定、重新進行預檢查,跳過警示檢查項重新進行預檢查。如果選擇屏蔽警示檢查項,可能會導致資料不一致等問題,給業務帶來風險。
購買執行個體。
預檢查通過率顯示為100%時,單擊下一步購買。
在購買頁面,選擇資料準備執行個體的計費方式、鏈路規格,詳細說明請參見下表。
類別
參數
說明
資訊配置
資源群組配置
執行個體所屬的資源群組,預設為default resource group。更多資訊,請參見什麼是資源管理。
鏈路規格
預設為large,且不支援修改。
配置完成後,閱讀並勾選《數據傳輸(隨用隨付)服務條款》。
單擊購買並啟動,並在彈出的確認對話方塊,單擊確定。
您可在資料準備頁面查看具體任務進度。