ClickHouse/docs/ja/engines/table-engines/special/url.md

2.6 KiB

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 41 URL

URL(URL,形式)

リモートHTTP/HTTPSサーバー上のデータを管理します。 このエンジンは同様です に ファイル エンジン

ClickHouseサーバーでのエンジンの使用

その format ClickHouseが使用できるものでなければなりません SELECT クエリと、必要に応じて、 INSERTs. サポートされている形式の完全な一覧については、 形式.

その URL Uniform Resource Locatorの構造に準拠している必要があります。 指定したURLはサーバーを指す必要があります HTTPまたはHTTPSを使用します。 これは必要ありません サーバーからの応答を取得するための追加ヘッダー。

INSERTSELECT 質問への POSTGET 要求, それぞれ。 処理のため POST 要求は、リモートサーバーが チャンク転送エンコード.

HTTP GETリダイレクトホップの最大数を制限するには max_http_get_redirects 設定。

例:

1. 作成 url_engine_table サーバー上のテーブル :

CREATE TABLE url_engine_table (word String, value UInt64)
ENGINE=URL('http://127.0.0.1:12345/', CSV)

2. 標準のPython3ツールを使用して基本的な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()
$ python3 server.py

3. 要求データ:

SELECT * FROM url_engine_table
┌─word──┬─value─┐
│ Hello │     1 │
│ World │     2 │
└───────┴───────┘

実施内容

  • 読み書きできる並列
  • 対応していません:
    • ALTERSELECT...SAMPLE 作戦だ
    • インデックス。
    • 複製。

元の記事