テーブル関数
テーブル関数はテーブルを構築するためのメソッドです。
使用法
テーブル関数は SELECT
クエリの FROM
句で使用できます。例えば、file
テーブル関数を使用してローカルマシン上のファイルからデータを SELECT
できます。
また、現在のクエリでのみ使用可能な一時テーブルを作成するためにテーブル関数を使用することもできます。例えば:
クエリが終了すると、テーブルは削除されます。
テーブル関数は次の構文を使用してテーブルを作成する方法として使用できます:
例えば:
最後に、テーブル関数を使用してテーブルにデータを INSERT
することもできます。例えば、前の例で作成したテーブルの内容を file
テーブル関数を使用してディスク上のファイルに書き出すことができます:
注記
allow_ddl 設定が無効になっている場合、テーブル関数を使用できません。
ページ | 説明 |
---|---|
fileCluster | クラスター内の複数のノードで指定されたパスに一致するファイルを同時に処理することを可能にします。イニシエーターはワーカーノードに接続し、ファイルパスのグロブを展開し、ファイル読み取りタスクをワーカーノードに委任します。各ワーカーノードはイニシエーターに次に処理するファイルを照会し、すべてのタスクが完了するまで繰り返します(すべてのファイルが読み込まれるまで)。 |
input | 特定の構造を持つサーバーに送信されるデータを別の構造を持つテーブルに変換して挿入することを可能にするテーブル関数です。 |
iceberg | Amazon S3, Azure, HDFS またはローカルに保存された Apache Iceberg テーブルへの読み取り専用のテーブルのようなインターフェースを提供します。 |
executable | executable テーブル関数は、行を stdout に出力するスクリプトで定義したユーザー定義関数 (UDF) の出力に基づいてテーブルを作成します。 |
timeSeriesMetrics | timeSeriesMetrics は、テーブルエンジンが TimeSeries エンジンである db_name.time_series_table テーブルによって使用されるメトリクステーブルを返します。 |
loop | ClickHouse のループテーブル関数は、無限ループでクエリの結果を返すために使用されます。 |
url | 指定された format と structure を持つ URL からテーブルを作成します。 |
hudi | Amazon S3 の Apache Hudi テーブルへの読み取り専用のテーブルのようなインターフェースを提供します。 |
fuzzQuery | 与えられたクエリ文字列にランダムな変動を加えます。 |
clusterAllReplicas | 分散テーブルを作成せずに、クラスター内のすべてのシャード(remote_servers セクションで構成された)にアクセスできるようにします。 |
urlCluster | 指定されたクラスターの多くのノードからURLのファイルを並行して処理できます。 |
redis | このテーブル関数は、ClickHouse を Redis と統合することを可能にします。 |
icebergCluster | 指定されたクラスターの多くのノードで Apache Iceberg からファイルを並行して処理できるようにする iceberg テーブル関数の拡張です。 |
view | サブクエリをテーブルに変換します。この関数は、ビューを実装します。 |
file | ファイルからの SELECT および INSERT に類似したテーブルのようなインターフェースを提供するテーブルエンジンです。ローカルファイルで作業する場合は file() を使用し、S3、GCS、または MinIO のようなオブジェクトストレージ内のバケットで作業する場合は s3() を使用します。 |
timeSeriesTags | timeSeriesTags テーブル関数は、テーブルエンジンが TimeSeries エンジンである db_name.time_series_table に使用されるタグテーブルを返します。 |
mysql | リモート MySQL サーバーに保存されているデータに対して SELECT および INSERT クエリを実行できます。 |
mergeTreeProjection | MergeTree テーブル内のいくつかのプロジェクションの内容を表します。 introspection に使用できます。 |
s3 Table Function | Amazon S3 および Google Cloud Storage でファイルを選択/挿入するためのテーブルのようなインターフェースを提供します。このテーブル関数は hdfs 関数に類似していますが、S3 専用の機能を提供します。 |
dictionary | 辞書のデータを ClickHouse テーブルとして表示します。辞書エンジンと同様に動作します。 |
hdfs | HDFS のファイルからテーブルを作成します。このテーブル関数は url および file テーブル関数に類似しています。 |
fuzzJSON | ランダムな変動で JSON 文字列を変化させます。 |
hdfsCluster | 指定されたクラスターの多くのノードで HDFS からファイルを並行処理できるようにします。 |
zeros | 多くの行を生成するための最も高速な方法として、テスト目的に使用されます。 system.zeros および system.zeros_mt システムテーブルに類似しています。 |
values | 値でカラムを埋める一時ストレージを作成します。 |
generateRandom | 指定されたスキーマでランダムデータを生成します。テストテーブルにそのデータを入れることを可能にします。すべての型はサポートされていません。 |
deltaLake | Amazon S3 の Delta Lake テーブルへの読み取り専用のテーブルのようなインターフェースを提供します。 |
gcs | Google Cloud Storage からデータを SELECT および INSERT するためのテーブルのようなインターフェースを提供します。 Storage Object User IAM ロールが必要です。 |
mergeTreeIndex | MergeTree テーブルのインデックスおよびマークファイルの内容を表します。 introspection に使用できます。 |
postgresql | リモート PostgreSQL サーバーに保存されているデータに対して SELECT および INSERT クエリを実行できます。 |
timeSeriesData | timeSeriesData は、テーブルエンジンが TimeSeries の db_name.time_series_table で使用されるデータテーブルを返します。 |
azureBlobStorage | Azure Blob Storage でファイルを選択/挿入するためのテーブルのようなインターフェースを提供します。s3 関数に類似しています。 |
odbc | ODBC 経由で接続されているテーブルを返します。 |
merge | 一時的な Merge テーブルを作成します。構造は、基礎となるテーブルのカラムの和集合と共通の型から導き出されます。 |
hudiCluster Table Function | hudi テーブル関数の拡張です。指定されたクラスターの多くのノードで Amazon S3 の Apache Hudi テーブルからファイルを並行処理できるようにします。 |
generate_series (generateSeries) | 開始から停止まで(両端含む)の整数を含む単一の generate_series カラム (UInt64) のテーブルを返します。 |
azureBlobStorageCluster | 指定されたクラスターの多くのノードで Azure Blob Storage からファイルを並行処理できるようにします。 |
jdbc | JDBC ドライバー経由で接続されているテーブルを返します。 |
format | 指定された入力フォーマットに従って引数からデータを解析します。構造引数が指定されていない場合、データから抽出されます。 |
s3Cluster | h3 テーブル関数の拡張で、指定されたクラスターの多くのノードで Amazon S3 および Google Cloud Storage からファイルを並行処理できるようにします。 |
TODO: Add title | TODO: 説明を追加 |
sqlite | SQLite データベースに保存されているデータに対してクエリを実行できるようにします。 |
deltaLakeCluster | deltaLake テーブル関数の拡張です。 |
numbers | 指定可能な整数を含む単一の number カラムを持つテーブルを返します。 |
null | Null テーブルエンジンを持つ指定された構造の一時テーブルを作成します。この関数はテストの執筆やデモの便利さのために使用されます。 |
remote, remoteSecure | テーブル関数 remote は、分散テーブルを作成せずに、オンザフライでリモートサーバーにアクセスすることを可能にします。テーブル関数 remoteSecure は、remote と同じですが、安全な接続を介しています。 |
mongodb | リモート MongoDB サーバーに保存されているデータに対して SELECT クエリを実行できるようにします。 |