多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
**1. `load`方式导入** 语法: ```sql load data [local] inpath '/opt/datas/student.txt' [overwrite] into table student [partition (partcol1=val1,…)]; ``` 示例: ```sql #### 将本地 dept.txt 数据装载到 dept 表中,这是复制行为 #### load data local inpath "/hdatas/dept.txt" into table dept; #### 在hive上移动数据 #### -- hdfs中的dept.txt数据移动到dept_2表后,dept.txt中的数据就没有了,但文件还在,是个空文件 load data inpath '/home/hadoop/hive/warehouse/hivedb.db/dept/dept.txt' into table dept_2; #### 装载数据并覆盖原有数据 #### load data local inpath '/hdatas/dept.txt' overwrite into table dept; #### 装载数据到分区中 #### load data local inpath '/hdatas/dept.txt' into table dept partition(dt="2020-01-02"); ``` <br/> **2. `insert`方式导入** 语法: ```sql -- 当为into table时,table可以省略,但是overwrite table 不能省略table insert overwrite|into table tablename(col_list) [partition (partcol1=val1, partcol2=val2, ...)] values(col_list); | select fileds,... from tb_other; ``` 示例: ```sql (0)insert不支持的写法 insert overwrite table test select 'hello'; (1)插入值列表插入 insert into table student partition(month='201709') values ('1004','zhaoliu'), ('1005','zhangsan'); (2)基本模式插入(根据单张表查询结果) -- 插入到静态分区中 insert overwrite table student partition(month='201708') select id, name from student where month='201709'; (3)多插入模式(根据多张表查询结果) -- 高性能:只需扫描一次输入数据 from student insert overwrite table student partition(month='201707') select id, name where month='201709' insert overwrite table student partition(month='201706') select id, name where month='201709'; (4)插入到动态分区(需要开启动态分区) -- 典型的etl模式 from ctas_employee insert overwrite table employee_partitioned partition(year, month) select *,2018,09; (5)通过指定值插入(hive1.2版本以后支持) insert into employee(name) select 'john' from test limit 1; (6)通过指定列插入(hive1.2版本以后支持) insert into employee(name) values('judy'),('john'); ``` <br/> **3. `as select`方式导入** ```sql create table if not exists student3 as select id, name from student; ``` <br/> **4. 通过hdfs上传** ```sql -- 创建表,并指定在 hdfs 上的位置 hive (default)> create table if not exists student5( id int, name string) row format delimited fields terminated by '\t' location '/kgc/hive/student5'; -- 上传数据到 hdfs 上 hive (default)> dfs -put /opt/datas/student.txt /kgc/hive/student5; ``` <br/> **5. import方式** ```sql -- 将Hive的student目录下的数据导入到student2表中 import table student2 partition(month='201709') from '/user/hive/warehouse/export/student'; ```