在GraalVM原生镜像中运行DuckDB的JDBC驱动程序
DuckDB是一个进程内分析数据库,只需向Java项目添加一个JAR即可获得直接读取CSV、Parquet和JSON文件的SQL引擎。GraalVM Native Image可将Java程序预编译为独立可执行文件,启动仅需毫秒且无需目标机器安装JVM。本文介绍如何将DuckDB JDBC驱动与GraalVM Native Image结合,通过跟踪代理生成JNI元数据并构建单一二进制数据工具。早期尝试因类初始化时机导致UnsatisfiedLinkError,GraalVM for JDK 22起默认改为运行时初始化后问题得到解决。实测duckdb_jdbc 1.5.5.0与GraalVM Community Edition 25.0.2在macOS Apple Silicon和Linux x64上构建成功,文中提供了Hello World示例,并讨论了更大规模应用中的启动性能表现。