Iceberg統合
ユーザーは、テーブル関数を介してIcebergテーブルフォーマットと統合できます。
iceberg テーブル関数
Amazon S3、Azure、HDFS またはローカルに保存された Apache Iceberg テーブルへの読み取り専用テーブルライクインターフェースを提供します。
構文
引数
引数の説明は、それぞれのテーブル関数 s3
、azureBlobStorage
、HDFS
および file
の引数の説明に一致します。
format
は Iceberg テーブル内のデータファイルのフォーマットを表します。
返される値 指定された Iceberg テーブルからデータを読み取るための指定された構造を持つテーブル。
例
ClickHouse は現在、icebergS3
、icebergAzure
、icebergHDFS
および icebergLocal
テーブル関数および IcebergS3
、icebergAzure
、IcebergHDFS
と IcebergLocal
テーブルエンジンを介して Iceberg フォーマットのバージョン1と2の読み取りをサポートしています。
名前付きコレクションの定義
URL と認証情報を保存するための名前付きコレクションを構成する例を以下に示します。
スキーマの進化 現時点では、CH を利用して、時間の経過と共にスキーマが変更された iceberg テーブルを読み取ることができます。現在、列の追加や削除、列の順序が変更されたテーブルの読み取りをサポートしています。また、値が必要な列を NULL を許可する列に変更することも可能です。さらに、単純な型に対する許可された型変換をサポートしています。具体的には:
- int -> long
- float -> double
- decimal(P, S) -> decimal(P', S) ただし P' > P であること。
現在、ネストされた構造や配列およびマップ内の要素の型の変更はできません。
パーティションプルーニング
ClickHouse は Iceberg テーブルに対する SELECT クエリ中のパーティションプルーニングをサポートしており、関連のないデータファイルをスキップすることでクエリ性能を最適化します。現在、これはアイデンティティ変換と時間ベースの変換(時間、日、月、年)のみで動作します。パーティションプルーニングを有効にするには、use_iceberg_partition_pruning = 1
を設定してください。
エイリアス
テーブル関数 iceberg
は現在 icebergS3
のエイリアスです。
関連情報