本文將會為您介紹通過DataWorks同步數據至Hologres時,常見的問題以及對應的排查手段,以幫助您能在同步遇見問題時能快速的解決。
- 開源DataX如何將數據同步至Hologres?
- 報錯:
Holohub does not binary type of Hologres for now?
- 報錯:
internal error:Connect timeout,Connection refused.
- 報錯:
ERROR:insufficient data left in message;nest exception is org.postgresql.
- 報錯:
ERROR:internal error :column 2501 is not found in SparseSchema.
- 報錯:
ERROR Worker - should not happen.
- 報錯:
Refresh meta timeout, target version is xxx but current version is yyy.
- 報錯:同步數據出現業務臟數據情況,數據類型轉換一處,轉位long類型出現溢出。
- 報錯:
Rejected by ip white list xxx .
開源DataX如何將數據同步至Hologres?
開源DataX可以通過選用Hologres Writer,將數據同步至Hologres,相比傳統的PostgreSQL Writer,性能會更好。目前Connector已經開源,詳情請參見Git查看使用方式。
報錯:Holohub does not binary type of Hologres for now?
- 原因:DataWorks的寫入模式使用了SDK模式,建Hologres表時存在不支持的數據類型,比如JSONB等,該模式下支持的數據類型較少。
- 解決措施:請修改同步模式為INSERT模式。
報錯:internal error:Connect timeout,Connection refused.
- 原因:某個原因導致Hologres節點重啟了。
- 解決措施:對報錯的任務進行重試,然后聯系技術支持同學進行排查。
報錯:ERROR:insufficient data left in message;nest exception is org.postgresql.
- 原因:包含了臟數據。
- 解決措施:檢查寫入的數據并進行過濾。
報錯:ERROR:internal error :column 2501 is not found in SparseSchema.
解決措施:可進行重試,如果重試仍然報錯請聯系技術支持同學。
報錯:ERROR Worker - should not happen.
[embedded-holo-client-worker] ERROR Worker - should not happenjava.lang.NoSuchMethodError: org.postgresql.model.Column.setPrecision(I)V at com.alibaba.hologres.org.postgresql.util.MetaUtil.getRecordSchema(MetaUtil.java:274) ~[holo-client-1.2.16.3.jar:na]
- 原因:使用JDBC、Driver兩個包,導致沖突。
- 解決措施:請檢查項目中的
Holo-Client
和PostgreSQL-Holo
,請刪除PostgreSQL-Holo
依賴,僅保留一個Holo-Client
版本。
報錯:Refresh meta timeout, target version is xxx but current version is yyy.
- 原因:某些原因導致Hologres有個節點進行了重啟或者頻繁的做DDL,導致節點與其他節點版本對應不齊,從而出現報錯。
- 解決方法:快速恢復的辦法是進行實例重啟,也可以查找活躍Query,Kill運行時間較長的Query,詳情請參見Query管理。
報錯:同步數據出現業務臟數據情況,數據類型轉換一處,轉位long類型出現溢出。
- 原因:同步時存在不支持的數據類型,比如MySQL BIGINT(20) UNSIGNED。
- 解決方法:修改Hologres建表類型,比如修改為TEXT,詳情請參見MySQL數據類型映射。
報錯:Rejected by ip white list xxx .
- 原因:Hologres開啟了白名單,導致寫入時會被白名單攔截。
- 解決方法:
- 如果通過模式使用的是SDK,請修改同步模式為INSERT模式。
- 如果是INSERT模式仍然報錯,說明是IP被攔截,可以將報錯中的IP加入到白名單中。