Java 已经 24 岁了!作为一种广受欢迎的面向对象的编程语言,它专注于提供基于桌面、Web 端、分布式系统与嵌入式系统的应用程序。
企业从未放弃谈论 Java。从《财富》500 强企业的声音中,我们能了解到他们是多么依赖 Java。是,蓝筹股喜欢 Java ...
何也?企业看重的是“向后兼容性”,而对“激进主义”是出了名的过敏。20 年前用 Java 5 编写的系统,应该要能在第 8 版下编译运行——稳定性才是最重要的。
《2022 年 Java 发展趋势和分析》报告,JRebel;《2022 年,Java 将何去何从》,Nikos Vaggalis;部分译文来自 InfoQ(ID:infochina)
关于 Java 的逸闻有一则:当时在申请商标时,原有名称被抢注,项目组从喝杯爪哇(Java)咖啡的提议中获得灵感。
同样,创建于 2005 年的老牌数据库 Vertica,也是得名于图灵奖得主、数据库大师 Stonebraker 博士。当具备广泛普适性的程序语言,与高性能的统一分析仓库相遇,将激起什么意想不到的火花?
今天,先从操作手册入手,让我们一步步走进 Vertica 集成连通性的大千世界 ▼
如果你初来乍到,那么第一件事,就是下载试用免费的 Vertica 社区版!
扫描下方二维码,填写表单,在最后一行「选择操作系统」处选择最后一个选项「VMX」,这是为了在预建的虚拟机上免费测试你的 Vertica。成功提交表单后,将有专门团队联系您!
Vertica 免费社区版的虚拟机包,提供预装好、上手即用的 Vertica,它还包含一个正在运行数据库“Vmart”。
如果提示输入密码,请输入“password”启动虚拟机。您将有两个可用的登录名:
为了编译所提供的 Java 功能,需在 Vertica 服务器机器上安装 Java 开发工具包(JDK),您需要以根用户身份登录,在 Centos/Redhat 上运行:
从 GitHub 网站下载 UDX zip:
https://github.com/vertica/UDx-Examples
以用户“dbadmin”的身份登录,将下载的文件传输到你的 Vertica 服务器,并将 zip 文件“UDx-Examples-master.zip”复制到 Vertica 服务器机,打开终端命令提示符并解压该文件。
以用户“dbadmin”身份登录,并定义“Vertica JavaBinaryForUDx”配置参数,比如:查找 Java 可执行文件
记录结果,在本例通过“/usr/bin/java”内部运行 Vertica SQL 命令改变设置:
vsql -w password -c "ALTER DATABASE VMart SET JavaBinaryForUDx = '/usr/bin/java';"
编辑并关联 makefile x Java
(可执行区域)
以用户“dbadmin”身份登录以编辑 makefile,并改变“JAVA_HOME”变量设置。比如,上述例子“/usr/bin/java”的根目录“/usr”:
JAVA_HOME ?= $(SOURCE)/../third-party/jdk/jdk1.6.0_45
JAVA_HOME ?= /usr
编译 Java 代码样本 &
创建 Vertica 用户定义函数
以用户“dbadmin”身份登录,为编译 Java 函数,运行带有相关参数的“make”命令:
以用户“dbadmin”身份登录,执行提供的脚本,运行 Java UDX 函数。
该脚本将是:创建必要的表 - 用样本数据填充表 - 运行示例函数 - 执行必要的内务管理
vsql –w password -f JavaFunctions.sql
Java 函数可被内嵌至 Vertica 的 SQL COPY 命令中,这意味着,在数据加载过程中可以包含用户定义的转换。
要运行所提供的例子,还是以用户“dbadmin”身份登录,并运行下述脚本:
vsql –w password -f JavaUDLFunctions.sql
要有耐心。其中某一步骤会生成约 10m 行的数据集,这需要占用大部分时间。最后一步则是将数据集加载到 Vertica 中,相信我,它超快!
正如之前在《Vertica 技术指南 - Qlik 篇》与《Tableau 篇》中谈到的,统一分析平台 Vertica 具有高度可扩展的 UDx 框架,广泛允许外部用户自定义的函数、分析器,以及将数据加载器安装至 Vertica 服务器等大受欢迎的能力。
这意味着,您用 C++、R、Java 或 Python 编写的程序,都可以作为 Vertica 的 SQL 查询函数在这一强大的数据库中运行。本文引述或建议的技术文档,均来自 Vertica 官网文档库和 GitHub 网站 ➤
Java UDX 在“Extending Vertica”指南中有详细记载 ▾
https://my.vertica.com/docs/latest/HTML/index.htm#Authoring/ExtendingVertica/ExtendingVertica.htm
https://github.com/vertica/UDx-Examples
关于示意范式的更多信息,也可在“Extending Vertica”指南中找到 ▾
https://my.vertica.com/docs/latest/HTML/index.htm#Authoring/ExtendingVertica/UDx/UDxExampleCodeGitHub.htm