初始化 Client

ClickZettaClient
ClickZettaClient
是 Java SDK 的统一客户端。你可以用它创建 JDBC 连接、实时写入流和批量写入流。推荐在应用启动或任务开始时创建客户端,在任务结束时显式关闭。

概述

ClickZettaClient
ClickZettaClient
支持两种初始化方式:

  • 使用完整 JDBC URL 初始化,适合已经从 Studio 复制连接串的场景。
  • 使用拆分参数初始化,适合配置中心、环境变量或 Spring 配置文件管理连接信息的场景。

通过 JDBC URL 初始化

import com.clickzetta.client.ClickZettaClient; public class ClientByUrlDemo { public static void main(String[] args) { String jdbcUrl = "jdbc:clickzetta://<instance_name>.<region_id>.api.clickzetta.com/<workspace_name>" + "?schema=<schema_name>&virtualCluster=<vcluster_name>"; ClickZettaClient client = ClickZettaClient.newBuilder() .url(jdbcUrl) .username("<username>") .password("<password>") .build(); client.close(); } }

通过连接参数初始化

import com.clickzetta.client.ClickZettaClient; public class ClientByParamsDemo { public static void main(String[] args) { ClickZettaClient client = ClickZettaClient.newBuilder() .service("<region_id>.api.clickzetta.com") .instance("<instance_name>") .workspace("<workspace_name>") .schema("<schema_name>") .vcluster("<vcluster_name>") .username("<username>") .password("<password>") .build(); client.close(); } }

参数说明

参数是否必填说明
service
service
Lakehouse 服务地址,例如
cn-shanghai-alicloud.api.clickzetta.com
cn-shanghai-alicloud.api.clickzetta.com
instance
instance
Lakehouse 服务实例名称
workspace
workspace
工作空间名称
schema
schema
默认 SCHEMA;未指定时 SDK 使用
public
public
vcluster
vcluster
默认计算集群;构建
ClickZettaClient
ClickZettaClient
时必须指定
username
username
登录用户名
password
password
登录密码

创建下游对象

ClickZettaClient
ClickZettaClient
创建完成后,可以继续创建 JDBC 连接或写入流:

import com.clickzetta.client.BulkloadStreamV2; import com.clickzetta.client.ClickZettaClient; import com.clickzetta.client.RealtimeStream; import com.clickzetta.client.RowStream; import com.clickzetta.platform.client.api.BulkLoadOperation; import java.sql.Connection; public class ClientDownstreamObjectsDemo { public static void main(String[] args) throws Exception { ClickZettaClient client = ClickZettaClient.newBuilder() .url(args[0]) .username(args[1]) .password(args[2]) .build(); try { try (Connection connection = client.getJdbcConnection()) { System.out.println("Connected to Lakehouse."); } RealtimeStream realtimeStream = client.newRealtimeStreamBuilder() .operate(RowStream.RealTimeOperate.APPEND_ONLY) .schema(args[3]) .table(args[4]) .build(); realtimeStream.close(); BulkloadStreamV2 bulkloadStream = client.newBulkloadStreamV2Builder() .withOperation(BulkLoadOperation.APPEND) .createStream(client, args[3], args[4]); bulkloadStream.close(); } finally { client.close(); } } }

实际使用时需要补充对应类的 import,并按业务场景配置写入模式和参数。实时写入的完整用法见 实时写入数据,批量写入的完整用法(含提交流程)见 批量写入数据(Bulkload)

关闭客户端

使用完成后必须关闭客户端,释放底层连接和线程资源:

调用

client.close()
client.close()
关闭客户端。

建议在业务代码中使用

try/finally
try/finally
保证异常情况下也能关闭:

import com.clickzetta.client.ClickZettaClient; public class ClientCloseDemo { public static void main(String[] args) { ClickZettaClient client = ClickZettaClient.newBuilder() .url(args[0]) .username(args[1]) .password(args[2]) .build(); try { // 使用 client 执行查询或写入。 } finally { client.close(); } } }

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询