如何让热点图支持大数据

所谓的热点图,是图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能够承担更多的并发计算量,尽可能少的对原始数据做预处理,理论上,只要内存够用或读取数据合理,显存上通过批次渲染,可以渲染任意大的数据量,而且时间和批次应该是线性的。

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

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

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

本文作者:佚名

来源:51CTO

时间: 2024-10-30 16:29:24

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

Java实现Dbhelper支持大数据增删改_java

在做项目的时候,技术选型很重要,在底层的方法直接影响了我们对大数据访问以及修改的速度,在Java中有很多优秀的ORM框架,比如说:JPA,Hibernate 等等,正如我们所说的,框架有框架的好处,当然也存在一些可以改进的地方,这个时候,就需要我们针对于不同的业务不同的需求,不同的访问量,对底层的架构重新封装,来支持大数据增删改. 代码: import java.io.*; import java.sql.*; import java.util.*; import java.util.loggi

使用超大规模数据分析技术支持大数据预测

我给大家带来的演讲内容是关于"使用超大规模数据分析技术支持大数据预测"这方面的.首先介绍一下我自己,我叫韩卿,很多人叫我Luke.我是Kyligence公司的联合创始人兼CEO,Apache Kylin开源项目的创始人,同时也是这个项目的项目管理委员会主席,以及Apache软件基金会会员. 一.超大规模数据分析的挑战 Hadoop 首先,我想和大家分享一下我们在大数据技术领域碰到的挑战,这里在座很多朋友都是从传统的数据仓库出来的,事实上以前是没有Hadoop的,因此数据并不是很大,我记

每年3个亿支持“大数据”

昨日,省政府第25次常务会议审议了<关于加快大数据产业发展及应用若干政策的意见>,明确从今年起连续3年,省和贵阳市.贵安新区每年各安排不少于1亿元资金,用于支持大数据产业发展及应用. <意见>特别提出,对大数据龙头企业,可采取"一企一策"."一事一议"的方式加大支持力度.旨在吸引大数据及关联企业聚集我省,吸引大数据人才汇聚我省,大力引进和培育大数据企业,通过引进行业领先企业与培育本地企业相结合的模式,着力拓展大数据产业链,对在我省发展大数据产

发改委重大工程支持大数据发展

国家发改委办公厅近日印发<关于组织实施促进大数据发展重大工程的通知>,通知提到重点支持大数据示范应用.重点支持大数据共享开放.重点支持基础设施统筹发展.重点支持数据要素流通. 分析人士指出,数据开放是大势所趋.信息使用的边际收益是递增的,信息流动和分享的范围越大,创造的价值就越高,而线上/线下数据化和数据开放正是信息大范围流动的两大前提.推动数据开放和流通在发达国家已成为共识,美欧多国通过国家战略为数据开放背书.自从"互联网+"上升为我国国家战略后,中央不断加大力度推动数据

国家发改委:资金支持大数据重大建设项目

宁夏发改委消息,国家发改委已经印发了<关于组织实施促进大数据发展重大工程的通知>. 文件称,重点支持大数据示范应用.共享开放.基础设施统筹发展,以及数据要素流通.国家发改委将择优推荐项目进入国家重大建设项目库审核区,并根据资金总体情况予以支持. 21世纪经济报道记者梳理发现,国家重点支持的项目,包括以下几个方向:社会治理大数据应用.公共服务大数据应用,以及产业发展大数据应用.创业创新大数据应用等. 其中还提到组织大数据开放计划,开展大数据全民创新竞赛.目前国内已有地方在试点,比如上海率先开展了

一张图破解大数据,云计算,物联网和移动互联网的关系

我们在<互联网进化论>一书中提出"互联网的未来功能和结构将于人类大脑高度相似,也将具备互联网虚拟感觉,虚拟运动,虚拟中枢,虚拟记忆神经系统" ,并绘制了一幅互联网虚拟大脑结构图. 根据这一观点,我们尝试分析目前互联网最流行的四个概念-大数据,云计算,物联网和移动互联网与传统互联网之间的关系. 从这幅图中我们可以看出: 物联网对应了互联网的感觉和运动神经系统. 云计算是互联网的核心硬件层和核心软件层的集合,也是互联网中枢神经系统萌芽. 大数据代表了互联网的信息层(数据海洋),

工信部九方面推进我国大数据产业发展 支持关键技术产品研发和产业化

在今日举办的"2016中国国际大数据大会"上,工业和信息化部党组成员.办公厅主任莫玮对我国大数据发展现状进行了阐述,同时,他表示工业和信息化部按照国务院的决策部署将在九方面积极推进大数据产业的发展.此外,他还提倡我国社会各界应提高对大数据的认识,积极推动大数据在各领域的广泛深度应用. 随着新一代信息技术的迅猛发展,互联网与社会各领域各行业的交融.交汇日益深化,一个以大规模产生分享和应用数据为特征的大数据时代已经到来.近年来在国家政策支持和各方面的努力下,我国大数据产业循序发展,应用不断

大数据 背景图 或js代码实现

问题描述 大数据 背景图 或js代码实现 想要一张背景图片,图片内容为大数据动态图,请问各位牛人有现成的动态大图,或者有人用jss实现过吗?麻烦发下链接或代码行吗,感激不尽!新手暂时没有C币,不好意思哦~~请告诉帮忙~ 解决方案 不知道你说的jss和动态大图是什么.是热力图么?参考:http://www.jq22.com/jquery-info544或者是扇形图么?http://www.thebigdata.cn/JiShuBoKe/14261.html?utm_source=tuicool 解

大数据产业迎多政策支持 产业迎来爆发期

记者从国家发改委等部门获悉,决策层将出台政策"组合拳",支持大数据产业发展,其中包括构建国家大数据平台.编制大数据产业规划等. 政府数据统一开放平台2018年建成 作为战略新兴产业重要分支之一,大数据产业正迎来政策层面的诸多支持.其中,<促进大数据发展行动纲要>已在2015年印发. "2016数博会已升格为国家级盛会.除此之外,近日工信部信息化和软件服务业司司长谢少锋透露,正在制定大数据产业'十三五'发展规划,预计在今年下半年发布."分析人士刘阳说,决策