_tp_time(事件时间)
所有流数据都应有事件时间
流是数据存在的地方,每个数据包含一个 _tp_time
列作为事件时间。 Timeplus 将此属性作为事件的一个重要特征。
事件时间用来确定事件发生的时间,例如一个人生日。 它可以是下单时的确切时间戳,用户登录系统时的确切时间戳,发生错误时的确切时间戳,或者 IoT 设备报告其状态时的确切时间戳。 如果事件中没有合适的时间戳属性,Timeplus 将根据数据摄取时间生成事件时间。
默认情况下, _tp_time
列在 datetime64(3, 'UTC')
类型以毫秒为精度。 你也可以以 datetime
类型创建它,精度为秒。
当您要创建一个新的流时,请选择正确的列作为事件时间。 If no column is specified, then Timeplus will use the current timestamp as the value of _tp_time
It's not recommended to rename a column as _tp_time at the query time, since it will lead to unexpected behaviour, specially for Time Travel.
为什么事件时间受到不同 的处理
事件时间几乎在任何地方在 Timeplus 数据处理和分析工作流程中使用:
- 在执行基于时间窗口的聚合时, 例如 tumble 或 hop 以获取每次窗口中的下载数据或外部数据, Timeplus将使用事件时间来决定某些事件是否属于特定窗口
- 在这种具有时间敏感性的分析中,事件时间也用来识别不合顺序的事件或较晚的事件, 并丢弃它们以便及时获得串流洞察力。
- 当一个数据流与另一个数据流连接时,事件时间是整理数据的关键,而不必指望两个事件会在完全相同的毫秒内发生。
- 事件时间也发挥重要作用来设备数据在流中保存的时间。
如何指定事件时间
在数据摄取过程中指定
当您 摄取数据 到 Timeplus 时,您可以在数据中指定一个属性来最能代表事件时间。 即使该属性是在 字符串
类型中,Timeplus 将自动转换为时间戳以便进一步处理。
如果您不在向导中选择属性,则 Timeplus 将使用摄取时间来显示事件时间。 例如:当 Timeplus 接收数据时。 这可能对大多数静态或维数据很有用,例如带有邮政编码的城市名称。