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

各位有没有遇到过spark sql查询hudi 数据时没有办法查到flink cdc ?

各位有没有遇到过spark sql查询hudi 数据时没有办法查到flink cdc 同步到hudi实时数据的变化,用hive是没有问题的。但是我重开一个spark sql客户端数据就能发现变化了?

展开
收起
真的很搞笑 2024-01-09 11:23:16 93 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这种情况可能是由于Spark SQL和Flink CDC之间的数据同步延迟导致的。当你在Spark SQL中查询Hudi数据时,可能会使用到缓存或者本地的临时表,这些表可能没有及时更新Flink CDC同步到Hudi的数据。

    为了解决这个问题,你可以尝试以下方法:

    1. 清除Spark SQL的缓存:在执行查询之前,可以使用UNCACHE命令来清除所有已加载的缓存。例如:

      UNCACHE;
      
    2. 使用LATEST_PARTITIONEARLIEST_PARTITION来指定分区范围:这样可以确保查询的是最新的数据。例如:

      SELECT * FROM hudi_table WHERE partition = 'latest';
      
    3. 检查Flink CDC的配置:确保Flink CDC的配置正确,包括源数据库、目标数据库、表名等。如果配置有误,可能会导致数据同步延迟。

    4. 调整Spark SQL和Flink CDC的同步频率:如果数据同步频率过高,可能会导致查询不到最新的数据。可以尝试降低同步频率,或者增加Flink CDC的并行度以提高数据同步速度。

    5. 考虑使用其他数据源:如果以上方法都无法解决问题,可以考虑使用其他数据源(如Kafka、Elasticsearch等)来查询Hudi数据,以减少对Spark SQL的依赖。

    2024-01-09 15:36:27
    赞同 展开评论 打赏
  • 应该是 Spark 有缓存,设置 spark.sql.filesourceTableRelationCacheSize = 0 试下 ,此回答整理自钉群“Flink CDC 社区”

    2024-01-09 11:52:42
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Hybrid Cloud and Apache Spark 立即下载
    Scalable Deep Learning on Spark 立即下载
    Comparison of Spark SQL with Hive 立即下载