开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks如何在od层表中增加时间维度作为分区字段?

DataWorks如何在od层表中增加时间维度作为分区字段?

展开
收起
真的很搞笑 2023-08-27 14:32:39 48 0
1 条回答
写回答
取消 提交回答
  • 为了满足历史数据分析需求,您可以在ODS层表中添加时间维度作为分区字段。实际应用中,您可以选择采用增量、全量存储或拉链存储的方式。增量存储以天为单位的增量存储,以业务日期作为分区,每个分区存放日增量的业务数据。 举例如下:1月1日,用户A访问了A公司电商店铺B,A公司电商日志产生一条记录t1。1月2日,用户A又访问了A公司电商店铺C,A公司电商日志产生一条记录t2。采用增量存储方式,t1将存储在1月1日这个分区中,t2将存储在1月2日这个分区中。1月1日,用户A在A公司电商网购买了B商品,交易日志将生成一条记录t1。1月2日,用户A又将B商品退货了,交易日志将更新t1记录。采用增量存储方式,初始购买的t1记录将存储在1月1日这个分区中,更新后的t1将存储在1月2日这个分区中。说明 交易、日志等事务性较强的ODS表适合增量存储方式。这类表数据量较大,采用全量存储的方式存储成本压力大。此外,这类表的下游应用对于历史全量数据访问的需求较小(此类需求可通过数据仓库后续汇总后得到)。例如,日志类ODS表没有数据更新的业务过程,因此所有增量分区UNION在一起就是一份全量数据。全量存储以天为单位的全量存储,以业务日期作为分区,每个分区存放截止到业务日期为止的全量业务数据。 例如, 1月1日,卖家A在A公司电商网发布了B、C两个商品,前端商品表将生成两条记录t1、t2。1月2日,卖家A将B商品下架了,同时又发布了商品D,前端商品表将更新记录t1,同时新生成记录t3。采用全量存储方式, 在1月1日这个分区中存储t1和t2两条记录,在1月2日这个分区中存储更新后的t1以及t2、t3记录。说明 对于小数据量的缓慢变化维度数据,例如商品类目,可直接使用全量存储。拉链存储 拉链存储通过新增两个时间戳字段(start_dt和end_dt),将所有以天为粒度的变更数据都记录下来,通常分区字段也是这两个时间戳字段。拉链存储举例如下。商品 start_dt end_dt 卖家 状态
    B 20160101 20160102 A 上架
    C 20160101 30001231 A 上架
    B 20160102 30001231 A 下架这样,下游应用可以通过限制时间戳字段来获取历史数据。例如,用户访问1月1日数据,只需限制start_dt<=20160101并且 end_dt>20160101。
    https://help.aliyun.com/document_detail/154247.html,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-08-27 16:03:40
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载