tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们

DLC JDBC 访问

PDF
聚焦模式
字号
最后更新时间: 2026-01-21 15:54:08

环境准备

依赖:JDK 1.8
JDBC 下载:点击下载 JDBC 驱动

连接 DLC

1. 加载 DLC JDBC 驱动
Class.forName("com.tencent.cloud.dlc.jdbc.DlcDriver");
2. 通过 DriverManager 创建 Connection
Connection cnct = DriverManager.getConnection(url, secretId, secretKey);

url 格式

jdbc:dlc:<dlc_endpoint>?task_type=SQLTask&database_name=abc&datasource_connection_name=DataLakeCatalog&region=ap-nanjing&data_engine_name=spark-cu&result_type=COS&read_type=Stream
JDBC 链接串参数说明:
参数
必填
说明
dlc_endpoint
DLC 服务的 Endpoint,固定为 dlc.tencentcloudapi.com
datasource_connection_name
数据源连接名称,对应 DLC 的数据目录
task_type
任务类型。
Presto 引擎填写:SQLTask
SparkSQL 引擎填写:SparkSQLTask
Spark 作业引擎填写:BatchSQLTask
database_name
数据库名称
region
地域,目前 DLC 服务支持 ap-nanjing, ap-beijing, ap-guangzhou,ap-shanghai, ap-chengdu,ap-chongqing, na-siliconvalley, ap-singapore, ap-hongkong
data_engine_name
数据引擎名称
secretId
腾讯云 API 密钥管理中的 SecretId
secretKey
腾讯云 API 密钥管理中的 SecretKey
result_type
默认为 Service。如果您对获取结果的速度有更高要求,可以设置为 COS。
Service:通过 DLC 接口获取结果
COS:通过 COS 客户端获取结果
read_type
Stream:流式从 COS 获取结果
DownloadSingle:单个文件下载到本地获取结果
默认值为 Stream.只有当 result_type 为 COS,该值才有意义。
下载文件位置为/tmp 临时目录,请确保该目录有读写权限,数据读取完成会自动删除。

执行查询

Statement stmt = cnct.createStatement();ResultSet rset = stmt.executeQuery("SELECT * FROM dlc");
while (rset.next())
{// process the results
}
rset.close();
stmt.close();
conn.close();
}
rset.close();
stmt.close();
conn.close();

语法支持

目前 JDBC 可以使用的语法与 DLC 标准语法保持一致。

实例代码

库表操作

import java.sql.*;
public class MetaTest {
public static void main(String[] args) throws SQLException {
try {
Class.forName("com.tencent.cloud.dlc.jdbc.DlcDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
Connection connection = DriverManager.getConnection(
"jdbc:dlc:<dlc_endpoint>?task_type=<task_type>&database_name=<database_name>&datasource_connection_name=DataLakeCatalog&region=<region>&data_engine_name=<data_engine_name>&result_type=<result_type>",
"<secret_id>",
"secret_key");
Statement statement = connection.createStatement();
String dbName = "dlc_db1";
String createDatabaseSql = String.format("CREATE DATABASE IF NOT EXISTS %s", dbName);
statement.execute(createDatabaseSql);
String tableName = "dlc_t1";
String wholeTableName = String.format("%s.%s", dbName, tableName);
String createTableSql =
String.format(
"CREATE EXTERNAL TABLE %s ( "
+ " id string , "
+ " name string , "
+ " status string , "
+ " type string ) "
+ "ROW FORMAT SERDE "
+ " 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' "
+ "STORED AS INPUTFORMAT "
+ " 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' "
+ "OUTPUTFORMAT "
+ " 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' "
+ "LOCATION\\\\n"
+ " 'cosn://<bucket_name>/<path>' ",
wholeTableName);
statement.execute(createTableSql);
// get meta data
DatabaseMetaData metaData = connection.getMetaData();
System.out.println("product = " + metaData.getDatabaseProductName());
System.out.println("jdbc version = "
+ metaData.getDriverMajorVersion() + ", "
+ metaData.getDriverMinorVersion());
ResultSet tables = metaData.getTables(null, dbName, tableName, null);
while (tables.next()) {
String name = tables.getString("TABLE_NAME");
System.out.println("table: " + name);
ResultSet columns = metaData.getColumns(null, dbName, name, null);
while (columns.next()) {
System.out.println(
columns.getString("COLUMN_NAME") + "\\\\t" +
columns.getString("TYPE_NAME") + "\\\\t" +
columns.getInt("DATA_TYPE"));
}
columns.close();
}
tables.close();
statement.close();
connection.close();
}
}


数据查询

import java.sql.*;
public class DataTest {
public static void main(String[] args) throws SQLException {
try {
Class.forName("com.tencent.cloud.dlc.jdbc.DlcDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
Connection connection = DriverManager.getConnection(
"jdbc:dlc:<dlc_endpoint>?task_type=<task_type>&database_name=<database_name>&datasource_connection_name=DataLakeCatalog&region=<region>&data_engine_name=<data_engine_name>&result_type=<result_type>",
"<secret_id>",
"secret_key");
Statement statement = connection.createStatement();
String sql = "select * from dlc_test";
statement.execute(sql);
ResultSet rs = statement.getResultSet();
while (rs.next()) {
System.out.println(rs.getInt(1) + ":" + rs.getString(2));
}
rs.close();
statement.close();
connection.close();
}
}


数据库客户端

您可以将 DLC 的 JDBC 驱动包加载到 SQL 客户端,连接到 DLC 服务进行查询。

前置条件

1. 已开通数据湖计算 Data Lake Compute 服务。
2. 已下载上文中的 JDBC 驱动包。
3. 已下载并安装 SQL Workbench/J

操作步骤

1. 通过 JDBC 驱动包创建 DLC Driver。

2. 连接 DLC,填入如下参数,单击 test,测试通过后,完成与 DLC 的连接。
Name:连接名称,用于标识与 DLC 的连接。
Username:对应于腾讯云用户的 secret_id。
Password:对应于腾讯云用户的 secret_key。
URL:用于连接 DLC 的 URL,格式和上文中通过 JDBC 创建连接的 URL 一致。

3. 查看库表信息。

4. 查询数据。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈