hadoop集群查看创建表结构

本文介绍如何在Hadoop中使用showcreatetable命令查询表结构,并提供了去除特定属性及转换location路径的方法。

要查看hadoop上面表结构

show create table XXXX表

查询出来后,复制出来,去掉 WITH SERDEPROPERTIES ('field.delim'='|', 'serialization.format'='|'),同时把location的变成相对路径就可以了

### Hive 中视图与表的区别 #### 1. **定义** - **Hive 表** 是实际存储数据的对象,其底层对应 HDFS 上的一个目录。当创建一张表时,会指定该表的数据存储路径以及 Schema 结构[^2]。 - **Hive 视图** 则是一种虚拟对象,本身并不存储任何物理数据,而是基于 SQL 查询逻辑构建的一种抽象层。视图的主要作用是简化复杂的查询逻辑或将某些敏感字段隐藏起来[^1]。 #### 2. **数据存储** - **表** 的数据会被持久化到 HDFS 或其他分布式文件系统中。每次插入、加载或修改数据都会直接影响底层的存储结构。 - **视图** 不涉及数据的实际存储,仅保存查询语句的元信息。因此,视图不会占用额外的磁盘空间,除非它是物化视图 (Materialized View)[^3]。 #### 3. **性能差异** - 对于普通的 Hive 视图,在执行查询时,实际上是将视图背后的 SQL 查询展开并与用户的查询结合起来重新解析和执行。这可能导致较高的延迟,尤其是在复杂查询场景下。 - 如果使用的是 **物化视图**,则可以通过提前计算并缓存部分结果来显著提升查询性能。不过需要注意的是,物化视图需要消耗一定的存储资源。 #### 4. **更新能力** - **表** 支持多种 DML 操作(尽管 Hive 原生不完全支持 UPDATE/DELETE 等操作),允许用户直接对记录进行增删改查。 - 而无论是普通视图还是物化视图,都无法直接对其进行更新操作;它们依赖基础表的变化而变化。 #### 5. **适用场景** - 当需要长期保留原始数据或者频繁读取固定模式下的大数据集时,应该优先考虑建立真实的 Hive 表[^4]。 - 若希望减少重复编写相同子查询的工作量,则可利用标准视图封装常用表达式。而对于那些经常被执行且包含大量聚合运算的任务来说,采用 Materialized Views 就显得尤为重要了。 ```sql -- 创建普通视图示例 CREATE VIEW my_view AS SELECT col1, SUM(col2) FROM source_table GROUP BY col1; -- 创建带 Parquet 格式的外部表实例 CREATE EXTERNAL TABLE IF NOT EXISTS external_parquet_table ( id INT, name STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS PARQUET LOCATION '/path/to/data'; ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值