【问题标题】:Data Warehouse: Who initiate extract data from multiple source to staging area, is it the source or the data warehouse?数据仓库:谁发起从多个源提取数据到暂存区,是源还是数据仓库?
【发布时间】:2021-04-27 04:10:50
【问题描述】:

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

从这个article来看,暂存区主要是时间原因,有些甚至不需要暂存区。

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

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

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

  1. 服务器 1:数据提取由数据仓库服务器发起,直接从服务器 1 的数据库中提取,每天调度
  2. Server 2:定时无法调度,所以数据仓库服务器提供API供Server 2使用,Server 2在每次有数据时通过提供的API发起数据提取或者向数据仓库服务器发送数据。

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

【问题讨论】:

    标签: database microservices etl data-warehouse


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2017-01-04
      • 1970-01-01
      • 2021-05-05
      相关资源
      最近更新 更多