管理用户定义函数(UDF)
包括创建 UDF,删除 UDF 功能。这些操作在 GBase 数据源节点展开后的 UDFs 节点上进行。
UDF(User-Defined Function),用户自定义函数,通过添加新函数而对 GBase Server 功能进行扩充,通常使用 C/C++根据 GBase Server 提供的 UDF 编 写规则编写成(Windows 下的 DLL 或 Linux 下的 SO)二进制文件实现。应用时 使用类似“select my_udf()”SQL 语法。有关 UDF 函数 my_udf 如何编写请参考 GBase 8a 及 8a 集群相关手册。 GBase 支持很多内建函数,如:字符串函数、数值函数、日期和时间函数、 OLAP 函数等,还可以通过使用 SQL 语句的 Create Function 定义函数。UDF 为 用户提供了一种更高效的方式来创建函数。与内建函数类似,有参数也有输出。 分为普通函数和聚集函数两种类型,前者能够针对每一行数据进行处理,后者
则用于处理 Group By 这样的情况。
为什么用 UDF?
GBase 本身提供了大量的函数,并且也支持定义函数,为什么我们还需要
UDF 呢?主要有以下几点原因:
1) 比 Function 具有更高的执行效率,并支持聚集函数;
2) 相比修改代码增加函数,更加方便简单
当然 UDF 也是有缺点的,这是因为 UDF 会加载到 GBase 内核服务的内存空
间中,不谨慎使用内存很容易导致 GBase 内核服务 Crash 掉。
在 UDFs 节点上点击右键选择“创建 UDF”命令或者执行 Visual Studio 的
“数据”菜单的“新增”子菜单下的“UDF”命令,则会显示“创建新 UDF”窗
口(图 9-20),输入相关信息后,点击确认保存。

在“创建新 UDF”窗口中名字处输入的自定义函数名需要在 UDFExtend.so
文件中定义。在点击确定后,GBase Server 会检查 UDFExtend.so 中是否定义了
名为“FuncName”函数。如果定义正确会在 UDFs 节点下新增子节点,否则会弹
出错误提示。




