首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pentaho插入更新/合并/维度查找/更新

使用Pentaho插入更新/合并/维度查找/更新
EN

Stack Overflow用户
提问于 2017-10-12 13:21:40
回答 1查看 554关注 0票数 0

在PostgreSQL.I中有一个'TICKETS‘表。我使用Pentaho执行一个ETL作业来填充这个表。还有一个GUI,用户可以在该GUI上进行更改,结果将反映在此表中。表中的字段为:

代码语言:javascript
复制
"OID" Char(36)  <------ **PRIMARY KEY**
, "CUSTOMER" VARCHAR(255)
, "TICKETID" VARCHAR(255)
, "PRIO_ORIG" CHAR(36)
, "PRIO_COR" CHAR(36)
, "CATEGORY" VARCHAR(255)
, "OPENDATE_ORIG" TIMESTAMP
, "OPENDATE_COR" TIMESTAMP
, "TTA_ORIG" TIMESTAMP
, "TTA_COR" TIMESTAMP
, "TTA_DUR" DOUBLE PRECISION
, "MTTA_TARGET" DOUBLE PRECISION
, "TTA_REL_ORIG" BOOLEAN
, "TTA_REL_COR" BOOLEAN
, "TTA_DISCOUNT_COR" DOUBLE PRECISION
, "TTA_CHARGE_COR" DOUBLE PRECISION
, "TTR_ORIG" TIMESTAMP
, "TTR_COR" TIMESTAMP
, "TTR_DUR" DOUBLE PRECISION
, "MTTR_TARGET" DOUBLE PRECISION
, "TTR_REL_ORIG" BOOLEAN
, "TTR_REL_COR" BOOLEAN
, "TTR_DISCOUNT_COR" DOUBLE PRECISION
, "TTR_CHARGE_COR" DOUBLE PRECISION
, "COMMENT" VARCHAR(500)
, "USER" CHAR(36)
, "MODIFY_DATE" TIMESTAMP
, "CORRECTED" BOOLEAN
, "OPTIMISTICLOCKFIELD" INTEGER
, "GCRECORD" INTEGER
, "ORIGINATOR" Char(36)

我想在列TICKETID+ORIGINATOR+CUSTOMERS相同时更新表。否则,将执行插入。

我该怎么用五角星来做呢?step Dimension/Lookup更新是否适合它,或者只有Update/Insert步骤可以完成工作?

任何帮助都将不胜感激。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-12 15:32:45

Eugene Lisitsky的建议是一个很好的实践:您可以将其硬连接到数据库约束中,并让PostgesSQL来完成这项工作。

对于PDI解决方案:您的表看起来不像缓慢变化的维度,因此Insert/Update可以满足您的需求。

如果您想要使用Dimension_update,您需要修改Pentaho SCD格式的表:添加一个版本列和valid_form_date/valid_upto_date (使用PDI,修改是一个按钮操作)。

之后,当有新行进入时,将在表中搜索TICKETID+ORIGINATOR+CUSTOMERS,如果找到,则接收valitity_upto=now()。同时,在表中创建一个从now()到时间结束的version+1。

(主要)优点在于,您可以在validity_from和validity_upto之间使用一个简单的where now()来检索数据库在过去任何日期的状态。

(主要)缺点是,您必须更改表,这可能会对GUI(复数)产生一些影响。

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

https://stackoverflow.com/questions/46701970

复制
相关文章

相似问题

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