BendSQL
BendSQL 是一个专门为 Databend 设计的命令行工具。它允许用户建立与 Databend 的连接,并直接从 CLI 窗口执行查询。
对于那些喜欢命令行界面并且需要定期使用 Databend 的用户来说,BendSQL 特别有用。借助 BendSQL,用户可以轻松高效地管理他们的数据库、表和数据,并轻松执行各种查询和操作。
安装 BendSQL
BendSQL 提供了多种安装选项,以适应不同的平台和偏好。从下面的部分中选择您喜欢的方法,或者从 BendSQL 发布页面 下载安装包手动安装。
Shell 脚本
BendSQL 提供了一个方便的 Shell 脚本用于安装。您可以在两个选项之间进行选择:
默认安装
将 BendSQL 安装到用户的 home 目录 (~/.bendsql):
curl -fsSL https://repo.databend.com/install/bendsql.sh | bash
curl -fsSL https://repo.databend.com/install/bendsql.sh | bash
B E N D S Q L
Installer
--------------------------------------------------------------------------------
Website: https://databend.com
Docs: https://docs.databend.com
Github: https://github.com/databendlabs/bendsql
--------------------------------------------------------------------------------
>>> We'll be installing BendSQL via a pre-built archive at https://repo.databend.com/bendsql/v0.22.2/
>>> Ready to proceed? (y/n)
>>> Please enter y or n.
>>> y
--------------------------------------------------------------------------------
>>> Downloading BendSQL via https://repo.databend.com/bendsql/v0.22.2/bendsql-aarch64-apple-darwin.tar.gz ✓
>>> Unpacking archive to /Users/eric/.bendsql ... ✓
>>> Adding BendSQL path to /Users/eric/.zprofile ✓
>>> Adding BendSQL path to /Users/eric/.profile ✓
>>> Install succeeded! 🚀
>>> To start BendSQL:
bendsql --help
>>> More information at https://github.com/databendlabs/bendsql
使用 --prefix
进行自定义安装
将 BendSQL 安装到指定的目录(例如,/usr/local):
curl -fsSL https://repo.databend.com/install/bendsql.sh | bash -s -- -y --prefix /usr/local
curl -fsSL https://repo.databend.com/install/bendsql.sh | bash -s -- -y --prefix /usr/local
B E N D S Q L
Installer
--------------------------------------------------------------------------------
Website: https://databend.com
Docs: https://docs.databend.com
Github: https://github.com/databendlabs/bendsql
--------------------------------------------------------------------------------
>>> Downloading BendSQL via https://repo.databend.com/bendsql/v0.22.2/bendsql-aarch64-apple-darwin.tar.gz ✓
>>> Unpacking archive to /usr/local ... ✓
>>> Install succeeded! 🚀
>>> To start BendSQL:
bendsql --help
>>> More information at https://github.com/databendlabs/bendsql
Homebrew (适用于 macOS)
可以使用 Homebrew 通过一个简单的命令在 macOS 上轻松安装 BendSQL:
brew install databendcloud/homebrew-tap/bendsql
Apt (适用于 Ubuntu/Debian)
在 Ubuntu 和 Debian 系统上,可以通过 Apt 包管理器安装 BendSQL。根据发行版版本选择适当的说明。
DEB822-STYLE 格式 (Ubuntu-22.04/Debian-12 及更高版本)
sudo curl -L -o /etc/apt/sources.list.d/databend.sources https://repo.databend.com/deb/databend.sources
旧格式 (Ubuntu-20.04/Debian-11 及更早版本)
sudo curl -L -o /usr/share/keyrings/databend-keyring.gpg https://repo.databend.com/deb/databend.gpg
sudo curl -L -o /etc/apt/sources.list.d/databend.list https://repo.databend.com/deb/databend.list
最后,更新包列表并安装 BendSQL:
sudo apt update
sudo apt install bendsql
Cargo (Rust 包管理器)
要使用 Cargo 安装 BendSQL,请使用 cargo-binstall
工具或使用提供的命令从源代码构建。
在使用 Cargo 安装之前,请确保您的计算机上已安装完整的 Rust 工具链和 cargo
命令。如果没有,请按照 https://rustup.rs/ 上的安装指南进行操作。
使用 cargo-binstall
请参阅 Cargo B(inary)Install - Installation 安装 cargo-binstall
并启用 cargo binstall <crate-name>
子命令。
cargo binstall bendsql
从源代码构建
从源代码构建时,某些依赖项可能涉及编译 C/C++ 代码。确保您的计算机上已安装 GCC/G++ 或 Clang 工具链。
cargo install bendsql
用户身份验证
如果您连接到私有化部署的 Databend 实例,则可以使用 databend-query.toml 配置文件中指定的管理员用户,或者可以使用使用 CREATE USER 命令创建的 SQL 用户进行连接。
对于与 Databend Cloud 的连接,您可以使用默认的 cloudapp
用户或使用 CREATE USER 命令创建的 SQL 用户。请注意,您用于登录 Databend Cloud 控制台 的用户帐户不能用于连接到 Databend Cloud。
教程
BendSQL 设置
BendSQL 提供了一系列设置,允许您定义查询结果的呈现方式:
Setting | Description |
---|---|
display_pretty_sql | 当设置为 true 时,SQL 查询将以视觉上吸引人的方式进行格式化,使其更易于阅读和理解。 |
prompt | 在命令行界面中显示的提示符,通常指示正在访问的用户、计算集群和数据库。 |
progress_color | 指定用于进度指示器的颜色,例如在执行需要一些时间才能完成的查询时。 |
show_progress | 当设置为 true 时,将显示进度指示器以显示长时间运行的查询或操作的进度。 |
show_stats | 如果为 true ,则在执行每个查询后,将显示查询统计信息,例如执行时间、读取的行数和处理的字节数。 |
max_display_rows | 设置查询结果输出中将显示的最大行数。 |
max_col_width | 设置每列显示渲染的最大字符宽度。小于 3 的值将禁用该限制。 |
max_width | 设置整个显示输出的最大字符宽度。值为 0 时,默认为终端窗口的宽度。 |
output_format | 设置用于显示查询结果的格式 (table 、csv 、tsv 、null )。 |
expand | 控制查询的输出是显示为单个记录还是以表格格式显示。可用值:on 、off 和 auto 。 |
multi_line | 确定是否允许 SQL 查询的多行输入。当设置为 true 时,查询可以跨越多行以提高可读性。 |
replace_newline | 指定是否应将查询结果输出中的换行符替换为空格。这可以防止显示中出现意外的换行符。 |
有关每个设置的详细信息,请参阅以下参考信息:
display_pretty_sql
display_pretty_sql
设置控制 SQL 查询是否以可视格式化的方式显示。当设置为 false
时,如下面的第一个查询所示,SQL 查询不会为了视觉吸引力而进行格式化。相反,当设置为 true
时,如下面的第二个查询所示,SQL 查询会以视觉上吸引人的方式进行格式化,使其更易于阅读和理解。
root@localhost:8000/default> !set display_pretty_sql false
root@localhost:8000/default> SELECT TO_STRING(ST_ASGEOJSON(ST_GEOMETRYFROMWKT('SRID=4326;LINESTRING(400000 6000000, 401000 6010000)'))) AS pipeline_geojson;
┌─────────────────────────────────────────────────────────────────────────┐
│ pipeline_geojson │
│ String │
├─────────────────────────────────────────────────────────────────────────┤
│ {"coordinates":[[400000,6000000],[401000,6010000]],"type":"LineString"} │
└─────────────────────────────────────────────────────────────────────────┘
1 row read in 0.063 sec. Processed 1 row, 1 B (15.76 rows/s, 15 B/s)
root@localhost:8000/default> !set display_pretty_sql true
root@localhost:8000/default> SELECT TO_STRING(ST_ASGEOJSON(ST_GEOMETRYFROMWKT('SRID=4326;LINESTRING(400000 6000000, 401000 6010000)'))) AS pipeline_geojson;
SELECT
TO_STRING(
ST_ASGEOJSON(
ST_GEOMETRYFROMWKT(
'SRID=4326;LINESTRING(400000 6000000, 401000 6010000)'
)
)
) AS pipeline_geojson
┌───────────────────────────────────────────────────────────────── ────────┐
│ pipeline_geojson │
│ String │
├─────────────────────────────────────────────────────────────────────────┤
│ {"coordinates":[[400000,6000000],[401000,6010000]],"type":"LineString"} │
└─────────────────────────────────────────────────────────────────────────┘
1 row read in 0.087 sec. Processed 1 row, 1 B (11.44 rows/s, 11 B/s)
prompt
prompt
设置控制命令行界面提示符的格式。在下面的示例中,它最初设置为显示用户和计算集群 ({user}@{warehouse}
)。在将其更新为 {user}@{warehouse}/{database}
后,提示符现在包括用户、计算集群和数据库。
root@localhost:8000/default> !set prompt {user}@{warehouse}
root@localhost:8000 !configs
Settings {
display_pretty_sql: true,
prompt: "{user}@{warehouse}",
progress_color: "cyan",
show_progress: true,
show_stats: true,
max_display_rows: 40,
max_col_width: 1048576,
max_width: 1048576,
output_format: Table,
quote_style: Necessary,
expand: Off,
time: None,
multi_line: true,
replace_newline: true,
}
root@localhost:8000/default> !set prompt {user}@{warehouse}/{database}
root@localhost:8000/default