首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kettle中实现RDB到JSON?

在Kettle中实现RDB到JSON?
EN

Stack Overflow用户
提问于 2013-04-30 01:30:30
回答 1查看 1.1K关注 0票数 2

我目前正在尝试通过尝试将我目前正在通过Python执行的操作移植到Kettle作业中,以了解Kettle 4.4如何处理数据转换。

我有一个包含四个表的关系数据库,我需要将它们导入到我的数据管道中。这是模型的一个简化版本。

窗口小部件

代码语言:javascript
复制
+-----------+-------------+----------------+
| WIDGET_ID |    Name     |     Notes      |
+-----------+-------------+----------------+
|         1 | Gizmo       | Red paint job  |
|         2 | Large Gizmo | Blue paint job |
+-----------+-------------+----------------+

客户

代码语言:javascript
复制
+-----------+------------+----------------------------------+
| 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 |
+-----------+------------+----------------------------------+

库存

代码语言:javascript
复制
+-----------+--------+------------+
| WIDGET_ID | Amount |    Date    |
+-----------+--------+------------+
|         2 |  11000 | 2012-01-15 |
|         1 |  13000 | 2012-02-05 |
|         1 |    900 | 2013-01-01 |
+-----------+--------+------------+

我希望能够使用上面的代码并生成如下JSON输出:

代码语言:javascript
复制
{
    "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输出都不是很成功,而且我发现文档非常缺乏。有没有人能帮助我,或者给我指明正确的方向?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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文件夹)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16284744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档