我有数据库,它有一个实际带有两个属性(字符串用“;”分隔)。看看下面的例子:
示例
这是我的数据库A(来源),它有一个这样的表:
事实上,这似乎都没问题,但是当你假设author
可以有一个或多个入口时。你会有这样的记录:
文件( id 1,作者“John Matt; Mary Knight”,抽象“Lorem ipsum ......”,年 2015)
表a_id
中的Authors
是引用表author_id
上的Document
的外键。
首先确保我将填写所有作者(对此没有任何问题)然后将组作者分配到相应的文档(这是问题),因为我可以有这种情况
作者( id 1,名称“John Matt”) ( id 2,名称“John Matt”) ( id 2,名称“Mary Knight”)
请注意, id 2 将是参与上一个示例的插入。
问题:
如何使用水壶使用ETL过程完成此过程? 这是一个很好的实践或字符串属性用“;”分隔它是否足够好?
答案 0 :(得分:0)
如果我已正确理解您的问题,您的数据库中包含
等行 document (id 1, author "John Matt; Mary Knight", abstract "Lorem ipsum...", year 2015)
现在您需要提取由;
分隔的多个作者。
PDI为您提供了一个名为将字段拆分为行的步骤。将分隔符用作;
,您将获得数据的多个拆分副本。接下来,您可以使用作者表中的唯一ID。
或者,您也可以使用“修改的Java脚本”步骤拆分行。建议您使用第一步。
希望这会有所帮助:)