• 沒有找到結果。

GDS服务器和GaussDB(DWS)集群之间网络可以互通。

● 需要创建一个弹性云服务器作为GDS服务器。

● 创建的弹性云服务器与GaussDB(DWS)集群应处于同一区域、同一虚拟私有云和 子网。

操作步骤

步骤1 在GaussDB(DWS)中创建目标表,用于存储导入的数据。建表语句请参见CREATE TABLE。

步骤2 执行数据导入。

INSERT INTO [目标表名] SELECT * FROM [foreign table 表名];

● 若出现以下类似信息,说明数据导入成功。请查询错误信息表,查看是否存在数 据格式错误,详细操作请参见处理错误表。

INSERT 0 9

● 若出现数据加载错误,请参见处理错误表,并重新执行数据导入。

说明

● 若执行过程中出现数据加载错误,则数据全部导入失败,没有数据导入至目标表中。

● 编写批处理任务脚本,实现并发批量导入数据。并发量视机器资源使用情况而定。可通过几 个表测试,监控资源利用率,根据结果提高或减少并发量。常用资源监控命令有:内存和 CPU监控top命令,IO监控命令iostat,网络监控命令sar等。相关案例请参见。

● 在资源许可的情况下,多台GDS服务器并发导入会很大程度上提高数据导入效率。相关案例 请参见示例:多数据服务器并行导入。

● 对于高并发的GDS导入场景,为了保持GDS和DN间的数据连接稳定,可以将GDS服务器环境 和DN所在环境的TCP Keepalive检测时间增长(推荐增长至5分钟)。调整集群环境的TCP Keepalive参数会影响故障检测的响应时间。

----结束

任务示例

1. 创建一个名为reasons的目标表。

CREATE TABLE reasons ( r_reason_sk integer not null, r_reason_id char(16) not null, r_reason_desc char(100)

)DISTRIBUTE BY HASH (r_reason_sk);

2. 将数据源文件中的数据通过外表“foreign_tpcds_reasons”导入到表“reasons”

中。INSERT INTO reasons SELECT * FROM foreign_tpcds_reasons ;

3. 在数据导入完成后,再重新创建索引。

CREATE INDEX reasons_idx ON reasons(r_reasons_id);

3.3.6 处理错误表

操作场景

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

查询错误信息

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

● 数据格式错误

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

SELECT * FROM error_table_name;

错误信息表结构如表3-9所示。

3-9 错误信息表

列名称 类型 描述

nodeid integer 报错节点编号。

begintime timestamp with time

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

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

当GDS导入时,同时会包括对应 GDS服务端的IP地址端口信息。

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

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

detail text 详细错误信息。

● 非数据格式错误

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

处理数据导入错误

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

3-10 处理数据导入错误

错误信息 原因 解决办法

missing data for column

extra data after last expected syntax for type numeric: "a"

数据类型错误。 在数据源文件中,修改输入字

段的数据类型。根据此错误信 息,请将输入的数据类型修改 为numeric。

null value in column

错误信息 原因 解决办法 duplicate key

value violates unique constraint

"reg_id_pk"

唯一约束。 ● 删除数据源文件中重复的

行。

● 通过设置关键字

“DISTINCT”,从SELECT 结果集中删除重复的行,保 证导入的每一行都是唯一 的。INSERT INTO reasons SELECT DISTINCT * FROM

foreign_tpcds_reasons;

value too long for type character varying(16)

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

VARCHAR2(16)。

3.3.7 停止 GDS

操作场景

待导入数据成功后,停止GDS。

操作步骤

步骤1 以gds_user用户登录安装GDS的数据服务器。

步骤2 请根据启动GDS的方式,选择停止GDS的方式。

● 若用户使用“gds”命令启动GDS,请使用以下方式停止GDS。

a. 执行如下命令,查询GDS进程号。

ps -ef|grep gds

示例:其中GDS进程号为128954。

ps -ef|grep gds

gds_user 128954 1 0 15:03 ? 00:00:00 gds -d /input_data/ -p 192.168.0.90:5000 -l /log/

gds_log.txt -D

gds_user 129003 118723 0 15:04 pts/0 00:00:00 grep gds

b. 使用“kill”命令,停止GDS。其中128954为上一步骤中查询出的GDS进程 号。kill -9 128954

----结束

3.3.8 GDS 导入示例