漫谈千亿级数据优化实践:一次数据优化实录

JerryXia 发表于 , 阅读 (30)
本文会限定一些业务场景和技术架构,因此解决方法会局限于此。很多问题可以通过换架构或者引入新的组件来解决,但是成本可能会很高,因此暂不考虑。 本文不是一篇Hive使用和优化文档,更侧重于梳理笔者的思路,让大家少走些坑。

文章主题

在流行的大数据领域中,Hive绝对占据了很大的一片天地,不管是数据仓库和数据分析,还是数据挖掘和机器学习,凡是需要和大数据量打交道的童鞋们,基本上都要接触Hive。因此,本文将侧重于千亿级数据在Hive中的使用,并通过一个典型的数据使用难题来总结一些在大规模数据场景下的优化方式。

本文主要以一个具体的使用场景为切入点,为了解决该场景下的使用难题,笔者经理了一次次的尝试+失败,最终找到了一种相对比较合适的方式。

文章结构

本文可以看过是一种记录和思考,完全还原笔者在遇到问题时的解决方式。因此全文会以事情的发展为主线,每次尝试一种解决方法,失败后继续查找新的方法,中间会穿插一些技术细节。

文章主线如下:

  1. 明确使用场景和困难。
  2. 如何解决,这是一个不断推翻重来的过程。
  3. 回顾总结

0x01 问题来了!

本章作用主要有二:

  1. 明确业务背景和使用场景
  2. 明确困难所在

1. 业务背景和使用场景

按照惯例,我又来到了一家电商网站来工作,我们有一张十分重要的表:用户和购买过的商品表。

如下图,该表只有三个字段,分别是用户ID、商品ID。我们可以简单地理解这是一张事实表。对事实表没印象的可以参考这篇《漫谈数据仓库之维度建模》

我们暂且不管当初为何这样设计的,现在的情况就是