2

控制流和数据应该分开吗?

在我看来,显而易见的答案是否定的……但我想要一些更明确的论据来说明为什么不……

所以......这是一个场景

  • 服务生成数据并将其发布到本地表以供 ETL 单独流程提取并集成到主报告数据仓库中。
  • 有一个建议是源服务应该通知 ETL 数据可用......所以它不需要定期检查

我一点也不喜欢这个。。为什么?

  • 它创建了一个结构依赖,因为服务需要了解 ETL
  • 它还创建了时间依赖性(如果任一进程关闭/崩溃怎么办?)

如果 ETL 对数据感兴趣,它应该主动进行检查——另一种方法是让服务主动将其发送到消息队列,从而将通知委托给排队基础设施。

4

1 回答 1

1

我曾经在以 ETL 为导向的中央流程的应用程序上工作了将近十年。当您使用像这样移动数据的流程时,创建有关流程运行和在这些运行期间加载的数据的元数据非常重要。这对于审计目的将证明是无价的。它还可以帮助您监控性能,如果操作正确,还可以帮助您监控加载数据的正确性。

此外,在您的情况下,它将允许消费者进程通过以相同方式检查数据加载元数据表来检查新可用的数据,而不是为不同的数据表发明单独的查询。

于 2013-03-08T15:49:42.080 回答