2015-10-29 62 views
2

如何獲得Pentaho Kettle將JSON數據發送到PostgreSQL JSONB字段?任何時候我嘗試將JSON數據輸出到Postgresql JSONB字段類型時,都會出現錯誤。將JSON數據發送到PostgreSQL文本字段可以正常工作,但我想在PostgreSQL中維護JSON格式。Pentaho Kettle - 從JSON表輸出到Postgresql JSONB字段

在Kettle論壇發表了這個問題,但沒有得到答覆。所以我正在嘗試這個論壇。

感謝您的輸入!

編輯: 當我運行Pentaho的水壺改造和PostgreSQL中目標字段類型JSONB的,我得到這個錯誤:

2015/10/29 15:39:32 - Table output 2.0 - Connected to database [test] (commit=1000) 
2015/10/29 15:40:43 - Table output 2.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : Unexpected batch update error committing the database connection. 
2015/10/29 15:40:43 - Table output 2.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseBatchException: 
2015/10/29 15:40:43 - Table output 2.0 - Error updating batch 
2015/10/29 15:40:43 - Table output 2.0 - Batch entry 0 INSERT INTO test_raw_dataj (sensor_readings) VALUES ('{"data":[{"readings":"[[1325404802000,2.8020381927490234],[1325404812000,2.8020381927490234],[1325404822000,2.817678451538086],[1325404832000,2.817678451538086],[1325404842000,2.8333663940429688],[1325404852000,2.8333663940429688]]","id":"59997f"}]}') was aborted. Call getNextException to see the cause. 
2015/10/29 15:40:43 - Table output 2.0 - at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2743) 
2015/10/29 15:40:43 - Table output 2.0 - at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1928) 
2015/10/29 15:40:43 - Table output 2.0 - at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:405) 
2015/10/29 15:40:43 - Table output 2.0 - at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2892) 
2015/10/29 15:40:43 - Table output 2.0 - at org.pentaho.di.core.database.Database.emptyAndCommit(Database.java:1362) 
2015/10/29 15:40:43 - Table output 2.0 - ... 3 more 
2015/10/29 15:40:43 - Table output 2.0 - Finished processing (I=0, O=0, R=1, W=0, U=0, E=1) 

但是,在運行相同的變換和目標領域PostgreSQL是的TEXT類型,一切工作正常。

+0

您能否提供一些您嘗試過的示例,以及由此產生的錯誤消息, –

回答

2

我試圖重新創建問題,最後我找到了解決方案。
在你table output

  • 去編輯在連接
  • 然後選擇選項前面的按鈕。
  • 給出的參數值,如下所示

參數stringtypeunspecified

enter image description here

注:在常規選項卡中,你必須選擇連接類型,PostgreSQL和填寫必要的設置。

+0

Upvote是否對您有幫助;) –

0

每當我在表格輸出中出現錯誤時,我會錯誤地標記「使用批量插入進行更新」。原因在於,在批處理模式下,水壺只會拋出一般的異常而沒有錯誤的細節,而在禁用的批處理模式下,你會看到帶有錯誤全部細節的PSQLException。可以節省你很多時間。