数据仓库:谁发起从多个来源提取数据到暂存区,是来源还是数据仓库



我有一个关于数据仓库中ETL(尤其是提取ETL(的问题。

从本文来看,临时区域主要是出于时间原因,有些甚至不需要临时区域。

假设我有3个微服务服务器,每个服务器都有自己的数据库、2个操作服务器和1个数据仓库服务器。

  1. 服务器1:计划每天提取数据
  2. 服务器2:数据仓库需要实时可用的数据

谁将启动提取数据?我的想法是

  1. 服务器1:数据提取由数据仓库服务器启动,直接从服务器1的数据库中提取,每天安排
  2. 服务器2:时间无法安排,因此数据仓库服务器提供API供服务器2使用,服务器2在每次数据可用时启动数据提取或通过提供的API将数据发送到数据仓库服务器

但我不确定,我是否应该向所有操作服务器提供API,让它们决定何时将数据发送到仓库?还是直接从操作数据库中提取数据都是数据仓库服务器的工作?如果是,如何提取实时数据?

您提出的方法(每天ping服务器1,但几乎实时地从服务器2接收数据(是我过去看到的。不过,你可能需要考虑的几件事是:

  • 有时服务器2无法配置为自动ping API,这通常是因为其数据库不支持触发器。如果是这种情况,那么您可能需要从DW定期ping服务器2,比如每五分钟一次
  • 通常,您会每晚查询服务器1。也就是说,我可以看到服务器1告诉您什么时候可以读取它可能会更好。在第二种情况下,您的DW不必担心与服务器1的时间表同步;如果服务器1有处理延迟或其批处理窗口运行很长,那么当数据准备就绪时,DW仍将拾取其数据

最新更新