HTTP 接口支持通过 REST API 以任何编程语言在任何平台上使用 ByteHouse。本文介绍了如何使用 HTTP 方式连接至 ByteHouse。
请确保您已安装 curl,详情请参见官方网站。
您可以通过以下命令连接至 ByteHouse。
curl "https://<domain>:8123?user=bytehouse&password=${APItoken}"
参数 | 配置要点 |
---|---|
配置 ByteHouse 的 host 信息,您可以在 ByteHouse 控制台的 租户管理>基本信息>网络信息 中获取公网或私网域名信息,格式如下:
其中 | |
user | 登录 ByteHouse 数据库的用户名,配置为 bytehouse。 |
password | 登录 ByteHouse 数据库的密码,配置为 ByteHouse 的 <API_Key>,您可以在 ByteHouse 控制台的 租户管理>连接信息 中获取 API Key,详情请参见获取 API Key。 |
您可以通过 HTTP 连接至 ByteHouse 并管理数据。本节以数据表 t
为示例,演示了如何创建、写入、查询、删除表,您在实际使用时请根据您的环境信息及业务需要替换其中的 domain
、api_token
及 query 语句。
echo 'CREATE TABLE t (a UInt8) ENGINE = 'CnchMergeTree' ORDER BY a' | curl 'https://<domain>:8123?user=bytehouse&password=<api_token>&' --data-binary @-
支持通过 INSERT 查询进行数据插入。
echo 'INSERT INTO t VALUES (1),(2),(3)' | curl 'https://<domain>:8123?user=bytehouse&password=<api_token>&' --data-binary @-
您也可以将数据与查询分开发送:
echo '(4),(5),(6)' | curl 'https://<domain>:8123?user=bytehouse&password=<api_token>&query=INSERT%20INTO%20t%20VALUES' --data-binary @-
您可以指定任意数据格式。'Values' 格式与写入 INSERT INTO t VALUES
时所用的格式相同:
echo '(7),(8),(9)' | curl 'https://<domain>:8123?user=bytehouse&password=<api_token>&query=INSERT%20INTO%20t%20FORMAT%20Values' --data-binary @-
如需从制表符分隔的转储中插入数据,请指定相应的格式:
echo -ne '10\n11\n12\n' | curl 'https://<domain>:8123?user=bytehouse&password=<api_token>&query=INSERT%20INTO%20t%20FORMAT%20TabSeparated' --data-binary @-
您可以使用以下命令写入 CSV 文件。
curl "https://<domain>:8123?user=bytehouse&password=<api_token>&query=INSERT%20INTO%20t%20FORMAT%20CSV" --data-binary @data.csv
curl 'https://<domain>:8123/?user=bytehouse&password=<api_token>&query=SELECT%20a%20FROM%20t'
$ echo 'DROP TABLE t' | curl 'http://localhost:8123/' --data-binary @-
您可使用 format Pretty
优化查询结果样式。
curl "https://gateway-rc.volc-boe.offline.bytehouse.cn:8123?query=select%20100%20format%20Pretty&user=bytehouse&password=${APItoken}"
您也可以使用使用 format JSON
,查询结果将以 JSON 格式输出。
curl "https://gateway-rc.volc-boe.offline.bytehouse.cn:8123?query=select%20100%20format%20JSON&user=bytehouse&password=${APItoken}"