使用 Azure Web API 应用程序中的 C# 从 Azure Data Lake 查询镶木地板数据

Query parquet data from Azure Data Lake using C# from an Azure Web API App

解决方案背景:我们有设备以一分钟的间隔将遥测数据发送到事件中心,并将其存储为 AVRO 文件。对于冷路径,我们计划将数据(存储 3 年数据所需的总存储量为 80 TB)存储到 Azure Data Lake Gen2 中。我们将需要从这个数据存储中查询数据集 运行 带有过滤器、时间跨度等的查询,从我们的 Web API 向 Azure 中的 Angular 网络应用程序提供数据。

当数据以 JSON 格式存储时,我们可以使用 C# 和 SQL 语法在 Web API 项目中使用 Azure Data Lake 的 query acceleration 功能查询数据Azure 数据湖。但是,为了最小化存储大小和更好的查询性能,建议在将数据存储到 Azure Data Lake 时使用 Parquet 文件格式。

Q1:挑战是,同一个.NET SDK(Azure.Storage.Files.DataLake)在查询数据时不支持Parquet文件格式吗?

我还为 .NET 中的大数据处理检查了“.NET for Apache Spark”,但是它运行时需要安装 JRE 和其他组件,我能找到的唯一示例是控制台应用程序。不是将部署在 Azure 中的 Web API。

Q2:有人知道吗?

问题 3:有点主观,但有没有其他方法可以使用熟悉的 SQL 在 .NET Web API 中从 Azure Data Lake 存储和获取大数据?

您可以将 Parquet.NET 视为在 .NET 中查询 Parquet 文件的选项。

您也可以评价 Query Acceleration or Azure Data Explorer or Synapse Analytics on-demand SQL (example syntax)。

https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/query-parquet-files

这给出了如何使用 SQL.

查询 parquet 文件