插入拼接机

Upsert into Splice Machine

我正在 Spark 中编写流作业以将数据加载到 Splice Machine。我已经按照使用 VTI 将数据插入 Splice 的社区教程进行操作,但所有示例都执行 INSERT。相反,我应该对记录执行 UPSERT。有什么办法可以实现吗?

谢谢。

是的,您可以通过将 VTI 语句更改为使用 insertMode 提示来执行更新插入。您的声明如下所示:

INSERT INTO IOT.SENSOR_MESSAGES --splice-properties insertMode=UPSERT select s.* from new com.splicemachine.tutorials.sparkstreaming.kafka.SensorMessageVTI(?) s ( id varchar(20), enter code here location varchar(50), temperature decimal(12,5), humidity decimal(12,5), recordedtime timestamp );

请注意,在您的 java 代码中,您需要在提示后添加换行符 (\n),否则它会认为所有内容都是提示的一部分。如果您使用的是 2.0.x 版本,则在下一个版本的拼接机中已修复使用 VTI 提示时出现的问题,我们可以将修复程序移植回该版本。

您在使用 VTI 时可能会发现有用的其他两个提示是:

  • statusDirectory:将导入/更新插入消息放在 HDFS 上的错误目录中,就像 SYSCS_UTIL.IMPORT_DATA 语句所做的那样
  • badRecordsAllowed:表示进程失败前允许的坏记录数