如何让热点图支持大数据

所谓的热点图,是图1)构建一张灰度图,图2)在每个热点的位置上绘制并叠加形成灰色的热点图,图3)根据颜色表生成热点图。不难看出,最核心的是图2的过程。详情参考《可视化之热点图》。

图1

图2&图3

?

1强调两处细节

这种思路效率高,缺点就是不够灵活,每个点都是同一个样式,没有考虑该点的半径和权重。创建大小不一的模版(章),每个热点根据自己的半径值选择对应的章就可以,实现思路如下:

半径&模版

权重的不同,是通过盖章的“力度”,权重越大,不透明度越大,这样叠加时也越能体现权重大的效果。是否发现,这个方式会产生覆盖情况,并不严谨。

权重&透明度(力度)

2大数据渲染

我们看看在不同数据量下的性能分析。7759个热点,每个点有经纬度和权重三个float值,生成一张2000*1400左右的热点图。采用pa7/heatmap.js,在Chrome下测试1w(1倍),5w(5倍),10w(15倍),60w(75倍),100w(150倍),600w(750)六个级别,千万级别会崩溃。

备注:只测试了一次,误差估计不小,仅供参考。

数据转换消耗(毫秒)

纯渲染时间(毫秒)

在这种方式下渲染时间依次为:68,100,194,894,2918,63817(ms)。数据量在100w以内的还好,渲染时间将近3s。但再往上就不给力了。千万级别下读取会崩溃,内存达到1.2G以上。渲染就算可用,从时间消耗上也不实用。

在渲染性能方面,之前我们通过模版,盖章的思路已经优化了,沿着这个思路提升空间不大。而且,因为渲染上存在叠加依赖,很难并行。

CPU并行

自己实现渲染算法,以并行的方式实现数值计算部分。思路如下:对热点图这个目标图片,遍历每一个像素,以像素半径做一个缓冲区分析,获取对应的热点数据(数据支持范围查询)。如果没有热点,则该像素为空;如果存在N个热点,则计算该点的热点值。乍看上去,这不是又倒退到逐点计算的思路上。

坦白说,我很不喜欢这个思路,就好比老师出了一道1+2+3……+100的题目,本来是想让你发现规律和数据模型,。可是你真的在一个个累加。但全班同学合作,把这100个数分解成10组,每人分别计算一部分,同样也能很快得出结果,这就是另一个角度的智慧。

因为每个点的计算是独立的,可以通过并行来优化“渲染”时间。但这种思路是以放弃渲染技术为代价的,也要借助于空间索引,并行计算,在JS上很难实现。

另外,这个思路让我认为(不知道对不对),点差值和热点图并无本质区别。

GPU并行

下图是OpenGL的思路:每一个热点构造成一个正方形,对角线将其分为两个三角形,有四个顶点和6个顶点索引。采用批次渲染的方式,每个批次下渲染1w个热点(对应4w个顶点),将数据分解为多个批次,实现大数据的渲染,GPU中实现混合效果。具体的shader代码可以参考pyalot。

我在WebGL下实现了这个思路,还是刚才那个7759个热点的数据,我放到一个渲染批次,对这一个批次渲染多次, 1s内完成千万级别的渲染。

3问题

数据解析是瓶颈,比如经纬度点最终要转换到像素单。如果性能还不够,就“偷工减料”,建立矢量金字塔,本质就是把N个点合并成一个,减少渲染过程的计算量。

二维对应的策略是,渲染性能不够,就把渲染问题转为for循环下的简单计算,然后通过CPU并行优化;对于三维,需要点转三角形,创建buffer,然后通过GPU实现渲染过程。

从渲染的角度来看,无论二维还是三维,在十万级别下的性能都不错,百万级别也能接受,差别不大,但十万以上,两者的渲染差距则体现出来,前者像打狗棒,强调的是心法和招式,后者则是降龙十八掌,靠的是内力。两点区别,二维是因为渲染性能不行,只好采用最简单的数值计算,以这样的代价实现核心计算的并行;三维本身就是并行策略,就是通过shader,通过顶点和片元实现GPU的并行。第二,GPU的并行能力显然不是CPU可以媲美的,换句话说,GPU能够承担更多的并发计算量,尽可能少的对原始数据做预处理,理论上,只要内存够用或读取数据合理,显存上通过批次渲染,可以渲染任意大的数据量,而且时间和批次应该是线性的。

v最后,再强调一下数据。简单计算了一下,假如是一个二进制流的方式,一个热点占12个字节,这样1kw个点要占120M,即使压缩后也得20M,这还没有考虑数据转换上的消耗。对于Web端,基于原始数据,需要有一种机制,能够快速的完成数据传输和处理。

有一个不一定对的思路,建一个GeoHash,大范围的预先生成热点图,更新频率可以不高;局部范围则通过GeoHash获取对应的热点,实现本地渲染。GeoHsh貌似是一种很不错的大数据设计方式,我也不太了解,有时间z再研究研究。

还有一个收获,当复杂度达到一定程度,原先行得通的算法和方案不一定满足要求了。更精彩的是,因为性能低,以前认为比较差的思路,因为思路简单,容易实现并行改造,竟然可行了。

时间: 2024-12-24 22:37:41

如何让热点图支持大数据的相关文章

ODI 12.1.3发布,提升支持大数据的能力

此次发布的ODI新版本,目的是更好的支持当前市场上的大数据平台. 大数据基因在不改变ODI工作效率的情况下,ODI增加了越来越多的数据源集成能力.ODI是在Oracle平台上标准的E-LT工具,事实上也是Oracle各个应用软件的数据集成工具.因此,与时俱进,增加对市场上当前流行数据源的集成是必然的,此次增加的有:1. 支持JSON2. 集成Hadoop SQOOP3. 集成HbaseODI现在支持在关系型数据库与HDFS, Hive, HBase之间相互导数.通过增强ODI的知识模块来来加强数

图表推荐:甘特图与框架图,大数据流向地图重磅来袭!

帆软图表(新特性)最新版本的图表插件新增了甘特图与框架图两种图表类型,大大方便了生产管理所需,同时支持流向地图的大数据模式. 一.甘特图 甘特图又称任务计划进度图,其通常用来表示项目进展随着时间进度的变化.甘特图被广泛的应用在各行业的项目管理中,因此帆软在最新的图表插件中,新增了该图表类型,以满足任务进度可视化的需求. FineReport新甘特图功能扩展十分强大,能够满足多层级项目所需以及多系列任务:支持各个任务的里程碑设置.进度管理等:包含四种任务关联线 (开始-完成,开始-开始,完成-开始

数据挖掘研究方向、热点以及对大数据研究的认识

通过上网查询以及看同行对会议的公共认识,数据挖掘领域的顶级会议是KDD(ACM SIGKDD Conference on Knowledge Discovery and Data Mining),公认的.排名前几位的会议是KDD.ICDE.CIKM.ICDM.SDM,期刊是ACM TKDD.IEEE TKDE.ACM TODS.ACM TOIS.DMKD.VLDB Journal等.会议及期刊的全称如下: 会议 ACM SIGKDD Conference on Knowledge Discove

MySQL随机获取数据的方法,支持大数据量

最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到这里来,供大家学习. 在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的.下面我来介绍随机取数据一些优化方法. SELECT * FROM table_name ORDER BY ran

[随笔]一年热点记录,大数据

春节:谁穿了什么,谁唱了什么,什么火? 高考:作文题目是什么,哪里又作弊了. 中秋.端午:中国节日和外国节日,高速是否免费,食品安全. 人生的轮回也许就是这样. 大数据能分析的出来这些么? 商机在哪里,做IT的你,能看得出来吗?能有对应的产品吗? 请根据以上描述,写出五个项目的开题报告及项目建议书.

NLPIR语义智能平台支持大数据个性化学习

随着计算机技术的革新,互联网新媒体的快速发展,人们的生活已经进入高速信息时代.我们每天的生活都要产生大量数据,因此我们获取数据的速度和规模不断增长,大量数据不断的被存入存储介质中形成海量数据. 数据挖掘是从存放在数据库.数据仓库或者其他信息库中大量的不完全的有噪声的模糊的随机的数据中提取隐含在其中的人们事先未知.但潜在有用的信息和知识过程.数据挖掘需要经历数据收集.数据分析和数据可视化等三个必要阶段: (一)数据收集 数据收集是挖掘大数据巨大价值的第一步.个性化学习往往因为片段化不全面的数据信息

5月17日云栖精选夜读:大数据浪潮下,前端工程师眼中的完整数据链图

今天几乎所有的互联网公司背后都有一支规模庞大的数据团队和一整套数据解决方案作决策,这个时代已经不是只有硅谷巨头才玩数据的时代,是人人都在依赖着数据生存,可以说如今社会数据价值已经被推到前所未有的高度. 热点热议 大数据浪潮下,前端工程师眼中的完整数据链图 作者:王二辉   发表在:大数据文摘 如何打造一个小而精的电商网站架构? 作者:稀奇古怪 WannaCry只是个开始?信息时代你急需的安全书单 作者:博文视点 知识整理 MySQL使用初步-mysql数据库的基本命令 作者:小小兔 Java集合

脑科学与云计算,大数据,互联网

摘要 : 研究者已经从不同方面对物联网,云计算,大数据进行了深入研究并取得诸多成果.但还存在一些问题等待解决,例如,物联网,云计算,大数据与互联网是怎样的关系,它们之间又是如何区分和关联的.本世纪初开始的互联网与脑科学的交叉对比研究,为分析物联网,云计算,大数据与互联网的关系奠定了基础. 1   脑科学与互联网 本世纪初,随着互联网的发展,不断有新的应用和概念诞生,其中物联网,云计算和大数据得到了研究者的重点关注,并引起广泛的研究热潮. 研究者已经从不同方面对物联网,云计算,大数据进行了深入研究

七牛大数据平台的演进与大数据分析实践--转

原文地址:http://www.infoq.com/cn/articles/qiniu-big-data-platform-evolution-and-analysis?utm_source=infoq&utm_medium=popular_widget&utm_campaign=popular_content_list&utm_content=homepage 七牛大数据平台的演进与大数据分析实践 (点击放大图像) 图 1 大数据生态体系 看着图 1 大家可能会感到熟悉,又或者会