39、SQL 在 Hadoop 中的应用

SQL 在 Hadoop 中的应用

1. 列式数据

我们日常处理的数据大多以行式顺序存储在磁盘上,即一行的所有列在持久存储时是连续存放的。常见的 CSV、SequenceFiles 和 Avro 通常都是按行存储的。

使用列式存储格式保存数据,能在空间和执行时间方面带来显著的性能提升。列式数据连续存放,使得存储格式可以采用复杂的数据压缩方案,如游程编码,而行式数据则无法使用。此外,列式数据还允许 Hive、MapReduce 和 Tez 等执行引擎将谓词和投影推送到存储格式中,使这些存储格式能够跳过不符合下推条件的数据。

目前,Hive(和 Hadoop)上有两种热门的列式存储选项:优化行式列式(ORC)和 Parquet。它们分别来自 Hortonworks 和 Cloudera/Twitter,都提供了相似的节省空间和时间的优化。Parquet 的优势在于它致力于在 Hadoop 社区中实现最大兼容性,因此在撰写本文时,Parquet 对 Hadoop 生态系统的支持更广泛。

2. 调优 Hive 连接

在 Hive 中对大型数据集执行连接操作时,等待数小时才能完成是很常见的。下面将介绍如何优化 Hive 连接。

2.1 问题与解决方案

  • 问题 :Hive 连接运行速度比预期慢,希望了解加速的方法。
  • 解决方案 :通过重新分区连接、复制连接和半连接来优化 Hive 连接。

2.2 创建示例表

在开始之前,先创建两个表: </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值