我正在通过 Kettle 转换将数据从 mongodb 集合加载到 mysql 表中。首先,我使用 MongodbInput 提取它们,然后使用 json 输入步骤。但由于 json 输入步骤的性能非常低,我想用 javacript 脚本替换它。我是 Javascript 的初学者,即使我尝试了一些东西,kettle javascript 脚本也无法识别任何关键字。
谁能给我示例代码以使用 javascript 将 Json 数据转换为不同的列?
要解决您的问题,您需要查看三个方面:
从 MongoDB 读取除非您更改了接口,否则 MongoDB 不会返回 JSON,而是返回 BSON 文件(~binary JSON)。您需要查看有关阅读和编写 BSON 的 MongoDB 文档:可能类似于BSON.to()
,BSON.from()
但我不知道。
从 JSON 读取一旦你的 BSON 是 JSON 格式,你可以使用它来读取它,JSON.stringify()
它返回一个String
.
从(可能)字符串读取如果您想使用 JSON 的功能(为什么还要使用 JSON?),您还想使用JSON.parse()
返回 JSON 对象的方法。
我的经验是,将 JSON 对象从一个步骤发送到另一个步骤,使用 aString
不是一个坏主意,即在 JavaScript 步骤结束时,将 JSON 对象写入 aString
并在下一个 JavaScript 步骤开始时(可以在流的更下游)您将其解析回 JSON 以使用它。
我希望这回答了你的问题。
PS:编写JavaScript步骤需要你学习JavaScript。您不必成为大师,但基础知识是必需的。没有其他办法了。
您可以使用json 输入步骤来获取此 json 的值并放入公共行