ORC文件说明
orc文件由一个个stripe组成,每个stripe大小固定、相互独立,stripe包含三部分:索引、数据、元数据,其中数据部分经编码、压缩后存储。
stripe orc文件的最小数据存储单元
stripefooter 存储stripe的元数据
footer 存储orc文件的stripe信息、数据结构信息、统计信息等
postscript 存储orc文件的基本元数据信息
加载ORC文件格式
data_format为orc 或者 data_format为8
orc文件加载对文件名和文件后缀无要求,但不支持gzip/snappy/lzo对orc的压缩文件加载
orc文件加载暂不支持orc的复合数据类型,如struct、union、list、map,其他基础数据类型都支持。
orc文件加载支持分块加载,默认加载时是开启分块加载的,指定nosplit参数时不启用分块功能。orc文件的分块以stripe为最小单位分块,默认以stripe为单位分块加载。
orc文件加载支持通配符方式批量加载,即file_list中的orc文件名可以部分包含通配符*,只要有一个文件错误,加载任务终止。
加载语法不变,同8a的加载语法,如:
load data infile 'http://gbase@192.168.6.6/orcfile/test.orc' into table orctest data_format orc;
加载参数支持情况
1.支持本地、ftp、sftp、http、hdfs、gbfs等数据源,同8a常规加载
2.可正常使用的参数:file_list、character_set、data_format、null_value、fields preserveblanks、autofill、table_fields、max_bad_records、datetime format、date format、time format、timestamp format、trace、trace_path、nosplit、max_data_processors、skip_bad_file、set
3.语法可通过并正常执行,但实际不起作用,会报warnings的参数:having lines separator、fields terminated by、fields enclosed by、length、lines terminated by、min_chunk_size
4.不支持的参数(会报错):ignore unm lines、file_format指定gzip、snappy、lzo会报错,指定uncompressed/undefined可正常加载。
5.orc文件中如有异常数据,loader_logs下的xxx_orc_loader.log中会记录异常数据的元数据信息(包括文件名、stripe索引、行索引等)和异常数据内容。orc文件加载不再记录loader_logs下错误数据文件,load_result文件正常更新,load_status正常更新。
导出ORC文件格式
orc文件导出支持本地、ftp、sftp、hdfs方式导出
orc文件导出不支持远程导出(rmt)、kafka导出、http导出
orc文件导出需指定导出文件名后缀为".orc"或者".ORC"。不支持导出压缩的orc文件,如后缀为.orc.gz导出的仍然为压缩的文本文件
orc文件导出支持配置导出的orc文件参数:stripe大小(默认64M)、orc文件内部的数据压缩格式(none/zlib/zstd)、orc文件压缩块大小(默认64k),可通过配置文件、global、session参数设置实现,如:
set global gbase_export_orc_stripe_size=67108864
set global gbase_export_orc_compression_kind=zlib;
set global gbase_export_orc_compression_block_size=65536
注:数字单位均为字节
orc文件导出支持设置导出orc文件大小超限分裂,通过参数filesize指定查询结果有效数据长度大于等于filesize值时,分裂成新的文件(数据以行保存,新数据文件不会跨行截断保存)。filesize默认值为0,即不限制导出文件大小,filesize的单位默认为字节,支持K/M/G写法,如64M/16G.
orc文件导出支持设置并行导出ORC文件到HDFS的文件个数,由参数filecount指定,默认不限制并行导出的文件个数,即并行导出每个分片为一个文件。如果同时指定filecount和filesize参数,则表示并行导出filecount组文件,每组文件按filesize自动分裂。只对导出到HDFS有效。
orc文件导出支持设置导出文件自动创建目标目录,即导出时自动创建与导出文件同名的目标目录,可使用参数gbase_export_directory控制,默认值为1表示自动创建,设置为0时不创建文件名的同名目录。该参数支持配置文件、global、session设置。
导出语法(同8a的常规导出)
select ... into outfile 'file_name' [option] from ...;
select ... from ... into outfile 'file_name' [option];
option参数支持情况:
1.可正常使用的参数:outfilemode by、writemode by、filecount、filesize、character set
2.语法可通过并正常执行,但实际不起作用,会报warnings的参数:files/columns terminated by、files/columns enclosed by、files/columns escaped by、lines terminated by、lines starting by、files/columns double_enclosed by、null_value、files/columns length、with head