テーブル関数
テーブル関数は、テーブルを生成するための関数です。
| ページ | 説明 |
|---|---|
| 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 | s3 テーブル関数と同様に、ファイルに対して SELECT および INSERT を行うためのテーブル形式のインターフェイスを提供するテーブルエンジンです。ローカルファイルを扱う場合は file() を使用し、S3、GCS、MinIO などのオブジェクトストレージ内のバケットを扱う場合は s3() を使用します。 |
| fileCluster | 指定されたパスに一致するファイルを、クラスタ内の複数ノードで同時に処理できるようにします。イニシエーターはワーカーノードへの接続を確立し、ファイルパス内のグロブを展開し、ファイル読み取りタスクをワーカーノードに委譲します。各ワーカーノードは、次に処理すべきファイルを取得するためイニシエーターに問い合わせを行い、すべてのタスクが完了するまで(すべてのファイルが読み取られるまで)これを繰り返します。 |
| format | 指定された入力フォーマットに従って、引数で渡されたデータを解析します。structure 引数が指定されていない場合は、構造はデータから自動的に抽出されます。 |
| gcs | Google Cloud Storage からデータを SELECT および INSERT するためのテーブル形式のインターフェイスを提供します。Storage Object User IAM ロールが必要です。 |
| fuzzJSON | 指定した JSON 文字列にランダムな変化を加えます。 |
| fuzzQuery | 指定したクエリ文字列にランダムな変化を加えます。 |
| generateRandom | 指定したスキーマに従ってランダムなデータを生成します。そのデータでテスト用テーブルを埋めることができます。一部の型はサポートされていません。 |
| mergeTreeIndex | MergeTree テーブルの索引ファイルおよびマークファイルの内容を表します。内部の状態を確認するために使用できます。 |
| mergeTreeProjection | MergeTree テーブル内のあるプロジェクションの内容を表します。内部の状態を確認するために使用できます。 |
| hdfs | HDFS 上のファイルからテーブルを作成します。このテーブル関数は、url および file テーブル関数と同様です。 |
| hdfsCluster | 指定したクラスター内の複数ノードから HDFS 上のファイルを並列に処理できるようにします。 |
| hudi | Amazon S3 上の Apache Hudi テーブルに対する読み取り専用のテーブル形式インターフェイスを提供します。 |
| ytsaurus | YTsaurus クラスターからデータを読み取るためのテーブル関数です。 |
| hudiCluster テーブル関数 | hudi テーブル関数の拡張です。指定したクラスタ内の多数のノードから、Amazon S3 上の Apache Hudi テーブルのファイルを並列に処理できます。 |
| paimon | Amazon S3、Azure、HDFS、またはローカルに保存された Apache Paimon テーブルに対して、読み取り専用のテーブル形式インターフェイスを提供します。 |
| iceberg | Amazon S3、Azure、HDFS、またはローカルに保存されている Apache Iceberg テーブルに対して、読み取り専用のテーブル形式インターフェースを提供します。 |
| paimonCluster | 指定したクラスター内の複数ノードから Apache Paimon のファイルを並列処理できるようにする paimon テーブル関数の拡張機能。 |
| icebergCluster | 指定したクラスター内の複数ノードから Apache Iceberg のファイルを並列処理できるようにする iceberg テーブル関数の拡張です。 |
| 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 が使用するタグテーブルを返します。 |
| zeros | テスト目的で多数の行を最も高速に生成するために使用されます。system.zeros および system.zeros_mt システムテーブルに類似しています。 |
| generate_series (generateSeries) | 単一の generate_series カラム (UInt64 型) を持つテーブルを返し、そのカラムには start から stop までの両端を含む整数が格納されます。 |
| odbc | ODBC を介して接続されたテーブルを返します。 |
| postgresql | リモート PostgreSQL サーバー上に保存されているデータに対して SELECT および INSERT クエリを実行できるようにします。 |
| redis | このテーブル関数を使用すると、ClickHouse を Redis と連携させることができます。 |
| remote, remoteSecure | テーブル関数 remote を使用すると、分散テーブルを作成することなく、オンザフライでリモートサーバーにアクセスできます。テーブル関数 remoteSecure は、安全な接続を使用する点を除き、remote と同様です。 |
| S3 テーブル関数 | Amazon S3 と Google Cloud Storage 内のファイルに対して SELECT/INSERT を行うための、テーブル形式のインターフェイスを提供します。このテーブル関数は hdfs 関数に似ていますが、S3 固有の機能を提供します。 |
| s3Cluster | s3 テーブル関数を拡張したもので、指定したクラスター内の複数のノードで Amazon S3 および Google Cloud Storage 上のファイルを並列処理できるようにします。 |
| sqlite | SQLite データベースに保存されているデータに対してクエリを実行できるようにします。 |
| arrowFlight | Apache Arrow Flight サーバーで公開されているデータに対してクエリを実行できるようにします。 |
| url | 指定された format と structure で URL からテーブルを作成します |
| urlCluster | 指定したクラスタ内の多数のノードで、URL から取得したファイルを並列処理できるようにします。 |
| values | カラムを値で埋めるための一時ストレージを作成します。 |
| view | サブクエリをテーブルに変換します。この関数は VIEW を実装します。 |
| loop | ClickHouse の loop テーブル関数は、クエリ結果を無限ループで返すために使用されます。 |
使用方法
テーブル関数は、SELECT クエリの FROM
句で使用できます。たとえば、file テーブル関数を使ってローカルマシン上のファイルから
データを SELECT できます。
現在のクエリ内でのみ利用可能な一時テーブルを作成するために、テーブル関数を使用することもできます。例えば、次のようにします。
クエリの実行が完了すると、テーブルは削除されます。
テーブル関数を使うと、次の構文でテーブルを作成できます。
例:
最後に、テーブル関数を使用してテーブルにデータを INSERT することができます。例えば、前の例で作成したテーブルの内容を、再び file テーブル関数を使ってディスク上のファイルに書き出すことができます。
注記
allow_ddl 設定が無効になっている場合、テーブル関数は使用できません。