开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink cdc delete主键删除源表,目标表未删除数据问题

flink cdc delete源表,目标表未删除,
如下:
INSERT INTO sink_table (
id,
device_id,
name,
device_type,
device_name,
gateway_serial_num,
points_model_id,
device_uniq_code,
etl_time)
SELECT
t1.id,
t1.device_id,
t2.device_type,
t2.device_name,
t2.gateway_serial_num,
t2.points_model_id,
CONCAT_WS('-', t1.station_id, t1.data_object_id),
CURRENT_TIMESTAMP
FROM table_a t1
LEFT JOIN
(
SELECT
id,
device_id,
name AS device_name,
cim_code AS device_type,
gateway_serial_num,
points_model_id
FROM table_b
UNION ALL
SELECT
id,
dg_id AS device_id,
name AS device_name,
type AS device_type,
gateway_serial_num,
CAST(NULL AS BIGINT) AS points_model_id
FROM table_c
) t2
ON t1.device_id = t2.id;

展开
收起
1731446667249005 2023-11-07 11:16:53 70 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您的描述,看起来您的问题是希望通过 Flink CDC 功能从 source 表中读取数据并将其写入到目标表中,但是在源表已经被删除的情况下仍然继续执行查询。在这里,有几个重要的注意事项需要考虑到:

    1. 如果源表已经被删除,则 Flink CDC 可能会抛出异常或出现错误,因为它找不到源表。
    2. 即使源表已经被删除,您还可以从 Flink CDC 中检索到最后一次成功的快照,并将其写入目标表中。但是请注意,这可能不会产生期望的结果,因为源表中的数据已经被删除了。
    3. 如果您的目标是继续执行查询并且将现有结果写入目标表,请确保源表已经被正确地恢复,并确保查询能够在 Flink CDC 中成功运行。
    2023-11-07 13:42:48
    赞同 1 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

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