
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的企业都引入了大数据等新兴互联网技术,大数据程序员也是目前比较热门的招聘岗位之一,下面我们就通过案例分析来简单了解一下,大数据数据处理问题都有哪些。
1、数据冗余
一个表做宽表冗余维度属性时,应该遵循以下建议准则:
冗余字段与表中其它字段高频率(大于3个下游应用SQL)同时访问。
冗余字段的引入不应造成其本身的刷新完成时间产生过多后延。
公共层数据不允许字段重复率大于60%的相同粒度数据表冗余,可以选择在原表基础上拓宽或者在下游应用中通过JOIN方式实现。
2、数据拆分
数据的水平和垂直拆分是按照访问热度分布和数据表非空数据值、零数据值在行列二维空间上分布情况进行划分的。
在物理上划分核心模型和扩展模型,将其字段进行垂直划分。
将访问相关度较高的列在一个表存储,将访问相关度较低的字段分开存储。
将经常用到的Where条件按记录行进行水平切分或者冗余。水平切分可以考虑二级分区手段,以避免多余的数据复制与冗余。
将出现大量空值和零值的统计汇总表,依据其空值和零值分布状况可以做适当的水平和垂直切分,以减少存储和下游的扫描数据量。
3、空值处理原则
汇总类指标的空值:空值处理,填充为零
维度属性值为空:在汇总到对应维度上时,对于无法对应的统计事实,记录行会填充为-99(未知),对应维表会出现一条-99(未知)的记录。
4、设计准则
一致性维度规范
公共层的维度表中相同维度属性在不同物理表中的字段名称、数据类型、数据内容必须保持一致。除了以下情况:
在不同的实际物理表中,如果由于维度角色的差异,需要使用其他的名称,其他名称也必须是规范的维度属性的别名。例如,定义一个标准的会员ID时,如果在一个表中,分别要表示买家ID,卖家ID,那么设计规范阶段就预先对会员ID分别定义买家ID和卖家ID。
如果由于历史原因,在暂时不一致的情况下,必须在规范的维度定义一个标准维度属性,不同的物理名也必须是来自标准维度属性的别名。
维度的组合与拆分
组合原则
将维度所描述业务相关性强的字段在一个物理维表实现。相关性强是指经常需要一起查询或进行报表展现、两个维度属性间是否存在天然的关系等。例如,商品基本属性和所属品牌。
无相关性的维度可以适当考虑杂项维度(例如交易),可以构建一个交易杂项维度收集交易的特殊标记属性、业务分类等信息。也可以将杂项维度退化在事实表中处理,不过容易造成事实表相对庞大,加工处理较为复杂。
所谓的行为维度是经过汇总计算的指标,在下游的应用使用时将其当维度处理。如果有需要,度量指标可以作为行为维度冗余到维度表中。
拆分与冗余
对于维度属性过多,涉及源较多的维度表(例如会员表),可以做适当拆分:
拆分为核心表和扩展表。核心表相对字段较少,刷新产出时间较早,优先使用。扩展表字段较多,且可以冗余核心表部分字段,刷新产出时间较晚,适合数据分析人员使用。
根据维度属性的业务不相关性,将相关度不大的维度属性拆分为多个物理表存储。
数据记录数较大的维度表(例如商品表),可以适当冗余一些子集合,以减少下游扫描数据量:
可以根据当天是否有行为,产出一个有活跃行为的相关维表,以减少应用的数据扫描量。
可根据所属业务扫描数据范围大小的不同,进行适当子集合冗余。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。