华为云云数据库GaussDB步骤3:在GaussDB数据库中创建外表_云淘科技

使用SQL客户端工具连接GaussDB数据库。
根据需要导入数据信息表1,创建如下外表:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
openGauss=# DROP FOREIGN TABLE IF EXISTS product_info_ext;
openGauss=# CREATE FOREIGN TABLE product_info_ext
(
    product_price                integer        not null,
    product_id                   char(30)       not null,
    product_time                 date           ,
    product_level                char(10)       ,
    product_name                 varchar(200)   ,
    product_type1                varchar(20)    ,
    product_type2                char(10)       ,
    product_monthly_sales_cnt    integer        ,
    product_comment_time         date           ,
    product_comment_num          integer        ,
    product_comment_content      varchar(200)              
) 
SERVER gsmpp_server 
OPTIONS(
LOCATION 'gsfs://192.168.0.90:5000/*',
FORMAT 'CSV' ,
DELIMITER ',',
ENCODING 'utf8',
HEADER 'false',
FILL_MISSING_FIELDS 'true',
IGNORE_EXTRA_DATA 'true'
)
READ ONLY
LOG INTO product_info_err 
PER NODE REJECT LIMIT 'unlimited';

返回如下信息表示创建成功:

1
CREATE FOREIGN TABLE
表1 外表各项的设置说明如下

设置项

说明

SERVER

gsmpp_server

无需修改,即固定设为gsmpp_server。

LOCATION

gsfs://192.168.0.90:5000/*

数据源文件位置。

若使用SSL加密传输时,请使用gsfss协议。即为gsfss://192.168.0.90:5000/*

FORMAT

CSV

数据源文件格式。

ENCODING

UTF-8

数据编码格式。

DELIMITER

英文逗号

字段分隔符。

HEADER

false(默认值)

此参数用于指定数据文件是否包含标题行。该参数只针对CSV和FIXED格式的数据文件有效。准备数据源文件中的数据文件第一行不是标题行(即表头),故设为“false”。

FILL_MISSING_FIELDS

true

当数据导入时,数据源文件中一行的最后一个字段缺失的处理方式。默认为false/off。本教程中设为“true”。

true/on:表示最后一个字段缺失时,把最后一个字段的值设置为NULL,不报错。
false/off:表示最后一个字段缺失时,做如下报错提示:missing data for column “tt”。

例如,源数据文件product_info2.csv中第2条记录的最后一个字段“product_comment_content”缺失。当FILL_MISSING_FIELDS使用false/off时,导入数据时错误表中会有类似如下的错误信息:

missing data for column "product_comment_content"

IGNORE_EXTRA_DATA

true

数据源文件中的字段比外表定义列数多时,是否忽略多出的列。默认为false/off。本教程中设为“true”。

true/on:数据源文件中字段比外表定义列数多,则忽略行尾多出来的列。不报错
false/off:若数据源文件中字段比外表定义列数多,做如下报错提示:extra data after last expected column。

例如,源数据文件product_info2.csv中第3条记录比外表定义列数多。当IGNORE_EXTRA_DATA设为false/off时,导入数据时错误表中会有类似如下的错误信息:

extra data after last expected column

PER NODE REJECT LIMIT ‘value’

unlimited

指定本次数据导入过程中每个DN实例上允许出现的数据格式错误的数量,如果有一个DN实例上的错误数量大于设定值,本次导入失败,报错退出。

本教程设置为“unlimited”,即接受导入过程中所有数据格式错误。

READ ONLY

外表的语法定义通用于导入数据到GaussDB集群和从集群导出数据。数据导入集群时,请将外表设为READ ONLY;导出时,请设为WRITE ONLY。

WITH error_table_name

错误表名称product_info_err。

数据导入过程中出现的数据格式错误信息将被写入product_info_err指定的错误信息表中,可以在并行导入结束后查询此错误信息表,获取详细的错误信息。

完整的选项说明请见 CREATE FOREIGN TABLE (导入导出)。

父主题: 教程:使用GDS从远端服务器导入数据

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家