メインコンテンツへスキップ
テーブル関数 は、テーブルを構築するための機能です。
ページ説明
azureBlobStorageAzure Blob Storage 内のファイルに対して選択や挿入を行うためのテーブル形式インターフェイスを提供します。s3 function に似ています。
azureBlobStorageCluster指定したクラスター内の多数のノードで Azure Blob Storage のファイルを並列処理できます。
clusterAllReplicasDistributed テーブルを作成せずに、クラスターのすべての分片 (remote_servers セクションで設定) にアクセスできます。
deltaLakeAmazon S3 内の Delta Lake テーブルに対する読み取り専用のテーブル形式インターフェイスを提供します。
deltaLakeClusterdeltaLake テーブル関数の拡張です。
dictionaryDictionary データを ClickHouse テーブルとして表示します。Dictionary engine と同様に動作します。
executableexecutable テーブル関数は、stdout に行を出力するスクリプト内で定義した user-defined function (UDF) の出力に基づいてテーブルを作成します。
files3 table function と同様に、ファイルに対する SELECT や INSERT のためのテーブル形式インターフェイスを提供するテーブルエンジンです。ローカルファイルを扱う場合は file() を、S3、GCS、MinIO などのオブジェクトストレージ内の bucket を扱う場合は s3() を使用します。
fileClusterクラスター内の複数ノードで、指定した path に一致するファイルを同時に処理できます。イニシエーターが worker ノードへの接続を確立し、ファイル path 内の globs を展開して、ファイル読み取り task を worker ノードに委譲します。各 worker ノードは次に処理するファイルをイニシエーターに問い合わせ、すべての task が完了するまで (すべてのファイルが読み取られるまで) これを繰り返します。
filesystemファイルシステムへのアクセスを提供し、ファイルの一覧表示とそのメタデータおよび内容の取得を行います。
format指定された入力フォーマットに従って引数からデータを解析します。structure argument が指定されていない場合は、データから抽出されます。
gcsGoogle Cloud Storage からデータを SELECT および INSERT するためのテーブル形式インターフェイスを提供します。Storage Object User IAM role が必要です。
fuzzQuery指定されたクエリ文字列にランダムな変化を加えます。
fuzzJSONJSON 文字列にランダムな変化を加えます。
generateRandom指定されたスキーマでランダムデータを生成します。そのデータでテストテーブルを埋めることができます。サポートされていない型もあります。
mergeTreeTextIndexMergeTree テーブル内のテキスト索引の Dictionary を表します。イントロスペクションに使用できます。
mergeTreeProjectionMergeTree テーブル内の一部の projection の内容を表します。イントロスペクションに使用できます。
mergeTreeIndexMergeTree テーブルの索引ファイルおよび marks ファイルの内容を表します。イントロスペクションに使用できます。
hdfsHDFS 内のファイルからテーブルを作成します。このテーブル関数は url および file テーブル関数に似ています。
hdfsCluster指定したクラスター内の多数のノードで HDFS のファイルを並列処理できます。
hudiAmazon S3 内の Apache Hudi テーブルに対する読み取り専用のテーブル形式インターフェイスを提供します。
ytsaurusこのテーブル関数では、YTsaurus クラスターからデータを読み取れます。
hudiCluster Table Functionhudi テーブル関数の拡張です。指定したクラスター内の多数のノードで、Amazon S3 内の Apache Hudi テーブルのファイルを並列処理できます。
icebergAmazon S3、Azure、HDFS、またはローカルに保存された Apache Iceberg テーブルに対する読み取り専用のテーブル形式インターフェイスを提供します。
paimonAmazon S3、Azure、HDFS、またはローカルに保存された Apache Paimon テーブルに対する読み取り専用のテーブル形式インターフェイスを提供します。
icebergClustericeberg テーブル関数の拡張で、指定したクラスター内の多数のノードから Apache Iceberg のファイルを並列処理できます。
paimonClusterpaimon テーブル関数の拡張で、指定したクラスター内の多数のノードから Apache Paimon のファイルを並列処理できます。
input指定した structure で server に送信されたデータを、別の structure を持つテーブルへ効率的に変換して挿入できるテーブル関数です。
jdbcJDBC driver 経由で接続されたテーブルを返します。
merge一時的な Merge テーブルを作成します。structure は、基になるテーブルのカラムのユニオンを使用し、共通の型を導出して決定されます。
mongodbリモートの MongoDB サーバーに保存されているデータに対して SELECT クエリを実行できます。
mysqlリモートの MySQL サーバーに保存されているデータに対して SELECT および INSERT クエリを実行できます。
nullNull table engine を使用して、指定した構造の一時テーブルを作成します。この関数は、テスト作成やデモのために使用されます。
timeSeriesMetricstimeSeriesMetrics は、table engine が TimeSeries engine のテーブル db_name.time_series_table で使用される Metrics テーブルを返します。
timeSeriesSelectorセレクターで絞り込み、指定した interval 内の timestamps を持つ時系列を TimeSeries テーブルから読み取ります。
timeSeriesTagstimeSeriesTags table function は、table engine が TimeSeries engine のテーブル db_name.time_series_table で使用される Tags テーブルを返します。
prometheusQueryRangeTimeSeries テーブルのデータを使用して prometheus クエリを評価します。
zerosテスト用として、多数の行を生成する最速の method として使用されます。system.zeros および system.zeros_mt システムテーブルに似ています。
primes素数を含む単一の prime カラムを持つテーブルを返します。
timeSeriesDatatimeSeriesData は、table engine が TimeSeries のテーブル db_name.time_series_table で使用される data テーブルを返します。
numbers整数のシーケンスを含む単一の number カラムを持つテーブルを返します。
prometheusQueryTimeSeries テーブルのデータを使用して prometheus クエリを評価します。
generate_series (generateSeries)start から stop までの整数を両端を含めて格納する、単一の generate_series カラム (UInt64) を持つテーブルを返します。
odbcODBC 経由で接続されたテーブルを返します。
postgresqlリモートの PostgreSQL サーバーに保存されているデータに対して SELECT および INSERT クエリを実行できます。
redisこの table function を使用すると、ClickHouse を Redis と統合できます。
remote, remoteSecureTable function remote を使用すると、その場でリモートサーバーにアクセスできます。つまり、分散テーブルを作成する必要がありません。Table function remoteSecureremote と同じですが、セキュアな connection を使用します。
s3 Table FunctionAmazon S3 および Google Cloud Storage 内のファイルを select/insert するためのテーブル形式インターフェイスを提供します。この table function は hdfs 関数に似ていますが、S3 固有の機能を備えています。
s3Clusters3 table function の拡張であり、指定したクラスター内の多数のノードで Amazon S3 および Google Cloud Storage のファイルを並列に processing できます。
sqliteSQLite データベースに保存されているデータに対してクエリを実行できます。
arrowFlightApache Arrow Flight サーバー経由で公開されたデータに対してクエリを実行できます。
url指定された formatstructure を使用して URL からテーブルを作成します
urlCluster指定したクラスター内の多数のノードから、URL のファイルを並列に processing できます。
viewサブクエリをテーブルに変換します。この関数はビューを実装します。
values値でカラムを埋める一時ストレージを作成します。
loopClickHouse の loop table function は、クエリ結果を無限ループで返すために使用されます。

使用方法

テーブル関数は、SELECTクエリのFROM 句で使用できます。たとえば、fileテーブル関数を使って、ローカル マシン上のファイルからデータをSELECTできます。
Query
echo "1, 2, 3" > example.csv
Response
./clickhouse client
:) SELECT * FROM file('example.csv')
┌─c1─┬─c2─┬─c3─┐
│  1 │  2 │  3 │
└────┴────┴────┘
現在のクエリ内でのみ利用可能な一時テーブルを作成するために、テーブル関数 を使用することもできます。たとえば、次のとおりです。
Query
SELECT * FROM generateSeries(1,5);
Response
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
テーブルは、クエリの終了時に削除されます。 テーブル関数は、次の構文を使用してテーブルを作成するための方法として利用できます。
Query
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()
例:
Query
CREATE TABLE series AS generateSeries(1, 5);
SELECT * FROM series;
Response
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
最後に、テーブル関数を使ってテーブルにデータを INSERT することもできます。たとえば、 前の例で作成したテーブルの内容を、 再度 file テーブル関数を使ってディスク上のファイルに書き出せます:
Query
INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series;
Query
cat numbers.csv
1
2
3
4
5
allow_ddl 設定が無効な場合、テーブル関数は使用できません。
最終更新日 2026年6月10日