我目前正在尝试通过尝试将我目前正在通过Python执行的操作移植到Kettle作业中,以了解Kettle 4.4如何处理数据转换。
我有一个包含四个表的关系数据库,我需要将它们导入到我的数据管道中。这是模型的一个简化版本。
窗口小部件
+-----------+-------------+----------------+
| WIDGET_ID | Name | Notes |
+-----------+-------------+----------------+
| 1 | Gizmo | Red paint job |
| 2 | Large Gizmo | Blue paint job |
+-----------+-------------+----------------+客户
+-----------+------------+----------------------------------+
| WIDGET_ID | Name | Mailing_Address |
+-----------+------------+----------------------------------+
| 1 | Acme, Inc. | 123 Fake Street, Springfield, IL |
| 2 | Fake Corp. | 555 Main Street, Small Town, IN |
| 2 | Acme, Inc. | 123 Fake Street, Springfield, IL |
+-----------+------------+----------------------------------+库存
+-----------+--------+------------+
| WIDGET_ID | Amount | Date |
+-----------+--------+------------+
| 2 | 11000 | 2012-01-15 |
| 1 | 13000 | 2012-02-05 |
| 1 | 900 | 2013-01-01 |
+-----------+--------+------------+我希望能够使用上面的代码并生成如下JSON输出:
{
"id": 1,
"Name": "Gizmo",
"Notes": "Red Paint Job",
"Customers": [
{
"Name": "Acme, Inc.",
"Address": "123 Fake Street..."
}
],
"Inventory": [
{
"Amount": 13000,
"Date": "2012-02-05"
},
{
"Amount": 900,
"Date": "2013-01-01"
}
]
}我尝试使用Kettle的连接、JS转换和JSON输出都不是很成功,而且我发现文档非常缺乏。有没有人能帮助我,或者给我指明正确的方向?
谢谢!
发布于 2013-04-30 03:05:01
您可以使用3个(总共6个)水壶步骤进行此转换:
1)添加3个表输入步骤,每个表一个。
2)添加下一个Multiway Merge Join步骤,将3个表输入步骤箭头流分组到此步骤上,选择widget_id作为关键字段,选择内部连接类型。
3)将1个json输出步骤添加到多路连接步骤的输出流中。
要生成最终的json格式,您必须使用JSONPath表示法:
http://goessner.net/articles/JsonPath/
希望能有所帮助。
(如果你是水壶新手,我建议你去看看水壶汤匙中包含的samples文件夹)
https://stackoverflow.com/questions/16284744
复制相似问题