Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 使用Talend数据集成基于数据库映射文档迁移Oracle数据库_Database_Excel_Oracle_Data Migration_Talend - Fatal编程技术网

Database 使用Talend数据集成基于数据库映射文档迁移Oracle数据库

Database 使用Talend数据集成基于数据库映射文档迁移Oracle数据库,database,excel,oracle,data-migration,talend,Database,Excel,Oracle,Data Migration,Talend,我的团队必须使用Talend Open Studio数据集成进行Oracle数据库迁移。有许多模式更改导致目标数据库的出现,我们为目标数据库提供了新的数据模型,但没有数据。我所拥有的只是源数据库、空目标数据库和一个繁重的映射文档MS Excel,如图所示。有从源列到目标列的直接复制,在源列到目标列的值之间发生转换的简单映射,以及复杂映射。例如,在某些情况下,源列的值可以映射到目标数据库表的两列,相同的值可以填充到不同表中的列。你有办法解决这个问题吗 正如评论中提到的,这个问题看起来太宽泛了 然而

我的团队必须使用Talend Open Studio数据集成进行Oracle数据库迁移。有许多模式更改导致目标数据库的出现,我们为目标数据库提供了新的数据模型,但没有数据。我所拥有的只是源数据库、空目标数据库和一个繁重的映射文档MS Excel,如图所示。有从源列到目标列的直接复制,在源列到目标列的值之间发生转换的简单映射,以及复杂映射。例如,在某些情况下,源列的值可以映射到目标数据库表的两列,相同的值可以填充到不同表中的列。你有办法解决这个问题吗


正如评论中提到的,这个问题看起来太宽泛了

然而,问题的关键是显而易见的,您只需要做一些相当简单的转换

为此,您可以使用Talend的tMap组件来涵盖您提到的所有场景。这是一个非常强大的工具,由于图形界面,使用简单。只需拉入源信息,然后在输出中定义目标模式,然后从源拖放到目标

例如,您在一个非常简单的级别上的工作如下所示:

您可以使用如下配置的tMap从问题中实现示例映射:


在这里,您可以在映射中使用一些非常简单的Java代码段来根据需要进行更改。在这里,我检查值为E的旧列2,如果是这样,则进行必要的转换,否则使用。

进行其他适当的转换。正如您提到的,您有固定的数据源和固定的目标,那么最好遵循以下方法

为源创建连接,并为所有DB架构检索架构。 对目标数据库执行相同的活动,并检索相同数据库的架构。 现在,使用多个子对象创建单个作业来加载数据,或者为每个表加载创建作业。 逐步添加源表和相应的输出表,并使用tMap或其他转换组件将源映射到目标列。 如果您正在寻找任何动态加载,那么它在您的场景中是复杂的,无论如何,您必须进行映射以利用talend的动态特性


另一个选择是talend企业版附带的JobScript,它也很难解决。

这是一个非常广泛的问题,如果您没有研究talend的功能并亲自尝试,那么在此处发布问题还为时过早。当你遇到问题时,你应该尽最大努力,然后问一个具体的问题。对于这个问题,没有什么灵丹妙药,它将是非常乏味和容易出错的,并且需要很多时间才能把所有事情都做好。谢谢你的回答。这是非常有用的,我将尝试使用此方法生成更通用的解决方案。