GBase 8a的加载和导出,一些核心参数是相同的,本文简单对比下语法,列出相同和不通的地方。
属性 | 加载 | 导出 | 备注 |
LOAD DATA infile | SELECT INTO OUTFILE | ||
文件 | file_list | file_name | 加载支持多个文件 导出只能是1个文件名、 |
字符集 | CHARACTER SET | CHARACTER SET | |
数据模式 | DATA_FORMAT | ||
数据模式包含行分隔符 | HAVING LINES SEPARATOR | ||
NULL值 | NULL_VALUE | NULL_VALUE | 加载支持不超过 15 个任意字符的组合 导出最大支持字符数为 32。默认为“\N” |
字段-分隔符 | TERMINATED BY | TERMINATED BY | 加载支持不超过 15 个任意字符的组合 导出最大支持字符数为 10 |
字段-包围符 | ENCLOSED BY | [OPTIONALLY] ENCLOSED BY | 加载支持任意单字符 导出支持任意单字符,OPTIONALLY为只处理字符类型 |
字段-保留空格 | PRESERVE [LEADING | TRAILING] BLANKS | ||
字段-自动补齐 | AUTOFILL | ||
字段-定长加载的数据长度 | LENGTH | LENGTH | 定长模式。 |
字段-字段对应关系 | TABLE_FIELDS | ||
行分割符 | lines terminated by | lines terminated by | 加载和导出最大支持字符数为 10 |
允许最多错误记录行数 | MAX_BAD_RECORDS | ||
时间类型格式 | DATETIME FORMAT | 如果日期有其它格式,需要在table_fields里单独指定 | |
日期类型格式 | DATE FORMAT | ||
时间戳类型格式 | TIMESTAMP FORMAT | ||
时间格式 | TIME FORMAT | ||
记录错误数据 | TRACE | ||
错误数据保存位置 | TRACE_PATH | ||
数据文件不切割 | NOSPLIT | ||
分发节点并行度 | PARALLEL | ||
分发节点数量 | MAX_DATA_PROCESSORS | ||
最小切分尺寸 | MIN_CHUNK_SIZE | ||
忽略不存在的文件 | SKIP_BAD_FILE | ||
设置未加载的列的值 | SET | ||
忽略开头的行数 | IGNORE NUM LINES | ||
文件格式 | FILE_FORMAT | 用来指定被加载文件的格式。枚举型参数,取值为UNDEFINED 、 UNCOMPRESSED 、 GZIP 、 SNAPPY 、 LZO , 默 认 为UNDEFINED。指定为 UNDEFINED,表示不指定格式,按文件后缀自动判断文件格式;指定为 UNCOMPRESSED,表示按普通文本方式加载文件;指定为 GZIP,表示按 GZIP 格式加载文件;指定为 SNAPPY,表示按 SNAPPY格式加载文件;指定为 LZO,表示按 LZO 格式加载文件。 | |
转义符 | ESCAPED BY | 导出指定单个字符为转义标识符,默认\ | |
BLOB类型的处理 | BLOBMODE | 加载在TABLE_FIELDS里指定导出用这个关键字指定,TYPE_TEXT、TYPE_BASE64、TYPE_URL | |
LINES STARTING BY | 行起始符,支持多个字符,最大支持字符数为 10。默认为空 | ||
DOUBLE_ENCLOSED BY | 有转义符(包括默认),则与ENCLOSED相同。 转义符设置为空时,如果某字段满足使用字段包围符的条件,且该字段中还有与字段包围符相同的字符,则将该字符通过双写的方式自转义 | ||
OUTFILEMODE BY | 导出方式,可选值为:LOCAL 或 HDFS。LOCAL:导出本地文件,HDFS:导出 HDFS 文件。默认为 LOCAL 方式导出。 | ||
WRITEMODE BY | 写入方式,可选值为:NORMAL 或 OVERWRITES。 NORMAL:如果文件已存在则报错,OVERWRITES 覆盖已存在的文件。 默认为 NORMAL 方式写入。 | ||
FILECOUNT | 并行导出的文件个数,最小值为 0,最大值为 UINT_MAX(4294967295),默认值为 0,表示不限制文件导出个数。 仅对导出 HDFS 文件有效。 在不指定 FILESIZE 参数时,实际导出 HDFS 文件个数为FILECOUNT 和数据主分片数二者的最小值。 当使用默认值时,每个主分片导出为一个 HDFS 文件。 | ||
FILESIZE | 导出文件大小的最大值,最小值为 0,最大值为 ULONGLONG_MAX(18446744073709551615),默认值为 0, 表示不限制导出文件的大小。如导出文件大小大于此参数值,则分裂产生新文件。新文件命名方式为file_title+suffix+file_ext 形式,其中 file_title 是 file_name 中’.’之前的部分,file_ext 为 file_name 中’.’之后的部分(包含’.’)suffix 为自动追加的文件名后缀,第一个文件名后缀是“_p1”,以此类推。FILESIZE 值支持 k/K/m/M/g/G 后缀表示方式。 | ||
WITH HEAD | 可选参数,用户输入该参数时,表示本地导出数据文件带有表头信息。用户忽略该参数时,表示本地导出数据文件不带表头信息。 |
目录导航
导出指定行开头 LINES STARTING BY
如下指定,每一行的开头,增加----字符。 可以考虑额外的增加一些字段信息。
gbase> select * from test into outfile '/home/gbase/test.txt' fields terminated by '|' double_enclosed by ',' escaped by '\\' writemode by overwrites LINES STARTING BY '----';
Query OK, 11 rows affected (Elapsed: 00:00:00.02)
gbase> system cat /home/gbase/test.txt
cat: /home/gbase/test.txt: Is a directory
gbase> system cat /home/gbase/test.txt/test.txt
----,43452,|,sisoekso,|,mozoa\,a,
----,59432,|\N|,laqpqpd,
----,3890,|,lqps\,rpd,|\N
----,1,|,测试,|,测试,
----,2,|,1|2,|,4\,|6,
----,4345,|,2|siso,|,ekso|mozoa,
----,434,|,52|s,|,isoek,
----,594,|,32|g,|,g|laq,
----,38,|,90|l,|,qps\,r,
----,111,|,ABCD,|,12345,
----,111,|,ABCD,|,12345,