ByteHouse CLI 是一个命令行应用程序,用于以最直接的方式与 ByteHouse 服务交互,您可以直接使用秘钥对连接 ByteHouse CLI 并执行资源创建管理、SQL 查询等操作。本文将介绍如何安装和使用 ByteHouse CLI。
如果您的系统是 macOS,请先安装 Homebrew,本文将使用 Homebrew 安装 ByteHouse CLI。Homebrew 安装操作请参见官方网站。
您可以从官方仓库获取最新的 ByteHouse CLI 发布版本。
打开您的终端,运行如下 Homebrew 命令安装 ByteHouse CLI。
brew tap bytehouse-cloud/homebrew-core brew install bytehouse-cli
安装完成后,可以通过下面的命令查询当前安装的版本,确保安装已经完成。
bytehouse-cli -v
查询结果示例:
如果要升级您的 ByteHouse CLI 版本,可以运行下列命令。
brew upgrade bytehouse-cli
如果您已经安装了 ByteHouse CLI,但在重新安装或升级时遇到一些错误,请尝试使用以下步骤处理故障。
卸载 ByteHouse CLI。
brew uninstall bytehouse-cli brew untap bytehouse-cloud/homebrew-core
执行下面的命令重新安装。
brew tap bytehouse-cloud/homebrew-core brew install bytehouse-cli
对于 Linux 系统,请从 GitHub 发布地址中获取最新发布版本的链接,替换以下命令中的链接,并参考下面的代码操作。
# 请从上面的发布地址中获取最新链接,或替换下面代码中的版本号 # 使用最新发布版本替换下面的第一行内容 curl -o bytehouse-cli.tar.gz -L https://github.com/bytehouse-cloud/cli/releases/download/v<版本号>/bytehouse-cli_<版本号>_Linux_x86_64.tar.gz # 替换该链接地址或版本号 mkdir -p ./bytehouse-cli/ tar -zxvf bytehouse-cli.tar.gz -C ./bytehouse-cli chmod +x bytehouse-cli # 将这个二进制可执行文件作为别名添加到 ~/.bashrc 文件中,或者添加到 ~/.zshrc 文件中 echo "alias bytehouse-cli=\"$(pwd)/bytehouse-cli\"" >> ~/.bashrc
对于 Windows 系统,请选择 GitHub 地址中的最新版本,下载安装包并进行解压及安装。
下载的压缩包示例格式如下:bytehouse-cli_1.26.8_Windows_x86_64.zip
ByteHouse 支持通过 IAM 用户或数据库用户连接。IAM 用户与数据库用户二者差异说明如下,您可按需选择。
更多 IAM 用户和数据库用户的介绍请参见以下文档:
可参考如下命令进行连接:
bytehouse-cli --host {HOST} --port 19000 --secure --token {API_KEY}
示例如下:
bytehouse-cli --host tenant-{TENANT_ID}-{REGION}-{ENVIRONMENT}-public.bytehouse.volces.com --port 19000 --secure --token XXXXXXXXXXXXX # 更多配置参数示例 bytehouse-cli --host tenant-{TENANT_ID}-{REGION}-{ENVIRONMENT}-public.bytehouse.volces.com --port 19000 --secure --token XXXXXXXXXXXXX --send_timeout=3600 --read_timeout=3600 --virtual_warehouse=warehouse1 --database=db1
参数说明如下,更多 flag 标志及缩写可以参考 CLI 配置参数文档。
参数项 | 是否必填 | 配置说明 |
|---|---|---|
| 是 | 集群的访问地址和端口。您可以在 ByteHouse 控制台的租户管理 > 基本信息 > 网络信息中查看网络组配置,详情请参见步骤二:配置网络信息。 |
| 是 | 集群访问地址的端口。端口默认值为 19000,其他常用连接方式所使用的端口请参见集群连接端口。 |
| 是 | 集群的访问密钥,配置为 API Key。您可登录 ByteHouse 控制台,在 租户管理 > 连接信息页面中,单击 API Key 表单下的”新建“按钮来创建 API Key。 注意
|
| 视情况而定 | 定义是否要用 Secure TCP 连接。如果是连接到火山引擎托管的 ByteHouse,则 |
| 否 | 定义从 server 中的读取超时时间。默认值:300,即 5 分钟。 |
| 否 | 定义从 server 中的写超时时间。默认值:300,即 5 分钟。 |
| 否 | 定义使用的计算组。默认值为用户默认计算组,如存在。 |
| 否 | 定义使用的数据库。默认值为用户默认数据库,如存在。 |
可参考如下命令进行连接:
bytehouse-cli --user {accountID_or_accountName}::{username}[::{envID}] --password {password} --host {HOST} --port 19000 --secure
示例如下:
bytehouse-cli --user 21XXXXXXXX::demodb::testenv --password XXXXXXXX--host tenant-{TENANT_ID}-{REGION}-{ENVIRONMENT}-public.bytehouse.volces.com --port 19000 --secure
参数说明如下,更多 flag 标志及缩写可以参考 CLI 配置参数文档。
参数项 | 是否必填 | 配置说明 |
|---|---|---|
| 是 | 数据库用户的账号。使用 ByteHouse 账号、数据库用户的名称、环境 ID(可选)拼接而成,格式为
|
| 是 | 当前数据库用户的密码。数据库用户的密码为管理员配置,可联系管理员获取对应的密码。如果密码丢失或遗忘,可联系管理员重置密码,详情请参考重置密码。 |
| 是 | 集群的访问地址和端口。您可以在 ByteHouse 控制台的租户管理 > 基本信息 > 网络信息中查看网络组配置,详情请参见步骤二:配置网络信息。 |
| 是 | 集群访问地址的端口。端口默认值为 19000,其他常用连接方式所使用的端口请参见集群连接端口。 |
| 视情况而定 | 定义是否要用 Secure TCP 连接。如果是连接到火山引擎托管的 ByteHouse,则 |
有时可能由于正在编写 shell 脚本而无法进入交互模式。ByteHouse CLI 允许用户执行 SQL 命令并自动退出。
如果使用 -q 或 --query 标志启动 bytehouse-cli,将会执行 SQL 语句,并且 bytehouse-cli 会在执行后立即退出。
bytehouse-cli --host {HOST} --port 19000 --secure --token {API_KEY} -q "select 1"
您还可以在 bytehouse-cli 中使用 stdin 的输入。
echo "select 1" | bytehouse-cli
您也可以编写 SQL 脚本并将输入通过管道传输到 bytehouse-cli:
; 分隔。$ cat example.sql CREATE DATABASE bob_db; USE bob_db; CREATE TABLE bob_number ( i Int32 ) ENGINE = CnchMergeTree ORDER BY i; SHOW CREATE TABLE bob_number; $ bytehouse-cli < example.sql # This is also accepted $ cat example.sql | bytehouse-cli
从文件中加载数据是一种常见的做法,下面是一些操作示例。
Bytehouse » INSERT INTO bob_db.bob_number VALUES (1), (2), (3)
$ bytehouse-cli -q "INSERT INTO bob_db.bob_number VALUES (1), (2), (3)"
Bytehouse » INSERT INTO bob_db.bob_number FORMAT csv INFILE 'path/to/data.csv'
$ bytehouse-cli -q "INSERT INTO bob_db.bob_number FORMAT csv" < 'path/to/data.csv'
查询后可通过 INTO OUTFILE 语法将结果保存到本地文件,导出文件的相对路径以启动 bytehouse-cli 时的当前工作目录为准。
Bytehouse » SELECT * FROM bob_db.bob_number INTO OUTFILE 'out.csv' format csv
如果需要保留查询结果的表头,则需要导出为 CSVWithNames 格式:
Bytehouse » SELECT * FROM bob_db.bob_number INTO OUTFILE 'out.csv' format CSVWithNames
可以使用 -v 或 --version 标志检查 ByteHouse CLI 的版本。指定标志时,ByteHouse CLI 不启动。
$ bytehouse-cli -v v1.5.2
使用 -h 标志或 --help 可以显示所有支持的标志。
#显示所有标志及其别名 bytehouse-cli -h