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

flink cdc中,我就是oracle单表到mysql单表,通过sql写的,这种怎么打散呢 ?

flink cdc中,我就是oracle单表到mysql单表,通过sql写的,这种怎么打散呢 ?sql怎么操作?
insert into sink_table
select
ID,NAME,AGE
from source_table;

展开
收起
十一0204 2023-07-24 10:07:25 76 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您使用 Flink CDC 将 Oracle 单表的数据同步到 MySQL 单表中,并且使用 SQL 语句进行配置,则可以考虑通过使用多个任务来打散数据流。
    具体来说,可以将 Oracle 表中的数据按照某种规则进行拆分,然后将拆分后的数据分别发送到不同的 Flink CDC 任务中进行处理,最后将结果合并到 MySQL 目标表中。
    例如,假设您有一个名为 order 的 Oracle 表,其中包含了订单数据,您可以按照订单的日期、地区、客户等维度将订单数据进行拆分,然后将拆分后的数据分别发送到不同的 Flink CDC 任务中进行处理。拆分后的数据可以通过 WHERE 子句来实现,例如:
    sql
    Copy
    -- 拆分日期为 2021-07-01 的订单数据
    SELECT * FROM order WHERE order_date = '2021-07-01';

    -- 拆分地区为 '华东' 的订单数据
    SELECT * FROM order WHERE region = '华东';

    -- 拆分客户为 '张三' 的订单数据
    SELECT * FROM order WHERE customer = '张三';
    然后,可以使用多个 Flink CDC 任务来处理不同的数据流。每个任务都可以将数据流从 Oracle 读取并转换为适合 MySQL 的数据格式,然后将数据流写入 MySQL 目标表。

    2023-07-29 18:55:31
    赞同 展开评论 打赏
  • 存在即是合理

    在 Flink CDC 中,如果想将 Oracle 单表数据打散到 MySQL 单表中,可以使用以下 SQL 语句:

    INSERT INTO sink_table
    SELECT
        t1.ID,
        t1.NAME,
        t1.AGE
    FROM source_table AS t1
    UNION ALL
    SELECT
        t2.ID,
        t2.NAME,
        t2.AGE
    FROM source_table AS t2;
    

    这个 SQL 语句使用了 UNION ALL 将源表中的数据进行合并,并将结果插入到目标表中。这样就可以实现将 Oracle 单表数据打散到 MySQL 单表中的目的。

    2023-07-24 12:37:47
    赞同 展开评论 打赏

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

相关产品

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

    更多
    PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
    PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
    Oracle云上最佳实践 立即下载

    相关镜像