テーブル関数
テーブル関数は、テーブルを生成するための関数です。
| ページ | 概要 |
|---|---|
| azureBlobStorage | Azure Blob Storage 内のファイルを選択・挿入するためのテーブル形式のインターフェイスを提供します。s3 関数と同様です。 |
| azureBlobStorageCluster | 指定したクラスタ内の複数のノードで、Azure Blob Storage 上のファイルを並列に処理できるようにします。 |
| clusterAllReplicas | remote_servers セクションで設定されたクラスター内のすべての分片に対して、分散テーブルを作成することなくアクセスできるようにします。 |
| deltaLake | Amazon S3 上の Delta Lake テーブルに対する読み取り専用のテーブルライクなインターフェイスを提供します。 |
| deltaLakeCluster | これは deltaLake テーブル関数の拡張機能です。 |
| dictionary | Dictionary データを ClickHouse テーブルとして表示します。Dictionary エンジンと同様に動作します。 |
| executable | executable テーブル関数は、行を stdout に出力するスクリプト内で定義されたユーザー定義関数 (UDF) の出力に基づいてテーブルを作成します。 |
| file | ファイルに対して SELECT および INSERT を、テーブルと同様のインターフェースで実行できるテーブルエンジンです。s3 テーブル関数と同様の役割を持ちます。ローカルファイルを扱う場合は file() を使用し、S3、GCS、MinIO などのオブジェクトストレージ内のバケットを扱う場合は s3() を使用します。 |
| fileCluster | クラスタ内の複数ノードにまたがって、指定されたパスに一致するファイルを同時並行で処理できるようにします。イニシエータはワーカーノードへの接続を確立し、ファイルパス内のグロブを展開したうえで、ファイル読み取りタスクをワーカーノードに委譲します。各ワーカーノードは、次に処理するファイルを取得するためにイニシエータへ問い合わせを行い、すべてのタスクが完了する(すべてのファイルが読み取られる)までこれを繰り返します。 |
| format | 指定された入力フォーマットに従って、引数からデータを解析します。structure 引数が指定されていない場合は、構造がデータから抽出されます。 |
| gcs | Google Cloud Storage 上のデータに対して SELECT および INSERT を行うためのテーブル形式のインターフェースを提供します。Storage Object User IAM ロールが必要です。 |
| fuzzJSON | JSON 文字列にランダムな揺らぎを加えます。 |
| fuzzQuery | 指定されたクエリ文字列にランダムな揺らぎを与えます。 |
| generateRandom | 指定されたスキーマに基づいてランダムなデータを生成します。そのデータを使ってテスト用テーブルを埋めることができます。すべての型がサポートされているわけではありません。 |
| mergeTreeIndex | MergeTree テーブルの index ファイルおよび marks ファイルの内容を表します。内部構造の確認に利用できます。 |
| mergeTreeProjection | MergeTree テーブル内のあるプロジェクションの内容を表します。内部状態の調査に使用できます。 |
| hdfs | HDFS 内のファイルからテーブルを作成します。このテーブル関数は、url および file テーブル関数と同様のものです。 |
| hdfsCluster | 指定したクラスター内の複数ノードから、HDFS 上のファイルを並列処理できるようにします。 |
| hudi | Amazon S3 上の Apache Hudi テーブルに対する読み取り専用のテーブル形式インターフェースを提供します。 |
| ytsaurus | テーブル関数を使用すると、YTsaurus クラスターからデータを読み込むことができます。 |
| hudiCluster テーブル関数 | hudi テーブル関数の拡張です。Amazon S3 上の Apache Hudi テーブル内のファイルを、指定したクラスタ内の複数ノードで並列処理できます。 |
| iceberg | Amazon S3、Azure、HDFS、またはローカルに保存された Apache Iceberg テーブルに対して、テーブルに類似した読み取り専用インターフェースを提供します。 |
| paimon | Amazon S3、Azure、HDFS、またはローカルに保存された Apache Paimon テーブルに対する読み取り専用のテーブルライクなインターフェイスを提供します。 |
| icebergCluster | 指定されたクラスター内の複数ノードから Apache Iceberg のファイルを並列処理できるようにする、iceberg テーブル関数の拡張です。 |
| paimonCluster | 指定したクラスタ内の複数ノード上で Apache Paimon のファイルを並列処理できるようにする paimon テーブル関数の拡張機能。 |
| input | サーバーに送信された所定の構造のデータを、別の構造を持つテーブルに効率的に変換して挿入するためのテーブル関数。 |
| jdbc | JDBC ドライバーを介して接続されているテーブルを返します。 |
| merge | 一時的な Merge テーブルを作成します。構造は、基になるテーブルのカラムの和集合を取り、共通の型を導出することで決定されます。 |
| mongodb | リモートの MongoDB サーバー上に保存されたデータに対して SELECT クエリを実行できるようにします。 |
| mysql | リモート MySQL サーバー上に保存されたデータに対して、SELECT および INSERT クエリを実行できるようにします。 |
| null | 指定した構造を持つ一時テーブルを Null テーブルエンジンで作成します。テストの記述やデモを行う際の利便性のために使用される関数です。 |
| numbers | 任意の整数を指定できる単一の number カラムを持つテーブルを返します。 |
| prometheusQuery | TimeSeries テーブル内のデータを使用して Prometheus クエリを評価します。 |
| prometheusQueryRange | TimeSeries テーブルのデータを使って Prometheus クエリを評価します。 |
| timeSeriesData | timeSeriesData は、テーブルエンジンが TimeSeries のテーブル db_name.time_series_table が使用するデータテーブルを返します。 |
| timeSeriesMetrics | timeSeriesMetrics は、テーブルエンジンが TimeSeries エンジンであるテーブル db_name.time_series_table で使用されるメトリクステーブルを返します。 |
| timeSeriesSelector | TimeSeries テーブルから、セレクターでフィルタリングされ、指定された期間内のタイムスタンプを持つ時系列データを読み取ります。 |
| timeSeriesTags | timeSeriesTags テーブル関数は、テーブルエンジンが TimeSeries エンジンであるテーブル db_name.time_series_table で使用される tags テーブルを返します。 |
| zeros | テスト用途で、短時間に多数の行を生成するために使用されます。system.zeros および system.zeros_mt システムテーブルと同様です。 |
| generate_series (generateSeries) | 開始値から終了値までの整数(両端を含む)を含む、単一の generate_series カラム (UInt64) を持つテーブルを返します。 |
| odbc | ODBC 経由で接続されているテーブルを返します。 |
| postgresql | リモートの PostgreSQL サーバーに保存されているデータに対して、SELECT および INSERT クエリを実行できるようにします。 |
| redis | このテーブル関数を使用すると、ClickHouse を Redis と連携させることができます。 |
| remote, remoteSecure | テーブル関数 remote を使用すると、分散テーブルを作成することなく、その場でリモートサーバーにアクセスできます。テーブル関数 remoteSecure は、安全な接続を使用する点を除けば、remote と同じです。 |
| S3 テーブル関数 | Amazon S3 および Google Cloud Storage 内のファイルを選択および挿入するためのテーブルのようなインターフェイスを提供します。このテーブル関数は hdfs 関数と似ていますが、S3 固有の機能を提供します。 |
| s3Cluster | s3 テーブル関数の拡張機能で、指定したクラスター内の多数のノードを使って、Amazon S3 および Google Cloud Storage 上のファイルを並列処理できます。 |
| sqlite | SQLite データベースに保存されたデータに対してクエリを実行できるようにします。 |
| arrowFlight | Apache Arrow Flight サーバーで公開されたデータに対してクエリを実行できるようにします。 |
| url | 与えられた format と structure を用いて URL からテーブルを作成します |
| urlCluster | 指定したクラスタ内の多数のノードから、URL 上のファイルを並列に処理できるようにします。 |
| values | カラムに値を格納する一時ストレージを作成します。 |
| view | サブクエリをテーブルとして扱えるようにします。この関数はビューの機能を実現します。 |
| loop | ClickHouse の loop テーブル関数は、クエリ結果を無限ループで繰り返し返すために使用されます。 |
使用方法
テーブル関数は、SELECT クエリの FROM
句で使用できます。たとえば、file テーブル関数を使ってローカルマシン上のファイルから
データを SELECT できます。
現在のクエリ内でのみ利用可能な一時テーブルを作成するために、テーブル関数を使用することもできます。例えば、次のようにします。
クエリの実行が完了すると、テーブルは削除されます。
テーブル関数を使うと、次の構文でテーブルを作成できます。
例:
最後に、テーブル関数を使用してテーブルにデータを INSERT することができます。例えば、前の例で作成したテーブルの内容を、再び file テーブル関数を使ってディスク上のファイルに書き出すことができます。
注記
allow_ddl 設定が無効になっている場合、テーブル関数は使用できません。