Apache Avro for c# vs Microsoft.Avro.Core

Posted

技术标签:

【中文标题】Apache Avro for c# vs Microsoft.Avro.Core【英文标题】: 【发布时间】:2018-03-29 17:20:36 【问题描述】:

我是 avro 新手,正在尝试在新项目中实现 avro 模式序列化。我看到有两个不同的 NuGet 包可用,我想知道两者之间的区别是什么。

    Microsoft 版本:https://github.com/welly87/Apache-Avro-Core(除了 hadoop 和 azure 版本,找不到任何文档) Apache 的版本 1.7.7.2 :https://avro.apache.org/docs/1.7.7/api/csharp/index.html

还有任何可用的示例来查看如何完成序列化或在给定任何通用架构的情况下在 c# 中进行 avro 序列化的最佳实践。我看到很多关于 java 的信息,但几乎没有关于 c# 的信息。使用这两者中的哪一个最明智?

【问题讨论】:

我也在关注这个问题,风景真是一团糟……你有没有得到任何正确的答案?我正在努力解决的主要问题是如何嵌入架构..如果需要?! 【参考方案1】:

Microsoft.Avro.Core 包似乎不再处于预发布状态,您可以在 microsoft-avro 存储库中找到源代码。

目前没有很多文档,但有不少unit tests 可以从中收集用法。

具体来说,看看AvroContainerTests,有测试显示使用 Microsoft 类型和 Apache 类型进行读/写。

原始公告声明“该库可以生成具有嵌入式架构的可移植文件。文件格式与 Avro 容器文件规范兼容,可以跨平台使用”,因此对于嵌入式架构,您将需要使用 AvroContainer

您还可以使用Official Sample Test 作为起点。

【讨论】:

【参考方案2】:

这不是一个答案,但由于代表无法添加 cmets 有一些微软版本的例子:https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-dotnet-avro-serialization#sample-5-serialization-using-object-container-files-with-a-custom-compression-codec

【讨论】:

以上是关于Apache Avro for c# vs Microsoft.Avro.Core的主要内容,如果未能解决你的问题,请参考以下文章

Apache Avro 1.11.0 入门 (Java 版本)

Apache Avro 1.11.0 入门 (Java 版本)

Apache Avro 1.11.0 入门 (Java 版本)

Apache Avro 1.11.0 入门 (Java 版本)

Apache Avro 1.11.0 入门 (Java 版本)

使用 C# 从 AWS 上的 S3 读取 Avro 数据