【大数据】Impala-数据加载

来源:互联网 发布:学java走前端还是后端 编辑:程序博客网 时间:2024/05/17 09:24

1、将Impala表与HDFS中的数据文件做链接

这种方式适用于我们已经有了数据文件的情况。
假设有两个数据文件 tab1、tab2,要使用链接方式加载数据,首先先要将数据文件放入HDFS:

$hdfs dfs -mkdir -p /user/impala/tab1 /user/impala/tab2$hdfs dfs -put tab1 /user/impala/tab1$hdfs dfs -put tab2 /user/impala/tab2

接着需要创建两张外部表:

$impala-shell$>CREATE EXTERNAL TABLE tab1(    id INT,    name STRING    ... )ROW FORMAT DELIMITED FIELDS TERMINATED BY ','     ------指定分隔符为','LOCATION '/user/impala/tab1';------指定表的数据文件的存放位置

其中tab1是一个目录,如果这个目录中包含其他文件,无论这个文件名是什么,Impala都会将其作为表的数据文件。

关键字EXTERNAL说明创建的是一张外部表。
可使用show tables查看所有已创建的表。
使用describe [ 表名]查看表结构 describe 可简写为desc。

2、由Impala维护表结构和数据

这种方式适用于没有数据文件,需要通过对其他位置的数据进行过滤转换生成新的数据。
创建内部表:

CREATE TABLE tab3(    id INT,    ...)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','

向tab3中插入数据:

INSERT OVERWRITE TABLE tab3 SELECT id FROM tab1;

OVERWRITE关键字表示将使用查询结果覆盖表中已存在的数据

3、将已存在的表与已存在于HDFS中的数据文件做关联

进入Impala-shell执行

LOAD DATA INPATH '数据文件路径' INTO TABLE 表名;