メインコンテンツまでスキップ
メインコンテンツまでスキップ

テーブル関数

テーブル関数はテーブルを構築するためのメソッドです。

使用法

テーブル関数は SELECT クエリの FROM 句で使用できます。例えば、file テーブル関数を使用してローカルマシン上のファイルからデータを SELECT できます。

また、現在のクエリでのみ使用可能な一時テーブルを作成するためにテーブル関数を使用することもできます。例えば:

クエリが終了すると、テーブルは削除されます。

テーブル関数は次の構文を使用してテーブルを作成する方法として使用できます:

例えば:

最後に、テーブル関数を使用してテーブルにデータを INSERT することもできます。例えば、前の例で作成したテーブルの内容を file テーブル関数を使用してディスク上のファイルに書き出すことができます:

注記

allow_ddl 設定が無効になっている場合、テーブル関数を使用できません。

ページ説明
fileClusterクラスター内の複数のノードで指定されたパスに一致するファイルを同時に処理することを可能にします。イニシエーターはワーカーノードに接続し、ファイルパスのグロブを展開し、ファイル読み取りタスクをワーカーノードに委任します。各ワーカーノードはイニシエーターに次に処理するファイルを照会し、すべてのタスクが完了するまで繰り返します(すべてのファイルが読み込まれるまで)。
input特定の構造を持つサーバーに送信されるデータを別の構造を持つテーブルに変換して挿入することを可能にするテーブル関数です。
icebergAmazon S3, Azure, HDFS またはローカルに保存された Apache Iceberg テーブルへの読み取り専用のテーブルのようなインターフェースを提供します。
executableexecutable テーブル関数は、行を stdout に出力するスクリプトで定義したユーザー定義関数 (UDF) の出力に基づいてテーブルを作成します。
timeSeriesMetricstimeSeriesMetrics は、テーブルエンジンが TimeSeries エンジンである db_name.time_series_table テーブルによって使用されるメトリクステーブルを返します。
loopClickHouse のループテーブル関数は、無限ループでクエリの結果を返すために使用されます。
url指定された formatstructure を持つ URL からテーブルを作成します。
hudiAmazon 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() を使用します。
timeSeriesTagstimeSeriesTags テーブル関数は、テーブルエンジンが TimeSeries エンジンである db_name.time_series_table に使用されるタグテーブルを返します。
mysqlリモート MySQL サーバーに保存されているデータに対して SELECT および INSERT クエリを実行できます。
mergeTreeProjectionMergeTree テーブル内のいくつかのプロジェクションの内容を表します。 introspection に使用できます。
s3 Table FunctionAmazon S3 および Google Cloud Storage でファイルを選択/挿入するためのテーブルのようなインターフェースを提供します。このテーブル関数は hdfs 関数に類似していますが、S3 専用の機能を提供します。
dictionary辞書のデータを ClickHouse テーブルとして表示します。辞書エンジンと同様に動作します。
hdfsHDFS のファイルからテーブルを作成します。このテーブル関数は url および file テーブル関数に類似しています。
fuzzJSONランダムな変動で JSON 文字列を変化させます。
hdfsCluster指定されたクラスターの多くのノードで HDFS からファイルを並行処理できるようにします。
zeros多くの行を生成するための最も高速な方法として、テスト目的に使用されます。 system.zeros および system.zeros_mt システムテーブルに類似しています。
values値でカラムを埋める一時ストレージを作成します。
generateRandom指定されたスキーマでランダムデータを生成します。テストテーブルにそのデータを入れることを可能にします。すべての型はサポートされていません。
deltaLakeAmazon S3 の Delta Lake テーブルへの読み取り専用のテーブルのようなインターフェースを提供します。
gcsGoogle Cloud Storage からデータを SELECT および INSERT するためのテーブルのようなインターフェースを提供します。 Storage Object User IAM ロールが必要です。
mergeTreeIndexMergeTree テーブルのインデックスおよびマークファイルの内容を表します。 introspection に使用できます。
postgresqlリモート PostgreSQL サーバーに保存されているデータに対して SELECT および INSERT クエリを実行できます。
timeSeriesDatatimeSeriesData は、テーブルエンジンが TimeSeries の db_name.time_series_table で使用されるデータテーブルを返します。
azureBlobStorageAzure Blob Storage でファイルを選択/挿入するためのテーブルのようなインターフェースを提供します。s3 関数に類似しています。
odbcODBC 経由で接続されているテーブルを返します。
merge一時的な Merge テーブルを作成します。構造は、基礎となるテーブルのカラムの和集合と共通の型から導き出されます。
hudiCluster Table Functionhudi テーブル関数の拡張です。指定されたクラスターの多くのノードで Amazon S3 の Apache Hudi テーブルからファイルを並行処理できるようにします。
generate_series (generateSeries)開始から停止まで(両端含む)の整数を含む単一の generate_series カラム (UInt64) のテーブルを返します。
azureBlobStorageCluster指定されたクラスターの多くのノードで Azure Blob Storage からファイルを並行処理できるようにします。
jdbcJDBC ドライバー経由で接続されているテーブルを返します。
format指定された入力フォーマットに従って引数からデータを解析します。構造引数が指定されていない場合、データから抽出されます。
s3Clusterh3 テーブル関数の拡張で、指定されたクラスターの多くのノードで Amazon S3 および Google Cloud Storage からファイルを並行処理できるようにします。
TODO: Add titleTODO: 説明を追加
sqliteSQLite データベースに保存されているデータに対してクエリを実行できるようにします。
deltaLakeClusterdeltaLake テーブル関数の拡張です。
numbers指定可能な整数を含む単一の number カラムを持つテーブルを返します。
nullNull テーブルエンジンを持つ指定された構造の一時テーブルを作成します。この関数はテストの執筆やデモの便利さのために使用されます。
remote, remoteSecureテーブル関数 remote は、分散テーブルを作成せずに、オンザフライでリモートサーバーにアクセスすることを可能にします。テーブル関数 remoteSecure は、remote と同じですが、安全な接続を介しています。
mongodbリモート MongoDB サーバーに保存されているデータに対して SELECT クエリを実行できるようにします。