SQL 客户端
本页目录
SQL 客户端#
前提#
OushuDB SQL 客户端是为 OushuDB 量身打造的基于 BS 架构 SQL 客户端,您可以使用此客户端管理数据库的对象,包括表空间、库、Schema、表、视图、函数的增删改查, 也可以使用此客户端编写 SQL、执行 SQL、查看执行结果并对执行结果进行编辑、下载等操作。
使用 OushuDB SQL 客户端,请先确保您已经安装并运行了 OushuDB 基础服务,如果您尚未安装,请参考 OushuDB 可视化安装。
限制及约束#
前端 UI 对浏览器的版本有如下限制:
浏览器 |
建议版本 |
最低版本 |
---|---|---|
Chrome |
>100 |
70 |
Edge |
>100 |
80 |
Firefox |
>100 |
70 |
Safari |
>14 |
13 |
Opera |
>70 |
48 |
IE |
不支持 |
不支持 |
工作簿#
工作簿(Worksheet)是 OushuDB 的可视化工作平台,提供了针对 OushuDB 的对象管理、SQL 查询、上传下载等功能,各个工作簿之间相互独立,同一个工作簿可以多人同时操作互不影响,并且可以查阅他人的操作内容,合作完成任务。
工作簿列表#
进入云数据库菜单后,默认展示的为您最近访问的工作簿列表。
您也可以切换标签页,查看所有您可见的工作簿。
光标悬停在某条工作簿记录上,可以看到有修改名称、设置工作簿权限和删除工作簿三个操作按钮。
新建文件夹#
您可以使用文件夹将不同的工作簿分类管理,统一进行授权和删除操作。在所有工作簿
标签页中点击新建文件夹
输入文件夹名称,即可创建一个新的空白文件夹,文件夹同样有修改名称、权限和删除三种操作。
点击进入文件夹内部,会展示包含的工作簿列表,点击文件夹名称可以进行修改名称和删除操作。
新建工作簿#
您可以点击新建工作簿
按钮创建一个空白的工作簿,或是您已经拥有一个.sql
结尾的脚本文件,可以选择点击从SQL文件创建工作簿
,将会自动帮您将脚本内容写入工作簿。一个新建的空白工作簿如下图所示。
工作簿使用#
点击顶部工作簿标签左侧的按钮可以返回工作簿列表。
点击顶部工作簿标签名称可以打开多项操作,包括修改工作簿名称、查看工作簿 SQL 的版本历史、复制当前工作簿 SQL 到一个新的工作簿、移动工作簿、导入一个 SQL 脚本文件、把工作簿 SQL 文本导出、删除工作簿等。
此处可以选择当前工作簿使用的 OushuDB 实例和虚拟计算集群。
此处可以指定 SQL 执行时的资源队列。
此处按钮可以快捷改变下方展示区域的布局以及全屏显示。
对象管理#
左侧分为资源和收藏两个功能标签,资源展示的是当前 OushuDB 实例的对象管理,收藏展示的客户标记收藏的表、视图和函数,可以进行一些快捷操作。
库#
资源的对象管理部分,第一行表示的是数据库(database)
,我们可以在下拉列表内切换不同数据库,并在后面更多按钮中使用其他可视化快捷操作,例如新建、编辑、删除数据库以及数据库授权等操作。
模式#
资源的对象管理部分,第二行表示的是模式(schema)
,我们可以在下拉列表内切换不同数模式,并在后面更多按钮中使用其他可视化快捷操作,例如新建、编辑、删除模式以及模式的授权等操作。
表#
支持可视化的创建内表或外表。新建内表的时候可以选择分区、压缩方式等信息,创建外表的时候可以填写表位置和压缩方式等。
光标悬浮到某个数据表时,可以看到收藏、复制名称、编辑表、删除表、新建列、权限、行列权限等操作按钮。
展开表信息,我们可以看表的全部列,并做编辑和删除操作。
视图#
支持可视化的创建视图,并对已有视图做收藏、复制名称、删除、查看信息、预览数据等操作。
函数#
支持可视化的创建函数,并对已有函数做收藏、编辑和删除等操作。
注意:当使用上述提到的对象的可视化创建功能时,所填写的对象名称是
大小写敏感
的,请根据需要正确填写对象名称的大小写。
对象的权限管理#
在对象管理列表中,您可以对库、模式、表、视图等数据库对象进行可视化权限管理。 以表作为例子,光标悬浮到某表右侧的“…”,可以看到“权限”与“行列权限”的菜单项,点击相应菜单即可打开权限管理或者行列权限管理的窗口。 您也可以在“权限中心”集中管理某用户/角色的库、模式与表的权限。
通用权限管理#
如图,打开权限管理页面之后,您可以看到当前已经赋予给用户或者角色的权限。右上角下拉菜单可以切换用户或者角色,以查看所有用户 或者所有角色的对选中的表(或其他数据库对象)的权限列表。每一行代表某一个角色/用户对于该表(或其他数据库对象)的所有权限。
点击左上角“添加权限”按键即可打开权限添加窗口。点击某一行的“编辑”图标也可打开编辑某角色/用户对该表(或其他数据库对象)的权限的窗口。 在窗口中选择某用户/角色,选中需要赋予给本用户/角色的权限(多选),点击“提交”即可创建或者修改用户/角色对该表(或其他数据库对象)的权限。
表的行列权限#
从 6.0 版本之后,除了数据库对象通用的权限管理之外,还支持表的行、列权限,点击表的“行列权限”菜单项,即可打开行、列权限管理的窗口。
行级权限管理#
如上图所示,打开行、列权限管理窗口之后,在“行权限”标签页下,可查看、管理行级权限。行级权限是以行级权限策略的形式落地。此处您可以看到 已有的行级权限策略的列表,并且可以对行级权限策略进行增、删、改的操作。
点击“新建安全策略”即可打开新建安全策略的窗口,输入安全策略名称(同表下名称不能重复),选择角色/用户(多选),选择类型(单选),选择操作命令(单选) 输入查询检查(USING表达式)与修改检查(WITH CHECK表达式),点击提交即可。
点击“是否开启行级安全策略”可以开启、关闭该表的行级安全策略,只有开启之后,表上定义的行级安全策略才会生效。 点击“编辑”可以编辑某行级安全策略,点击“删除”可以删除某行级安全策略,也可选中多个行级安全策略点击“删除安全策略”进行批量删除。
注意:行级安全策略只有用户/角色拥有表级别的通用权限(表级别的增、删、改、查等权限)之后,才能生效。 例如:如果某用户没有表的 SELECT 权限, 即使某行级安全策略赋予了该用户某些行的 SELECT 权限,那么此用户依然没有查看这些行的权限。
关于行级权限的详细描述,见 行级权限。
列级权限管理#
如上图所示,打开行、列权限管理窗口之后,在“列权限”标签页下,可查看、管理列级权限。该标签页展示选中表的所有列以及列的所有相关权限 (哪个角色/用户拥有该列的哪些权限)。
点击某一个列的名称,即可打开该列的权限编辑页面,在此可以查看、新增、删除该列的相关权限。新增时,需要选择用户/角色,以及想要赋予该用户/角色 的列的相关权限(SELECT、INSERT、UPDATE、REFERENCES)与 WITH GRANT OPTION,点击“提交”即可。修改已有权限同理。 点击某一行后面的“删除”操作,然后点击“提交”,即可删除某一角色/用户对本列的权限。
关于列级权限的详细描述,见 GRANT。
SQL 控制台#
工作簿右上方的部分是 SQL 控制台,可以让我们编写 SQL 脚本并进行执行。SQL 脚本编写支持语法高亮、关键字自动补全(包括库、Schema、表、列名字)、 格式化、版本管理等功能。
SQL 执行的结果支持表格的方式与控制台的方式展现,以满足不同的需求。以表格方式展现查询结果时,可支持对查询结果数据的 修改。同时支持下载查询结果。
上面一排按钮依次是:
执行(支持选中部分单独执行)
执行按钮右侧有一个下拉选项,可以在普通【执行】(返回数据表格)和【以控制台方式执行】模式之间切换
当以控制台方式执行时,执行的结果将以逐行输出的命令行形式呈现。(示例 SQL:select * from user;)
这意味着每个执行步骤都会在屏幕上独立显示,以更清晰地展示每个命令的执行结果。
这种形式的输出使您能够逐步查看程序或脚本的运行过程,方便调试和定位潜在问题,有助于提高可视化和理解性,更容易分析和监控代码的执行流程。
设置最大查询数量
设置查询的数据库和模式
格式化
注释
快捷键
从 SQL 文件导入
导出为 SQL 文件
保存 SQL 脚本版本
查看 SQL 脚本版本历史
结果可视化(可编辑列表)#
工作簿右下方的部分是执行的查询历史和执行查询结果(多个)的标签页。 执行多条语句时,展示最后 20 条执行结果。
列表模式下,可以查询表的查询结果,同时当处在单表查询时,还可以对查询的结果进行增删改查。
执行历史#
可以对执行历史进行查看,点击 SQL 还能看到执行时的具体SQL,同时也可以对不需要的记录进行删除。
标签页管理#
多个Select语句时,可以同时查看多个执行结果,也可以在执行结果标签上右键关闭不需要的执行结果。
执行中(可取消未执行语句)#
当任务处在执行中时,会显示执行中的样式。
取消执行#
当任务处在执行中时,可以点击取消按钮阻止执行,当阻止成功时,会显示如下内容:
执行结果#
以下是执行结果的示例图:
执行结果列配置#
执行结果表的列,通过点击右侧的列配置,可以自定义列的显示和顺序。
执行结果列表列头自定义宽度#
执行结果表的列头可以直接拖拽边缘处进行修改宽度
执行结果列表搜索高亮#
执行结果列表编辑单元格(可双击或者右键单元格选择编辑)#
执行结果列表单元格右键菜单(根据不同场景显示有所不同)#
删除行(删除已有行时标记颜色,删除新增行直接抹除)#
被删除的已有行标记颜色#
新增行#
还原修改#
可还原修改过的单元格、删除的行、新增行。
预览修改#
可选择本次改动的条件匹配列
提交修改#
结果可视化(图表)#
执行结果也可以使用图表自定义展示。
传输任务#
传输任务分为表数据导入、表数据导出和执行结果导出三种。
点击任务名称可以查看任务的详细信息,并执行相应的操作。
表数据导入#
点击查看表结构,点击导入数据,按需填写上传即可创建表数据导入任务。
表数据导出#
点击查看表结构,点击导出数据,按需填写即可创建表数据导出任务。
执行结果导出#
在执行结果处点击导出执行结果按钮,按需填写即可创建执行结果导出任务,支持自定义任务名称,支持CSV、TEXT文件类型,支持是否携带表头。
快捷短语#
通过快捷短语功能,可为 SQL 文本定义快捷短语名称。在工作簿中输入快捷短语名称,可调出对应的 SQL 文本,达到快速录入的目的。
快捷短语列表#
快捷短语列表展示了当前用户有权限看到的快捷短语信息,并提供新建、编辑、删除、批量删除快捷短语的功能。
新建快捷短语#
点击新建
按钮,打开新建快捷短语窗口,在此可完成快捷短语的定义。
快捷短语名称:在工作簿中,通过输入快捷短语名称可实现对应 SQL 文本的快速录入。
权限:公共 / 个人。公共:所有用户均可见。个人:只有创建本快捷短语的用户可见。
快捷短语 SQL:快捷短语代表的 SQL 文本。
使用快捷短语#
在工作簿中,输入快捷短语名称,可快速匹配到用户有权限使用的快捷短语,按回车键,可实现对应 SQL 文本的快速录入。
在工作簿中,可通过新建快捷短语
功能按钮,快捷打开新建窗口添加快捷短语。
迁移工具#
为支持用户业务系统从友商数仓平台方便快捷的迁移到 Skylab 云平台,Skylab 提供了自动化迁移工具,可帮助用户完成 DDL 脚本、 SQL 脚本、业务程序脚本、函数的转换。
迁移任务列表#
迁移任务列表展示了当前系统中已定义的迁移任务。光标移动到某项任务,可通过浮现的功能按钮启动任务或删除任务。也可通过顶部功能栏的新建任务
按钮打开新建任务窗口。
新建和编辑迁移任务#
在新建和编辑迁移任务窗口,可定义或修改迁移任务的各个参数,并通过保存
按钮完成任务创建或修改。
任务名称:新建任务可自动生成带时间戳的任务名称,可根据需要自行修改。
文件路径:待转换的源脚本文件全路径,此文件要提前上传到 Lava Server 服务器中 oushu 用户有权访问的路径下。
文件处理开关:实现了文本替换功能(暂不支持正则表达式),可根据需要开启此功能。文本处理开启后,可指定文件编码方式(UTF-8 或 GBK),并自定义文本替换规则。
转换开关:实现了DDL 脚本、 SQL 脚本、业务程序脚本、函数的语法转换功能,可根据需要开启此功能。脚本类型分为:DDL 脚本和其他脚本。
DDL 脚本:当前支持 GBase、Mysql、Oracle、Vertica 语法向 Skylab 云平台语法的转换。
其他脚本:其他脚本包括:Perl 文件、SQL 文件、动态函数、静态函数。转换支持情况如下:
数据源类型 |
Perl 文件 |
SQL 文件 |
动态函数 |
静态函数 |
---|---|---|---|---|
DB2 |
- |
- |
支持 |
- |
Greenplum |
- |
- |
支持 |
支持 |
Hive |
- |
- |
支持 |
- |
Netezza |
支持 |
支持 |
支持 |
- |
Oracle |
- |
支持 |
支持 |
- |
Teradata |
支持 |
- |
支持 |
- |
Vertica |
支持 |
- |
- |
- |
查看迁移任务详情#
在迁移任务列表中点击某个迁移任务的名称,可查看该任务的详情和任务历史执行记录。
迁移任务详情:
迁移任务历史执行记录:
在任务执行历史清单中,光标移动到某项执行记录,可通过浮现的功能查看文件对比、查看执行日志、导出转换后的脚本文件、删除此项执行记录。
在文件对比功能中,左侧展示源脚本文件,右侧展示转换后的脚本文件。画面中对比展示了转换前后的脚本文件差异。在右侧窗口中,可直接编辑转换后的脚本文件,并通过保存
按钮保存编辑结果。
在日志任务功能中,展示了服务器侧执行脚本转换任务的日志。
表空间管理#
选择对应的 DB 集群,展示 DB 表空间列表,提供创建表空间的功能
表空间列表#
展示选中DB集群的表空间列表,展示字段包含表空间名称、表空间拥有者,表空间选项、表空间路径。
新建表空间#
点击新建表空间
按钮,打开新建表空间窗口,在此可完成表空间的创建。
表空间名称:DB 表空间名称,同一 DB 集群不可重复。
表空间路径:表空间对应的远程 hdfs 地址。
表空间桶数量:提供默认值。
表空间选项:可选择填写自定义表空间选项。
SQL编辑器设置#
允许对 SQL 编辑器进行设置,包括”是否开启自动保存”、”是否开启自动补全”、”设置自动补全触发延迟”、”是否补全对象名”。
注: 在某些操作系统下,如云桌面、windows7 或其他 32 位操作系统等环境, 使用 SQL 编辑器时, 可能会遇到性能问题: 因为自动补全需要对 SQL 进行词法解析,会消耗 CPU 资源,低配置的客户端可能会出现卡顿。 这种情况下,可以设置 SQL 编辑器为非自动补全模式。