⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
查询 Parquet 元数据

Parquet 元数据

parquet_metadata 函数可用于查询 Parquet 文件中包含的元数据,它揭示了 Parquet 文件的各种内部详细信息,例如不同列的统计数据。这对于确定 Parquet 文件中可能跳过哪些数据,甚至快速概览不同列所包含的内容都非常有用。

SELECT *
FROM parquet_metadata('test.parquet');

下面是 parquet_metadata 返回的列的表格。

字段 类型
文件名 VARCHAR
行组 ID BIGINT
行组行数 BIGINT
行组列数 BIGINT
行组字节数 BIGINT
列 ID BIGINT
文件偏移量 BIGINT
值数量 BIGINT
模式中的路径 VARCHAR
类型 VARCHAR
统计最小 VARCHAR
统计最大 VARCHAR
统计空值计数 BIGINT
统计不同值计数 BIGINT
统计最小值 VARCHAR
统计最大值 VARCHAR
压缩 VARCHAR
编码 VARCHAR
索引页偏移量 BIGINT
字典页偏移量 BIGINT
数据页偏移量 BIGINT
总压缩大小 BIGINT
总未压缩大小 BIGINT
键值元数据 MAP(BLOB, BLOB)
布隆过滤器偏移量 BIGINT
布隆过滤器长度 BIGINT
最小精确 BOOLEAN
最大精确 BOOLEAN

Parquet 模式

parquet_schema 函数可用于查询 Parquet 文件中包含的内部模式。请注意,这是 Parquet 文件元数据中包含的模式。如果您想了解 Parquet 文件中包含的列名和类型,使用 DESCRIBE 会更容易。

获取列名和列类型

DESCRIBE SELECT * FROM 'test.parquet';

获取 Parquet 文件的内部模式

SELECT *
FROM parquet_schema('test.parquet');

下面是 parquet_schema 返回的列的表格。

字段 类型
文件名 VARCHAR
名称 VARCHAR
类型 VARCHAR
类型长度 VARCHAR
重复类型 VARCHAR
子项数量 BIGINT
转换类型 VARCHAR
刻度 BIGINT
精度 BIGINT
字段 ID BIGINT
逻辑类型 VARCHAR

Parquet 文件元数据

parquet_file_metadata 函数可用于查询文件级元数据,例如格式版本和所使用的加密算法。

SELECT *
FROM parquet_file_metadata('test.parquet');

下面是 parquet_file_metadata 返回的列的表格。

字段 类型
文件名 VARCHAR
创建者 VARCHAR
行数 BIGINT
行组数 BIGINT
格式版本 BIGINT
加密算法 VARCHAR
页脚签名密钥元数据 VARCHAR

Parquet 键值元数据

parquet_kv_metadata 函数可用于查询定义为键值对的自定义元数据。

SELECT *
FROM parquet_kv_metadata('test.parquet');

下面是 parquet_kv_metadata 返回的列的表格。

字段 类型
文件名 VARCHAR
BLOB
BLOB

布隆过滤器

DuckDB 支持布隆过滤器,用于裁剪回答高选择性查询时需要读取的行组。目前,布隆过滤器支持以下类型:

  • 整数类型:TINYINT, UTINYINT, SMALLINT, USMALLINT, INTEGER, UINTEGER, BIGINT, UBIGINT
  • 浮点类型:FLOAT, DOUBLE
  • VARCHAR
  • BLOB

parquet_bloom_probe(filename, column_name, value) 函数显示了在使用布隆过滤器过滤给定列的给定值时,可以排除哪些行组。例如

FROM parquet_bloom_probe('my_file.parquet', 'my_col', 500);
文件名 行组 ID 布隆过滤器排除
my_file.parquet 0 true
my_file.parquet 9 false