PolarDB數(shù)據(jù)源配置
云數(shù)據(jù)庫PolarDB是阿里云對外提供的一種即開即用、穩(wěn)定可靠、可彈性伸縮的在線數(shù)據(jù)庫服務(wù)(了解PolarDB)。
購買PolarDB前須知
OpenSearch目前支持PolarDB for mysql5.6、5.7、8.0。
PolarDB集群必須隸屬于當(dāng)前登錄阿里云賬號才能訪問使用。
PolarDB集群所在區(qū)域必須與OpenSearch應(yīng)用區(qū)域一致。
PolarDB集群創(chuàng)建后,binlog默認(rèn)是關(guān)閉的,會導(dǎo)致數(shù)據(jù)源注冊失敗,因此需要開啟。開啟方式為:loose_polar_log_bin默認(rèn)為OFF,需設(shè)置為ON_WITH_GTID;binlog_row_image默認(rèn)為FULL,不需要變更。
支持clone實例。
需要PolarDB集群設(shè)置為讀寫集群。
支持功能
支持(手動/定時)拉取指定數(shù)據(jù)庫表全量。
支持單個或多個數(shù)據(jù)源表數(shù)據(jù)橫向合并,要求這些源表結(jié)構(gòu)及數(shù)據(jù)源插件配置必須完全相同,并且主鍵值均不重復(fù)(主鍵值重復(fù)會覆蓋),主要支持以下2種場景:
應(yīng)用表中配有一個數(shù)據(jù)源,并且包含多個源表。
應(yīng)用表中配有多個數(shù)據(jù)源,并且各數(shù)據(jù)源包含1個或多個源表。
支持?jǐn)?shù)據(jù)源字段轉(zhuǎn)換插件。
支持的數(shù)據(jù)同步方式:
自動同步;
自購DTS實時同步;
不自動同步。
支持(全量)過濾條件。
支持通過通配符
*
匹配數(shù)據(jù)庫表名。
當(dāng)您選擇“自動同步”作為數(shù)據(jù)同步方式時,將啟用 OpenSearch 提供的內(nèi)部服務(wù)來訂閱數(shù)據(jù)庫的 binlog,并同步增量數(shù)據(jù)。請注意,如果發(fā)生用戶端的變更操作,如刪除數(shù)據(jù)庫表、變更訪問權(quán)限、清理 binlog 日志或修改數(shù)據(jù)庫密碼等,可能會導(dǎo)致 OpenSearch 無法成功訂閱并同步所配置表的 binlog。在這種情況下,由于增量數(shù)據(jù)無法同步,OpenSearch 將不承擔(dān)任何責(zé)任。用戶應(yīng)確保在進行此類操作前已經(jīng)完全了解可能產(chǎn)生的影響,并采取必要的預(yù)防措施;
同步方式選擇自動同步,OpenSearch將盡力保障同步服務(wù)的穩(wěn)定性但不保障同步的延遲,如果對同步延遲比較敏感的業(yè)務(wù)建議同步方式采用DTS數(shù)據(jù)訂閱實例(DTS實時同步);
相關(guān)限制
只支持PolarDB集群的binlog為full模式。開啟方式為:loose_polar_log_bin默認(rèn)為OFF,需設(shè)置為ON_WITH_GTID;binlog_row_image默認(rèn)為FULL,不需要變更。
目前只支持PolarDB mysql5.6、5.7、8.0。
PolarDB集群必須隸屬于當(dāng)前登錄阿里云賬號才能訪問。
PolarDB集群所在區(qū)域必須與OpenSearch應(yīng)用區(qū)域一致。
標(biāo)準(zhǔn)版應(yīng)用在配置PolarDB數(shù)據(jù)源后,不支持(SDK/API)推送增量。
標(biāo)準(zhǔn)版應(yīng)用的PolarDB數(shù)據(jù)源,暫不支持?jǐn)?shù)據(jù)源過濾條件。
不支持replace into語法。
不支持truncate和drop命令,請使用delete命令刪除數(shù)據(jù)。
PolarDB 訪問密碼不能包含
%
符號,會導(dǎo)致索引重建任務(wù)失敗。不支持在不同數(shù)據(jù)庫源表結(jié)構(gòu)之間做字段列合并。
loose_max_statement_time和connect_timeout建議都設(shè)置為0,等索引重建或線下變更觸發(fā)全量同步完成之后,可以再修改為正常值。
注意事項
如果是drds后掛數(shù)據(jù)源(RDS/PolarDB)接入到opensearch,則需要在數(shù)據(jù)源配置的時候,配置drds下的實際分庫的庫名(drds下的數(shù)據(jù)庫會被分成一個影子庫和8個分庫實際分庫,寫入數(shù)據(jù)會隨機寫入到分庫實際分庫中)。
PolarDB集群支持內(nèi)/外網(wǎng)的域名切換,OpenSearch對PolarDB數(shù)據(jù)獲取均不收取任何流量費用。
OpenSearch僅支持從主庫拉取全量數(shù)據(jù),建議根據(jù)您的業(yè)務(wù)繁忙情況,選擇低峰期索引重建導(dǎo)入全量數(shù)據(jù)。
PolarDB集群表中datetime及timestamp此類時間類型,系統(tǒng)會自動轉(zhuǎn)化為毫秒數(shù),請將對應(yīng)應(yīng)用表字段類型設(shè)置為TIMESTAMP。
不符合數(shù)據(jù)源過濾條件的(全量)文檔會被過濾,并且如果對應(yīng)應(yīng)用表中存在相同主鍵值的文檔也會刪除。
數(shù)據(jù)源側(cè)長時間(15天及以上)沒有增量數(shù)據(jù),可能會導(dǎo)致數(shù)據(jù)同步異常,如遇此情況請手動操作索引重建或線下變更即可解決。
如果PolarDB開啟了SSL證書加密,一定要保證證書有效期沒有過期,如果過期了,會導(dǎo)致連接異常,請及時更新SSL證書有效期。
青島區(qū)域不支持配置polardb數(shù)據(jù)源
通過OpenSearch同步PolarDB數(shù)據(jù)源數(shù)據(jù)時,需要將OpenSearch服務(wù)器的IP地址段加入到RDS/polarDB對應(yīng)的安全設(shè)置中,各區(qū)域的IP白名單可參考如下列表:
地域
IP地址
杭州
100.104.190.128/26,100.104.241.128/26
北京
100.104.16.192/26,100.104.179.0/26
上海
100.104.37.0/26,100.104.46.0/26
深圳
100.104.87.192/26,1100.104.132.192/26
張家口
100.104.155.192/26,100.104.238.64/26
德國
100.104.127.0/26,100.104.35.192/26
美國
100.104.193.128/26,100.104.119.128/26
新加坡
100.104.58.192/26,100.104.74.192/26
賬號授權(quán)問題
PolarDB接入時,需要授權(quán)訪問集群。并且填寫賬號密碼, 初次接入時,請謹(jǐn)慎選擇賬號密碼。
【確保賬號權(quán)限】必須確保賬號能有查看該庫所有表的權(quán)限(上游DTS服務(wù)的限制), 保證能正確執(zhí)行 show create table
*
. *,如果沒有。可能會發(fā)生實時服務(wù)同步出現(xiàn)問題。【少做賬號權(quán)限變更】賬號變更會帶來當(dāng)前實時任務(wù)的不能正常消費。同時新版本創(chuàng)建也會受影響。若變更賬號密碼,需要刪除實例重新接入庫。
常見問題
如果配置PolarDB數(shù)據(jù)源后,索引重建出現(xiàn)卡住的現(xiàn)象,請在數(shù)據(jù)表所在的庫中創(chuàng)建一個測試表,并且每分鐘寫入或更新1~2條數(shù)據(jù),保證您在索引重建時有連續(xù)的binlog產(chǎn)生。
如果高級版應(yīng)用PolarDB集群期間欠過費,但后續(xù)有將欠費補上,可以直接觸發(fā)一次手動索引重建。
PolarDB集群訪問密碼不能包含
%
符號,否則會導(dǎo)致索引重建任務(wù)失敗。(報錯提示: Illegal hex characters in escape (%) pattern)。系統(tǒng)要求應(yīng)用表主鍵值不重復(fù),如果分表情況下主鍵值有重復(fù)會覆蓋,可使用StringCatenateExtractor數(shù)據(jù)源插件合并多個字段值,來源字段為
pk,$table
(pk替換為PolarDB集群表主鍵字段,$table為默認(rèn)系統(tǒng)變量,表示對應(yīng)數(shù)據(jù)庫表名),拼接字符為-
(可自定義)。
例如,PolarDB集群表為my_table_0
,主鍵字段值為123456
,拼接后新主鍵值為123456-my_table_0
。
根據(jù)數(shù)據(jù)庫表中的date或datetime字段類型過濾數(shù)據(jù),假設(shè)數(shù)據(jù)庫表字段名為createtime,則數(shù)據(jù)源過濾條件中的時間格式必須為
createtime>'2018-03-01 00:00:00'
,如果使用createtime>'2018-3-1 00:00:00'
這種格式會報錯。
配置PolarDB數(shù)據(jù)源
在快速搭建應(yīng)用過程,配置PolarDB數(shù)據(jù)源。
已創(chuàng)建應(yīng)用可通過應(yīng)用詳情頁——“線下變更”進行修改。
控制臺配置步驟及注意事項
1.創(chuàng)建或修改應(yīng)用時,在第三步數(shù)據(jù)源中,添加數(shù)據(jù)源或編輯,選擇PolarDB數(shù)據(jù)源,點擊新建數(shù)據(jù)庫。
2.PolarDB數(shù)據(jù)源信息填寫完成后,點擊連接按鈕。
參數(shù)名稱 | 說明 |
集群ID | PolarDB集群ID,可以在PolarDB控制臺中獲取(大小寫敏感),需填寫的集群ID格式參考:pc-uf6c056ny9tiaj1l7 |
數(shù)據(jù)庫名 | 該實例下需要連接的數(shù)據(jù)庫名(大小寫不敏感)。 |
用戶名 | 數(shù)據(jù)庫賬號,用于獲取數(shù)據(jù)庫表模式及全量數(shù)據(jù)(大小寫敏感)。 |
密碼 | 賬號對應(yīng)的密碼。 |
OpenSearch會嘗試連接,并根據(jù)具體情形,給出結(jié)果提示:
提示信息 | 處理方法 |
當(dāng)前用戶的當(dāng)前區(qū)域沒有此PolarDB集群 | 請檢查集群ID是否正確,并確保PolarDB集群所在區(qū)域與OpenSearch應(yīng)用區(qū)域一致。如果條件符合仍然報錯,可提工單反饋 |
連接數(shù)據(jù)庫服務(wù)失敗 | 請檢查PolarDB連接串是否正確包括集群ID、數(shù)據(jù)庫名、用戶名、密碼 |
當(dāng)前PolarDB集群下沒有此表 | 請檢查表名填寫是否正確,以及PolarDB數(shù)據(jù)庫中是否確實存在該表 |
配置PolarDB集群配置項問題 | 前往PolarDB控制臺 參數(shù)配置 頁面修改相應(yīng)配置項目后,進行重試 |
3.PolarDB數(shù)據(jù)源信息連接后,選擇數(shù)據(jù)表。已建立數(shù)據(jù)源連接界面如下,選擇對應(yīng)表,點擊確定。
選擇或輸入該數(shù)據(jù)庫下需要訪問的表名(大小寫敏感)。
支持分表規(guī)則 table_* 的方式,例如 table_a、table_b 等。
4.若連接成功,則進行字段配置,OpenSearch會自動獲取表字段。數(shù)據(jù)源插件說明,請點擊文檔查看。
5.配置PolarDB數(shù)據(jù)源過濾條件(標(biāo)準(zhǔn)版不支持),配置好數(shù)據(jù)源同步方式后點擊完成,即可完成應(yīng)用結(jié)構(gòu)配置。
OpenSearch應(yīng)用表中也可配置多個數(shù)據(jù)源,但最終這些表結(jié)構(gòu)及配置必須完全相同。
若提示不支持自動同步功能,請使用DTS實時同步。
PolarDB數(shù)據(jù)源配置的過濾條件只能拉取符合該條件的記錄,詳細(xì)配置請參考數(shù)據(jù)源過濾條件。