url テーブル関数
url 関数は、指定された format および structure を使用して、URL からテーブルを作成します。
url 関数は、URL テーブル内のデータに対する SELECT および INSERT クエリで使用できます。
構文
パラメータ
| Parameter | Description |
|---|---|
URL | シングルクォートで囲まれた HTTP または HTTPS サーバーアドレス。GET または POST リクエスト(それぞれ SELECT または INSERT クエリに対応)を受け付ける必要があります。型: String。 |
format | データのフォーマット。型: String。 |
structure | 'UserID UInt64, Name String' 形式のテーブル構造。カラム名と型を決定します。型: String。 |
headers | 'headers('key1'='value1', 'key2'='value2')' 形式のヘッダー。HTTP 呼び出しで使用するヘッダーを設定できます。 |
戻り値
指定された形式と構造を持ち、定義された URL からのデータを含むテーブル。
例
String 列と UInt32 型の列を含むテーブルの先頭 3 行を、CSV 形式で応答する HTTP サーバーから取得します。
URL からテーブルにデータを挿入する:
URL のグロブ
波かっこ { } 内のパターンは、シャードの集合を生成するか、フェイルオーバーアドレスを指定するために使用されます。サポートされるパターンの種類と例については、remote 関数の説明を参照してください。
パターン内の文字 | はフェイルオーバーアドレスを指定するために使用されます。これらはパターン内で列挙された順序どおりに試行されます。生成されるアドレス数は、glob_expansion_max_elements 設定によって制限されます。
仮想カラム
_path—URLへのパス。型:LowCardinality(String)。_file—URLのリソース名。型:LowCardinality(String)。_size— リソースのサイズ(バイト単位)。型:Nullable(UInt64)。サイズが不明な場合、値はNULLになります。_time— ファイルの最終更新時刻。型:Nullable(DateTime)。時刻が不明な場合、値はNULLになります。_headers— HTTP レスポンスヘッダー。型:Map(LowCardinality(String), LowCardinality(String))。
use_hive_partitioning 設定
use_hive_partitioning の値が 1 の場合、ClickHouse はパス内の Hive 形式のパーティショニング(/name=value/)を検出し、クエリ内でパーティション列を仮想列として使用できるようにします。これらの仮想列はパーティションパス内の名前と同じですが、先頭に _ が付きます。
例
Hive 形式のパーティショニングで作成された仮想列を使用する
ストレージ設定
- engine_url_skip_empty_files - 読み込み時に空のファイルをスキップします。デフォルトでは無効です。
- enable_url_encoding - URI 内のパスのデコード/エンコードを有効/無効にします。デフォルトでは有効です。
権限
url 関数には CREATE TEMPORARY TABLE 権限が必要です。そのため、readonly = 1 に設定されているユーザーでは動作しません。少なくとも readonly = 2 が必要です。