В сообщении Pubsub отсутствует атрибут метки времени - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь прочитать значение метки времени сообщения Pubsub из Apache Beam.

p.apply("Read PubSub messages", PubsubIO.readMessagesWithAttributes().withIdAttribute("msg_id").withTimestampAttribute("timestamp").fromSubscription(options.getPubsubSubscription()))

Но, к сожалению, я получил ошибку An exception occured while executing the Java class. PubSub message is missing a value for timestamp attribute timestamp, которая действительно удивляет меня, так как я думал, что каждое сообщение имеет временную метку по умолчанию.

Почему мое сообщение не имеет отметки времени? Это потому, что я опубликовал его через интерфейс Pubsub?

1 Ответ

1 голос
/ 14 мая 2019

Каждому сообщению Pub / Sub будут назначаться временные метки по умолчанию, если вы опустите .withTimestampAttribute().Когда вы добавляете .withTimestampAttribute("timestamp"), это означает, что вы будете указывать временные метки в атрибуте timestamp каждого сообщения.Например, используя пользовательский интерфейс:

enter image description here

Тогда, управление окнами будет относительным по отношению к этим временным меткам, и, если вам потребуется доступ к нему из конвейера,Вы можете использовать ProcessContext.timestamp() (подробнее здесь ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...