Hive创建内部表、外部表】的更多相关文章

Hive本身并不存储数据,而是将数据存储在Hadoop的HDFS中,表名对应HDFS中的目录/文件.根据数据的不同存储方式,将Hive表分为外部表.内部表.分区表和分桶表四种数据模型.每种数据模型各有优缺点.通过create user命令创建user表时,会在HDFS中生成一个user目录/文件. 外部表 数据不由Hive管理,使用drop命令删除一个表时,只是把表的元数据给删除了,而表的数据不会删除. 创建外部表的SQL语句: create external table bigdata17_u…
使用hive需要hive环境 启动Hive 进入HIVE_HOME/bin,启动hive ./hive 内部表 建表 hive> create table fz > (id int,name string,age int,tel string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY ',' > STORED AS TEXTFILE; 创建完成后使用 show tables; 查看是否创建成功. hive> show…
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table):区别:内部表数据由Hive自身管理,外部表数据由HDFS管理:内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定:删除内部表会直接删除元数据(metadata)及存储数据:删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除:对内部表的修改会将修改直接同…
Hive的数据存储(外部表) Hive的数据存储(外部表) 外部表 指向已经在HDFS中存在的数据,可以创建Partition 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异 外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接.而删除一个外部表时,仅删除该链接 ○如何创建一个外部表? hdfs源文件查看 [root@hadooppseudo ~]# ls student0*student01.txt student02.txt…
1.外部表 关键字:EXTERNAL 外部表创建时需要指定LOCATION 删除外部表时,数据不被删除 CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User', country STRING COMMENT 'country of origination') COMMEN…
Hive四大表类型内部表.外部表.分区表和桶表 一.概述 总体上Hive有四种表:外部表,内部表(管理表),分区表,桶表.分别对应不同的需求.下面主要讲解各种表的适用情形.创建和加载数据方法. 二.具体内容 1.内部表 创建内部表和加载数据   create table emp_inner(   empno int,   ename string,   job string,   mgr int,   hiredate string,   sal double,   comm double,  …
link:http://anyoneking.com/archives/127hive表分为内部表和外部表.外部表在删除的时候并不会删除到hdfs中的文件,比较安全,所以对于重要的需要进行分析的日志建议使用外部表进行操作,这样不会出现误操作影响到日志的存储.内部表在阐述的时候会删除掉hdfs中的文件,所以一般用于创建临时表,这样临时表在删除后,也会删除掉hdfs中的数据 ALTER TABLE test SET TBLPROPERTIES ('EXTERNAL'='TRUE');…
hive中的表与hdfs中的文件通过metastore关联起来的.Hive的数据模型:内部表,分区表,外部表,桶表受控表(managed table):包括内部表,分区表,桶表 内部表: 我们删除表的时候在hdfs上对应的目录及数据文件一同被删除了. 分区表: 分区:把数据放在不同的磁盘文件中,就认为是不同的分区,数据库对不同的分区会进行单独的管理,优化,最终的目的是加快我们数据查询的速度,在hive中,把不同的分区分在表中不同的子文件夹中. 分区字段就是一个文件夹的标示.和内部表的区别在于分区…
与hbase外部表(wizad_mdm_main)进行join出现问题: CREATE TABLE wizad_mdm_dev_lmj_edition_result as select *  from  wizad_mdm_dev_lmj_20141120 as w  JOIN wizad_mdm_main as a ON (a.rowkey = w.guid); 程序启动后,死循环,无反应.最后在进行到0.83时,内存溢出失败. 原因: 默认情况下,Hive会自动将小表加到Distribute…
http://www.blogjava.net/decode360/archive/2008/10/16/286802.html create or replace type person as object(  name varchar2(10),  sex varchar2(2),  birthday date,  age number(2)); 两种创建对象表的方式 第一,create table t(  person_col person,  emp_id number,  dep_id…
依次启动HDFS.mysql.hive.kudu.impala 登录impala的shell控制端: Impala-shell 1:使用该impala-shell命令启动Impala Shell .默认情况下,impala-shell 尝试连接到localhost端口21000 上的Impala守护程序.要连接到其他主机,请使用该-i <host:port>选项.要自动连接到特定的Impala数据库,请使用该-d <database>选项.例如,如果您的所有Kudu表都位于数据库中…
1.外部表和内部表区别 创建表时:创建内部表时,会将数据移动到数据仓库指向的路径:若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变. 删除表时:在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据.这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据. hive默认创建的是内部表 外部表比内部表更加安全 在删除内部表的时候,Hive将会把属于表的元数据和数据全部删掉:而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!…
外部表: 外部表说明: 外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive表的时候,数据仍然存放在hdfs当中,不会删掉 管理表和外部表的使用场景: 每天将收集到的网站日志定期流入HDFS文本文件.在外部表(原始日志表)的基础上做大量的统计分析,用到的中间表.结果表使用内部表存储,数据通过SELECT+INSERT进入内部表. 操作案例 分别创建老师与学生表外部表,并向表中加载数据 创建老师表: create external t…
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: <hive学习笔记>系列导航 基本数据类型 复杂数据类型 内部表和外部表 分区表 分桶 HiveQL基础 内置函数 Sqoop 基础UDF 用户自定义聚合函数(UDAF) UDTF 本篇概览 本文是<hive学习笔记>系列的第三篇,要学习的是各种类型的表及其特点,主要内容如下:…
1.未被external修饰的是内部表[managed table],被external修饰的为外部表[external table]. 2.内部表数据由Hive自身管理,外部表数据由HDFS管理. 3.内部表数据存储在hive.metastore.warehouse.dir[默认:/user/hive/warehouse],外部表数据存储位置由用户自己决定. 4.删除内部表会直接删除元数据[metadata]及存储数据,删除外部表仅仅删除元数据,HDFS上的文件不会被删除. 5.对内部表的修改…
一. Hive 建内部表,链到hbase :特点:Hive drop表后,Hbase 表同步删除 drop table if exists hbase_kimbo_test1;CREATE TABLE hbase_kimbo_test1(id string comment '主键ID',name string comment '名称',cate_name string comment '类目')STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorag…
一.外部表 1.hive中表的类型 管理表 托管表(外部表) #内部表 >内部表也称之为MANAGED_TABLE: >默认存储在/user/hive/warehouse下,也可以通过location指定: >删除表时,会删除表数据以及元数据: 外部表 >外部表称之为EXTERNAL_TABLE: >在创建表时可以自己指定目录位置(LOCATION): >删除表时,只会删除元数据不会删除表数据: Managed Table 这种表也被称作Internal Table.这…
创建以|为分隔符的外部表CREATE EXTERNAL TABLE ext_expenses ( name text,date date, amount float4, category text, desc1 text )LOCATION ('gpfdist://etlhost-1:8081/*','gpfdist://etlhost-2:8081/*')FORMAT 'TEXT' (DELIMITER '|'); 创建分布式的外部表CREATE EXTERNAL TABLE ext_expe…
Hive的数据模型之外部表 外部表(External Table)- 指向已经在HDFS中存在的数据,可以创建Partition- 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异.- 外部表侄有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接.当删除一个外部表时,仅删除该链接. .准备几张相同数据结构的数据txt文件,放在HDFS的/input 目录下. .在hive下创建一张有相同数据结构的外部表external_student,l…
一,外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发加载,gpfdisk是并发加载的工具,数据库中对应的就是外部表 所谓外部表,就是在数据库中只有表定义.没有数据,数据都存放在数据库之外的数据文件.greenplum可以对一个外部表执行正常的DML操作,当读取数据的时候,数据库从数据文件中加载数据.外部表支持在segment上并发地告诉从gpfdist导入数据,由于是从segment上导入数据,所以效率很高. 结构图: 外部表需要指定gpfdist的IP和端口,还…
转载自: https://www.cnblogs.com/kingle-study/p/10552097.html 一.外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发加载,gpfdisk是并发加载的工具,数据库中对应的就是外部表 所谓外部表,就是在数据库中只有表定义.没有数据,数据都存放在数据库之外的数据文件.greenplum可以对一个外部表执行正常的DML操作,当读取数据的时候,数据库从数据文件中加载数据.外部表支持在segment上并发地告诉从gpfdis…
Oracle数据库允许对外部表中的数据进行只读访问.外部表定义为不驻留在数据库中的表,并且可以是为其提供访问驱动程序的任何格式.通过为数据库提供描述外部表的元数据,数据库能够公开外部表中的数据,就好像它是驻留在常规数据库表中的数据一样.可以使用SQL直接和并行查询外部数据. 例如,可以SELECT,JOIN或ORDER外部表数据.还可以为外部表创建视图和同义词.但是,在外部表上不能进行DML操作(UPDATE,INSERT或DELETE),也不能创建索引.外部表还提供了一个框架,用于将任意SEL…
1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具   本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底层的实现是MapReduce/spark,执行程序运行在Yarn上 其大致可以按如下图理解(具体可见HIVE文档) sql语句是对某个表进行操作,所以hive一定要创建一个表格,这个表格必须要映射到hdfs中某个具体的文件才行,而映射关系.表的结构数据以及hdfs中数据的存储结构都会在创建表时规定,…
内部表和外部表最主要的一个差别就是删除表或者删除分区时,底层的文件是否自动删除,内部表会自动删除,外部表不会自动删除,所以基础数据表一定要用外部表,即使误删表或分区之后,还可以很容易的恢复回来. 虽然外部表可以恢复,但是逐个分区恢复也很累,如果你的分区很多,或者有多级分区的时候 alter table test_table add partition (partition_key='partition_value') 更简单的方式是执行 msck repair table test_table…
1. 内部表 create table test (name string , age string) location '/input/table_data'; 注:hive默认创建的是内部表 此时,会在hdfs上新建一个test表的数据存放地 load data inpath '/input/data' into table test ; 会将hdfs上的/input/data目录下的数据转移到/input/table_data目录下.删除test表后,会将test表的数据和元数据信息全部删…
hive内部表.外部表区别自不用说,可实际用的时候还是要小心. 1. 内部表: create table tt (name string , age string) location '/input/table_data'; 此时,会在hdfs上新建一个tt表的数据存放地,例如,笔者是在 hdfs://master/input/table_data 上传hdfs数据到表中: load data inpath '/input/data' into table tt; 此时会将hdfs上的/inpu…
1.Table 内部表 1).与数据库中的Table在概念上是类似的 2).每一个Table在Hive中都有一个相应的目录存储数据 3).所有的Table数据(不包括 External Table) 都保存在这个目录中 4).删除表时,元数据与数据都会被删除 5).建表: 2.Partition 分区表 1).Partition 对应于数据库的Partition列的密集索引 2).在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中.…
hive内部表.外部表区别自不用说,可实际用的时候还是要小心. Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据:而元数据是用来存储表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等.下面分别来介绍. 一.Hive的数据存储 在让你真正明白什么是hive 博文中我们提到Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中.Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告…
1.在Hive里面创建一个表: hive> create table wyp(id int,    > name string,    > age int,    > tele string)    > ROW FORMAT DELIMITED    > FIELDS TERMINATED BY '\t'    > STORED AS TEXTFILE;OKTime taken: 0.759 seconds 2.这样我们就在Hive里面创建了一张普通的表,现在给这…
hive内部表.外部表.分区 内部表(managed table) 默认创建的是内部表(managed table),存储位置在hive.metastore.warehouse.dir设置,默认位置是/user/hive/warehouse. 导入数据的时候是将文件剪切(移动)到指定位置,即原有路径下文件不再存在 删除表的时候,数据和元数据都将被删除 默认创建的就是内部表create table xxx (xx xxx) 外部表(external table) 外部表文件可以在外部系统上,只要有…