环境准备
依赖:JDK 1.8
JDBC 下载:点击下载 presto-jdbc-0.284.jar
创建执行机
如果没有执行机,请先购买一台 CVM 作为执行机。
1. 进入腾讯云 云服务器 。在对应地域单击新建 。
![](https://qcloudimg.tencent-cloud.cn/image/document/dd20bae1d1385595ea30c3bbb25f9a47.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/dd20bae1d1385595ea30c3bbb25f9a47.png)
2.指定某一个私有网络 VPC 创建执行机。
![](https://qcloudimg.tencent-cloud.cn/image/document/ec33bb8fadb1d2326d51797c369abc67.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/ec33bb8fadb1d2326d51797c369abc67.png)
连接标准 Presto 引擎
创建服务访问链接
进入 数据引擎 页面,单击右侧创建终端节点,选择执行机所在的 VPC 和子网,单击创建后生成两个访问链接,分别是 Hive2 和 Presto 协议,链接标准 Presto 引擎使用 Presto 协议,如下:
![](https://qcloudimg.tencent-cloud.cn/image/document/9f9c8fd725083250e891a77459d8d944.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/9f9c8fd725083250e891a77459d8d944.png)
jdbc:presto://{endpoint}:10999/?sessionProperties=presto.engine:{DataEngineName};region:{Region};database:{DatabaseName};catalog:{Catalog}&extraCredentials=secretkey:{SecretKey};secretid:{SecretId}
加载 JDBC 驱动
Class.forName("com.facebook.presto.jdbc.PrestoDriver");
通过 DriverManager 创建 Connection
String url = "jdbc:presto://{endpoint}:10999/?sessionProperties=presto.engine:{DataEngineName};region:{Region};database:{DatabaseName};catalog:{Catalog}&extraCredentials=secretkey:{SecretKey};secretid:{SecretId}";Properties properties = new Properties();properties.setProperty("user", {AppId});Connection connection = DriverManager.getConnection(url, properties);
JDBC 连接串参数说明
参数 | 必填 | 说明 |
presto.engine | 是 | 标准 Presto 引擎名称 |
database | 是 | 数据库名称 |
secretkey | 是 | 腾讯云 API 密钥管理中的 SecretKey |
secretid | 是 | 腾讯云 API 密钥管理中的 SecretId |
region | 是 | 地域,目前 DLC 服务支持 ap-nanjing, ap-beijing, ap-beijing-fsi, ap-guangzhou,ap-shanghai, ap-chengdu,ap-chongqing, na-siliconvalley, ap-singapore, ap-hongkong, na-ashburn, eu-frankfurt, ap-shanghai-fsi |
catalog | 是 | 数据目录名称 |
extraCredentials | 是 | SecretKey:腾讯云 API 密钥管理中的 SecretKey |
| | Secretid:腾讯云 API 密钥管理中的 SecretId |
user | 是 | 用户 APPID |
数据查询完整示例
import com.facebook.presto.jdbc.PrestoStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;public class TestJDBCKyuubiPresto {public static void main(String[] args) throws SQLException {try {Class.forName("com.facebook.presto.jdbc.PrestoDriver");} catch (ClassNotFoundException e) {e.printStackTrace();return;}String url = "jdbc:presto://{endpoint}:10999/?sessionProperties=presto.engine:{DataEngineName};region:{Region};database:{DatabaseName};catalog:{Catalog}&extraCredentials=secretkey:{SecretKey};secretid:{SecretId}";Properties properties = new Properties();properties.setProperty("user", {AppId});Connection connection = DriverManager.getConnection(url, properties);PrestoStatement statement = (PrestoStatement) connection.createStatement();String sql = "show catalogs";statement.execute(sql);ResultSet rs = statement.getResultSet();while (rs.next()) {System.out.println(rs.getString(1));}rs.close();statement.close();connection.close();}
编译完成后,您可以将 jar 包提交到执行机上执行。