メインコンテンツまでスキップ
に最終更新

PARQUET_META

parquet_meta テーブル値関数(TVF)を使用すると、データページをスキャンせずに Parquet ファイルのフッターメタデータを読み取れます。行グループの統計情報、スキーマ、ファイルレベルのメタデータ、KV メタデータ、ブルームフィルターのプローブ結果をすばやく確認できます。

これは実験的な機能で、バージョン 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 ファイル内のブルームフィルターを使用したデータのフィルタリングと枝刈りをサポートしています。このモードでは、指定した列と列値がブルームフィルターで検出できるかを調べます。

フィールド名型
file_nameSTRING
row_group_idINT
bloom_filter_excludesINT

bloom_filter_excludes の値の意味は次のとおりです。

  • 1: ブルームフィルターにより、この行グループに指定した値が含まれないことが確定します。
  • 0: ブルームフィルターにより、この行グループに指定した値が含まれる可能性があると判定されます。
  • -1: ファイルにブルームフィルターがありません。

例​

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

    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 ファイルのフッターメタデータのみを読み取り、データページは読み取りません。そのため、メタデータをすばやく確認するのに適しています。
  • ワイルドカード(*、{}、[] など)をサポートします。一致するファイルが見つからない場合は、エラーが報告されます。