Impala006-impala 数据处理&impala 和 HBase整合&JDBC方式访问Impala

一、数据文件处理
    加载数据:
     1、insert语句:插入数据时每条数据产生一个数据文件,不建议用此方式加载批量数据
     2、load data方式:再进行批量插入时使用这种方式比较合适
     3、来自中间表:此种方式使用于从一个小文件较多的大表中读取文件并写入新的表生产少量的数据文件。也可以通过此种方式进行格式转换。
    空值处理:
impala将“\n”表示为NULL,在结合sqoop使用是注意做相应的空字段过滤,
也可以使用以下方式进行处理:
   alter table name set tblproperties (“serialization.null.format”=“null”)

二、Impala可以通过Hive外部表方式和HBase进行整合

步骤如下:


步骤1:创建hbase 表,向表中添加数据
     create 'test_info', 'info'
     put 'test_info','1','info:name','zhangsan’
     put 'test_info','2','info:name','lisi'

步骤2:创建hive表
     CREATE EXTERNAL TABLE test_info(key string,name string )
     ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
     STORED by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
     WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,info:name")
     TBLPROPERTIES
     ("hbase.table.name" = "test_info");

步骤3:刷新Impala表
     invalidate metadata



三、Impala JDBC 访问

配置:
impala.driver=org.apache.hive.jdbc.HiveDriver
impala.url=jdbc:hive2://119.90.51.196:21050/;auth=noSasl
impala.username=
impala.password=


提示:
     尽量使用PreparedStatement执行SQL语句,原因如下:
     1.性能上PreparedStatement要好于Statement
     2.Statement存在查询不出数据的情况

package impala;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 *
 * @author shenfl
 *
 */
public class TestJDBC {
    public static void main(String[] args) throws Exception {
        Class.forName("org.apache.hive.jdbc.HiveDriver");
        Connection conn = DriverManager.getConnection("jdbc:hive2://119.90.51.195:21050/;auth=noSasl","" ,"" );
        PreparedStatement pstm = conn.prepareStatement("select count(*) from impala.bigdata limit 1");
        ResultSet rs = pstm .executeQuery();
        while(rs .next()){
            System. out.println(rs .getString(1));
        }
        rs.close();
        pstm.close();
        conn.close();
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾文教编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值