DV2.0实时从消息队列加载至Raw Vault时如何获取LDTS?
实时加载至Raw Vault时获取LDTS的方案
从消息本身提取可用时间戳:如果消息队列(比如Kafka、RabbitMQ)里的消息本身携带了业务事件发生时间,或者生产者发送消息时主动添加了时间戳字段,直接拿这个作为LDTS就行。要是消息系统自带元数据时间(比如Kafka的
CreateTime),也可以用,但得注意区分是生产者生成的业务时间,还是Broker接收的系统时间,优先选能反映业务事件真实发生时刻的那个。在加载环节实时生成:如果消息里没带合适的时间戳,就在数据往Raw Vault加载的处理节点(比如Flink/Spark的流式处理算子、或者自定义的加载服务)生成当前时间戳当LDTS。这里要注意所有加载节点的时钟必须同步,最好用NTP校准过的系统时间,避免出现LDTS乱序或者不一致的问题。
利用消息系统的元数据时间:有些消息系统会给每条消息记录Broker端的接收时间,或者和偏移量绑定的时间戳,这种也能拿来当LDTS。不过这个时间是数据进入消息中间件的时间,不是业务事件发生的时间,适合对业务时间精度要求不高的场景。
内容的提问来源于stack exchange,提问作者Blue Clouds
相关产品推荐
相关产品推荐

