Apache Parquetファイルへのユーザー定義インデックスの埋め込み

2025-07-15

Apache Parquetは基本的な統計とブルームフィルタのみに限定されているという誤解が一般的です。この記事では、互換性を損なうことなく、カスタムインデックスをParquetファイルに直接埋め込む方法を示します。フッターメタデータとオフセットベースのアドレス指定を活用することで、特定の列に対する一意の値リストなどのインデックスを追加でき、クエリのパフォーマンスが大幅に向上します。特に、非常に選択性の高い述語の場合に顕著です。著者は、このメカニズムの詳細と、Apache DataFusionを使用した実践的な例を示し、これらのカスタムインデックスのシリアライズ、保存、読み取り方法を説明しています。外部インデックスの複雑さとリスクに別れを告げましょう!

続きを読む

Apache DataFusion:Rustで書かれた強力で拡張可能なクエリエンジン

2025-01-16

Apache DataFusionは、Rustで記述された拡張可能なクエリエンジンで、Apache Arrowをインメモリ形式として使用します。SQLとDataFrame APIを提供し、CSV、Parquet、JSON、Avroなどのデータ形式をサポートし、優れたパフォーマンスとカスタマイズ性を備えています。DataFusionは、完全なクエリプランナー、列指向、ストリーミング、マルチスレッド、ベクトル化された実行エンジン、およびパーティション化されたデータソースを備えています。データソース、クエリ言語、関数、カスタム演算子などを追加することで、ほぼすべての点でカスタマイズできます。関連するサブプロジェクトには、DataFusion Python(Pythonバインディング)、DataFusion Ray(分散バージョン)、DataFusion Comet(Apache Sparkアクセラレータ)などがあります。

続きを読む