【发布时间】:2021-05-09 12:06:12
【问题描述】:
我在 azure blob storage 上有 200 GB 的文本文件。我想在文本中搜索,然后匹配行需要下载而不是整个 200 GB 文件,然后选择该行。
我已经通过下载完整文件然后搜索和选择用 C# 编写代码,但是它花费了太多时间,然后由于超时错误而失败。
var content ="" ////Downloading whole text from azure blob storage
StringReader strReader = new StringReader(contents);
var searchedLines1 = contents.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).
Select((text, index) => new { text, lineNumber = index + 1 })
.Where(x => x.text.Contains("TYLER15727@YAHOO.COM") || x.lineNumber == 1);
【问题讨论】:
-
200 gig 文本文件在你需要搜索的天蓝色块存储中......我觉得你需要重新考虑你的设计。
-
contents我猜字符串是什么类型?您如何将 200gigs 存储在一个字符串中?你确定这是 200GB 而不是 200MB? -
你试过用`StreamReader.ReadLine逐行阅读
-
内容是由行分隔的文本
-
但是如果你搜索的行是最后一行,你仍然需要下载 200gbs。下载此文件一次,将其拆分并存储回例如表存储或数据库中,可以在服务器上搜索的东西。现有的解决方案很糟糕,需要丢弃
标签: c# .net azure c#-4.0 azure-blob-storage