ClickHouse/docs/ja/sql-reference/table-functions/urlCluster.md
2024-11-18 11:58:58 +09:00

3.3 KiB
Raw Blame History

slug sidebar_position sidebar_label
/ja/sql-reference/table-functions/urlCluster 201 urlCluster

urlCluster テーブル関数

URL からのファイルを指定したクラスタの多くのードから並行して処理することを可能にします。イニシエータではすべてのクラスタ内のードに接続を作成し、URLファイルパス内のアスタリスクを公開し、各ファイルを動的に分配します。ワーカーードではイニシエータに次の処理タスクを問い合わせ、それを処理します。この処理はすべてのタスクが完了するまで繰り返されます。

構文

urlCluster(cluster_name, URL, format, structure)

引数

  • cluster_name — リモートおよびローカルサーバーへのアドレスセットと接続パラメータを構築するために使用されるクラスタの名前。
  • URLGETリクエストを受け入れることができる HTTP または HTTPS サーバーアドレス。型: String
  • format — データのフォーマット。型: String
  • structure'UserID UInt64, Name String'形式のテーブル構造。カラム名とタイプを決定します。型: String

返される値

定義されたURLからのデータを指定されたフォーマットと構造で持つテーブル。

HTTP サーバーが CSV形式で応答するStringUInt32 型のカラムを含むテーブルの最初の3行を取得します。

  1. 標準の Python 3 ツールを使用して基本的な HTTP サーバーを作成し、起動します:
from http.server import BaseHTTPRequestHandler, HTTPServer

class CSVHTTPServer(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/csv')
        self.end_headers()

        self.wfile.write(bytes('Hello,1\nWorld,2\n', "utf-8"))

if __name__ == "__main__":
    server_address = ('127.0.0.1', 12345)
    HTTPServer(server_address, CSVHTTPServer).serve_forever()
SELECT * FROM urlCluster('cluster_simple','http://127.0.0.1:12345', CSV, 'column1 String, column2 UInt32')

URL のグロブ

中括弧 { } 内のパターンはシャードのセットを生成するか、フェイルオーバーアドレスを指定するために使用されます。サポートされているパターンタイプと例については、remote 関数の説明を参照してください。 パターン内の文字 | はフェイルオーバーアドレスを指定するために使用されます。それらはパターンにリストされた順で反復されます。生成されるアドレスの数は glob_expansion_max_elements 設定によって制限されます。

関連項目