数据仓库,Bigquery的数据更新策略

时间:2014-06-06 10:17:20

标签: sql google-bigquery data-warehouse

我们有一个MIS,用于存储有关客户,帐户,交易等的所有信息。我们正在使用BigQuery构建数据仓库。
我对这个话题很新,我们应该 1.每天提取所有客户的最新信息,并将它们附加到带有时间戳的BigQuery表中 2.或者我们只提取当天更新的客户信息?

第一种解决方案使用大量存储空间并花费时间上传数据,并且获得了大量重复数据。但是对我来说运行查询非常清楚。对于第二个解决方案,给定具体日期我如何获得当天的最新记录?

类似于帐户数据,简化帐户表的示例,此处仅有4个字段。

  

AccountId,CustomerId,AccountBalance,日期

如果我需要建立一组客户的报告或图表。账户平衡每天,我需要知道每个特定日期的每个账户的余额。因此,我应该每天提取每个帐户记录,即使它与最后一天相同,或者我只能在余额更改时提取帐户?

最佳解决方案或建议是什么?我更喜欢第二个,因为没有重复项,但是如何在BigQuery中构造查询,性能是一个问题?
我还应该考虑什么?有什么建议供我阅读吗?

1 个答案:

答案 0 :(得分:0)

在设计DWH时,您需要从业务问题开始,将其转换为KPI,度量,维度等。 当你有这些...... 您根据以下一些问题(以及更多)选择了技术: 谁是你的用户?他们消耗数据的频率和分辨率是多少?你的数据来源是什么?他们是否有条理?什么是数据量?你的数据质量如何?您的数据结构变化的频率如何?等

在选择技术时,您需要考虑以下事项:ETL,数据库,计划,备份,用户界面,权限管理等。

在完成所有这些定义之后......数据模式设计非常简单,源于“DWH的目的”和您的技术限制。

您已经指出了一些要考虑的要点,但答案是基于您的需求......并且与特定的数据库技术无关。

我担心你的问题过于笼统而无法在不深入了解你的需求的情况下得到解答。

参考你的评论: 您的源数据有多可靠?您对分析趋势或快照感兴趣吗?您的源系统是否允许“全选”操作?什么是数据量?您的源允许哪些资源进行提取(锁,带宽等)? 如果您只需要当前余额的每日快照,并且源系统没有限制,

  1. 运行每日快照会更简单。

    这样您就不需要管理“增量”,处理数据完整性问题和系统差异等等。但是,这种方法可能会对您的源系统和网络成本产生不良影响...... 如果您确实有资源限制,并且选择了增量ETL方法,则可以

  2. 创建“更改日志”表并查询它,可以使用row_number()     为了找到每个帐户的最新记录。

  3. 或哟可以构建源帐户表的副本,合并     每天都会改变现有的桌子。
  4. 每种方法都有自己的简单性,成本和资源消耗方面...... 希望这有帮助

相关问题