开发者社区> 问答> 正文

Flink写入Hologres的数据是如何更新的

已解决

Flink写入Hologres的数据是如何更新的

展开
收起
提个问题 2024-06-01 19:04:08 13 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    根据Hologres Sink的配置和Hologres表的属性,流式语义分为以下两种:
    • Exactly-once(仅一次):即使在发生各种故障的情况下,系统只处理一次数据或事件。
    • At-least-once(至少一次):如果在系统完全处理之前丢失了数据或事件,则从源头重新传输,因此可以多次处理数据或事件。如果第一次重试成功,则不必进行后续重试。
    在Hologres结果表中使用流式语义,您需要注意以下几点:
    • 如果Hologres物理表未设置主键,则Hologres Sink使用At-least-once语义。
    • 如果Hologres物理表已设置主键,则Hologres Sink通过主键确保Exactly-once语义。当同主键数据出现多次时,您需要设置mutatetype参数确定更新结果表的方式,mutatetype取值如下:
      • insertorignore(默认值):保留首次出现的数据,忽略后续所有数据。
      • insertorreplace:保留首次出现的数据,整行替换已有数据。
      • insertorupdate:保留首次出现的数据,更新已有数据的部分列。例如一张表有a、b、c和d四个字段,a是PK(Primary Key),写入Hologres时只写入a和b两个字段,在PK重复的情况下,系统只会更新b字段,c和d保持不变。
    说明:
    • 当mutatetype设置为insertorupdate或insertorreplace时,系统根据主键更新数据。
    • Flink定义的结果表中的数据列数不一定要和Hologres物理表的列数一致,您需要保证缺失的列没有非空约束,即列值可以为Null,否则会报错。
    2024-06-01 19:04:10
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载