我参与的一个项目的范围发生了变化,在我开始尝试想出一些本土的解决方案之前,我想知道是否有什么东西--比如某个框架--可以让我不必设计和调试自己的代码。让我尽量简单地解释这些细节。
这是一个数据迁移项目,一个ETL。最初,有多个源数据库、多个ETL引擎(允许故障转移)和一个数据仓库数据库。数据仓库将使来自单个数据源的数据保持清晰,并且它将在幕后被复制:这意味着,我的ETL只需担心将数据写入1数据仓库。我对此有个计划。
现在,客户担心将单个源数据混合到单个数据仓库中。他们想要单独的数据仓库。这将是足够简单的,但事实上,他们仍然希望ETL引擎按照原来的协议工作。让我解释一下。
让我们想象一下以下情况:
鉴于以上所述,ETL引擎应该能够工作循环,一个ETL引擎从4个源数据库中的任何一个提取并写入适当的数据仓库。如果一个或多个源数据库崩溃,或一个或多个ETL引擎崩溃,或一个或多个数据仓库崩溃,ETL过程仍应继续愉快地在可以执行的地方执行ETL。
如果有一个数据仓库,我可以协调这一点;如果ETL引擎只有一个数据源和数据仓库对,我可以处理这个问题;但是现在事情变得复杂了。我真的不喜欢处理这种事情的更高级的框架--甚至可能是概念。也许像这样的场景有一个名字(这是一个众所周知的问题),但我甚至不知道这个名字。
注意:我们已经有了一个由客户交付和测试的工作原型,它在一个源和一个目的地上执行ETL。以下是我们正在使用的内容:
是否有某种框架来协调这样一个过程,其中ETL引擎可以服务于所有的源-目的地对,提供故障转移,但不会踩到对方的脚趾,或者这是我必须自己编码的东西。
最后,我希望上述内容是清楚的。如果我能做任何事情来澄清上述,请问。谢谢。
发布于 2014-10-05 20:49:18
似乎您希望保持现有的etl逻辑基本相同,但需要一些新的进程来以更动态的方式转移数据。
某种类型的软件代理可以充当转换层和db加载层之间的桥梁,提供所需的额外功能。
我确信这样的东西是存在的,我要做的是联系一些大型的etl和数据库供应商,看看他们能提供什么。就我个人而言,我将编写自己的桥(称为迁移代理),并尽可能将现有etl模块中的代码更改保持在最低限度。
https://softwareengineering.stackexchange.com/questions/258080
复制相似问题