Kettle如何将CSV数据加载到多个表中?

3
我可以帮助您翻译这段内容。这是关于编程的内容,需要从一个包含混合数据的单个csv文件中加载2个数据库表。我还想使用外键关系来维护父子关系。
以下是输入csv文件的示例:
<name>,<title>,<department>,<location>
John,Developer,IT, Florida
Mike,Designer,Sales,Nevada
Chris,Designer,Sales,Nevada

以下是两个表结构。员工表具有dept_id作为外键。部门表将拥有唯一的名称(不重复)。根据上面的示例CSV文件,它应该有2个条目(IT、销售)。

DEPARTMENT
-------------
id
name
location


EMPLOYEE
---------
id
name
title
dept_id

我完全不会使用Kettle,任何指针都将不胜感激。

1个回答

1

这很容易。你已经下载了Spoon并启动它了吗(用于创建转换的编辑器)

  1. 创建文本文件输入
  2. 将文本文件输入中的数据复制到按部门分组的Group By步骤,然后再复制到Insert/Update步骤以获取您的DEPARTMENT表
  3. 将文本文件输入中的数据复制到另一个Insert/Update表步骤以创建您的员工表

至于ID,如果您愿意,可以允许数据库生成自动编号字段,并在任何唯一要求上进行查找。

我强烈建议您下载该工具并尝试一下 - 一旦开始,就非常容易。


我已经下载了它,但不确定要使用哪些小部件和选择哪些选项。忘了提一下,两个表中的“id”是由DB自动生成的序列。在插入时如何从Department表中提取id以在Employee表中使用。如果方便的话,截图或水壶会有所帮助。 - Sam Keith
1
我知道这个评论现在已经很旧了,但是在Pentaho中有一个"Add sequence"步骤,你可以在插入表之前使用它来从数据库序列中检索下一个ID,然后将其与输入文件数据一起插入到两个表中。 - t_barbz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接