雲資料庫PolarDB是阿里雲對外提供的一種即開即用、穩定可靠、可Auto Scaling的線上資料庫服務(瞭解PolarDB)。
購買PolarDB前須知
OpenSearch目前支援PolarDB for mysql5.6、5.7、8.0。
PolarDB叢集必須隸屬於當前登入阿里雲帳號才能訪問使用。
PolarDB叢集所在地區必須與OpenSearch應用地區一致。
PolarDB叢集建立後,binlog預設是關閉的,會導致資料來源註冊失敗,因此需要開啟。開啟方式為:loose_polar_log_bin預設為OFF,需設定為ON_WITH_GTID;binlog_row_image預設為FULL,不需要變更。
支援clone執行個體。
需要PolarDB叢集設定為讀寫叢集。
支援功能
支援(手動/定時)拉取指定資料庫表全量。
支援單個或多個資料來源表資料橫向合并,要求這些源表結構及資料來源外掛程式配置必須完全相同,並且主索引值均不重複(主索引值重複會覆蓋),主要支援以下2種情境:
應用表中配有一個資料來源,並且包含多個源表。
應用表中配有多個資料來源,並且各資料來源包含1個或多個源表。
支援資料來源欄位轉換外掛程式。
支援的資料同步方式:
自動同步;
自購DTS即時同步;
不自動同步。
支援(全量)過濾條件。
支援通過萬用字元
*
匹配資料庫表名。
當您選擇“自動同步”作為資料同步方式時,將啟用 OpenSearch 提供的內部服務來訂閱資料庫的 binlog,並同步增量資料。請注意,如果發生使用者端的變更操作,如刪除資料庫表、變更存取權限、清理 binlog 日誌或修改資料庫密碼等,可能會導致 OpenSearch 無法成功訂閱並同步所配置表的 binlog。在這種情況下,由於增量資料無法同步,OpenSearch 將不承擔任何責任。使用者應確保在進行此類操作前已經完全瞭解可能產生的影響,並採取必要的預防措施;
同步方式選擇自動同步,OpenSearch將儘力保障同步服務的穩定性但不保障同步的延遲,如果對同步延遲比較敏感的業務建議同步方式採用DTS資料訂閱執行個體(DTS即時同步);
相關限制
只支援PolarDB叢集的binlog為full模式。開啟方式為:loose_polar_log_bin預設為OFF,需設定為ON_WITH_GTID;binlog_row_image預設為FULL,不需要變更。
目前只支援PolarDB mysql5.6、5.7、8.0。
PolarDB叢集必須隸屬於當前登入阿里雲帳號才能訪問。
PolarDB叢集所在地區必須與OpenSearch應用地區一致。
標準版應用在配置PolarDB資料來源後,不支援(SDK/API)推送增量。
標準版應用的PolarDB資料來源,暫不支援資料來源過濾條件。
不支援replace into文法。
不支援truncate和drop命令,請使用delete命令刪除資料。
PolarDB 訪問密碼不能包含
%
符號,會導致索引重建任務失敗。不支援在不同資料庫源表結構之間做欄位列合并。
loose_max_statement_time和connect_timeout建議都設定為0,等索引重建或線下變更觸發全量同步完成之後,可以再修改為正常值。
注意事項
如果是drds後掛資料來源(RDS/PolarDB)接入到opensearch,則需要在資料來源配置的時候,配置drds下的實際分庫的庫名(drds下的資料庫會被分成一個影子庫和8個分庫實際分庫,寫入資料會隨機寫入到分庫實際分庫中)。
PolarDB叢集支援內/外網的網域名稱切換,OpenSearch對PolarDB資料擷取均不收取任何流量費用。
OpenSearch僅支援從主庫拉取全量資料,建議根據您的業務繁忙情況,選擇低峰期索引重建匯入全量資料。
PolarDB叢集表中datetime及timestamp此類時間類型,系統會自動轉化為毫秒數,請將對應應用表欄位類型設定為TIMESTAMP。
不符合資料來源過濾條件的(全量)文檔會被過濾,並且如果對應應用表中存在相同主索引值的文檔也會刪除。
如果PolarDB開啟了SSL認證加密,一定要保證認證有效期間沒有到期,如果到期了,會導致串連異常,請及時更新SSL認證有效期間。
青島地區不支援配置polardb資料來源
通過OpenSearch同步PolarDB資料來源資料時,需要將OpenSearch伺服器的IP位址區段加入到RDS/polarDB對應的安全設定中,各地區的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
帳號授權問題
PolarDB接入時,需要授權訪問叢集。並且填寫帳號密碼, 初次接入時,請謹慎選擇帳號密碼。
【確保帳號許可權】必須確保帳號能有查看該庫所有表的許可權(上遊DTS服務的限制), 保證能正確執行 show create table
*
. *,如果沒有。可能會發生即時服務同步出現問題。【少做帳號許可權變更】帳號變更會帶來當前即時任務的不能正常消費。同時新版本建立也會受影響。若變更帳號密碼,需要刪除執行個體重新接入庫。
常見問題
如果配置PolarDB資料來源後,索引重建出現卡住的現象,請在資料表所在的庫中建立一個測試表,並且每分鐘寫入或更新1~2條資料,保證您在索引重建時有連續的binlog產生。
如果進階版應用PolarDB叢集期間欠過費,但後續有將欠費補上,可以直接觸發一次手動索引重建。
PolarDB叢集訪問密碼不能包含
%
符號,否則會導致索引重建任務失敗。(報錯提示: Illegal hex characters in escape (%) pattern)。系統要求應用表主索引值不重複,如果分表情況下主索引值有重複會覆蓋,可使用StringCatenateExtractor資料來源外掛程式合并多個欄位值,來源欄位為
pk,$table
(pk替換為PolarDB叢集表主鍵欄位,$table為預設系統變數,表示對應資料庫表名),拼接字元為-
(可自訂)。
例如,PolarDB叢集表為my_table_0
,主鍵欄位值為123456
,拼接後新主索引值為123456-my_table_0
。
根據資料庫表中的date或datetime欄位類型過濾資料,假設資料庫表欄位名為createtime,則資料來源過濾條件中的時間格式必須為
createtime>'2018-03-01 00:00:00'
,如果使用createtime>'2018-3-1 00:00:00'
這種格式會報錯。
配置PolarDB資料來源
控制台配置步驟及注意事項
1.建立或修改應用時,在第三步資料來源中,添加資料來源或編輯,選擇PolarDB資料來源,點擊建立資料庫。
2.PolarDB資料來源資訊填寫完成後,點擊連線按鍵。
參數名稱 | 說明 |
叢集ID | PolarDB叢集ID,可以在PolarDB控制台中擷取(大小寫敏感),需填寫的叢集ID格式參考:pc-uf6c056ny9tiaj1l7 |
資料庫名 | 該執行個體下需要串連的資料庫名(大小寫不敏感)。 |
使用者名稱 | 資料庫帳號,用於擷取資料庫表模式及全量資料(大小寫敏感)。 |
密碼 | 帳號對應的密碼。 |
OpenSearch會嘗試串連,並根據具體情形,給出結果提示:
提示資訊 | 處理方法 |
目前使用者的目前範圍沒有此PolarDB叢集 | 請檢查叢集ID是否正確,並確保PolarDB叢集所在地區與OpenSearch應用地區一致。如果條件符合仍然報錯,可提工單反饋 |
串連資料庫服務失敗 | 請檢查PolarDB串連串是否正確包括叢集ID、資料庫名、使用者名稱、密碼 |
當前PolarDB叢集下沒有此表 | 請檢查表名填寫是否正確,以及PolarDB資料庫中是否確實存在該表 |
配置PolarDB叢集配置項問題 | 前往PolarDB控制台 參數配置 頁面修改相應設定項目後,進行重試 |
3.PolarDB資料來源資訊串連後,選擇資料表。已建立資料來源串連介面如下,選擇對應表,點擊確定。
選擇或輸入該資料庫下需要訪問的表名(大小寫敏感)。
支援分表規則 table_* 的方式,例如 table_a、table_b 等。
4.若串連成功,則進列欄位配置,OpenSearch會自動擷取表欄位。資料來源外掛程式說明,請點擊文檔查看。
5.配置PolarDB資料來源過濾條件(標準版不支援),配置好資料來源同步方式後點擊完成,即可完成應用結構配置。