刚开始玩HIVE外部表可能会遇到的小陷阱。
只要我们牢记外部表也是一种表就可以,普通表有分区,外部表也是有分区的。所以如果是基于分区表创建的外部表一定要对外部表执行ALTER TABLE table_name ADD PARTITION。否则是根本访问不到数据的。
例子应该会更直观:
原始的表:
hive> desc shaka_test_external;
OK
id bigint
gender string(分区字段)
|
记录:
hive> select * from shaka_test_external;
OK
0 0
1 1
2 1 |
基于上表的数据创建外部表:
create external table ext_shaka_test_external
like shaka_test_external
location 'hdfs://hdpnn:9000/group/hive/shaka_test_external'; |
如果此时直接访问数据,那么是没有记录的:
hive> show partitions ext_shaka_test_external;
OK
Time taken: 0.098 seconds
hive> select * from ext_shaka_test_external;
OK
Time taken: 0.229 seconds
|
陷阱来了,添加分区后就能访问了:
hive> alter table ext_shaka_test_external add partition (gender='0');
OK
Time taken: 0.18 seconds
hive> alter table ext_shaka_test_external add partition (gender='1');
OK
Time taken: 1.305 seconds
hive> select * from ext_shaka_test_external;
OK
0 0
1 1
2 1
Time taken: 0.251 seconds
hive> select * from ext_shaka_test_external where gender = '0';
OK
0 0
Time taken: 0.175 seconds |
分享到:
相关推荐
### 修改Hive表分区名称的方法 在大数据处理领域中,Apache Hive是一款广泛使用的数据仓库工具,它能够将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能,使得用户能够通过简单的SQL语句来处理存储在...
Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
首先创建一个与原表结构相同但已经被分区的表,然后使用交换分区的命令将非分区表与分区表中的一个空分区进行交换。这个方法的优点是可以快速完成转换,但必须保证原表中没有非空的分区。 4. DBMS_REDEFINITION方法...
### Hive 分区表与分桶表详解 #### 一、Hive 分区表概念与应用场景 **分区表**是Hive中的一个重要特性,主要用于优化大数据量下的查询性能。通过将表按照一个或多个列的值划分为不同的部分,可以极大地减少扫描的...
### Hive外部表创建详解 #### 一、引言 在大数据处理领域,Hive作为一款广泛使用的数据仓库工具,能够高效地对存储在Hadoop文件系统中的数据进行查询与管理。其中,外部表的创建是Hive使用过程中的一个重要概念。...
- **Hive 数据分区**是 Hive 表的一种组织方式,它允许将表中的数据按照某个列(分区键)的值进行划分,存储在不同的目录下。 - 分区有助于提高查询效率,因为当查询指定分区时,Hive 只需要扫描相关的分区,而...
在Hive中,分区是为了提高查询效率和管理大数据集的一种策略,通过将数据按特定的字段(如日期、地区等)划分为不同的子目录,使得用户在查询时能够定位到特定的数据部分,减少不必要的数据扫描,从而提升性能。...
Hive分区表 Hive分区表对应的是HDFS上独立的文件夹,该文件夹存放的是该分区的所有数据,其实分区就是分目录。Hive通过分区把一个大的数据集根据业务需要分割成小的数据集,在查询时能够通过where关键词选择指定分区...
Hive查询表分区的MR原理启动详解 Hive是一款基于Hadoop的数据仓库工具,主要用于处理结构化和半结构化的数据。MR(MapReduce)是Hadoop中的一种编程模型,用于处理大规模数据。在Hive中,MR原理启动是指使用...
hive分区表生成组件主要是通过获取数据集及数据集item的code,数据集code作为hive表名,数据集item code作为hive分区表字段,同时加入相关字段,形成hive表的基本结构。项目结构─src ├─main │ ├─java │ │ └...
hive外部表使用语句
Hive分区表和分桶表,进阶篇
一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
Hive表生成工具,Hive表生成工具Hive表生成工具
支持hive 源数据、表结构导出
### Spark或MR引擎插入的数据,Hive表查询数据为0的问题解析 #### 问题背景与现象 在大数据处理场景中,经常会遇到使用不同执行引擎(如Spark、MapReduce (MR) 或 Tez)进行数据处理的情况。其中一种常见的问题是...
内部表的删除会同时移除数据和元数据,而外部表只移除元数据,数据保持不变。 7. **加载数据**: Hive提供了`LOAD DATA`命令来加载数据到表中。`LOAD DATA LOCAL INPATH`可以从本地文件系统加载数据,`LOAD DATA ...