openGauss/MOGDB Copy支援容錯機制
一、COPY容錯機制相關選項
MOGDB/openGauss允許使用者在使用Copy From指令時指定容錯選項,使得Copy From語句在執行過程中部分解析、資料格式、字符集等相關的報錯不會報錯中斷事務、而是被記錄至錯誤表中,使得在Copy From的目標檔案即使有少量資料錯誤也可以完成入庫操作。使用者隨後可以在錯誤表中對相關的錯誤進行定位以及進一步排查。
主要包括三個主要的選項:
-
LOG ERRORS
若指定,則開啟對於COPY FROM語句中資料型別錯誤的容錯機制 -
LOG ERRORS DATA
LOG ERRORS DATA和LOG ERRORS的區別:- LOG ERRORS DATA會填充容錯表的rawrecord欄位。
- 只有supper許可權的使用者才能使用LOG ERRORS DATA引數選項。
-
REJECT LIMIT 'limit’
與LOG ERROR選項共同使用,對COPY FROM的容錯機制設定數值上限,一旦此COPY FROM語句錯誤資料超過選項指定條數,則會按照原有機制報錯。
取值範圍:正整數(1-INTMAX),‘unlimited’(無最大值限制)
二、Copy錯誤表建立函式
MOGDB/openGauss裡已經給使用者提供了封裝好的Copy錯誤表建立函式 pg_catalog.copy_error_log_create()。執行就可以建立相應的錯誤表public.pgxc_copy_error_log。當然這個函式也可以手動移除重建。如下是重建的函式。
CREATE OR REPLACE FUNCTION pg_catalog.copy_error_log_create() RETURNS bool AS $$ DECLARE query_str_create_table text; query_str_create_index text; query_str_do_revoke text; BEGIN query_str_create_table := 'CREATE TABLE public.pgxc_copy_error_log (relname varchar, begintime timestamptz, filename varchar, lineno int8, rawrecord text, detail text)'; EXECUTE query_str_create_table; query_str_create_index := 'CREATE INDEX copy_error_log_relname_idx ON public.pgxc_copy_error_log(relname)'; EXECUTE query_str_create_index; query_str_do_revoke := 'REVOKE ALL on public.pgxc_copy_error_log FROM public'; EXECUTE query_str_do_revoke; return true; END; $$ LANGUAGE 'plpgsql' NOT FENCED; REVOKE ALL on FUNCTION pg_catalog.copy_error_log_create() FROM public;
如果不建立copy錯誤表,僅僅帶上容錯選項的話,會有如下相關提示。
執行 pg_catalog.copy_error_log_create()建立copy錯誤表
三、COPY FROM存在錯誤的資料
再執行copy命令,報錯的copy資料會被記錄到public.pgxc_copy_error_log 裡而不會影響其他正確的資料的匯入。
注意要指定REJECT LIMIT ‘limit’,且limit的值要足夠大,否則當COPY FROM語句錯誤資料超過選項指定條數,則會按照原有機制報錯。
表裡記錄的內容,是通過Log_copy_error_spi函式讀取快取檔案中的每一行,並組裝spi要執行的查詢字串,把將錯誤記錄插入帶有spi的copy_error_Log表中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2869206/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- openGauss Copy介面支援容錯機制
- MogDB openGauss資料庫擴縮容的幾種方式資料庫
- MogDB openGauss故障排查流程
- MOGDB/openGauss資料庫執行計劃快取/失效機制的測試資料庫快取
- 【Spark】Spark容錯機制Spark
- openGauss/MogDB的TPCH測試
- openGauss/MOGDB與PG等待事件事件
- Spark Streaming 的容錯機制Spark
- MogDB openGauss常用查詢彙總
- 深入解析Apache DolphinScheduler容錯機制Apache
- openGauss 支援備機build備機UI
- MogDB/openGauss中merge的語法解析
- MogDB-openGauss default privileges 使用方法
- openGauss 支援儲存過程除錯儲存過程除錯
- openGauss事務機制(上)
- openGauss事務機制(下)
- dubbo容錯機制和負載均衡負載
- MogDB/openGauss如何實現事務的rollback
- MogDB/openGauss如何實現自增主鍵
- MOGDB/openGauss索引推薦及虛擬索引索引
- openGauss/MogDB的uncommitted xmin問題解決MIT
- 圖解resilience4j容錯機制圖解
- kafka 副本機制和容錯處理 -2Kafka
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- MogDB-opengauss中的聚集與分組操作
- openGauss/MogDB列存表的delta表測試
- Dubbo原始碼分析(八)叢集容錯機制原始碼
- Flink狀態管理和容錯機制介紹
- openGauss-統一審計機制
- openGauss 支援HyperLogLog
- openGauss 支援LLVMLVM
- openGauss/MogDB-3.0.0 dcf測試(非om安裝)
- Java面向容錯程式設計之重試機制Java程式設計
- openGauss 動態資料脫敏機制
- MogDB/openGauss的三種函式穩定性關鍵字函式
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- MOGDB/openGauss與PostgreSQL關於GDK字符集問題SQL
- MogDB/openGauss 生態工具-MTK對glibc版本的解決