更有效地显示非常大的数据集
Posted
技术标签:
【中文标题】更有效地显示非常大的数据集【英文标题】:Displaying very large data sets more efficently 【发布时间】:2019-06-22 12:54:46 【问题描述】:我有一个记录数亿个 16 位值(约 100-5 亿)的逻辑分析仪项目,我需要在用户缩放时显示从几百个样本到整个捕获的任何内容。
当您缩小整个系统时,它会从文件中加载大量数据块,从而对性能造成巨大影响。
我只是在今天早上认为以用户屏幕分辨率“跨步”浏览文件会更有效。无论如何,您无法在像素之间物理显示任何内容。但是,这并不能解决内存中的大量文件大小问题。
有没有我可以获取一个庞大的数据集并将其有效地流式传输下来?
我在考虑从头到尾进行流式传输 + 水平分辨率的视图大小。不过,这会造成非常不稳定的缩放。
程序使用 python,但如果它已经存在,我愿意在 c 中调用它。
【问题讨论】:
【参考方案1】:好吧,我不知道这是否真的是关于编程或整体设计的问题。
对于可视化的“缩放”问题,我建议:
-
有一些缩放级别的预计算/缓存版本。理想情况下,应根据用户行为计算分级。
当用户放大时,您同时
计算“适当”数据或加载更深缩放层的预先计算的聚合数据,并通过您的视图框架对其进行裁剪
通过渲染前一层的低分辨率数据或通过某种近似值对其进行平滑来作弊(但请确保以某种方式告诉用户数据尚未最终确定)
除此之外,想想您是否可以优化存储数据的方式。树可以让你的生活更轻松,无论是部分磁盘读取/搜索还是存储聚合数据。
【讨论】:
【参考方案2】:在我看来,即使是几百个样本也没有任何意义,除非它们形成某种图像/形状。我想如果结构正确(彩色),人们可以查看一百个数字。数百 - 怀疑 - 在这里你用一些可视化(绘图、图表、地图......)替换实际数据。
要解决这个问题,您可以定义一些规则来完全停止显示实际数据。例如,如果数字高度小于 10 像素,您会显示某种消息 selected numbers are from rows 200...300, columns 400..500
或带有角坐标和数字数量的图形替代。
【讨论】:
以上是关于更有效地显示非常大的数据集的主要内容,如果未能解决你的问题,请参考以下文章
使用空数据集的Spark SQL连接会导致更大的输出文件大小