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

Flink CDC中阿里云的flinksql,没办法指定时间戳读数据?

Flink CDC中阿里云的flinksql,没办法指定时间戳读数据?

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

    在阿里云的Flink SQL中,可以使用时间戳来指定读取数据的时间范围。具体来说,可以在创建表时指定一个时间戳字段,并在查询时使用该字段作为过滤条件。
    例如,假设你有一个名为orders的表,其中包含一个名为order_time的时间戳字段,你可以使用以下SQL语句来查询从2021年1月1日到2021年1月31日之间的所有订单:

    SELECT * FROM orders WHERE order_time >= '2021-01-01' AND order_time < '2021-02-01'
    

    在这个例子中,我们使用了>=<运算符来指定时间范围,而不是使用等于号(=),因为时间戳是一个连续的值,无法精确地表示一个特定的时间点。

    2023-11-16 13:22:39
    赞同 展开评论 打赏
  • 在Flink CDC中,确实存在指定时间戳读取数据的问题。如果您使用的是Flink CDC 2.3.0版本,并且发现指定时间戳去获取数据的操作不生效,可能的原因是Flink CDC任务的debezium.snapshot.mode配置未设置为timestamp。此外,如果在该时间戳之前没有任何数据变化,Flink CDC的默认行为是等待到达该时间戳后再开始读取数据。

    对于阿里云的flinksql,也可能存在类似的问题。如果遇到问题,您可以尝试以下解决方案:

    1. 确保Flink CDC任务的debezium.snapshot.mode配置已设置为timestamp。
    2. 如果需要读取MySQL的datetime类型数据,可以通过在Flink CDC任务中添加相应的转换器来解决。
    3. 如果scan全表数据需要花费较长时间(如小时级),且在scan全表过程中没有offset可以记录,可以考虑优化任务配置或考虑使用其他方法来记录offset信息。
    2023-11-16 10:11:51
    赞同 展开评论 打赏
  • 没必要删,无状态启动下补数据,此回答整理自钉群“Flink CDC 社区”

    2023-11-16 08:43:19
    赞同 展开评论 打赏

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

相关产品

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

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