我正在构建数据仓库(DW),我有一个关于加载数据的问题;如果你们提出你的想法,我将不胜感激。
我计划首先在临时数据库中一对一地加载所有表,然后从登台数据库将数据加载到DW中。我想过直接点击OLTP系统(没有升级)但是我不能100%确定从性能角度看这是最好的方法。
让我举个例子:在我们的OLTP数据库中,我们有一个名为Customers的视图,我将把它拉进DW。 OLTP数据库上的视图非常复杂,select语句需要8分钟。因此,如果我将此表直接加载到DW中并执行增量加载,我认为这比首先将视图加载到临时表需要更多时间。此外,由于负载需要花费时间,因此DW可用性也会受到影响,因为用户无法查询数据。
你们有什么建议?分期方法现在已经过时了吗?我想了解利弊是什么。在此先感谢您的帮助
答案 0 :(得分:1)
我帮助维护数据仓库,虽然我们不使用登台数据库,但我们确实使用了staging / working / intermediate / whatever_you_want_to_call_it表。
我们所做的就是这个。我们将原始数据作为一系列分隔文件接收。然后,我们对这些文件执行我们认为必要的操作以生成加载文件。然后,我们从加载文件填充我们的工作表,并做我们必须做的任何事情来进一步准备数据。然后我们从工作表中填充真实表格。
我们还会在人们上班前一大早做一切预定的工作,以尽量减少人们在加载数据时尝试查询仓库的可能性。