Hive JDBC——深入浅出学Hive(四)

目录:

初始Hive

Hive安装与配置

Hive 内建操作符与函数开发

Hive JDBC

hive参数

Hive 高级编程

Hive QL

Hive Shell 基本操作

hive 优化

Hive体系结构

Hive的原理


第一部分:搭建Hive JDBC开发环境


搭建:Steps


    •新建工程hiveTest
    •导入Hive依赖的包
    •Hive  命令行启动Thrift服务
    •hive --service hiveserver &

        

第二部分:基本操作对象的介绍


2.1 Connection

    •说明:与Hive连接的Connection对象
    •Hive 的连接
    •jdbc:hive://IP:10000/default“
    •获取Connection的方法

        •DriverManager.getConnection("jdbc:hive://IP:10000/default", "", "");


2.2 Statement


    •说明: 用于执行语句
    •创建方法
        •Statement stmt = con.createStatement();
    •主要方法
        •executeQuery

        •execute


2.3 ResultSet


    •说明:用来存储结果集
    •创建方法
        •stmt.executeQuery 方法得到
    •主要方法

        •getString()

2.4 特殊类型的处理


    •Array
    •Map
    •Struct

        

第三部分:简单示例


背景
      随着 3G  时代的到来,选择各种移动终端来上网的人越  来越多,如手机、平板等,这里面蕴含着巨大的商机  ,因为终端可以直接精确到人。所以对用户上网日志  的分析,也成为一个新热点,这些在数据库时代是不  可想象的,因为数据规模超大,云计算解决了这个问


需求描述

    •分析用户的手机上网日志,得到  手机流量统计  信息与根据终端来获得流量的统计信息
 
表规划
    •  日志表  log 字段
       用户手机号码 ,终端类型 ,访问的URL ,访问开始时间 ,访问结束时间 ,访问流量
    phone string ,client_type  string ,url  string,visit_begintime timestamp,visit_endtime timestamp,traffic  bigint
    •  数据文件
        •数据间以\t分隔,行之间以\n分隔
        •数据示例:
              13154587453     andorid www.baidu.com   2011-09-01 17:30:08     2011-09-01 17:31:09     10
        •数据文件位置:
            /home/test/log.txt
    •  手机号归属地  phone_location 字段
        用户手机号码 ,归属地
        phone string ,location stirng
 
    •  数据文件
        数据间以\t分隔,行之间以\n分隔
        数据示例:1334567890 chaoyang
        数据文件位置:
            /home/test/phone_local.txt
    •  手机流量统计信息  total_traffic_by_phone 字段
        手机号码 ,总流量(k) , 归属地, 访问总时长(秒)
               phone string,totol_traffic bigint,area string,visit_total_time timestamp
    •  数据文件
        数据间以  \t  分隔,行之间以  \n  分隔
         数据示例:
           13154587453 102 chaoyang  123
 
 

    •  终端类型统计信息  total_traffic_by_client_type 字段
        终端类型 ,访问总流量(k)
           client_type string,totoal_traffic bigint
    •  数据文件
        数据间以  \t  分隔,行之间以  \n  分隔
         数据示例:

             andorid 1034


实现步骤

    •初始化数据,表
    •示例:create external table phone_location (phone string,area string) row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile

    •编写处理逻辑


Java 代码示例
try {
Class.forName(driverName);
Connection con = DriverManager.getConnection("jdbc:hive://IP:10000/default", "", "");
Statement stmt = con.createStatement();
String sql = "show tables ";
// show tables
System.out.println("Running: " + sql);
ResultSet res = stmt.executeQuery(sql);
if (res.next()) {
System.out.println(res.getString(1));
}
 

        

第四部分:基于Hive的数据库连接池


基于Hive的数据库连接池的实现
    •使用DataSource作为数据源的实现
    •DBConnectionManager 采用单例模式
    •提供获得连接,关闭连接的方法
    •setupDataSource()
    •DBConnectionManager getInstance()
    •close(Connection conn)
    •synchronized Connection getConnection()


你可能感兴趣的:(hive)