tencent cloud

文档反馈

Presto JDBC 访问

最后更新时间:2024-09-04 11:17:05

    支持引擎类型

    标准Presto引擎

    环境准备

    依赖:JDK 1.8
    注意:
    当前仅标准 Presto 引擎支持使用 Presto JDBC 访问。如果使用的是 SuperSQL 引擎,请参考 DLC JDBC 访问

    连接标准 Presto 引擎

    创建服务访问链接

    进入数据引擎页面,单击网关的详情按钮,进入网关详情页面。
    
    
    
    点击创建私有连接,选择提交机所在的 VPC 和子网,单击创建后生成两个访问链接,分别是 Hive2 和 Presto 协议,链接标准 Presto 引擎使用 Presto 协议,如下图所示。
    注意:
    创建私有连接会打通引擎网络和所选 VPC 之间的网络。提交机可以是所选 VPC 下任意可以登陆使用的服务器,仅用于任务提交使用。如果所选的VPC 下没有提交机,可以新建一个服务器作为提交机。
    
    
    
    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 包提交到提交机上执行。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持