当前用于大数据处理的引擎组件种类繁多,且各自提供了丰富的接口供用户使用。但对传统数据库用户来说,SQL语言依然是最熟悉和方便的一种接口。如果能在一个客户端中使用SQL语句操作不同的大数据组件,将极大提升使用各种大数据组件的效率。
openGauss支持SQL on Anywhere,基于openGauss可以操作Hadoop、Oracle、Spark和other openGauss,构筑起统一的大数据计算平台。
使用openGauss提供的Extension Connector可以将SQL语句发送到数据库实例外部的Oracle数据库、Spark和其他openGauss数据库实例,并在当前库中返回执行结果,实数据库实例处理数据。
Extension Connector的基本工作原理是:用户首先构建Data Source对象(其中包含目标库的一些连接信息和字符编码方式),然后用户获取该Data Source的使用权限,最后通过标准ODBC API连接目标库,发送SQL语句并获取执行结果。
为了方便使用,Extension Connector为用户提供了统一的连接函数exec_on_extension(text, text)。其中,第一个参数为Data Source名称,第二个参数为发送的SQL语句。
函数exec_on_extension具有如下特点:
exec_on_extension连接目标库的权限由控制Data Source的使用权限实现。
exec_on_extension处理字符的编码方式放在了Data Source对象中,缺省值为UTF-8。
exec_on_extension是返回类型为record的函数,即数据集。因而语法上需要'AS(表定义)'来接收返回的数据,且不能省略,其基本调用形式如下,且不支持CALL调用:
exec_on_extension支持发送多种类型的SQL语句,对于处理结果集的方式,建议按下表处理:
使用函数exec_on_extension需要注意以下约束:
说明:
- 为保证兼容性,保留了上个版本对接Spark数据库实例的连接函数exec_hadoop_sql。也就是说既可以使用exec_on_extension也可以使用exec_hadoop_sql进行Spark对接。由于exec_hadoop_sql存在安全问题,只有赋权后才能使用,建议用户使用exec_on_extension函数。
- 在MySQL兼容性下暂不支持exec_on_extension和exec_hadoop_sql函数的使用。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。