搜索存储在 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 缓冲区存储