メインコンテンツまでスキップ
バージョン: 26.x

PARQUET_META

parquet_metaTable値関数(tvf)は、データページをスキャンすることなくParquetファイルのFooterメタデータを読み取るために使用できます。Row Group統計、Schema、ファイルレベルメタデータ、KVメタデータ、およびBloom Filterプローブ結果を素早く表示することができます。

これは実験的機能であり、バージョン4.1.0以降でサポートされています。

構文

PARQUET_META(
"uri" = "<uri>",
"mode" = "<mode>",
{OptionalParameters},
{ConnectionParameters}
);
  • uri

    ファイルパス。

  • mode

    メタデータクエリモード。オプション、デフォルトはparquet_metadata。値については「サポートされるモード」セクションを参照。

  • {OptionalParameters}

    • column: モードがparquet_bloom_probeの場合に必須、調査するカラム名を指定します。
    • value: モードがparquet_bloom_probeの場合に必須、調査するリテラル値を指定します。
  • {ConnectionParameters}

    ファイルが配置されているストレージシステムにアクセスするために必要なパラメータ。詳細については以下を参照:

サポートされるモード

parquet_metadata

デフォルトモード。

このモードはParquetファイルに含まれるメタデータをクエリするために使用できます。このメタデータはParquetファイルの様々な内部詳細(異なるカラムの統計情報など)を明らかにします。これによりParquetファイルでどのようなスキップ操作を実行できるかを判断でき、異なるカラムの内容について迅速な洞察を得ることも可能です。

フィールド名
file_nameSTRING
row_group_idBIGINT
row_group_num_rowsBIGINT
row_group_num_columnsBIGINT
row_group_bytesBIGINT
column_idBIGINT
file_offsetBIGINT
num_valuesBIGINT
path_in_schemaSTRING
typeSTRING
stats_minSTRING
stats_maxSTRING
stats_null_countBIGINT
stats_distinct_countBIGINT
stats_min_valueSTRING
stats_max_valueSTRING
compressionSTRING
encodingsSTRING
index_page_offsetBIGINT
dictionary_page_offsetBIGINT
data_page_offsetBIGINT
total_compressed_sizeBIGINT
total_uncompressed_sizeBIGINT
key_value_metadataMAP<VARBINARY, VARBINARY>
bloom_filter_offsetBIGINT
bloom_filter_lengthBIGINT
min_is_exactBOOLEAN
max_is_exactBOOLEAN
row_group_compressed_bytesBIGINT

parquet_schema

このモードはParquetファイルに含まれる内部スキーマをクエリするために使用できます。これはParquetファイルメタデータに含まれる構造であることに注意してください。

フィールド名
file_nameVARCHAR
nameVARCHAR
typeVARCHAR
type_lengthBIGINT
repetition_typeVARCHAR
num_childrenBIGINT
converted_typeVARCHAR
scaleBIGINT
precisionBIGINT
field_idBIGINT
logical_typeVARCHAR

parquet_file_metadata

このモードは、フォーマットバージョンや使用された暗号化アルゴリズムなどのファイルレベルメタデータをクエリするために使用できます。

フィールド名
file_nameSTRING
created_bySTRING
num_rowsBIGINT
num_row_groupsBIGINT
format_versionBIGINT
encryption_algorithmSTRING
footer_signing_key_metadataSTRING

parquet_kv_metadata

このモードはキー・バリューペアとして定義されたカスタムメタデータをクエリするために使用できます。

フィールド名
file_nameSTRING
keySTRING
valueSTRING

parquet_bloom_probe

DorisはParquetファイルのBloom filterをデータフィルタリングとプルーニングに使用することをサポートしています。このモードは指定されたカラムとカラム値がBloom filterを通じて検出できるかどうかを検出するために使用されます。

フィールド名
file_nameSTRING
row_group_idINT
bloom_filter_excludesINT

bloom_filter_excludesの意味:

  • 1: Bloom FilterによりこのRow Groupに確実にこの値が含まれていないと判定
  • 0: Bloom Filterによりこの値が含まれている可能性があると判定
  • -1: ファイルにBloom Filterが存在しない

  • ローカルファイル(スキームなし)

    SELECT * FROM parquet_meta(
    "uri" = "/path/to/test.parquet"
    );
  • S3ファイル(スキーマ + ストレージパラメータを含む)

    SELECT * FROM parquet_meta(
    "uri" = "s3://bucket/path/test.parquet",
    "mode" = "parquet_schema",
    "s3.access_key" = "...",
    "s3.secret_key" = "...",
    "s3.endpoint" = "s3.xxx.com",
    "s3.region" = "us-east-1"
    );
  • ワイルドカード(glob)の使用

    SELECT file_name FROM parquet_meta(
    "uri" = "s3://bucket/path/*meta.parquet",
    "mode" = "parquet_file_metadata"
    );
  • parquet_bloom_probe モードの使用

    select * from parquet_meta(
    "uri" = "${basePath}/bloommeta.parquet",
    "mode" = "parquet_bloom_probe",
    "column" = "col",
    "value" = 500,
    "s3.access_key" = "${ak}",
    "s3.secret_key" = "${sk}",
    "s3.endpoint" = "${endpoint}",
    "s3.region" = "${region}",
    );

注意事項と制限事項

  • parquet_metaはParquet Footerメタデータのみを読み取り、データページは読み取らないため、メタデータを素早く表示するのに適しています。
  • ワイルドカード(*{}[]など)をサポートしています。一致するファイルが見つからない場合、エラーが報告されます。