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

Posted

技术标签:

【中文标题】使用 C# 从 AWS 上的 S3 读取 Avro 数据【英文标题】:Use C# to read Avro data from S3 on AWS 【发布时间】:2021-12-27 16:37:01 【问题描述】:

我正在尝试编写一个非常基本的 C# 控制台应用程序来读取 AWS 中的存储桶。我要读取的文件是 avro 格式。

此时我有一个控制台程序,其中包含 AWSSDK.s3、AWSSDK.Core 和 Apache 的 avro 包的 nuget 包。

我知道如何获取存储桶中的文件列表。所以我可以连接到 AWS。我想我现在需要做的是弄清楚如何反序列化数据。

最终目标是将数据加载到 SQL Server 表中。我正在处理的文件不是很大。

我们正在与另一家公司合作开展此项目,他们正在向我们发送 avro 格式的数据。

我对 AWS 编程完全陌生,直到大约一周前才听说过 avro。在互联网上查找信息有点困难。

任何帮助都会很棒。

谢谢。

【问题讨论】:

【参考方案1】:

首先,您需要使用适用于 .NET 的 AWS 开发工具包从 Amazon S3 存储桶中读取对象数据。您可以使用 client.GetObjectAsync 方法来读取数据。请参阅 Github 中的此示例:

https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/dotnetv3/S3/GetObjectExample/GetObjectExample/GetObject.cs

对于您的用例,您需要使用像 https://www.nuget.org/packages/Apache.Avro/ 这样的库来处理 Avro 要求。由于这是一个非常具体的用例,我怀疑你会在 Internet 上找到这个具体示例。

【讨论】:

好的。我能够读取文件的内容。感谢您的帮助。 很高兴您使用适用于 .NET 的 AWS 开发工具包使用该部分

以上是关于使用 C# 从 AWS 上的 S3 读取 Avro 数据的主要内容,如果未能解决你的问题,请参考以下文章

在 emr 中使用 spark 从 S3 读取 avro 失败

无法从 S3 读取 csv 到 AWS 上 EC2 实例上的 pyspark 数据帧

使用 spark 结构化流从 s3 读取 avro 文件

AWS Glue - Avro snappy 压缩读取错误 - HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分时出错

从 BigQuery 读取数据并将其写入云存储上的 avro 文件格式

从 S3 加载 AWS EMR