精华内容
下载资源
问答
  • hive的外部表

    2019-09-25 20:41:50
    最近买了一本hive看,发现书中有一个错误: ...1.外部表数据存在自己表所属目录下 2.还发现了 CTAS 操作不能 建立外部表 转载于:https://www.cnblogs.com/wqbin/p/11484092.html...

     

    最近买了一本hive看,发现书中有一个错误:

     

     

    我的验证如下:

    1.外部表数据存在自己表所属的目录下

    2.还发现了 CTAS 操作不能 建立外部表

     

     

    转载于:https://www.cnblogs.com/wqbin/p/11484092.html

    展开全文
  • Hive的外部表

    2018-07-25 10:11:43
    1、在原来emp路径下再创建一个emp1的表: create table if not exists emp1( empno int, enname string, job string, mgr int, hiredate string, sal double, comm double, deptno int ) row format delimited...

    1、在原来表emp的路径下再创建一个emp1的表:

    create table if not exists emp1(
    empno int,
    enname string,
    job string,
    mgr int,
    hiredate string,
    sal double,
    comm double,
    deptno int
    )
    row format delimited fields terminated by '\t'
    LOCATION '/user/hive/warehouse/db_emp.db/emp';

    2、查询emp1:

    hive (db_emp)> select * from emp1;
    OK
    emp1.empno	emp1.enname	emp1.job	emp1.mgr	emp1.hiredate	emp1.sal	emp1.comm	emp1.deptno
    7499	ALLEN 	SALESMAN 	7698	1981-02-20	1600.0	300.0	30
    7521	WARD  	SALESMAN 	7698	1981-02-22	1250.0	500.0	30
    7566	JONES 	MANAGER  	7839	1981-04-02	2975.0	0.0	20
    7654	MARTIN	SALESMAN 	7698	1981-09-28	1250.0	1400.0	30
    7698	BLAKE 	MANAGER  	7839	1981-05-01	2850.0	0.0	30
    7782	CLARK 	MANAGER  	7839	1981-06-09	2450.0	0.0	10
    7788	SCOTT 	ANALYST  	7566	1987-07-13	3000.0	0.0	20
    7839	KING  	PRESIDENT	NULL	1981-11-07	5000.0	0.0	10
    7844	TURNER	SALESMAN 	7698	1981-09-08	1500.0	0.0	30
    7876	ADAMS 	CLERK    	7788	1987-07-13	1100.0	0.0	20
    7900	JAMES 	CLERK    	7698	1981-12-03	950.0	0.0	30
    7902	FORD  	ANALYST  	7566	1981-12-03	3000.0	0.0	20
    7934	MILLER	CLERK    	7782	1982-01-23	1300.0	0.0	10
    Time taken: 0.503 seconds, Fetched: 13 row(s)

     emp1和emp共用Hdfs中的数据:/user/hive/warehouse/db_emp.db/emp

    3、删除表emp1:

    hive (db_emp)> drop table emp1;
    OK
    Time taken: 0.592 seconds
    hive (db_emp)> show tables;
    OK
    tab_name
    dept
    emp
    Time taken: 0.083 seconds, Fetched: 2 row(s)
    

    4、查询表emp,可以发现emp中数据已经被清除,只剩下表结构了。

    hive (db_emp)> select * from emp;
    OK
    emp.empno	emp.enname	emp.job	emp.mgr	emp.hiredate	emp.sal	emp.comm	emp.deptno
    Time taken: 0.121 seconds
    

     5、为了规避这样的问题,创建外部表:

    create EXTERNAL table if not exists dept1(
    deptno int,
    dnname string,
    loc string
    )
    row format delimited fields terminated by '\t'
    LOCATION '/user/hive/warehouse/db_emp.db/dept';

    6、查询dept1表中数据:

    hive (db_emp)> select * from dept1;
    OK
    dept1.deptno	dept1.dnname	dept1.loc
    10	ACCOUNTING	NEW YORK
    20	RESEARCH  	DALLAS
    30	SALES     	CHICAGO
    40	OPERATIONS	BOSTON
    Time taken: 0.166 seconds, Fetched: 4 row(s)

    7、查看表dept1 的信息,表类型为:EXTERNAL_TABLE

    hive (db_emp)> desc formatted dept1;
    OK
    col_name	data_type	comment
    # col_name            	data_type           	comment             
    	 	 
    deptno              	int                 	                    
    dnname              	string              	                    
    loc                 	string              	                    
    	 	 
    # Detailed Table Information	 	 
    Database:           	db_emp              	 
    Owner:              	root                	 
    CreateTime:         	Wed Jul 25 04:13:36 CST 2018	 
    LastAccessTime:     	UNKNOWN             	 
    Protect Mode:       	None                	 
    Retention:          	0                   	 
    Location:           	hdfs://ns1/user/hive/warehouse/db_emp.db/dept	 
    Table Type:         	EXTERNAL_TABLE      	 
    Table Parameters:	 	 
    	COLUMN_STATS_ACCURATE	false               
    	EXTERNAL            	TRUE                
    	numFiles            	0                   
    	numRows             	-1                  
    	rawDataSize         	-1                  
    	totalSize           	0                   
    	transient_lastDdlTime	1532463216          
    	 	 
    # Storage Information	 	 
    SerDe Library:      	org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe	 
    InputFormat:        	org.apache.hadoop.mapred.TextInputFormat	 
    OutputFormat:       	org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat	 
    Compressed:         	No                  	 
    Num Buckets:        	-1                  	 
    Bucket Columns:     	[]                  	 
    Sort Columns:       	[]                  	 
    Storage Desc Params:	 	 
    	field.delim         	\t                  
    	serialization.format	\t                  
    Time taken: 0.087 seconds, Fetched: 35 row(s)

    8、删除表dept1,并查询表dept的数据,可以发现dept的数据并没有再次被删除了。

    hive (db_emp)> drop table dept1;
    OK
    Time taken: 0.086 seconds
    hive (db_emp)> show tables;
    OK
    tab_name
    dept
    emp
    Time taken: 0.02 seconds, Fetched: 2 row(s)
    hive (db_emp)> select * from dept;
    OK
    dept.deptno	dept.dnname	dept.loc
    10	ACCOUNTING	NEW YORK
    20	RESEARCH  	DALLAS
    30	SALES     	CHICAGO
    40	OPERATIONS	BOSTON
    Time taken: 0.098 seconds, Fetched: 4 row(s)
    

    总结:外部表可以解决一份数据多人共用数据的场景,保证了数据的安全性。

     

    展开全文
  • hive的外部表和内部表,以及其文件目录关系 共同点:建表时若指定location位置,则导入的文件(该文件在hdfs上)都会剪切到location相应的位 置,如果该文件是linux上的,只是复制一份放在location位置。 建表时未...

    hive的外部表和内部表,以及其文件目录关系

    共同点:建表时若指定location位置,则导入的文件(该文件在hdfs上)都会剪切到location相应的位 置,如果该文件是linux上的,只是复制一份放在location位置。
    建表时未指定位置,则放入默认的warehouse里当前建表的数据库文件下 : /user/hive/warehouse/ad_hive.db(ad_hive.db为当前建表时的数据库)
    不同点:内部表drop时会删除表名文件及该目录下的数据子文件
    外部表drop时不会删除表文件目录,当在此创建同名的表时,虽然以前的同名目录与该表重名,但是直接查数据是查不出来的,但是如果再往该表里插入数据,再查会一并查出之前文件的数据以及刚插入的数据。
    既然内部表无法删除表数据只能删除表结构的元数据所以也无法使用:truncate table 表名;
    内部表切换成外部表:alter table student2 set tblproperties(‘EXTERNAL’=‘TRUE’);
    外部表切换成内部表:alter table student2 set tblproperties(‘EXTERNAL’=‘FALSE’);

    展开全文
  • Hive的外部表和分区表

    2018-06-04 20:50:42
    外部表的好处是删除external表,数据表元数据不会被删除 > create external table t_sz_ext(id int,name string) > row format delimited > fields terminated by '\t' > stored as...
    • 构造一个外部表

    外部表的好处是删除external表,数据表的元数据不会被删除

    > create external table t_sz_ext(id int,name string)
    > row format delimited 
    > fields terminated by '\t'
    > stored as textfield
    > location '/home/hadoop/Desktop';
    • 构造一个分区表

    分区表的好处是可以更好的打上记号,区分

    > create table t_sz_part(id int,name string)
    
    > partitioned by (country string)
    
    > row format delimited
    
    > fields terminated by ',';

    将相关信息添加到你想要的分区

    load data local inpath '/home/hadoop/Desktop/sz.dat' into table t_sz_part partition(country='china')

    检索country = China的个数

    > select count(1) from t_sz_part where country=China group by (name='furong');
    • 建表之后再添加一个分区
    > alter table t_sz_part add partition (country='america');

    和之前一样再将文件添加到新建的分区中

    • 删除分区
    > alter table t_sz_part drop partition (country='america');
    • 查看一个表的分区表
    > show partitions t_sz_part;
    展开全文
  • 若创建外部表,仅记录数据所在路径, 不对数据位置做任何改变。 删除表时:在删除表时候,内部表元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也...
  • 在Hive总结的第二篇中讲述了HBase与Hive的总结! 一、内部 1. 准备测试数据 创建测试文件course.csv hive,90 hbase,85 hadoop,78 flume,89 sqoop,99 storm,80 spark,78 kafka,70 第一列为课程名称,第二...
  • 解决:使用hive外部表工具映射到hbase进行数据同步 使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
  • 创建带分区的外部表 创建外部表的好处是数据可以随时从hdfs中挂载进表中 使用分区的好处是可以缩短查询范围 下面的例子展示了如何创建外部表 CREATE EXTERNAL TABLE my_daily_report( last_update string, col_a ...
  • 今天开始从Hive表中查询数据,发现部分表是采用External外部表方式,过来记录下相关信息Hive中内部表与外部表的区别:Hive 创建内部表时,会将数据移动到数据仓库指向路径;若创建外部表,仅记录数据所在路径,...
  • 我们在创建表时候可以指定external关键字创建外部表,外部表对应文件存储在location指定目录下,向该目录添加新文件同时,该表也会读取到该文件(当然文件格式必须跟表定义一致),删除外部表的同时并不会删除...
  • HiveManaged Table以及External TableHive有两种类型表:Managed Table 内部表External Table 外部表下面我们详细介绍这两种表.Managed Table这种表也被称作Internal Table.这是Hive默认类型.如果你在...
  • hive创建外部表

    2020-07-07 19:24:40
    内部表基本上与mysql中的操作相同,只要你会sql语句,hive的内部表就没有什么问题。 主要是外部表外部表可以帮助我们把一些txt或者日志文件进行数据化处理。 1、使用hive之前首先要把hadoop,mysql和
  • 所以在Hive中建一个外部表指向Hbase中的表,但是在Hive中查询的记录数结果和Hbase中的不一致,排查原因最后发现是Hbase中储存的汉字存在乱码问题,虽然用的String格式存储,但是在Hive的外部表中显示为乱码,...
  • Hive的数据 创建数据文件 inner_table.dat创建 hive>create table inner_table (key string);加载数据 hive>load data local inpath ‘/root/inner_table.dat’ into table inner_table;查看数据 hive>...
  • Hive内部表和外部表的区别详解

    万次阅读 多人点赞 2017-10-30 15:37:55
    Hive内部表和外部表的区别
  • 这里是在基于完成mysql数据库安装后使用Hive:在windows中使用navicat远程登录到Linux下面mysql数据之后,在mysql数据库里面有个DBS,该存放就是hive表在hdfs系统中路径,这里默认应该是hdfs://hadoop0:...
  • hive清空外部表的三种方式 本文总结hive中清空外部表的三种方式 hive版本:2.1.1 环境准备 新建一张外部表: create external table test_external(name String,age int,sex String) stored as orc; 插入...
  • 先来说下Hive中内部表与外部表的区别:Hive 创建内部表时,会将数据移动到数据仓库指向路径;若创建外部表,仅记录数据所在路径,不对数据位置做任何改变。在删除表时候,内部表元数据和数据会被一起删除...
  • 1.未被external修饰是内部表【managed table】,被external修饰外部表【external table】。2.内部表数据由Hive自身管理,外部表数据由HDFS管理。3.内部表数据存储在hive.metastore.warehouse.dir【默认:/user/...
  • hive清空外部表的三种方式

    千次阅读 2020-06-23 14:34:01
    本文总结hive中清空外部表的三种方式 hive版本:2.1.1 环境准备 新建一张外部表: create external table test_external(name String,age int,sex String) stored as orc; 插入数据: insert into table test_...
  • 其与传统数据库有相同点也有不同点,DDL操作也有基本相同,但是hive表分内部表和外部表的概念(内部表对应hiveMANAGED_TABLE,外部表对应hiveEXTERNAL_TABLE),下面主要介绍一下两类表之间主要区别...
  • 前言总结一下Hive的内部表和外部表以及两者的区别。1、建表语句1.1 内部表平时创建的普通表为内部表createtable`test_internal`(idstringcomment'ID',namestringcomment'名字')comment'测试内部表'...
  • Hive 创建外部表,仅记录数据所在路径,不对数据位置做任何改变;在删除表时候,内部表元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,...
  • 未被external修饰是内部表(managed table),被...内部表数据存储位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据存储位置由自己制定;  删除内部表会直接删除元数据(...
  • hive的内部表外部表

    2020-07-28 16:42:19
    内部表已删全删hdfs和hive都没有,外部表在hdfs上还有在hive中没有。 hive>describe psn_4; OK id int name string age smallint ..
  • 一、内部表和外部表区别一般情况下不指定关键字External关键字创建表都为内部表,数据默认存放在/user/hive/warehouse目录下外部表创建是需要指定External关键字,可以手动指定存放目录,有Location关键字指定,...
  • 慕运维1137616回答您问题:对于外部表Hive不会将数据移动到其仓库目录中。如果删除了外部表,那么将删除表元数据,但不会删除数据。对于内部表,Hive将数据移动到其仓库目录中。如果删除了表,则表元数据和数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,142
精华内容 856
关键字:

hive的外部表