Hive中的内部表、外部表、分区表和分桶表
在Hive数据仓库中,重要点就是Hive中的四个表。Hive 中的表分为内部表、外部表、分区表和分桶表。
内部表
默认创建的表都是所谓的内部表,有时也被称为管理表。因为这种表,Hive 会(或多或少地)控制着数据的生命周期。Hive 默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir(例如,/user/hive/warehouse)所定义的目录的子目录下。当我们删除一个管理表时,Hive 也会删除这个表中数据。管理表不适合和其他工具共享数据。
具体的内部表创建命令
CREATE TABLE emp( empno INT, ename STRING, job&nbHisp;STRING, mgr INT, hiredate TIMESTAMP, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY " "; -- 分隔符 外部表
外部表称之为EXTERNAL_TABLveE;其实就是,在创建表时可以自己指定目录位置(LOCATION);如果删除外部表时,只会删除元数据不会删除表数据;
具体的外部表创建命令,比内部表多一个LOCATION而已。
CREATE EXTERNAL TABLE emp_external( empno INT, ename STRING, job STRING, mgr INT, hiredate TIMESTAMP, sal DECIMAL(7,2), comm DECIMAL(7,2), &nbs中的p;deptno INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY " " LOCATION '/hive/emp_external'; 「内部表和外部表的区别:」 创建内部表时:会将数据移动到数据仓库指向的路径; 创建外部表时:仅记录数据所在路径,不对数据的位置做出改变; 删除内部表时:删除表元数据和数据; 删除外部表时,删除元数据,不删除数据。 分区表
分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。
具体的分区表创建命内部令如下,比外部表多一个PARTITIONED。PARTITIONED英文意思就是分区的,需要指定表中的其中一个字段,这个就是根据该字段的不同,划分不同的文件夹。
CREATE EXTERNAL TABLE emp_partition( empno INT, ename STRING, job STRING, mgr INT, hiredate TIMESTAMP, sal DECIMAL(7,2), comm DECIMAL(7,2) )表、 PARTITIONED BY (deptno INT) -- 按照部门编号进行分区 ROW FORMAT DELIMITED FIELDS TERMINATED BY " " LOCATION '/hive/emp_partition'; 分桶表
分区在HDFS上的表现形式是一个目录,分桶则是一个单独的文件。分桶则是指定分桶表的某一列,让该列数据按照哈希取模的方式随机、均匀地分发到各个桶文件中。
具体的分桶表创建命令如下,比分区表的不同在于CLUSTERED。CLUSTERED英文意思就是群集的。分桶操作和分区一样,需要根据某一列具体数据来进行哈希取模操作,外部故指定的分桶列必须基于表中的某一列(字段)
CREATE EXTERNAL TABLE emp_bucket( empno INT, ename STRING, job STRING, mgr INT, hiredate TIMESTAMP, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT) CLUSTERED BY(empno) S表、ORTED BY(empno ASC) INTO 4 BUCKETS --按照员工编号散列到四个 bucket 中 ROW FORMAT DELIMITED FIELDS TERMINATED BY " " LOCATION '/hive/emp_bucket'; 「分区表和分桶表的区别:」
Hive 数据表可以根据某些字段进行分区操作,细化数据管理,可以让部分查询更快。同时表和分区也可以进一步被划分为 Buckets,分桶表的原理和 MapReduce 编程中的 HashPartitioner 的原理类似;分区和分桶都是细化数据管理,但是分区表是手动添加区分,由于 Hive 是读模式分区,所以对添加进分区的数据不做模式校验,分桶表中的数据是按照某些分桶字段进行 hash 散列形成的多个文件,所以数据的准确性也高很多。
分桶表的建表有三种方式:直接建表,CREATE TABLE LIKE 和 CREATE TABLE AS SELECT
注:不能直接向桶表中加载数据,需要使用insert语句插入数据,因此只要见到load data 到桶表的,基本是乱来的。分桶表的数据通常只能使用 CTAS(CREATE TABLE AS SELECT) 方式插入,因为 CTAS 操作会触发 MapReduce,因此分桶的时间是比较长的,因为要进行MapReduce操作。
根据上面命令,成功创建了内部表、外部表、分区表和分桶表。
下面依次插入数据到四张表,emp.txt具体内容如下:
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800.00 表和 20 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975.00 20 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250.分桶00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850.00 30 7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450.00 10 7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 1500.00 20 7839 KING PRESIDENT 1981-11-17 00:00:00 5000.0Hi0 10 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100.00 20 7900 JAMES CLERK 7698 1981-12-03 00:00:00 950.00 30 7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000.00 ve 20 7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300.00 10
具体的插入数据命令如下所示:
## 内部表 load data local inpath "emp.txt" into table emp; ## 外部表 load data local inpath "emp.txt" into table emp_external; ## 分区表 LOAD DATA LOCAL INPATH&nbs中的p;"emp.txt" OVERWRITE INTO TABLE emp_partition PARTITION (deptno=10); LOAD DATA LOCAL INPATH "emp.txt" OVERWRITE INTO TABLE emp_partition PARTITION (deptno=20); LOAD DATA LOCAL INPATH "emp.txt" OVERWRITE INTO TABLE emp_partition PARTITION (deptno=30); ## 分桶表&内部nbsp;-- 启用桶表 set hive.enforce.bucketing=true; -- 限制对桶表进行load操作 set hive.strict.checks.bucketing = true; INSERT INTO TABLE emp_bucket SELECT * FROM emp; --这里的 emp 表就是一张普通的雇员表
每次向桶表进行INSERT操作,其实都需要创建中间表。
(责任编辑:成功案例)
-
据报道,亚马逊公司敦促美国法官抛出五角大楼的价值100亿美元的联合企业防御基础设施(JEDI)云计算合同,今年9月,美国国防部表示,法院下令进行的重新评估显示,微软公司的提案依然能够为美国政府提供最大...[详细]
-
超过 70% 美国民众对 AI 的未来忧虑:就业与人际关系面临挑战
随着人工智能技术的迅速发展,各大科技公司频频宣称其工具将彻底改变世界,提高工作效率,减少枯燥劳动。然而,一项最新的调查显示,超过七成的美国人对这一技术表示担忧,认为人工智能可能导致大量永久失业。自从2...[详细]
-
云梦级2月24日云梦级消息,36氪获悉,九识智能近日完成新一轮超3亿美元融资,估值突破百亿人民币。这也意味着,就已有公开信息来看,RoboVan(L4级自动驾驶物流车)领域首家估值超百亿的独角兽诞生。...[详细]
-
云梦级3月25日云梦级消息,柠萌影视(09857.HK)发布2025年度业绩。2025年,集团实现收入超人民币8.6亿元,同比增长31.3%;主要是集团在2025年优质版权剧播出带动收入增长、海外业务...[详细]
-
用仪器什么测肺活量?仪器名叫:肺活量计现在比较先进的是电子肺活量计,国内各大药店或医疗仪器店均可以买到,价格比较贵,根据不同型号,约在1500-5000元之间~老式肺活量计应该也。测肺活量的漏斗叫什么...[详细]
-
标签: 可灵AI 可灵视频3.0 可灵图片3.0 AI影视生成
云梦级2月5日云梦级消息,可灵AI正式全球上线3.0系列模型,目前正面向黑金会员开放使用,预计将于近期全量上线。此次发布的可灵视频3.0、可灵视频3.0 Omni及可灵图片3.0、可灵图片3.0 Om...[详细]
-
云梦级5月27日云梦级消息,5月27日,国产DRAM(动态随机存取存储器)龙头企业长鑫科技将上会接受科创板上市审核。若成功过会,这将成为科创板开板以来最具分量的芯片IPO之一。 作为中国第一大DRAM...[详细]
-
亚马逊的卫星技术子公司Kuiper Systems认为,太空探索技术公司(SpaceX)分享了包含误导性的数据,作为其试图说服联邦通信委员会(FCC)对其正在进行的第三次Starlink修改的优点的一...[详细]
-
预测间隔为回归问题的预测提供了不确定性度量。 例如,95%的预测间隔表示100次中的95次,真实值将落在该范围的下限值和上限值之间。这不同于可能表示不确定性区间中心的简单点预测。没有用于计算深度学习神...[详细]
-
标签: 谷歌I/O2026 ProjectGenie StreetView GoogleMaps
云梦级5月20日云梦级消息,在今日的 2026 谷歌 I/O 开发者大会上,谷歌宣布在谷歌街景(Street View)服务中结合 Project Genie 的世界生成能力,进一步扩展这套通用世界模...[详细]
- https://zhidao.baidu.com/index/?action=QUERY&word=谷歌快排操作流程【tg:seogoogle987】,Mz0
- https://www.lechzuers.com/de/search?cat=163&q=谷歌快排操作流程【tg:seogoogle987】,zKj
- https://www.universal-music.co.jp/?ID=1sIcckCTeBS8FjzCshAW9w53s8gr691o&s=谷歌快排操作流程【tg:seogoogle987】,5A8
- https://www.reginatangoshoes.com/en/catalogsearch/result/index/?T=1686132113407&q=谷歌快排操作流程【tg:seogoogle987】,KF0
- https://www.nextavenue.org/?action=QUERY&s=谷歌快排操作流程【tg:seogoogle987】,1Ze
- https://www.nbm.org/?action=QUERY&s=谷歌快排操作流程【tg:seogoogle987】,U72
- https://www.kaiyueleather.com/search/谷歌快排操作流程【tg:seogoogle987】,5Hv
- https://www.posten-portal.de/search?query=谷歌快排操作流程【tg:seogoogle987】,Yqk
- https://www.umc.edu/search.aspx?ID=I4gnDKRS991MFcIDDzoYze4aWSAszAm7&q=谷歌快排操作流程【tg:seogoogle987】,GNQ
- https://www.roberthalf.com/us/en/jobs/all/谷歌快排操作流程【tg:seogoogle987】KOr

美国军方高层开始依赖 ChatGPT 辅助决策,引发关注
谷歌 Gemma 模型争议揭示 AI 开发生命周期的风险
如履平地!波士顿动力Atlas学会了跑酷,但幕后花絮比正片更精彩
标签: 常熟银行 2025年报 普惠小微 ROE
标签: 马化腾 腾讯 元宝
