Impala数据导入方式 和 Impala的java开发

load data

  • 首先创建一个表:
create table user(id int ,name string,age int ) row format delimited fields terminated by "\t";

在这里插入图片描述
准备数据user.txt并上传到hdfs的 /user/impala路径下去
在这里插入图片描述
在这里插入图片描述

  • 加载数据
load data inpath '/user/impala/' into table user;
  • 查询加载的数据
select  *  from  user;

在这里插入图片描述

  • 如果查询不不到数据,那么需要刷新一遍数据表。
refresh  user;

insert into values

这种方式非常类似于RDBMS的数据插入方式。

create table t_test2(id int,name string);
insert into table t_test2 values(1,”zhangsan”);

在这里插入图片描述

insert into select

插入一张表的数据来自于后面的select查询语句返回的结果。
在这里插入图片描述

create as select

建表的字段个数、类型、数据来自于后续的select查询语句。
在这里插入图片描述

Impala的java开发

在实际工作当中,因为impala的查询比较快,所以可能有会使用到impala来做数据库查询的情况,可以通过java代码来进行操作impala的查询。

下载impala jdbc依赖

因为cloudera属于商业公司性质,其提供的jar并不会出现在开源的maven仓库中,如果在企业中需要使用,请添加到企业maven私服。
在这里插入图片描述

创建java工程

创建普通java工程,把依赖添加工程。
在这里插入图片描述

java api

public static void test(){
        Connection con = null;
        ResultSet rs = null;
        PreparedStatement ps = null;
        String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver";
        String CONNECTION_URL = "jdbc:impala://node-3:21050";
        try
        {
            Class.forName(JDBC_DRIVER);
            con = (Connection) DriverManager.getConnection(CONNECTION_URL);
            ps = con.prepareStatement("select * from my_db.employee;");
            rs = ps.executeQuery();
            while (rs.next())
            {
                System.out.println(rs.getString(1));
                System.out.println(rs.getString(2));
                System.out.println(rs.getString(3));
            }
        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try {
                rs.close();
                ps.close();
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        test();
    }
发布了77 篇原创文章 · 获赞 153 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_45737446/article/details/103482639