1.Ksql命令行架构
Ksql命令行使用了一个两层模型,其中包括:
-
客户端(用户命令行接口)
-
数据库(KingbaseES数据库)
Ksql 客户端
命令行用户界面基于字符终端实现。
KingbaseES数据库
KingbaseES数据库使用基于消息的协议在Ksql客户端和后端之间通信,协议支持TCP/IP和Unix套接字
2.连接目标数据库
在Linux或者Windows终端输入Ksql命令:
$ ksql -p 54320 -d test ksql (V8.0) Type "help" for help.
3.执行一个查询
在正常操作时,Ksql会提供一个提示符,该提示符是Ksql当前连接到的数据库名称后面跟上字符串 =#
。例如:
$ ksql testdb ksql (V8.0) Type "help" for help. testdb=#
在提示符下,用户可以键入SQL命令。正常情况下,当碰到一个表示命令终结的分号时,输入的行会被发送给服务器。一行的结束并不表示命令的完结。因此,为了清晰,可以把命令散布在多个行上。如果命令被发送并且执行而不产生错误,该命令的结果将会显示在屏幕上。例如:
test=# select a, b from t1; a | b ---+--- 1 | 2 3 | 4 (2 rows)
如果不受信任的用户能够访问没有采用 安全使用模式 的数据库,通过从 search_path
删除公共可写的模式来开始会话。可以在连接字符串加入 options=-csearch_path=
或者在其他SQL命令之前发出 SELECT sys_catalog.set_config('search_path', '', false)
。这种考虑并非专门针对Ksql,它适用于每一种执行任意SQL命令的接口。
只要执行命令,Ksql还会测试 LISTEN 和 NOTIFY 产生的异步通知。
C 风格的注释块会被传给服务器处理并且移除,Ksql会自己移除掉 SQL 标准的注释。
4.退出Ksql
如果需要退出Ksql命令行,输入 \q 即可,Ksql正常完成,它会向 shell 返回 0。如果它自身发生一个致命错误(例如内存用完、找不到文件),它会返回 1。如果到服务器的连接出问题并且事务不是交互式的,它会返回 2。如果在脚本中发生错误,它会返回 3 并且变量 ON_ERROR_STOP
会被设置。