文档简介:
云数据库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参数中发送查询本身。
默认情况下,服务器设置中注册的数据库用作默认数据库。可以在表名称之前使用点来指定数据库。
可以通过以下三种方式之一指定用户名和密码进行登录验证:
- 使用HTTP基本身份验证
$ echo 'SELECT 1' | curl 'http://user:password@localhost:8123/' -d @-
- 在URL参数中使用user 和password指定,环境而已使用database参数指定数据库
$ echo 'SELECT 1' | curl 'http://localhost:8123/?user=user&password=password' -d @-
- 在HTTP请求头中通过“ X-ClickHouse-User”和“ X-ClickHouse-Key”指定用户名和密码。
$ echo 'SELECT 1' | curl 'http://localhost:8123/?user=user&password=password' -d @-
请求示例