ORC
使用包含 COPY 语句的 ORC 子句以 ORC 格式加载数据。将数据加载到 Vertica 时,可读取所有基元类型、UUID 和复杂类型。
加载 ORC 数据时,必须考虑数据中的所有列;不能只选择某些列。
如果表定义包含基元类型的列,且这些列不存在于数据中,则解析器将使用 NULL 填充这些列。如果表定义包含复杂类型的列,则这些列必须存在于数据中。
此解析器不支持分摊加载或协作解析。
语法
ORC ( [ parameter=value[,...] ] )
参数
所有参数均为可选参数。
hive_partition_cols
- 以逗号分隔的列列表,这些列是数据中的分区列。
已弃用
请改用 COPY PARTITION COLUMNS。请参阅分区文件路径。如果同时使用此参数和 PARTITION COLUMNS,则 COPY 将忽略此参数。 allow_no_match
- 是否接受包含的 glob 没有匹配文件的路径并在查询结果中报告 0 行。如果未设置此参数,当 FROM 子句中的路径与至少一个文件不匹配时,Vertica 将返回错误。
示例
ORC 子句不使用 PARSER 选项:
=> CREATE EXTERNAL TABLE orders (...)
AS COPY FROM 's3://DataLake/orders.orc' ORC;
可以将映射列读取为行数组,如以下示例中所示:
=> CREATE EXTERNAL TABLE orders
(orderkey INT,
custkey INT,
prods ARRAY[ROW(key VARCHAR(10), value DECIMAL(12,2))],
orderdate DATE
) AS COPY FROM '...' ORC;