tencent cloud

Data Lake Compute

DLC JDBC アクセス

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-01-21 15:54:07

環境準備

依存関係:JDK 1.8

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
はい
TencentCloud APIキー管理におけるSecretId
secretKey
はい
TencentCloud 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ドライバを作成します。

2. DLCに接続し、以下のパラメータを入力して、testをクリックし、テストが成功したら、DLCとの接続が完了します。
Name:接続名。DLCとの接続を識別するために使用されます。
Username:Tencent Cloudユーザーのsecret_idに対応します。
Password:Tencent Cloudユーザーのsecret_keyに対応します。
URL:DLCに接続するためのURL。形式は上記のJDBCを使用して接続を作成する際のURLと同じです。

3. テーブル情報を確認します。

4. データをクエリします。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック