如何使用Talend RestFul Services将数据发布到多个表中

时间:2018-02-08 12:17:52

标签: mysql rest talend

我有3个名为PATIENT,PHONE和PATIENT_PHONE的表。

  1. PATIENT表包含以下列:id,firstname,lastname,email和dob。
  2. PHONE表包含列:id,type和number。
  3. PATIENT_PHONE表包含以下列:patient_id,phone_id。
  4. PATIENT和PHONE表由PATIENT_PHONE表映射。所以我必须加入这3个表来将firstname,lastname,email和number字段发布到数据库中。

    我试过这样的: 1

    first_xmlmap的架构 [2]

    患者和患者_电话的模式映射 [3]

1 个答案:

答案 0 :(得分:0)

我假设您希望针对Web服务的每个请求将相同的数据写入同一数据库实例中的多个数据库表。

如何使用tHashOutput和tHashInput组件?

如果您在组件Pallete中看不到tHash *组件,请转到: 文件>编辑项目属性>设计师> Pallete设置......

突出显示已过滤的组件,单击箭头将其移出过滤器,然后单击“确定”。

tHash组件允许您将一些数据推送到内存中,以便稍后再读取。请注意,此数据将写入易失性存储器(RAM),并在JVM退出后丢失。

确保取消选中tHashOutput组件中的“append”,并确保tHashInput组件在读取后不清除其缓存。

您可以看到一些简单的错误处理写入我的示例中,这可以保证客户端始终从服务中获得某种响应,即使在处理请求时出现问题也是如此。

另请注意,写入数据库表是一个全有或全无的事务 - 也就是说,当处理请求时没有错误时,服务只会将数据写入所有指定的表。

希望这能让您充分了解如何将此类功能扩展到您自己的实现。

Talend REST Web Service for writing data to multiple tables, with error handling