搜索存储在 Azure Data Lake 中的数据

Posted

技术标签:

【中文标题】搜索存储在 Azure Data Lake 中的数据【英文标题】:Searching through data stored in Azure Data Lake 【发布时间】:2020-01-07 09:38:30 【问题描述】:

我有以下用于构建数据湖的用例(例如在 Azure 中):

我的组织与濒临破产的公司打交道。一旦公司破产,它需要将所有数据交给我们,包括结构化数据(例如 CSV)以及半结构化和非结构化数据(例如 PDF、Word 文档、图像、JSON、.txt 文件等。 )。拥有数据湖在这里会有所帮助,因为数据量可能很大且不可预测,而 Azure 数据湖似乎是一种成本相对较低且可扩展的存储解决方案。

但是,除了存储所有这些数据之外,我们还需要为业务用户提供一种工具,使他们能够搜索所有这些数据。我可以想象两种搜索类型:

搜索特定文件(使用文件名或部分文件名作为搜索条件) 搜索所有文本文件(word 文档、.txt 和 PDF)并识别符合搜索条件的文件(例如正在搜索的特定短语)

是否有任何开箱即用的工具可以使用 Azure Data Lake 作为数据源,使用户能够执行此类搜索?

【问题讨论】:

您好 RobW,如果我的回答对您有帮助,您能否将其标记为答案?这对其他社区成员可能是有益的。谢谢。 【参考方案1】:

很遗憾,目前还没有工具可以帮助您直接在 Data Lake 中过滤文件。

即使Azure Storage Explorer 也只支持前缀搜索。

Data Factory 支持我们过滤文件,但它通常用于复制和传输数据。参考:Data Factory supports wildcard file filters for Copy Activity

更新:

Azure Cognitive Search 似乎是个不错的选择。

认知搜索支持从数据湖导入源,并提供过滤器帮助我们搜索文件。

筛选器提供用于选择 Azure 认知搜索查询中使用的文档的条件。未过滤的搜索包括索引中的所有文档。过滤器将搜索查询的范围限定为文档子集。

我们可以参考Filters in Azure Cognitive Search

希望这会有所帮助。

【讨论】:

Azure 认知搜索怎么样? @RobW 谢谢,我刚刚阅读了 Azure 认知搜索的概述,这似乎是一个不错的选择。你可以试试。我很高兴我们可以互相学习。我已经更新了我的答案。您可以考虑将其标记为答案。这对其他社区成员可能是有益的。谢谢。 使用 Azure Data Lake Gen 2 进行认知搜索目前处于预览阶段,因此您可以尝试一下,但在将其用于生产工作负载时要小心。【参考方案2】:

使用 Azure Data Lake 进行认知搜索绝对是一种选择,并且是 Microsoft 推荐的。我们需要考虑的几个因素:

    价格。 https://azure.microsoft.com/en-us/pricing/details/search/。不是一个便宜的选择。 您需要的源数据和索引的大小。 您对其他开源服务的确认。 ELK 是一个流行的全文搜索开源框架。

【讨论】:

以上是关于搜索存储在 Azure Data Lake 中的数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Databricks 中的原始 SQL 直接查询存储在 Azure Data Lake 中的 avro 数据文件

使用 Azure Web API 应用程序中的 C# 从 Azure Data Lake 查询 parquet 数据

如何列出另一个订阅中的另一个 Azure Data Lake gen2 存储帐户中的所有文件和子目录

Azure Data Lake 是不是仅临时存储用于分析的数据?

需要使用 Azure 流分析和 IoT Hub 将数据存储到 Azure Data Lake Store:数据必须按 4MB 缓冲区存储

Azure Data PlatformAzure Data Lake——简介