你不知道message.timestamp.input.pattern
secor ignores message.timestamp.input.pattern
我正在尝试使用 pinterest secor 将数据从 google 云存储加载到大查询,但大查询使用时间戳,如“2019-08-16 15:30:00”,而 secor JsonMessageParser 使用长整数值(大查询可以使用整数,但出于某种原因,当尝试将整数时间戳加载到大查询时,它将秒转换为微秒(添加 6 个零)然后抱怨时间戳超出范围)
设置为秒:
# Name of field that contains a timestamp, as a date Format, for JSON. (2014-08-07, Jul 23 02:16:57 2005, etc...)
# Should be used when there is no timestamp in a Long format. Also ignore time zones.
message.timestamp.input.pattern=ts
什么都不做,没有 message.timestamp.name
字段它使用“1970-01-01”时间戳日期。无论我在 message.timestamp.input.pattern
中设置什么,它似乎都被忽略了。
将 json 数据加载到具有“2019-08-16 15:30:00”等时间戳值的大查询中是可行的,但我无法让 secor 识别时间戳等值。
知道如何解决这个问题吗?
您可以编写 TimestampedMessageParser 的自定义实现。扩展此 class 并自定义 class。然后覆盖方法 extractPartitions(Message payload)
和 parse(Message message)
方法二,从消息对象中获取字节数组mPayload。这将使您的 json 数据以字节的形式存在。使用任何 JSON 格式化程序来提取您的时间戳。然后将该时间戳更改为您想要的任何格式。然后将此 json 对象转换回字节数组,然后将其分配给消息对象的有效负载字节数组。
在第一种方法中,使用此更新值根据您的要求创建分区。
我正在尝试使用 pinterest secor 将数据从 google 云存储加载到大查询,但大查询使用时间戳,如“2019-08-16 15:30:00”,而 secor JsonMessageParser 使用长整数值(大查询可以使用整数,但出于某种原因,当尝试将整数时间戳加载到大查询时,它将秒转换为微秒(添加 6 个零)然后抱怨时间戳超出范围)
设置为秒:
# Name of field that contains a timestamp, as a date Format, for JSON. (2014-08-07, Jul 23 02:16:57 2005, etc...)
# Should be used when there is no timestamp in a Long format. Also ignore time zones.
message.timestamp.input.pattern=ts
什么都不做,没有 message.timestamp.name
字段它使用“1970-01-01”时间戳日期。无论我在 message.timestamp.input.pattern
中设置什么,它似乎都被忽略了。
将 json 数据加载到具有“2019-08-16 15:30:00”等时间戳值的大查询中是可行的,但我无法让 secor 识别时间戳等值。
知道如何解决这个问题吗?
您可以编写 TimestampedMessageParser 的自定义实现。扩展此 class 并自定义 class。然后覆盖方法 extractPartitions(Message payload)
和 parse(Message message)
方法二,从消息对象中获取字节数组mPayload。这将使您的 json 数据以字节的形式存在。使用任何 JSON 格式化程序来提取您的时间戳。然后将该时间戳更改为您想要的任何格式。然后将此 json 对象转换回字节数组,然后将其分配给消息对象的有效负载字节数组。 在第一种方法中,使用此更新值根据您的要求创建分区。