· SparkSQL节点的血缘信息以调度中心保存的数据为准。 · 在编辑SparkSQL节点的SQL时,如使用函数作为结果字段,则需为该字段配置别名。 |
SparkSQL组件或RDSSQL组件的编辑SQL功能提供了SQL语句编辑、执行和校验等功能。在弹出的SQL窗口中:
顶部提供了执行、SQL上传、格式化、语法校验执行、执行选中等功能按钮。
中部的SQL语句编辑区域展示了SQL语句内容。在SQL语句编辑区域中输入的SQL语句中所包含的表名需使用离线表表名(对于SparkSQL是Hive类型数据源的离线表表名,对于RDSSQL是Greenplum/Vertica/DLH类型数据源的数据表名)。SQL语句支持通过SQL上传功能导入,或者手动编辑:
导入文件:单击工具栏中的<SQL上传>按钮,弹出文件选择窗口。选择本地的SQL文件后,单击<打开>按钮,即可将文件中的SQL语句导入到编辑区域中。导入的SQL语句还可以在编辑区域修改。
手动编辑:在编辑区域中,手动输入SQL语句。编辑区域支持对SQL关键字和表名的联想功能,可以方便输入;还支持从表信息中拖拽表名至编辑区域。
下方执行结果区域展示了被选中schema的表信息、被选中表的表字段信息及SQL语句的执行记录、动态日志和执行结果。
表信息:页面下方的表信息页签中,展示了所有的表信息(SparkSQL组件可使用的表包括所有Hive数据源下的数据表信息及注册的离线表信息)。在搜索区域中,选择schema名称并输入表名称关键字,作为筛选条件,列表中将展示符合条件的所有Hive数据表信息及注册的离线表信息。
字段信息:在表信息页签中选择某表,字段信息页签中即可展示表中的字段信息。
执行记录:执行记录显示了SQL语句执行的记录信息,包括SQL语句内容、执行方式,执行的对象(对于SparkSQL和HiveSQL是Hive类型数据源,对于RDSSQL是Greenplum/Vertica/DLH类型数据源)、当前运行状态、执行操作的创建者、提交时间和结束时间,并提供了执行结果查看、动态日志查看、记录删除、执行操作取消、日志查看和强制将操作置为失败等功能。
动态日志:提供了SQL语句执行的动态日志,可通过在执行记录列表中单击<动态日志>按钮查看对应的动态日志。
执行结果:以列表的形式展示了执行成功的SQL语句的最终执行(查询)结果。
当前SQL编辑器中对查询返回的数据条数进行了限制,查询结果最大返回1000条数据。 如果对数据量过大、逻辑复杂的SQL进行了语法校验,可能会导致超时或者执行失败,并影响Spark Thrift Server的稳定性。 对于RDSSQL,其执行、选中执行和语法校验操作,仅用于小数据量情况下的SQL验证。 |
SQL语句编辑完成后,可以执行SQL并查看执行结果,以确认SQL语句是否符合作业要求。
SQL编辑区域中提供了对选中的SQL语句和完整SQL语句的执行的功能。执行选中SQL时,仅支持管理员用户进行删除操作。查询结果默认返回最多1000条结果。
执行:单击编辑区域上方的<执行>按钮,此时会执行编辑区域中所有SQL语句内容。执行完成后,会在执行结果区域中显示执行的结果。
执行选中:选中编辑区域中需要执行验证的部分SQL语句,单击编辑区域上方的<执行选中>按钮,此时会执行选中的SQL语句内容。执行完成后,会在执行结果区域中显示执行的结果。
单击编辑区域上方的<SQL上传>按钮,选择已经编辑好的SQL语句文件,可以快速生成SQL语句。
单击编辑区域上方的<格式化>按钮,可以将编辑区域的SQL语句格式进行标准化,以方便查看。
SQL语句编辑完成后,可以校验SQL语句语法,以检查SQL语句是否符合语法要求。
SQL编辑区域中提供了对选中的SQL语句和完整SQL语句的语法校验功能。
校验全部SQL语句语法:单击编辑区域上方的<语法校验>按钮,此时会在弹框中展示所有SQL语句的语法校验结果。
校验选中SQL语句语法:选中编辑区域中需要进行语法校验的部分SQL语句,单击编辑区域上方的<语法校验>按钮,此时会在弹框中展示选中SQL语句的语法校验结果。
对于SparkSQL,还支持配置是否导出到其他数据源中存储,支持存储至指定的HDFS目录,或存储至指定类型数据源的表中(支持新建表)。
在编辑SQL页面中,配置完成SQL语句并校验无误后,可以在页面底部单击<下一步>按钮,配置结果导出参数,参数说明请参见表-2。
导出情况说明:
运行结果中精度有误的类型在导出结果时会出现同样的问题。
暂不支持导出复杂类型的数据。
导出到表操作时,对于部分类型数据源的表存在不支持的数据类型,详细说明请参见下表。
表-1 导出到表操作不支持的数据类型
表所属数据源的类型 |
不支持数据类型 |
达梦 |
bit |
PostgreSQL/Greenplum |
binary、tinyint(离线表映射后含有binary与tinyint的类型)、bit、interval、uuid |
Vertica |
geography、geometry |
导出类型选择Table,且写入模式为新建时,存在如下限制: · 复杂类型无法在关系型数据库建表。 · 目前支持新建表的数据源类型为支持在表管理建表且可注册为离线表的类型,详情请参见注册/取消注册离线表中的表-1。 · 通过SQL建表和元数据采集方式新建的表,在SparkSQL节点使用并进行结果导出时,可能会因其数据类型造成新建表失败。 · 新建表方式与其他写入方式一样,在实际运行时可能会因数据类型适配出现精度问题,详情请参见离线分析组件中的表-2。 · 新建Greenplum表时,默认存储类型为“heap”。 |
如果需要导出,则需要配置导出参数,参数说明请参见下表。