使用 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 数据帧
AWS Glue - Avro snappy 压缩读取错误 - HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分时出错