您将需要为每个表导出一个CSV文件,并具有以下要求:
文件必须为有效的CSV格式,但请注意,分隔符必须为单个字符。要使用逗号以外的其他字符(例如制表符),请使用delimiter
设置自定义分隔符。
文件必须为UTF-8编码。
如果字段中出现以下字符之一,则该字段必须用双引号引起来:
,
)为默认的情况"
)\n
)\r
)如果使用双引号将字段括起来,则必须在字段内部出现双引号,然后在其前面加上另一个双引号,以对其进行转义。例如:"aaa","b""bb","ccc"。
如果列是类型BYTES
,则它可以是有效的UTF-8字符串,也可以是以开头的十六进制编码的字节常量\x
。例如,一个字段,其值应是字节1,2将被写为\x0102。
URL必须使用以下格式:
[scheme]://[host]/[path]?[parameters]
类型 | schema | host | 参数 | 示例 |
---|---|---|---|---|
http | http | 主机地址 | N/A | http://localhost:8080/mydatest.csv |
NFS/Local | nodelocal | 节点ID或为空 | N/A | nodelocal://n/path/mydatest,nodelocal://n/path/mydatest2 |
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
) CSV DATA ('http://localhost:3000/employees.csv');
root@tytest16:26257/hubble_demo> IMPORT TABLE employees (
-> emp_no INT PRIMARY KEY,
-> birth_date DATE NOT NULL,
-> first_name STRING NOT NULL,
-> last_name STRING NOT NULL,
-> gender STRING NOT NULL,
-> hire_date DATE NOT NULL
-> ) CSV DATA ('http://localhost:3000/employees.csv');
job_id | status | fraction_completed | rows | index_entries | system_records | bytes
+--------------------+-----------+--------------------+--------+---------------+----------------+----------+
535422568764833793 | succeeded | 1 | 300024 | 0 | 0 | 12134341
(1 row)
Time: 3.078573146s
IMPORT INTO employees (emp_no, birth_date,first_name,last_name,gender,hire_date) CSV DATA ('http://localhost:3000/employees.csv')
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)csv data(
'http://192.168.100.101/tpdata1106/t05_on_board_order_evt_1y/02/xaa',
'http://192.168.100.101/tpdata1106/t05_on_board_order_evt_1y/02/xab',
'http://192.168.100.101/tpdata1106/t05_on_board_order_evt_1y/02/xac',
'http://192.168.100.101/tpdata1106/t05_on_board_order_evt_1y/02/xad',
'http://192.168.100.101/tpdata1106/t05_on_board_order_evt_1y/02/xae',
'http://192.168.100.101/tpdata1106/t05_on_board_order_evt_1y/02/xaf'
) with nullif = '\N',delimiter = e'|';
以下选项可用于IMPORT ... CSV
。
该delimiter
选项用于设置Unicode
字符,该字符标记每列的结尾。 默认值:,
。
用法示例:
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)
CSV DATA ('http://localhost:3000/employees.csv') WITH delimiter = e'\t';
root@tytest16:26257/hubble_demo> IMPORT INTO employees (emp_no, birth_date,first_name,last_name,gender,hire_date) CSV DATA ('http://localhost:3000/employees.csv');
job_id | status | fraction_completed | rows | index_entries | system_records | bytes
+--------------------+-----------+--------------------+--------+---------------+----------------+----------+
535428382456872961 | succeeded | 1 | 300024 | 0 | 0 | 12134341
(1 row)
Time: 5.768633441s
comment
选项确定哪个Unicode字符标记数据中要跳过的行。
用法示例:
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)
CSV DATA ('http://localhost:3000/employees.csv') WITH comment = '#';
skip
选项确定导入文件时要跳过的标题行数。
用法示例:
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)
CSV DATA ('http://localhost:3000/employees.csv') WITH skip = '2';
nullif
选项定义应将哪个字符串转换为NULL
。
用法示例:
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)
CSV DATA ('http://localhost:3000/employees.csv') WITH nullif = '';
decompress
选项用于指定需导入的csv
文件压缩格式,默认不使用压缩格式
可选的压缩格式包括:gzip
,bzip
,none
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)
CSV DATA ('http://localhost:3000/employees.csv.gz') WITH decompress = 'gzip';
row_limit
选项确定要从表中导入的行数。它有助于在执行更耗时和更耗费资源的导入之前快速查找错误。
用法示例:
IMPORT TABLE employees (
emp_no INT PRIMARY KEY,
birth_date DATE NOT NULL,
first_name STRING NOT NULL,
last_name STRING NOT NULL,
gender STRING NOT NULL,
hire_date DATE NOT NULL
)
CSV DATA ('http://localhost:3000/employees.csv')
WITH row_limit = '10';