Как избежать предупреждающего сообщения при чтении данных BigQuery в пользовательский тип данных: не удается проверить сериализованные элементы типа BoundedSource

#java #google-cloud-dataflow #apache-beam

#java #google-cloud-поток данных #apache-beam

Вопрос:

Я определил пользовательский тип данных, ссылающийся на документ здесь. https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java#L127

И считайте данные из BigQuery, используя приведенный ниже код. https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java#L375

Предупреждающее сообщение: не удается проверить, что сериализованные элементы типа BoundedSource имеют четко определенный метод equals. Это может привести к неправильным результатам в некоторых PipelineRunner.

Это сообщение появляется на шаге TriggerIdCreation/Read(CreateSource)/Read(CreateSource)/Read(BoundedToUnboundedSourceAdapter)/StripIds.out0

Я попытался добавить метод equals() к классу пользовательского типа данных следующим образом

     @Override
    public boolean equals(Object object) {
        if (this == object) return true;
        if (object == null || getClass() != object.getClass()) return false;
        if (!super.equals(object)) return false;
        WeatherData that = (ErrorTelop) object;
        return Objects.equals(xxx, that.xxx) amp;amp;
               Objects.equals(yyy, that.yyy);
    }
  

что не помогает.

У кого-нибудь есть идея избежать этого предупреждения?

Комментарии:

1. Ваш конвейер работает правильно или вы получили какую-либо ошибку.неудачное выполнение? Кроме того, поскольку в предупреждении указано, что ваши данные могут быть неверными. Вы проверили, соответствует ли результат?

2. Конвейер работает должным образом. Однако предупреждение заставляет меня беспокоиться об этом в будущем.

Ответ №1:

Предупреждение, которое вы получаете, похоже, не связано с тем, что вы делаете. Я думаю, что предупреждение исходит от чего-то, что делает сам Apache Beam. Фактический тип, на который он жалуется, — это BoundedSource, тип внутреннего луча, а не ваш пользовательский тип, и, судя по моему просмотру кода, он, скорее всего, связан с BoundedToUnboundedSourceAdapter упомянутым там.

Если ваш конвейер работает правильно, то вы, вероятно, можете проигнорировать это. Если вы действительно хотите кого-то предупредить, вы можете связаться со списками пользователей Beam или разработчиков.