Запись данных Avro в BigQuery - PullRequest
       0

Запись данных Avro в BigQuery

0 голосов
/ 18 февраля 2020

Используя библиотеку Confluent.Kafka, я создал потребителя. NET Kafka, который считывает данные из топи c и десериализует данные Avro в. NET классы.

Теперь я пытаюсь сериализовать его обратно в формат Avro и отправить его в BigQuery. Я ожидаю, что BigQuery автоматически сгенерирует структуру таблицы на основе схемы Avro.

Я настроил свой потребительский десериализатор следующим образом (AvroGeneratedDto -. NET класс, который представляет схему Avro):

            var builder = new ConsumerBuilder<string, AvroGeneratedDto>(
                consumerConfig
            ).SetValueDeserializer(
                    new SyncOverAsyncDeserializer<AvroGeneratedDto>(
                        new AvroDeserializer<AvroGeneratedDto>(_configProvider.SchemaRegistryClient)));

It десериализует данные в AvroGeneratedDto OK.

Теперь я пытаюсь сериализовать их обратно, используя схему, хранящуюся в реестре схем:

var serializer = new AvroSerializer<AvroGeneratedDto>(_configProvider.SchemaRegistryClient);
var avroSerialized = await serializer.SerializeAsync(item.Value, new SerializationContext(MessageComponentType.Value, topic: "MyTopic"));

И загрузить их в BigQuery:

                    MemoryStream avroStream = new MemoryStream(avroSerialized);
                    var job = await _bigQueryClient.UploadAvroAsync(projectId: projectId, datasetId: ArtsdatasetId, tableId: TableId, schema: null, input: avroStream, options: options);

Однако из BigQuery я получаю следующее:

" Ошибка при чтении данных, сообщение об ошибке: Библиотеке Apache Avro не удалось проанализировать заголовок со следующей ошибкой: Неверный файл данных . Волхвы c не совпадают".

В чем здесь проблема?

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