数据仓库服务 GaussDB(DWS)-GDS导入示例:多数据服务器并行导入
多数据服务器并行导入
规划数据服务器与集群处于同一内网,数据服务器IP为192.168.0.90和192.168.0.91。数据源文件格式为 CS V。
- 创建导入的目标表tpcds.reasons。
123456
CREATE TABLE tpcds.reasons( r_reason_sk integer not null, r_reason_id char(16) not null, r_reason_desc char(100));
- 以root用户登录每台GDS数据服务器,在两台数据服务器上,分别创建数据文件存放目录“/input_data”。以下以IP为192.168.0.90的数据服务器为例进行操作,剩余服务器上的操作与它一致。
mkdir -p /input_data
- (可选)创建用户及其所属的用户组。此用户用于启动GDS。若该类用户及所属用户组已存在,可跳过此步骤。
groupadd gdsgrpuseradd -g gdsgrp gds_user
- 将数据源文件均匀分发至相应数据服务器的“/input_data”目录中。
- 修改每台数据服务器上数据文件及数据文件目录“/input_data”的属主为gds_user。以下以IP为192.168.0.90的数据服务器为例,进行操作。
chown -R gds_user:gdsgrp /input_data
- 以gds_user用户登录每台数据服务器上分别启动GDS。
其中GDS安装路径为“/opt/bin/dws/gds”,数据文件存放在“/input_data/”目录下,数据服务器所在IP为192.168.0.90和192.168.0.91,GDS监听端口为5000,以后台方式运行。
在IP为192.168.0.90的数据服务器上启动GDS。/opt/bin/dws/gds/bin/gds -d /input_data -p 192.168.0.90:5000 -H 10.10.0.1/24 -D
在IP为192.168.0.91的数据服务器上启动GDS。
/opt/bin/dws/gds/bin/gds -d /input_data -p 192.168.0.91:5000 -H 10.10.0.1/24 -D
- 创建外表tpcds.foreign_tpcds_reasons用于接收数据服务器上的数据。
其中设置导入模式信息如下所示:
- 导入模式为Normal模式。
- 由于启动GDS时,设置的数据源文件存放目录为“/input_data”,GDS监听端口为5000,所以设置参数“location”为“gsfs://192.168.0.90:5000/* | gsfs://192.168.0.91:5000/*”。
设置数据格式信息是根据导出时设置的详细数据格式参数信息指定的,参数设置如下所示:
- 数据源文件格式(format)为CSV。
- 编码格式(encoding)为UTF-8。
- 字段分隔符(delimiter)为E'\x08'。
- 引号字符(quote)为E'\x1b'。
- 数据文件中空值(null)为没有引号的空字符串。
- 逃逸字符(escape)默认和quote相同。
- 数据文件是否包含标题行(header)为默认值false,即导入时数据文件第一行被识别为数据。
设置导入容错性如下所示:
- 允许出现的数据格式错误个数(PER NODE REJECT LIMIT 'value')为unlimited,即接受导入过程中所有数据格式错误。
- 将数据导入过程中出现的数据格式错误信息( LOG INTO error_table_name)写入表err_tpcds_reasons。
根据以上信息,创建的外表如下所示:
1234567
CREATE FOREIGN TABLE tpcds.foreign_tpcds_reasons( r_reason_sk integer not null, r_reason_id char(16) not null, r_reason_desc char(100))SERVER gsmpp_server OPTIONS (location 'gsfs://192.168.0.90:5000/* | gsfs://192.168.0.91:5000/*', format 'CSV',mode 'Normal', encoding 'utf8', delimiter E'\x08', quote E'\x1b', null '', fill_missing_fields 'false') LOG INTO err_tpcds_reasons PER NODE REJECT LIMIT 'unlimited';
- 通过外表tpcds.foreign_tpcds_reasons,将数据导入目标表tpcds.reasons。
1
INSERT INTO tpcds.reasons SELECT * FROM tpcds.foreign_tpcds_reasons;
- 查询错误信息表err_tpcds_reasons,处理数据导入错误。详细请参见处理错误表。
1
SELECT * FROM err_tpcds_reasons;
- 待数据导入完成后,以gds_user用户登录每台数据服务器,分别停止GDS。
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 云数据迁移_什么是CDM_-华为云
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- 数据治理中心_数据开发_最佳实践_-华为云