SQL调试

SQL查询功能中,对于Hive类型的数据源,可使用HiveSparkSQL引擎执行SQL语句,进行SQL查询。

切换引擎的步骤如下:

  1. 在左侧的数据源目录中,选择Hive类型的数据源,右侧即可展示该数据源的查询页面。

  1. 系统默认使用Hive引擎,单击编辑区域上放个工具栏最后的选择框,可以切换SparkSQLHive引擎。

·          如已在[系统]模块下的[系统配置/大数据集群资源]配置页面中,为所在组织配置了Kerberos用户及队列信息,则查询也将按照配置的队列提交相关任务。

·          在编辑SparkSQL引擎的SQL时,如使用函数作为结果字段,则需为该字段配置别名。

·          SQL查询中提交运行SparkSQL使用livy用户以Livy的方式运行,若工作空间分配的大数据集群未开启Kerberos,只开启了Ranger,需要手动在Ranger界面修改HDFSHive的权限,都添加livy用户。Ranger界面地址http://${集群虚拟IP}:6080/,登录的用户名为admin,密码为CloudOS5#DE3@Ranger

·          select两个表的同名字段时,需要使用as对同名字段重命名。例如:select a.id as a_id,b.id as b_id,b.name from a join b on a.code=b.code

·          对于ORCFILE存储方式的Hive表,如果修改了字段类型,使用SparkSQL引擎查询可能会出错,处理方法请参见对于Hive数据源中ORCFILE存储方式的Hive表修改字段类型后使用SparkSQL引擎查询数据失败

 

Hive数据源查询页面中:

当前SQL编辑器中对查询返回的数据条数进行了限制,查询结果最大返回1000条数据。

如果对数据量过大、逻辑复杂的SQL进行了语法校验,可能会导致超时或者执行失败,并影响Spark Thrift Server的稳定性。

 

1.      执行SQL

SQL语句编辑完成后,可以执行SQL并查看执行结果,以确认SQL语句是否符合作业要求。

SQL编辑区域中提供了对选中的SQL语句和完整SQL语句的执行的功能。执行选中SQL时,仅支持管理员用户进行删除操作。查询结果默认返回最多1000条结果。

2.      SQL上传

单击编辑区域上方的<SQL上传>按钮,选择已经编辑好的SQL语句文件,可以快速生成SQL语句。

3.      格式化

单击编辑区域上方的<格式化>按钮,可以将编辑区域的SQL语句格式进行标准化,以方便查看。

4.      语法校验

SQL语句编辑完成后,可以校验SQL语句语法,以检查SQL语句是否符合语法要求。

SQL编辑区域中提供了对选中的SQL语句和完整SQL语句的语法校验功能。

5.      表和字段信息查看

页面下方的表信息页签中,展示了系统中存在且可用的表信息。

在搜索区域中,选择schema名称并输入表名称关键字,作为筛选条件,列表中将展示符合条件的表信息。在表信息区域中单击某表名称,字段信息页签中即可展示该表中的字段信息。

6.      执行记录列表查看

执行SQL语句后,可在页面下方查看执行记录、动态日志。如果被执行的单条SQL语句或多条SQL语句的结尾包含查询操作,则执行成功后可查看执行结果。

在执行记录列表上,对于单次执行,也可以进行取消(仅运行中状态可取消)、删除(非运行中状态可删除)、查看日志、强制失败(仅运行中状态可强制失败)等操作。

取消任务时,极端情况下可能会由于集群YARN组件异常而导致无法取消成功。

强制失败功能仅适用于通过集群组件无法取消任务时,将该任务状态置为Failed以避免其他调试任务受阻的场景。