@@ -4,7 +4,7 @@ title: BendSQL
44
55[ BendSQL] ( https://github.com/databendlabs/bendsql ) 是一个专门为 Databend 设计的命令行工具。它允许用户建立与 Databend 的连接,并直接从 CLI 窗口执行查询。
66
7- 对于那些喜欢命令行界面并且需要定期使用 Databend 的用户来说,BendSQL 特别有用 。借助 BendSQL,用户可以轻松高效地管理他们的数据库、表和数据,并轻松执行各种查询和操作。
7+ BendSQL 对于那些喜欢命令行界面并且需要定期使用 Databend 的用户特别有用 。借助 BendSQL,用户可以轻松高效地管理他们的数据库、表和数据,并轻松执行各种查询和操作。
88
99## 安装 BendSQL
1010
@@ -16,7 +16,7 @@ BendSQL 提供了一个方便的 Shell 脚本用于安装。您可以在两个
1616
1717#### 默认安装
1818
19- 将 BendSQL 安装到用户的 home 目录 ( ~ /.bendsql) :
19+ 将 BendSQL 安装到用户的 home 目录( ~ /.bendsql) :
2020
2121``` bash
2222curl -fsSL https://repo.databend.com/install/bendsql.sh | bash
@@ -87,7 +87,7 @@ Github: https://github.com/databendlabs/bendsql
8787
8888### Homebrew (适用于 macOS)
8989
90- 可以使用 Homebrew 通过一个简单的命令在 macOS 上轻松安装 BendSQL:
90+ 可以使用一个简单的命令在 macOS 上使用 Homebrew 轻松安装 BendSQL:
9191
9292```bash
9393brew install databendcloud/homebrew-tap/bendsql
@@ -147,6 +147,98 @@ cargo install bendsql
147147
148148对于与 Databend Cloud 的连接,您可以使用默认的 `cloudapp` 用户或使用 [CREATE USER](/sql/sql-commands/ddl/user/user-create-user) 命令创建的 SQL 用户。请注意,您用于登录 [Databend Cloud 控制台](https://app.databend.com/) 的用户帐户不能用于连接到 Databend Cloud。
149149
150+ ## 使用 BendSQL 连接
151+
152+ BendSQL 允许您连接到 Databend Cloud 和私有化部署的 Databend 实例。
153+
154+ ### 使用 DSN 自定义连接
155+
156+ DSN(数据源名称)是一种简单而强大的方式,可以使用单个 URI 样式的字符串在 BendSQL 中配置和管理您的 Databend 连接。此方法允许您将凭据和连接设置直接嵌入到您的环境中,从而简化连接过程。
157+
158+ #### DSN 格式和参数
159+
160+ ```bash title=' DSN Format'
161+ databend[+flight]://user[:password]@host[:port]/[database][?sslmode=disable][&arg1=value1]
162+ ```
163+
164+ | 通用 DSN 参数 | 描述 |
165+ |-----------------------|--------------------------------------|
166+ | `tenant` | 租户 ID,仅限 Databend Cloud。 |
167+ | `warehouse` | 计算集群名称,仅限 Databend Cloud。 |
168+ | `sslmode` | 如果不使用 TLS,则设置为 `disable`。 |
169+ | `tls_ca_file` | 自定义根 CA 证书路径。 |
170+ | `connect_timeout` | 连接超时时间(秒)。 |
171+
172+ | RestAPI 客户端参数 | 描述 |
173+ |-----------------------------|-------------------------------------------------------------------------------------------------------------------------------|
174+ | `wait_time_secs` | 页面请求等待时间,默认为 `1`。 |
175+ | `max_rows_in_buffer` | 页面缓冲区中的最大行数。 |
176+ | `max_rows_per_page` | 单个页面的最大响应行数。 |
177+ | `page_request_timeout_secs` | 单个页面请求的超时时间,默认为 `30`。 |
178+ | `presign` | 启用数据加载的预签名。选项:`auto`、`detect`、`on`、`off`。默认为 `auto`(仅对 Databend Cloud 启用)。 |
179+
180+ | FlightSQL 客户端参数 | 描述 |
181+ |-----------------------------|----------------------------------------------------------------------|
182+ | `query_timeout` | 查询超时时间(秒)。 |
183+ | `tcp_nodelay` | 默认为 `true`。 |
184+ | `tcp_keepalive` | TCP keepalive 时间(秒)(默认为 `3600`,设置为 `0` 以禁用)。 |
185+ | `http2_keep_alive_interval` | Keep-alive 间隔时间(秒),默认为 `300`。 |
186+ | `keep_alive_timeout` | Keep-alive 超时时间(秒),默认为 `20`。 |
187+ | `keep_alive_while_idle` | 默认为 `true`。 |
188+
189+ #### DSN 示例
190+
191+ ```bash
192+ # 使用 HTTP API 和预签名检测的本地连接
193+ databend://root:@localhost:8000/?sslmode=disable&presign=detect
194+
195+ # 包含租户和计算集群信息的 Databend Cloud 连接
196+ databend://user1:[email protected] :443/benchmark?enable_dphyp=1 197+
198+ # 使用 FlightSQL API 的本地连接
199+ databend+flight://root:@localhost:8900/database1?connect_timeout=10
200+ ```
201+
202+ ### 连接到 Databend Cloud
203+
204+ 连接到 Databend Cloud 的最佳实践是从 Databend Cloud 获取您的 DSN 并将其导出为环境变量。要获取您的 DSN:
205+
206+ 1. 登录到 Databend Cloud,然后单击 **Overview** 页面上的 **Connect**。
207+
208+ 2. 选择要连接的数据库和计算集群。
209+
210+ 3. 您的 DSN 将在 **Examples** 部分中自动生成。在 DSN 下方,您会找到一个 BendSQL 代码段,该代码段将 DSN 导出为名为 `BENDSQL_DSN` 的环境变量,并使用正确的配置启动 BendSQL。您可以直接将其复制并粘贴到您的终端中。
211+
212+ ```bash title=' Example'
213+ export BENDSQL_DSN="databend://cloudapp:******@tn3ftqihs.gw.aws-us-east-2.default.databend.com:443/information_schema?warehouse=small-xy2t"
214+ bendsql
215+ ```
216+
217+ ### 连接到私有化部署的 Databend
218+
219+ 您可以使用 BendSQL 命令行参数或 DSN 连接到私有化部署的 Databend 实例。
220+
221+ #### 选项 1:使用 BendSQL 参数
222+
223+ ```bash
224+ bendsql --host <HOST> --port <PORT> --user <USER> --password <PASSWORD> --database <DATABASE>
225+ ```
226+
227+ 此示例使用 `eric` 作为用户连接到在端口 `8000` 上本地运行的 Databend 实例:
228+
229+ ```bash title=' Example'
230+ bendsql --host 127.0.0.1 --port 8000 --user eric --password abc123
231+ ```
232+
233+ #### 选项 2:使用 DSN
234+
235+ 您还可以使用 DSN 定义连接,并将其导出为 `BENDSQL_DSN` 环境变量:
236+
237+ ```bash title=' Example'
238+ export BENDSQL_DSN="databend://eric:abc123@localhost:8000/?sslmode=disable"
239+ bendsql
240+ ```
241+
150242## 教程
151243
152244- [使用 BendSQL 连接到私有化部署的 Databend](/tutorials/)
@@ -156,20 +248,21 @@ cargo install bendsql
156248
157249BendSQL 提供了一系列设置,允许您定义查询结果的呈现方式:
158250
159- | Setting | Description |
160- | -------------------- | ----------------------------------------------------------------------------------------------- |
161- | `display_pretty_sql` | 当设置为 `true` 时,SQL 查询将以视觉上吸引人的方式进行格式化,使其更易于阅读和理解。 |
162- | `prompt` | 在命令行界面中显示的提示符,通常指示正在访问的用户、计算集群和数据库。 |
163- | `progress_color` | 指定用于进度指示器的颜色,例如在执行需要一些时间才能完成的查询时。 |
164- | `show_progress` | 当设置为 `true` 时,将显示进度指示器以显示长时间运行的查询或操作的进度。 |
165- | `show_stats` | 如果为 `true`,则在执行每个查询后,将显示查询统计信息,例如执行时间、读取的行数和处理的字节数。 |
166- | `max_display_rows` | 设置查询结果输出中将显示的最大行数。 |
167- | `max_col_width` | 设置每列显示渲染的最大字符宽度。小于 3 的值将禁用该限制。 |
168- | `max_width` | 设置整个显示输出的最大字符宽度。值为 0 时,默认为终端窗口的宽度。 |
169- | `output_format` | 设置用于显示查询结果的格式 (`table`、`csv`、`tsv`、`null`)。 |
170- | `expand` | 控制查询的输出是显示为单个记录还是以表格格式显示。可用值:`on`、`off` 和 `auto`。 |
171- | `multi_line` | 确定是否允许 SQL 查询的多行输入。当设置为 `true` 时,查询可以跨越多行以提高可读性。 |
172- | `replace_newline` | 指定是否应将查询结果输出中的换行符替换为空格。这可以防止显示中出现意外的换行符。 |
251+
252+ | 设置项 | 描述 |
253+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
254+ | `display_pretty_sql` | 设置为 `true` 时,SQL 查询将以视觉上吸引人的方式进行格式化,使其更易于阅读和理解。 |
255+ | `prompt` | 命令行界面中显示的提示符,通常指示正在访问的用户、计算集群和数据库。 |
256+ | `progress_color` | 指定用于进度指示器的颜色,例如在执行需要一些时间才能完成的查询时。 |
257+ | `show_progress` | 设置为 `true` 时,将显示进度指示器以显示长时间运行的查询或操作的进度。 |
258+ | `show_stats` | 如果为 `true`,则在执行每个查询后,将显示查询统计信息,例如执行时间、读取的行数和处理的字节数。 |
259+ | `max_display_rows` | 设置查询结果输出中将显示的最大行数。 |
260+ | `max_col_width` | 设置每列显示渲染的最大字符宽度。小于 3 的值将禁用此限制。 |
261+ | `max_width` | 设置整个显示输出的最大字符宽度。值为 0 时,默认为终端窗口的宽度。 |
262+ | `output_format` | 设置用于显示查询结果的格式 (`table`、`csv`、`tsv`、`null`)。 |
263+ | `expand` | 控制查询的输出是显示为单独的记录还是以表格格式显示。可用值:`on`、`off` 和 `auto`。 |
264+ | `multi_line` | 确定是否允许多行输入 SQL 查询。设置为 `true` 时,查询可以跨越多行以提高可读性。 |
265+ | `replace_newline` | 指定是否应将查询结果输出中的换行符替换为空格。这可以防止显示中出现意外的换行。 |
173266
174267有关每个设置的详细信息,请参阅以下参考信息:
175268
@@ -236,7 +329,7 @@ Settings {
236329 replace_newline: true,
237330}
238331// highlight-next-line
239- root@localhost:8000/default> !set prompt {user}@{warehouse}/{database}
332+ root@localhost:8000 !set prompt {user}@{warehouse}/{database}
240333root@localhost:8000/default
241334```
242335
@@ -251,7 +344,7 @@ root@localhost:8000/default> !set progress_color blue
251344
252345#### `show_progress`
253346
254- 设置为 `true` 时,在查询执行期间会显示进度信息。进度信息包括已处理的行数、查询中的总行数、处理速度(行/秒)、已处理的内存量以及处理速度 (内存/秒 )。
347+ 设置为 `true` 时,在查询执行期间会显示进度信息。进度信息包括已处理的行数、查询中的总行数、每秒处理速度(行数)、已处理的内存量以及每秒处理速度 (内存)。
255348
256349```shell title=' Example:'
257350// highlight-next-line
@@ -262,7 +355,7 @@ root@localhost:8000/default> select * from numbers(1000000000000000);
262355
263356#### `show_stats`
264357
265- `show_stats` 设置控制在执行每个查询后是否显示查询统计信息。当设置为 `false` 时,如下面示例中的第一个查询 ,不显示查询统计信息。相反,当设置为 `true` 时,如第二个查询所示,在执行每个查询后会显示查询统计信息 ,例如执行时间、读取的行数和处理的字节数。
358+ `show_stats` 设置控制在执行每个查询后是否显示查询统计信息。当设置为 `false` 时,如下面示例中的第一个查询所示 ,不显示查询统计信息。相反,当设置为 `true` 时,如下面的第二个查询所示,在执行每个查询后,将显示查询统计信息 ,例如执行时间、读取的行数和处理的字节数。
266359
267360```shell title=' Example:'
268361// highlight-next-line
@@ -288,7 +381,7 @@ root@localhost:8000/default> select now();
288381
289382#### `max_display_rows`
290383
291- `max_display_rows` 设置控制查询结果输出中显示的最大行数。在下面的示例中,当设置为 `5` 时,查询结果中最多显示 5 行。剩余的行用( 5 shown) 表示。
384+ `max_display_rows` 设置控制查询结果输出中显示的最大行数。在下面的示例中,当设置为 `5` 时,查询结果中最多显示 5 行。剩余的行用 ( 5 shown) 表示。
292385
293386```shell title=' Example:'
294387// highlight-next-line
@@ -314,7 +407,8 @@ root@localhost:8000/default> SELECT * FROM system.configs;
314407
315408#### `max_col_width` & `max_width`
316409
317- 设置 `max_col_width` 和 `max_width` 分别指定单个列和整个显示输出中允许的最大字符宽度。以下示例将列显示宽度设置为 10 个字符,将整个显示宽度设置为 100 个字符:
410+ `max_col_width` 和 `max_width` 设置分别指定单个列和整个显示输出中允许的最大字符宽度。以下示例将列显示宽度设置为 10 个字符,并将整个显示宽度设置为 100 个字符:
411+
318412
319413```sql title=' Example:'
320414// highlight-next-line
@@ -347,7 +441,7 @@ root@localhost:8000/default> select * from system.settings;
347441
348442#### `output_format`
349443
350- 通过将 `output_format` 设置为 `table`、`csv`、`tsv` 或 `null`,您可以控制查询结果的格式。`table` 格式以表格格式显示结果,带有列标题,而 `csv` 和 `tsv` 格式分别提供逗号分隔值和制表符分隔值,`null` 格式完全禁止输出格式化 。
444+ 通过将 `output_format` 设置为 `table`、`csv`、`tsv` 或 `null`,您可以控制查询结果的格式。`table` 格式以表格格式显示结果,带有列标题,而 `csv` 和 `tsv` 格式分别提供逗号分隔值和制表符分隔值,`null` 格式完全禁止输出格式 。
351445
352446```shell title=' Example:'
353447// highlight-next-line
@@ -381,7 +475,7 @@ root@localhost:8000/default> show users;
381475
382476#### `expand`
383477
384- `expand` 设置控制查询的输出是显示为单个记录还是以表格格式显示 。当 `expand` 设置为 `auto` 时,系统会自动根据查询返回的行数确定如何显示输出。如果查询仅返回一行,则输出将显示为单个记录 。
478+ `expand` 设置控制查询的输出是显示为单独的记录还是以表格格式显示 。当 `expand` 设置为 `auto` 时,系统会自动根据查询返回的行数确定如何显示输出。如果查询只返回一行,则输出显示为单个记录 。
385479
386480```shell title=' Example:'
387481// highlight-next-line
@@ -451,7 +545,7 @@ root@localhost:8000/default> SELECT *
451545
452546#### `replace_newline`
453547
454- `replace_newline` 设置决定了是否将换行符 (\n) 替换为输出中的文字字符串 (\\n)。在下面的示例中,`replace_newline` 设置为 `true`。因此,当选择字符串 ' Hello\n World' 时,换行符 (\n) 将被替换为文字字符串 (\\n)。因此,输出不会显示换行符,而是将 ' Hello\n World' 显示为 ' Hello\\ nWorld' :
548+ `replace_newline` 设置确定是否将换行符 (\n) 替换为输出中的文字字符串 (\\n)。在下面的示例中,`replace_newline` 设置为 `true`。因此,当选择字符串 ' Hello\n World' 时,换行符 (\n) 将被替换为文字字符串 (\\n)。因此,输出不会显示换行符,而是将 ' Hello\n World' 显示为 ' Hello\\ nWorld' :
455549
456550```shell title=' Example:'
457551// highlight-next-line
@@ -480,9 +574,9 @@ root@localhost:8000/default> SELECT 'Hello\nWorld' AS message;
480574
481575### 配置 BendSQL 设置
482576
483- 您可以使用以下选项来配置 BendSQL 设置:
577+ 您可以通过以下选项来配置 BendSQL 设置:
484578
485- - 使用 `!set <setting> <value>` 命令。有关更多信息,请参见 [实用工具命令 ](#utility-commands)。
579+ - 使用 `!set <setting> <value>` 命令。有关更多信息,请参见 [实用程序命令 ](#utility-commands)。
486580
487581- 在配置文件 `~/.config/bendsql/config.toml` 中添加和配置设置。为此,请打开该文件并在 `[settings]` 部分下添加您的设置。以下示例将 `max_display_rows` 设置为 10,将 `max_width` 设置为 100:
488582
@@ -501,17 +595,17 @@ root@localhost:8000/default> .max_display_rows 10
501595root@localhost:8000/default> .max_width 100
502596```
503597
504- ## 实用工具命令
598+ ## 实用程序命令
505599
506600BendSQL 为用户提供了各种命令,以简化其工作流程并自定义其体验。以下是 BendSQL 中可用命令的概述:
507601
508- | 命令 | 描述 |
509- | ------------------------ | ------------------------- |
510- | `!exit` | 退出 BendSQL。 |
511- | `!quit` | 退出 BendSQL。 |
512- | `!configs` | 显示当前的 BendSQL 设置。 |
513- | `!set <setting> <value>` | 修改 BendSQL 设置。 |
514- | `!source <sql_file>` | 执行 SQL 文件。 |
602+ | 命令 | 描述 |
603+ | ------------------------ | ---------------------------------- |
604+ | `!exit` | 退出 BendSQL。 |
605+ | `!quit` | 退出 BendSQL。 |
606+ | `!configs` | 显示当前的 BendSQL 设置。 |
607+ | `!set <setting> <value>` | 修改 BendSQL 设置。 |
608+ | `!source <sql_file>` | 执行 SQL 文件。 |
515609
516610有关每个命令的示例,请参阅下面的参考信息:
517611
@@ -524,8 +618,9 @@ BendSQL 为用户提供了各种命令,以简化其工作流程并自定义其
524618Welcome to BendSQL 0.17.0-homebrew.
525619Connecting to localhost:8000 as user root.
526620Connected to Databend Query v1.2.427-nightly-b1b622d406(rust-1.77.0-nightly-2024-04-20T22:12:35.318382488Z)
621+ ```
527622
528- // highlight-next-line
623+ ```
529624root@localhost:8000/default> !exit
530625Bye~
531626```
616711│ 3 │ Charlie │
617712└────────────────────────────────────┘
6187133 rows read in 0.064 sec. Processed 3 rows, 81 B (46.79 rows/s, 1.23 KiB/s)
619- ```
714+ ```
0 commit comments