Я не могу найти много документации по этой теме, но я сериализую объект в Avro, а затем отправляю в Azure EventHub. Я думаю, Avro тоже должен содержать схему .. потому что безКак потребитель (например, Azure Stream Analytics) узнает, как десериализовать?
Единственный пример, который я могу найти в Интернете, использует Microsoft.Hadoop.Avro.Container
пространство имен ... это, кажется, работает нормально, я могу читать через Stream Analytics... но включает ли этот код "автоматически" схему в полезную нагрузку? Я уверен, что не вижу здесь никакой ссылки:
using (var memoryStream = new MemoryStream())
using (var writer = AvroContainer.CreateWriter<T>(memoryStream, Codec.Null))
using (var seqWriter = new SequentialWriter<T>(writer, items.Count()))
{
foreach (var e in items)
{
seqWriter.Write(e);
}
return memoryStream.ToArray();
}
Пейзаж Avro в .Net кажется немного запутанным, почему существует специфический для Microsoft пакет NuGet pkg? Это кажется довольно старым, это теперь чем-то заменено? Есть ли какая-либо документация о том, как использовать стандартный Apache.Avro
NuGet pkg для создания полезной нагрузки, содержащей схему?
В документации Azure Event Hub кратко упоминается Avro, но любой поиск в Google на самом деле только захватывает Event Hub Capture. .
В любом случае ... есть ли лучший способ? Я не думаю, что могу отправить схемы отдельно для этого ..