部署 UDx 库的新版本
在下列情况下,您需要部署 UDx 库的新版本:
-
您对库进行了更改,并且现在想要将这些更改应用到 Vertica 数据库。
-
您已将 Vertica 升级到新版本,并且该新版本的 SDK 与上一个版本不兼容。
部署库的新版本的过程与初始部署相似。
-
如果要部署在 C++ 或 Java 中开发的 UDx 库,您必须使用当前版本的 Vertica SDK 编译该库。
-
将 UDx 的库文件(对于在 C++ 中开发的库,此文件是
.so
文件;对于在 Python 中开发的库,此文件是.py
文件;对于在 Java 中开发的库,此文件是.jar
文件)或 R 源文件复制到 Vertica 数据库中的主机。 -
使用 vsql 连接到主机。
-
如果更改了共享库中任何 UDx 的签名,您必须使用 DROP 语句(例如 DROP FUNCTION 或 DROP SOURCE)删除它们。如果不确定函数的任何签名是否已更改,请参阅确定 UDx 签名是否已更改。
注意
如果库中的所有 UDx 签名均已更改,则使用 DROP LIBRARY 语句可以更方便地删除库,将 CASCADE 选项与此语句结合使用可删除该库以及所有函数和引用该库的加载器。删除库可以节省逐个删除 UDx 所用的时间。然后,可以按照起初部署库时使用的相同过程重新加载库并重新创建所有扩展。请参阅CREATE LIBRARY。 -
通过 ALTER LIBRARY 语句使用在步骤 1 中复制的文件更新 UDx 库定义。例如,如果要使用 dbadmin 用户主目录中名为
ScalarFunctions-2.0.so
的文件更新名为ScalarFunctions
的库,请使用以下命令:=> ALTER LIBRARY ScalarFunctions AS '/home/dbadmin/ScalarFunctions-2.0.so';
更新了 UDx 库定义以使用新版本的共享库之后,使用 UDx 库中的类定义的 UDx 将开始使用新的共享库文件,而不进一步对该文件进行任何更改。
-
如果在步骤 4 中必须删除任何函数,请使用由库中的工厂类定义的新签名重新创建这些函数。请参阅CREATE FUNCTION 语句。