Java SDK
clickzetta-java
clickzetta-java
是云器 Lakehouse 的完整 Java 客户端包,包含 JDBC、
ClickZettaClient
ClickZettaClient
、实时写入
RealtimeStream
RealtimeStream
和批量写入
BulkloadStreamV2
BulkloadStreamV2
。如果应用只使用标准 JDBC,请改用更轻量的
clickzetta-jdbc
clickzetta-jdbc
。
概述
如果只是执行 SQL 查询或少量 DML,使用
clickzetta-jdbc
clickzetta-jdbc
;如果应用还需要统一 Client API、持续写入事件或批量导入历史数据,使用
clickzetta-java
clickzetta-java
。
clickzetta-java
clickzetta-java
已包含 JDBC 模块,两个 artifact 不需要同时安装。
| Maven artifact | 适用场景 | 选择原因 |
|---|
clickzetta-jdbc
clickzetta-jdbc | JDBC 查询、DML、连接池、ORM、BI 工具 | 只包含 JDBC 能力,依赖更少、包体更轻量 |
clickzetta-java
clickzetta-java | JDBC + Realtime、Bulkload 或 ClickZettaClient
ClickZettaClient | 完整 SDK,一个依赖覆盖查询和数据写入能力 |
| 能力 | 适用场景 | 入口 |
|---|
| JDBC | SQL 查询、BI/应用集成、小批量 DML | DriverManager
DriverManager ;使用完整 SDK 时也可调用 ClickZettaClient.getJdbcConnection()
ClickZettaClient.getJdbcConnection() |
RealtimeStream
RealtimeStream | 毫秒到秒级写入、事件流、CDC upsert/delete | client.newRealtimeStreamBuilder()
client.newRealtimeStreamBuilder() |
BulkloadStreamV2
BulkloadStreamV2 | 大批量文件或历史数据导入、分钟级批任务 | client.newBulkloadStreamV2Builder()
client.newBulkloadStreamV2Builder() |
本章内容
选型建议
| 需求 | 推荐方式 | 原因 |
|---|
| Java 服务执行查询并读取结果 | JDBC | 标准接口,兼容连接池、ORM 和常见 Java 框架 |
| Java 服务偶尔写入少量数据 | JDBC DML | 实现简单,适合低频、小批量写入 |
| 日志、埋点、业务事件持续写入 | RealtimeStream
RealtimeStream | 写入后可秒级查询,适合高频小批量 |
| MySQL/PostgreSQL CDC 写入主键表 | RealtimeStream
RealtimeStream CDC | 支持 UPSERT
UPSERT 、DELETE_IGNORE
DELETE_IGNORE 等变更操作 |
| 一次性导入本地文件或历史数据 | Bulkload | 先暂存到对象存储再导入表,吞吐量更高 |
| 对象存储已有数据导入 | COPY INTO
COPY INTO | 数据已在对象存储时,SQL 导入链路更简单 |
使用注意
- 只使用 JDBC 时优先引入
clickzetta-jdbc
clickzetta-jdbc
;需要其他 Java SDK 能力时引入 clickzetta-java
clickzetta-java
。
clickzetta-java
clickzetta-java
已包含 JDBC 模块,不要再重复引入 clickzetta-jdbc
clickzetta-jdbc
。
- 根据应用运行环境选择 Java SDK 版本线:Java 8 使用 3.x 最新稳定版,Java 17 使用 4.x 最新稳定版。
- Java 9 及以上运行环境使用 3.x 版本时,可能需要添加 JVM 参数,详见 Java SDK 简介。
- 批量写入使用 Bulkload。
- 实时写入的未提交数据可以被普通查询看到,但 Table Stream、物化视图和动态表只能读取已提交数据。
相关文档