DROP FOREIGN TABLE IF EXISTS product_info_ext;
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';返回如下信息表示创建成功:
CREATE FOREIGN TABLE
设置项 | 值 | 说明 |
|---|---|---|
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”。
例如,源数据文件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”。
例如,源数据文件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 200集群和从集群导出数据。数据导入集群时,请将外表设为READ ONLY;导出时,请设为WRITE ONLY。 |
WITH error_table_name | 错误表名称product_info_err。 | 数据导入过程中出现的数据格式错误信息将被写入product_info_err指定的错误信息表中,可以在并行导入结束后查询此错误信息表,获取详细的错误信息。 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3134552/ ,如需转载,请注明出处,否则将追究法律责任。