我正在 Spark 中编写流式作业以将数据加载到 Splice Machine 中。我按照社区教程使用 VTI 将数据插入 Splice,但所有示例都执行 INSERT。相反,我应该对记录执行 UPSERT。有什么办法可以做到这一点?
谢谢你。
我正在 Spark 中编写流式作业以将数据加载到 Splice Machine 中。我按照社区教程使用 VTI 将数据插入 Splice,但所有示例都执行 INSERT。相反,我应该对记录执行 UPSERT。有什么办法可以做到这一点?
谢谢你。
是的,您可以通过将 VTI 语句更改为使用 insertMode 提示来执行 upsert。您的声明将类似于以下内容:
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 时您可能会发现另外两个有用的提示是: