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