大数据学习(97)-Hive常见问题

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


1. Hive内部表和外部表的区别
对比项内部表 (Managed Table)外部表 (External Table)
数据存储位置由Hive管理,默认存储在HDFS的/user/hive/warehouse数据位置由用户指定,Hive只管理元数据
删除表时删除表时,数据和元数据都会被删除删除表时,只删除元数据,数据保留
适用场景临时数据、ETL中间结果共享数据、多引擎访问(如Spark、Impala)

2. Hive有索引吗?

Hive 有索引,但使用较少,因为:

  • 性能问题Hive索引维护成本高,查询优化不如分区和分桶高效。

  • 替代方案

    • 分区(Partitioning):按字段值(如dt=20230101)物理分割数据。

    • 分桶(Bucketing):按哈希值将数据分散到固定数量的文件。

注意:Hive 3.0+ 已弃用索引,推荐使用 物化视图 或 LLAP(Live Long and Process) 加速查询。


3. 运维如何对Hive进行调度?

常用调度工具和方案:

  • DolphinScheduler/Airflow:编排SQL脚本,依赖任务管理。

  • Oozie:Hadoop生态的任务调度工具,支持Hive Action。

  • Crontab:简单场景定时执行Hive SQL。

  • 大数据平台集成:如阿里云DataWorks、AWS EMR Step。

优化建议

  • 设置合理资源队列(YARN队列优先级)

  • 监控长时间运行的查询,避免资源耗尽。


4. ORC、Parquet等列式存储的优点
格式优点
ORC- 高压缩比(Snappy/ZLIB)
- 支持ACID事务(Hive 3.0+)
- 适合Hive场景
Parquet- 跨生态兼容(Spark/Flink支持)
- 嵌套结构存储优化(适合JSON/复杂类型)

列式存储核心优势

  • 查询高效:只读取需要的列,减少I/O。

  • 压缩率高:同列数据类型一致,压缩效果更好。


5. 数据建模用的哪些模型?

常用数据仓库模型:

  1. 星型模型(Star Schema)

    • 一个事实表 + 多个维度表,适合OLAP分析。

  2. 雪花模型(Snowflake Schema)

    • 维度表进一步规范化,减少冗余,但查询复杂。

  3. 宽表模型

    • 大宽表(Flat Table),减少JOIN,适合实时查询。

现代趋势

  • Data Vault:适用于高可扩展的企业级数仓。

  • OneBigTable:牺牲存储换查询性能(如ClickHouse)。


6. 为什么要对数据仓库分层?

分层目的:

分层作用
ODS原始数据备份,保持数据一致性。
DWD清洗和标准化(去噪、补全缺失值)。
DWS轻度汇总,面向主题(如用户行为聚合)。
ADS应用层,直接对接报表或BI工具。

核心价值

  • 解耦:避免重复计算,便于维护。

  • 复用:中间层可被多个业务复用。

  • 高效:上层查询只需处理聚合数据。


8. SORT BY 和 ORDER BY 的区别
对比项SORT BYORDER BY
执行方式局部排序(每个Reducer内部排序)全局排序(最终结果全排序)
性能高效,适合大数据量可能引起数据倾斜(单Reducer压力大)
使用场景需分区间有序但全局无序时(如分桶查询)需要严格全局排序时(如Top N查询)

补充

  • DISTRIBUTE BY + SORT BY:类似Spark的repartitionAndSortWithinPartitions,先分区再排序。

  • CLUSTER BY = DISTRIBUTE BY + SORT BY(同一字段)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值