kettle从入门到精通 第八十一课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段正确姿势

1、上一节可讲解了如何将json数据写入pg数据库表中的json字段,虽然实现了效果,但若客户继续使用表输出步骤则仍然无法解决问题。

正确的的解决方式是设置数据库连接参数stringtype=unspecified

2、stringtype=unspecified 参数的作用:

当设置为 unspecified 时,pg JDBC 驱动将根据数据库列的实际数据类型来决定如何处理字符串数据。这意味着,驱动不会强制将所有字符串数据统一为某种特定的 Java 字符串类型。

这通常意味着 JDBC 驱动会尽可能准确地反映数据库中的字符串数据类型。在一些情况下,这可以避免不必要的数据转换,或者使得数据类型映射更符合数据库的实际设计。

其他 stringtype 选项

  stringtype=ascii:JDBC 驱动将所有文本数据都处理为 ASCII 编码。这可能会导致非 ASCII 字符被截断或损坏,因此这个选项较少使用

   stringtype=unicode:JDBC 驱动将所有文本数据处理为 Unicode 编码,适合需要处理多语言和特殊字符的场景。

3、配置数据库连接属性:

1)通过表输出步骤点击编辑按钮打开数据库连接配置窗口,如下图所示:

 2)切换到选项tab,命令参数里面添加stringtype=unspecified

 3)点击测试按钮验证参数是否正确,如下图所示:

  4)将参数调整错误然后点击测试按钮,提示无法正确连接到数据库,如下图所示:

 

  5)点击特征列表按钮,看到url参数后面已经正确的拼接上stringtype参数,如下图所示:

 

4、保存数据库连接参数设置&运行,json字符串数据被正确写入pg数据库,如下图所示:

 5、处理表输出步骤这里可以编辑数据库连接参数以外,主对象树-》DB连接-》pg(名字自定义的)这里依然可以进行数据库连接参数,如下图所示:

 

posted @ 2024-07-26 22:43  慕容尘轩  阅读(41)  评论(0编辑  收藏  举报