首页 > 数据库 >openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表

openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表

时间:2023-12-18 19:02:51浏览次数:47  
标签:错误 运维 错误信息 源文件 导入 数据格式 openGauss 数据

openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表

164.1 操作场景

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

164.2 查询错误信息

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

  • 数据格式错误

    在创建外表时,通过设置参数“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 详细错误信息。
  • 非数据格式错误

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

164.3 处理数据导入错误

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

表 2 处理数据导入错误

错误信息 原因 解决办法
missing data for column "r_reason_desc" 数据源文件中的列数比外表定义的列数少。对于TEXT格式的数据源文件,由于转义字符(\)导致delimiter(分隔符)错位或者quote(引号字符)错位造成的错误。**示例:**目标表存在3列字段,导入的数据如下所示。由于存在转义字符“\”,分隔符“|”被转义为第二个字段的字段值,导致第三个字段值缺失。BE|Belgium\|1 由于列数少导致的报错,选择下列办法解决:在数据源文件中,增加列“r_reason_desc”的字段值。在创建外表时,将参数“fill_missing_fields”设置为“on”。即当导入过程中,若数据源文件中一行数据的最后一个字段缺失,则把最后一个字段的值设置为NULL,不报错。对由于转义字符导致的错误,需检查报错的行中是否含有转义字符(\)。若存在,建议在创建外表时,将参数“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)。

标签:错误,运维,错误信息,源文件,导入,数据格式,openGauss,数据
From: https://blog.51cto.com/shuchaoyang/8876574

相关文章

  • MySQL运维8-Mycat范围分表
    一、范围分片根据指定的字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片。说明1:范围分片会提前提供一个分片的范围默认是0-500万是一个分片,500万-1000万是一个分片,1000万-1500万是一个分片,超过1500万要重新设置。说明2:这个范围我们可以根......
  • wgcloud运维部署 - 配置使用https证书
    https://www.wgstart.com/help/docs137.html......
  • openGauss学习笔记-163 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STD
    openGauss学习笔记-163openGauss数据库运维-备份与恢复-导入数据-使用COPYFROMSTDIN导入数据-简介163.1关于COPYFROMSTDIN导入数据用户可以使用以下方式通过COPYFROMSTDIN语句直接向openGauss写入数据。通过键盘输入向openGauss数据库写入数据。详细请参见COPY。通过......
  • MySQL运维6-Mycat垂直分库
    一、垂直分库场景场景:在业务系统中,涉及一下表结构,但是由于用户与订单每天都会产生大量的数据,单台服务器的数据存储以及处理能力是有限的,可以对数据库表进行拆分,原有数据库如下说明1:整个业务系统中的表,大致分为四个,商品信息类的表,订单相关的表,用户相关表及省市区相......
  • 菜鸡运维成长记-第二周
    文本处理工具总结:查看文本文件内容:cat:-A|--show-all#显示所有控制符-n|--number#对显示出的每一行进行编号-b|--number-nonblank#非空行编号-s|--squeeze-blank#压缩连续的空行成一行nl:显示行号,相当于cat-btac:逆向显示文本内容,行倒序显示rev:将同一行的内......
  • 某航空公司引入运维管理软件,提升信息化运营效率
      在信息化时代,企业信息化的程度已经成为影响其核心竞争力的重要因素。某航空公司作为行业领导者,积极推进信息化建设,不断提升运维管理水平,以适应日益激烈的市场竞争。该公司成功引入了一款先进的运维管理软件,实现了对IT设备的集中监控、自动化管理和安全管理,显著提升了信息化业......
  • SRE Google运维解密 第三章
    第二部分指导思想本部分将描述SRE日常工作背后的指导思想——工作模式、行为方式,以及平时运维工作中关注的重点等。第三章拥抱风险管理风险在构建系统的过程中,可靠性的进一步提升成本并不是线性增加的。高昂的成本主要存在于以下两个维度:冗余物理服务器/计算资源的成......
  • 云平台运维过程问题,以及解决方法
    1.裸金属替换下发,后bond1网络不通或者丢包。:排查用到的命令:ifdown  ifconfigeth0down/up ip-bra  demsg|grepDMI查看服务器厂家 、cat/etc/os-release查看操作系统版本#用带外看服务器的状态ipmitool-Ilanplus-H22.234.11.158-Uadmin-PPCfwq@psbc202......
  • openGauss学习笔记-161 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_d
    openGauss学习笔记-161openGauss数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出所有数据库-无权限角色导出数据161.1无权限角色导出数据gs_dump和gs_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导出所要求的权限时,会无法导出......
  • Python高级之模块导入
    模块导入与包的使用【一】模块与包概要模块(Module):定义:在Python中,模块是一个包含Python代码的文件。这些文件以.py为扩展名,可以包含变量、函数和类等,文件名为xxx.py,模块名则是xxx,导入模块可以引用模块中已经写好的功能。作用:模块提供了一种组织代码的方式,将相关的功......