首页 > 其他分享 >openGauss 处理错误表

openGauss 处理错误表

时间:2024-05-07 09:55:24浏览次数:13  
标签:错误 错误信息 源文件 导入 数据格式 openGauss 数据 处理错误

处理错误表

操作场景

当数据导入发生错误时,请根据本文指引信息进行处理。

查询错误信息

数据导入过程中发生的错误,一般分为数据格式错误和非数据格式错误。

  • 数据格式错误

    在创建外表时,通过设置参数“LOG INTO error_table_name”,将数据导入过程中出现的数据格式错误信息写入指定的错误信息表error_table_name中。您可以通过以下SQL,查询详细错误信息。

    openGauss=# SELECT * FROM error_table_name;
    

    错误信息表结构如表1所示。

    表 1 错误信息表

    列名称

    类型

    描述

    nodeid

    integer

    报错节点编号。

    begintime

    timestamp with time zone

    出现数据格式错误的时间。

    filename

    character varying

    出现数据格式错误的数据源文件名。

    rownum

    numeric

    在数据源文件中,出现数据格式错误的行号。

    rawrecord

    text

    在数据源文件中,出现数据格式错误的原始记录。

    detail

    text

    详细错误信息。

  • 非数据格式错误

    对于非数据格式错误,一旦发生将导致整个数据导入失败。您可以根据执行数据导入过程中,界面提示的错误信息,帮助定位问题,处理错误表。

处理数据导入错误

根据获取的错误信息,请对照下表,处理数据导入错误。

表 2 处理数据导入错误

错误信息

原因

解决办法

missing data for column "r_reason_desc"

  1. 数据源文件中的列数比外表定义的列数少。
  2. 对于TEXT格式的数据源文件,由于转义字符(\)导致delimiter(分隔符)错位或者quote(引号字符)错位造成的错误。

    示例:目标表存在3列字段,导入的数据如下所示。由于存在转义字符“\”,分隔符“|”被转义为第二个字段的字段值,导致第三个字段值缺失。

    BE|Belgium\|1
  1. 由于列数少导致的报错,选择下列办法解决:
    • 在数据源文件中,增加列“r_reason_desc”的字段值。
    • 在创建外表时,将参数“fill_missing_fields”设置为“on”。即当导入过程中,若数据源文件中一行数据的最后一个字段缺失,则把最后一个字段的值设置为NULL,不报错。
  2. 对由于转义字符导致的错误,需检查报错的行中是否含有转义字符(\)。若存在,建议在创建外表时,将参数“noescaping”(是否不对'\'和后面的字符进行转义)设置为true。

extra data after last expected column

数据源文件中的列数比外表定义的列数多。

  • 在数据源文件中,删除多余的字段值。
  • 在创建外表时,将参数“ignore_extra_data”设置为“on”。即在导入过程中,若数据源文件比外表定义的列数多,则忽略行尾多出来的列。

invalid input syntax for type numeric: "a"

数据类型错误。

在数据源文件中,修改输入字段的数据类型。根据此错误信息,请将输入的数据类型修改为numeric。

null value in column "staff_id" violates not-null constraint

非空约束。

在数据源文件中,增加非空字段信息。根据此错误信息,请增加“staff_id”列的值。

duplicate key value violates unique constraint "reg_id_pk"

唯一约束。

  • 删除数据源文件中重复的行。
  • 通过设置关键字“DISTINCT”,从SELECT结果集中删除重复的行,保证导入的每一行都是唯一的。
    openGauss=# INSERT INTO reasons SELECT DISTINCT * FROM foreign_tpcds_reasons;

value too long for type character varying(16)

字段值长度超过限制。

在数据源文件中,修改字段值长度。根据此错误信息,字段值长度限制为VARCHAR2(16)。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:错误,错误信息,源文件,导入,数据格式,openGauss,数据,处理错误
From: https://www.cnblogs.com/renxyz/p/18176570

相关文章

  • openGauss core问题定位
    core问题定位磁盘满故障引起的core问题GUC参数log_directory设置不正确引起的core问题开启RemoveIPC引起的core问题详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss GUC参数log_directory设置不正确引起的core问题
    GUC参数log_directory设置不正确引起的core问题问题现象数据库进程拉起后出现coredump,日志无内容。原因分析GUC参数log_directory设置的路径不可读取或无访问权限,数据库在启动过程中进行校验失败,通过panic日志退出程序。处理办法GUC参数log_directory设置为合法路径,具体请参......
  • openGauss btree-索引故障情况下应对策略
    btree索引故障情况下应对策略问题现象偶发索引丢失错误,报错如下。ERROR:index'xxxx_index'containsunexpectedzeropage或ERROR:index'pg_xxxx_index'containsunexpectedzeropage或ERROR:compresseddataiscorrupt原因分析该类错误是因为索引发生故障导......
  • openGauss CopyManager类简介
    CopyManager类简介CopyManager是openGaussJDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。CopyManager的继承关系CopyManager类位于org.postgresql.copyPackage中,继承自java.lang.Object类,该类的声明如下:publicclassCopyManagerextendsObject构造方法......
  • openGauss 并发写入示例
    并发写入示例本章节以表test为例,分别介绍相同表的INSERT和DELETE并发,相同表的并发INSERT,相同表的并发UPDATE,以及数据导入和查询的并发的执行详情。CREATETABLEtest(idint,namechar(50),addressvarchar(255));相同表的INSERT和DELETE并发相同表的并发INSERT相同......
  • openGauss 备份与恢复
    备份与恢复概述逻辑备份恢复闪回恢复详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss 备机处于need-repair_WAL_状态问题
    备机处于needrepair(WAL)状态问题问题现象openGauss备机出现StandbyNeedrepair(WAL)故障。原因分析因网络故障、磁盘满等原因造成主备实例连接断开,主备日志不同步,导致数据库在启动时异常。处理分析通过gs_ctlbuild-D命令对故障节点进行重建,具体的操作方法请参见《工具......
  • openGauss TPCC运行时-注入磁盘满故障-TPCC卡住的问题
    TPCC运行时,注入磁盘满故障,TPCC卡住的问题问题现象TPCC运行时,注入磁盘满故障,TPCC卡住,故障消除后,TPCC自动续跑。原因分析数据库本身机制,在性能日志(gs_profile)所在磁盘满时,导致无法写入而陷入无限等待,表现为TPCC卡住。磁盘满故障消除后,性能日志能正常写入,TPCC恢复正常。处理分析......
  • openGauss VACUUM-FULL一张表后-表文件大小无变化
    VACUUMFULL一张表后,表文件大小无变化问题现象使用VACUUMFULL命令对一张表进行清理,清理完成后表大小和清理前一样大。原因分析假定该表的名称为table_name,对于该现象可能有以下两种原因:table_name表本身没有delete过数据,使用VACUUMFULLtable_name后无需清理delete的数据......
  • openGauss 安全性
    安全性用于复制连接的角色必须具有REPLICATION属性(或者是具有SYSADMIN权限用户)。如果角色缺少SUPERUSER和BYPASSRLS,发布者的行安全策略可以执行。角色的访问权限必须在pg_hba.conf中配置,并且必须具有LOGIN属性。要创建发布,用户必须在数据库中有CREATE特权。要把表加入到......