1. 为什么叫BDM、为什么叫FDM
    一、模型分层
  2. 缓冲数据模型 BDM (Buffer data model)
    源业务系统数据的快照,保存细节数据,按天分区,会保持最近一段时间数据。一般情况下,每个BDM表对应着源业务系统的一个表或者一个日志文件,数据结构与线上基本是对应的。绝大多数的数据快照是经过增量抽取策略抽过来了,对于不支持增量抽取策略或者数据量极少的表采用全量抽取的策略。
  3. 基础数据模型 FDM (Foundation data model)
    基础数据模型,用来保存源业务系统数据的快照,数据永久保存。对于有更新操作的数据来说,采用拉链的方式优化存储。对于没有更新操作的数据来说,采用流水方式存储。
  4. 通用数据模型 GDM (general data model )
    根据京东核心业务主题按照星型模型或雪花模型设计方式建设的最细业务粒度汇总层。在本层需要进行指标与维度的标准化,保证指标数据的唯一性。
  5. 聚合数据模型 ADM (aggregation data model)
    根据不同的业务需求采用星型或雪花型模型设计方法构建的按维度汇总数据。
  6. 维度模型 DIM (Dimension model)
    维度表可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。例如,包含订单信息的维度表通常包含将订单分为区域、省份、城市等若干类的层次结构。在维度表中,每个表都包含独立于其他维度表的事实特性,例如,客户维度表包含有关客户级别的数据。维度表中的列字段可以将信息分为不同层次的结构级。
  7. 临时层 TMP (temp)
    用来降低加工过程计算难度,提高运行效率的临时表,用完即舍,不保存历史数据。
    7 中间层(操作数据模型) ODM (Operational data model)
    在加工通用模型的时候,对于多个模型都使用到的公共数据需要清洗转换的时候,用来封装清洗转换逻辑保存清洗后的数据,供加工通用模型使用,中间层数据保存历史状态。
  8. 应用数据模型 APP (application)
    应用数据模型按照具体的需求进行设计,其数据直接供前端报表工具展现使用,或者推送到其他系统做相关的数据支撑。
  9. 看过阿里建模书了没?
  10. 数据口径如何实现统一?
  1. 梳理调研京东各业务线的指标口径
  2. 对各个业务线口径进行归纳,梳理,协商 以满足大多业务线的口径为最后的统一口径
  3. 按统一后的口径开发数据模型
  4. 开发完成推送至数据仓库
  5. 下游从数据仓库同步统一口径表,
  6. 最终对内数据看版(黄金眼),实现口径唯一
  7. 对外有经海路系统,数据指标目录 - 详细标明京东内部口径解释及对应adm表,
  1. 给一个场景。支付 和退款,如何设计模型及对应分区?
    杰哥说:搞一个拉链表,详细记录每个订单状态 就ok了
  2. 个人时间和收获如何划分?
    工作时间上: 50%数据仓库。50%pass化工程开发
    收获上:后50%对个人提升最大
  3. 数据倾斜解决方案:
    我脑瘫了,当初直接答 mapjoin 和对key 进行随机加盐打匀处理 【这块还得找个脚本在领悟一哈】
  4. 如何知道是数据倾斜:
    答:web ui 和 group by

6 - 7 具体看数据倾斜总结

8: 个人倾向做什么
1. 离线建模
2. 数据工程
3. 实时

实时 > 数据工程 > 离线建模
  1. 给一个建模场景,让设计模型如何分层:
    订单支付 + 退款场景 阿里大数据之路 里面有 原题 就是拉链表