加载数据

分区文件路径

数据文件有时在文件系统中使用目录结构进行分区。分区将值从原始数据中移出(在原始数据中,它们必须包含在每一行中),然后移入目录结构,从而节省磁盘空间。分区还可以通过允许跳过整个目录来提高查询性能。

在此之前,只有 Parquet 和 ORC 解析器可以利用分区文件路径。现在,通过新的 PARTITION COLUMNS 选项,COPY 支持所有解析器使用分区文件路径。Parquet 和 ORC 解析器的 hive_partition_cols 参数已被弃用。

与之前的版本相比,hive_partition_cols 参数的行为有以下变化:

  • 嵌套的分区目录必须以一致的顺序出现在文件系统中。以下路径模式无效:

    /data/created=2022-01-01/region=north
    /data/region=south/created=2022-01-02
    
  • 如果无法通过目录名称解析列值,COPY 会拒绝路径,而不是将值视为 null。

  • 如果路径缺少声明的分区列,则 COPY 始终返回错误。在此之前,如果 Parquet 解析器中的 do_soft_schema_match_by_name 为 true,解析器会用 null 值填充列。

  • 分区列不再需要是表定义中的最后一列。

请参阅分区文件路径