HTTP客戶端
更新時間 2023-12-26 16:02:39
最近更新時間: 2023-12-26 16:02:39
分享文章
本頁面介紹云數據庫ClickHouse如何通過HTTP接口進行連接。
HTTP接口使您可以通過任何編程語言在任何平臺上使用云數據庫ClickHouse,您將其用于Java和Perl以及Shell腳本,Perl、Python和Go也可以使用HTTP接口。HTTP接口比本機接口受到更多限制,但是具有更好的兼容性。clickhouse-server 偵聽的HTTP端口默認情況下是8123。
如果進行不帶參數的GET請求,它將返回200響應代碼和http_server_default_response默認值“ Ok”中定義的字符串,末尾有換行符。參數可以URL參數query發送或者以POST請求方式發送,或在“ query”參數中發送查詢的開頭,然后在POST中發送其余查詢(在后面解釋為什么這樣做的必要性)。在發送大型查詢時,請注意URL的大小限制為16 KB。如果成功,您將在響應正文中收到200響應代碼和結果。 如果發生錯誤,您將在響應正文中收到響應代碼500和一個錯誤描述文本。
使用GET方法時,設置為“只讀”。換句話說,對于修改數據的查詢,只能使用POST方法。可以在POST正文或URL參數中發送查詢本身。默認情況下,服務器設置中注冊的數據庫用作默認數據庫即default,可以在表名稱之前使用點來指定數據庫。
身份驗證
可以通過以下三種方式之一指定用戶名和密碼進行登錄驗證:
- 使用HTTP基本身份驗證。
??$ echo 'SELECT 1' | curl '//user:password@your-ip:8123/' -d @-
- 在URL參數中使用user 和password指定,使用database參數指定數據庫。
??$ echo 'SELECT 1' | curl '//your-ip:8123/?user=user&password=password' -d @-
- 在HTTP請求頭中通過“ X-ClickHouse-User”和“ X-ClickHouse-Key”指定用戶名和密碼。
??$ echo 'SELECT 1' | curl -H 'X-ClickHouse-User: user' -H 'X-ClickHouse-Key: your-password' '//your-ip:8123/' -d @-
使用示例
- 創建表。
$ echo 'CREATE TABLE t (a UInt8) ENGINE = Memory' | curl '//your-ip:8123/' --data-binary @-
- 插入數據。
$ echo 'INSERT INTO t VALUES (1),(2),(3)' | curl '//your-ip:8123/' --data-binary @-
- 指定數據格式。
$ echo '(7),(8),(9)' | curl '//your-ip:8123/?query=INSERT%20INTO%20t%20FORMAT%20Values' --data-binary @-
- 讀取數據,注意返回值可能按照亂序排列。
$ curl '//your-ip:8123/?query=SELECT%20a%20FROM%20t'
7
8
9
10
11
12
1
2
3
4
5
6
- 刪除表。
$ echo 'DROP TABLE t' | curl '//your-ip:8123/' --data-binary @-