当前位置: 首页 > 知识库问答 >
问题:

时间戳

茅桐
2023-03-14

我有一个Flink程序,它接受两个流,即数据/传感器读数流和警报规则流。我正在广播规则流,并将其连接到数据流以生成动态警报。ProcessingTime的一切都很好,但EventTime却不行。我已经分配了时间戳

>

  • 当两个流(即带有时间戳的流)同时出现时,如何使用“EventTime”生成警报

    我是否也必须为我的规则流分配时间戳和水印?

    因为我的规则流只有在有任何添加/修改时才会有记录。是否有任何解决方法或黑客来避免/克服这种情况?

    任何帮助/建议将不胜感激。

    -我试过了!我只尝试了一个流,即数据流,通过硬编码的窗口规则生成警报。它运行良好。但是当我将它与规则流连接时,它无法生成任何警报/输出。

    处理时间一切正常,但事件时间则不然。

    --我所期望的!我希望我的程序在将连续数据流与非连续规则流连接时能够正常工作,以使用“EventTime”生成动态警报。

  • 共有1个答案

    吕皓
    2023-03-14

    Flink培训中的这个练习正好涵盖了这种情况:https://training.ververica.com/exercises/taxiQuery.html.有关详细信息,请参阅提示和解决方案,但所采取的方法是在流上使用这个时间戳提取器/水印生成器,规则如下:

    // Once the two streams are connected, the Watermark of the KeyedBroadcastProcessFunction operator
    // will be the minimum of the Watermarks of the two connected streams. Our query stream has a default
    // Watermark at Long.MIN_VALUE, and this will hold back the event time clock of the
    // KeyedBroadcastProcessFunction, unless we do something about it.
    public static class QueryStreamAssigner implements AssignerWithPeriodicWatermarks<String> {
        @Nullable
        @Override
        public Watermark getCurrentWatermark() {
            return Watermark.MAX_WATERMARK;
        }
    
        @Override
        public long extractTimestamp(String element, long previousElementTimestamp) {
            return 0;
        }
    }
    

    这具有使另一个流完全负责水印的效果,这是在这种情况下想要的。

     类似资料:
    • 本文向大家介绍sqlite时间戳转时间语句(时间转时间戳),包括了sqlite时间戳转时间语句(时间转时间戳)的使用技巧和注意事项,需要的朋友参考一下 下面是具体的实现代码:

    • 我正在尝试使用Joda在一个简单的Java程序中获取UTC时间戳: 程序输出如下: 毫秒值是正确的UTC时间(即用时区确认)第二个值是时区。 我需要的是UTC值不变为(即独立于TZ),用于数据库写入。这可能吗? 我知道是本地日期(GMT-4),是UTC(GMT-0)。日期的输出值如下: 我尝试了所有组合,试图将的UTC值作为java.sql.TimeStamp: 用于测试的打印输出: 第一行是正确

    • 我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。

    • 问题内容: 我有一列称为“ s_timestamp”。 如何返回时间戳中具有当天的所有记录? 例如, 我想要以下输出: 让我知道是否不清楚。 问题答案: 只是使用。例如 日期() CURDATE()

    • 从我的数据库我检索值为: 我想要上面的: 我试着用当前的时间戳跟踪 实际时间戳:2018年6月22日星期五16:07:35 更新了,我不想更新,有没有办法保持原样?

    • 问题内容: 我需要计算两个日期之间经过的时间。 这里要注意的是,我需要像YouTube一样用视频评论时间戳来显示它。也就是说,仅以最大的方式显示它。 例如, 如果时间是50秒前,应该说是50秒前。 如果时间超过一分钟,则应说一分钟前/十分钟前,等等。 如果时差是1小时30分钟,则应显示:一个小时前。 如果时间是一个半星期而不是一个星期前应该说的话。 如果时间超过一个月,则应说一个月前/两个月前,等