メインコンテンツへスキップ
ClickHouse では、オブジェクトストレージ内のオープンテーブルフォーマットに保存されたデータを直接クエリできるテーブル関数を提供しています。外部カタログへの接続は不要で、AWS Athena が S3 から読み取るのと同様に、保存先のデータをそのままクエリできます。 関数呼び出しでストレージパスと認証情報を直接指定すれば、残りは ClickHouse が処理します。ClickHouse SQL のすべての構文と関数を利用でき、クエリでは ClickHouse の並列実行と高効率なネイティブ Parquet リーダーの利点を活かせます。
Server、local、または chDBこのガイドの手順は、既存の ClickHouse server インストールを使って実行できます。アドホックなクエリでは、代わりに clickhouse-local を使用して、server を起動せずに同じワークフローを完了することもできます。少し調整すれば、ClickHouse のインプロセス版である chDB を使って同じ手順を実行することも可能です。
以下の例では、各 lakehouse フォーマットで S3 に保存された hits データセットを使用します。各 lake フォーマットについて、オブジェクトストア provider ごとに専用の関数が用意されています。
iceberg テーブル関数 (icebergS3 のエイリアス) は、オブジェクトストレージから直接 Iceberg テーブルを読み取ります。ストレージバックエンドごとに対応するバリアントが用意されています: icebergS3icebergAzureicebergHDFSicebergLocal構文の例:
GCS のサポートこれらの関数の S3 版は、Google Cloud Storage (GCS) でも使用できます。
例:

クラスターバリアント

icebergS3Cluster 関数は、ClickHouse クラスター内の複数のノードに読み取りを分散します。イニシエーターノードはすべてのノードへの接続を確立し、データファイルを動的にディスパッチします。各ワーカーノードは、すべてのファイルが読み取られるまでタスクを要求して処理します。icebergClustericebergS3Cluster のエイリアスです。Azure (icebergAzureCluster) および HDFS (icebergHDFSCluster) 向けのバリアントも用意されています。構文の例:
例 (ClickHouse Cloud):

テーブルエンジン

クエリのたびにテーブル関数を使用する代わりに、Iceberg テーブルエンジンを使用して永続テーブルを作成することもできます。データは引き続きオブジェクトストレージに保存され、必要に応じて読み込まれます。ClickHouse にデータがコピーされることはありません。この方法の利点は、テーブル定義が ClickHouse に保存されるため、各ユーザーがストレージのパスや認証情報を個別に指定しなくても、ユーザーやセッションをまたいで共有できる点です。ストレージバックエンドごとにエンジンのバリアントが用意されており、IcebergS3 (または Iceberg エイリアス) 、IcebergAzureIcebergHDFSIcebergLocal があります。テーブルエンジンとテーブル関数はいずれも、S3、AzureBlobStorage、HDFSストレージエンジンと同じキャッシュ機構を使用したデータキャッシュをサポートしています。また、メタデータキャッシュはマニフェストファイルの情報をメモリに格納し、Icebergメタデータへの繰り返しアクセスを削減します。このキャッシュは、use_iceberg_metadata_files_cache 設定によってデフォルトで有効化されています。構文の例:テーブルエンジン IcebergIcebergS3 のエイリアスです。
GCS のサポートGoogle Cloud Storage (GCS) では、テーブルエンジンの S3 バリアントを使用できます。
例:
パーティションプルーニング、スキーマの進化、タイムトラベル、キャッシングなどのサポート済み機能については、サポートマトリックスを参照してください。完全なリファレンスについては、iceberg テーブル関数およびIceberg テーブルエンジンのドキュメントを参照してください。
最終更新日 2026年6月10日