部署 UDx 库的新版本

在下列情况下,您需要部署 UDx 库的新版本:

  • 您对库进行了更改,并且现在想要将这些更改应用到 Vertica 数据库。

  • 您已将 Vertica 升级到新版本,并且该新版本的 SDK 与上一个版本不兼容。

部署库的新版本的过程与初始部署相似。

  1. 如果要部署在 C++ 或 Java 中开发的 UDx 库,您必须使用当前版本的 Vertica SDK 编译该库。

  2. 将 UDx 的库文件(对于在 C++ 中开发的库,此文件是 .so 文件;对于在 Python 中开发的库,此文件是 .py 文件;对于在 Java 中开发的库,此文件是 .jar 文件)或 R 源文件复制到 Vertica 数据库中的主机。

  3. 使用 vsql 连接到主机。

  4. 如果更改了共享库中任何 UDx 的签名,您必须使用 DROP 语句(例如 DROP FUNCTIONDROP SOURCE)删除它们。如果不确定函数的任何签名是否已更改,请参阅确定 UDx 签名是否已更改

  5. 通过 ALTER LIBRARY 语句使用在步骤 1 中复制的文件更新 UDx 库定义。例如,如果要使用 dbadmin 用户主目录中名为 ScalarFunctions-2.0.so 的文件更新名为 ScalarFunctions 的库,请使用以下命令:

    => ALTER LIBRARY ScalarFunctions AS '/home/dbadmin/ScalarFunctions-2.0.so';
    

    更新了 UDx 库定义以使用新版本的共享库之后,使用 UDx 库中的类定义的 UDx 将开始使用新的共享库文件,而不进一步对该文件进行任何更改。

  6. 如果在步骤 4 中必须删除任何函数,请使用由库中的工厂类定义的新签名重新创建这些函数。请参阅CREATE FUNCTION 语句