java修改分区字段,事实表分区:如何处理ETL中的更新?

我再看一下设计,试着弄清楚是否有更新的方法 . 以下是更新事实表的一些含义:

性能:更新是完全记录的事务 . 大事实表也有大量的数据可供读写 .

多维数据集:更新事实表需要重新处理受影响的分区 . 随着事实表的不断增长,多维数据集处理时间也将继续增加 .

预算:快速存储是昂贵的 . 更新大事实表将需要大量快速读写 .

纯粹理论:除非初始值是错误(即用户输入15,000美元而不是1,500美元),否则不应更改事实表 . 任何非错误情况都将改变最初记录的事务 .

有什么变化?变化的部分真的是维度的属性吗?如果是这样,是否可以将它们移动到维度并使用“缓慢变化的维度”类型任务处理更改?

另一种可能性,这可以通过抵消交易来实现吗?例:

最初的InvoiceAmount是10.00美元 . 会计后来增加了1.25美元的税收,然后向客户收取11.25美元的费用 . 而不是将值更新为$ 11.25,插入1.25美元的记录 . 发票的总金额仍然是11.25美元,您可以执行最少日志记录的插入而不是完全记录的更新来完成 .

不仅在理论上更新事实表是一个坏主意,它随着事实表的增长而变得非常昂贵且不可扩展 . 您将阅读和编写更多数据,从存储子系统中需要更多IOPS . 当您准备好进行分析时,立方体处理会引发更多问题 .

您还必须经常证明管理层为什么需要为数据仓库提供如此多的IOPS . 对于不断变化的“事实”表,是否需要所有这些IOPS的业务 Value /理由?

如果您无法找到事实表上的更新方法,那么至少要 Build 一个以只读方式确定数据的截止点 . 否则,你永远无法扩展 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值