ORC

使用包含 COPY 语句的 ORC 子句以 ORC 格式加载数据。将数据加载到 Vertica 时,可读取所有基元类型、UUID 和复杂类型

加载 ORC 数据时,必须考虑数据中的所有列;不能只选择某些列。

如果表定义包含基元类型的列,且这些列不存在于数据中,则解析器将使用 NULL 填充这些列。如果表定义包含复杂类型的列,则这些列必须存在于数据中。

此解析器不支持分摊加载或协作解析

语法

ORC ( [ parameter=value[,...] ] )

参数

所有参数均为可选参数。

hive_partition_cols
以逗号分隔的列列表,这些列是数据中的分区列。
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;