【问题标题】:Query parquet data from Azure Data Lake using C# from an Azure Web API App使用 Azure Web API 应用程序中的 C# 从 Azure Data Lake 查询 parquet 数据
【发布时间】:2021-01-24 16:26:11
【问题描述】:

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

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

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

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

Q2:有人对此有任何想法吗?

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

【问题讨论】:

    标签: azure apache-spark azure-data-lake azure-api-apps azure-data-lake-gen2


    【解决方案1】:

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

    您还可以评估 Query AccelerationAzure Data ExplorerSynapse Analytics on-demand SQL (example syntax)。

    【讨论】:

    • 探索了所有这些并没有帮助,因为我们需要从 WebAPI C# 项目中查询数据。查询加速正在工作,但似乎有一个限制,即不支持对 Parquet 文件的查询。
    • @SBirthare Parquet.NET 应该可以工作。对于 Synapse 和 Azure 数据资源管理器,您是说 Web API 无法打开与其他服务的连接以作为查询 parquet 文件的一种方式?
    • 我会再试一次,但是由于知识和经验有限,我正在寻找一个我没有找到的例子。
    • 一旦我们使用流分析作为 Parquet 格式将数据从 Event Hub 存储到 DataLake 中,我们就能够使用 Synapse Analytics SQL-on-demand 功能。 ODBC 驱动支持允许我们打开一个 SQL 连接,就像我们查询数据 SQL Server 数据库一样。
    【解决方案2】:

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

    这给出了如何使用 SQL 查询 parquet 文件。

    【讨论】:

    • 最好将其作为对问题的评论,而不是答案。
    猜你喜欢
    • 1970-01-01
    • 2019-07-22
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2021-08-12
    • 2018-08-01
    相关资源
    最近更新 更多