StudyPresto - huangyuefeng/study GitHub Wiki

学习Presto入门之测试Presto安装

src_url

  • 当强调数据处理而不是存储的场景,schema经常用来替换database

database => schema

show schemas;

下面我们用jdbc连接presto server,执行上述命令. 作为"presto安装"之后的测试.

  • jdbc连接

直接上代码吧.

package org.training.hadoop.presto;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class PrestoJdbcClient {
    public static void main(String[] args) throws SQLException, ClassNotFoundException{
        Connection connection = DriverManager.getConnection("jdbc:presto://master:8080/hive/default","zkpk",null);
        Statement stmt = connection.createStatement();
        ResultSet rs = stmt.executeQuery("show schemas");
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
        rs.close();
        connection.close();
    }
}

但是执行代码会出现如下错误.

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:presto://master:8080/hive/default

在pom.xml文件里增加presto-jdbc的lib,问题解决.

        <dependency>
            <groupId>com.facebook.presto</groupId>
            <artifactId>presto-jdbc</artifactId>
            <version>0.191</version>
        </dependency>
  • 来个题目 请为上述代码增加如下语句的功能.
use schema_name;

show tables;

select * from table_name;

refer1

refer2

DriverManager类可以支持以下URL形式:

jdbc:presto://host:port
jdbc:presto://host:port/catalog(你的分类)
jdbc:presto://host:port/catalog(你的分类)/schema(你的schema)
  • 来个题目 连接Mysql数据源,实现hive表join到mysql表.
connector.name=mysql
connection-url=jdbc:mysql://master:3306
connection-user=root
connection-password=newpass

启动时,设置缺省的catalog_name.schmea_name

presto --server master:8080 --catalog mysql --schema test

连接时,指定要join的catalog_name.schmea_name.table_name.

select * from hive.default.tbl_default_s00 hiveTBL join test_table mysqlTBL on hiveTBL.no = mysqlTBL.id;
⚠️ **GitHub.com Fallback** ⚠️