中企动力 > 商学院 > 海量数据统计
  • ?

    数据分析:浅谈大数据对统计学的挑战和机遇,看完长见识了!

    飞奴

    展开

    浅谈大数据对统计学的挑战和机遇

    引言  国际数据公司的相关研究指出,2011年全球数据生产量达1.8ZB,且全球信息总量每隔两年增长一倍[1]。在大数据时代下,对于统计学发展而言,挑战与机遇并存,挑战指的是现阶段传统统计学相关方法难以适用大数据,机遇指的是基于统计学,大数据展开数据处理、分析,促使大数据具备可视化特性。由此可见,研究大数据对统计学的挑战和机遇有着十分重要的现实意义。  1.大数据及其目的  现阶段,关于大数据仍旧没有一个十分明确的界定,大数据起初是源自于技术领域。在信息量不断扩大的情况下,使得常规电脑原有存储空间已不能对新处理数据进行承载,新兴数据处理技术得以产生,好比雅虎的Hadoop平台、谷歌的MapReduce等。此类技术能够对僵化层次结构、一致性予以消除,促进数据无需通过常规数据库表格进行排列,极大程度地提升了人们可处理的数据量[1]。 

     2.大数据与统计学的对比  2.1样本统计与全样本统计的区别  样本统计属于统计学不可或缺的依赖,样本指的是结合相应的概率自总体中随机筛选并视作总体代表的集合内容,值得一提的是随机抽样是需要成本的,包括社会关系、资金成本或者时间成本等。基于样本数量提升有限前提下,样本估计误差会随着总体数量增多而增大,这亦是样本统计无法避免的不足。大数据时代下,收集整理庞大的数据信息应运而生,数据信息发展表现出总体即是样本的态势,该属性很好的消除了样本统计这一不足。大数据时代下的全样本统计,通常情况下可对完全总体进行覆盖,然而受大部分数据属于半结构、半结构数据影响,使得概率论应用遭受一定的制约[2]。鉴于此,将全样本统计应用到统计学中,应当就总体数据展开相应的归纳、筛选,即好比在样本统计中展开数据预处理。  2.2预测分析与非预测分析的区别  统计学的创立,是为了对变量相互相关关系展开分析,因此获取数据是发生于变量确定之后的,数据分析价值是能够被预测的。相较于统计学的预测分析,庞大数据将互联网、传感器作为载体,存在于分析需求之前,因此构建于大数据上的分析多为非预测性分析。在统计学中,出现大数据无法有效应用局面,这是由于不具备非预测分析所需的庞大数据,庞大数据产生与数据中心、存储系统存在紧密的联系,并非短期产生。也就是说,统计学中大数据的应用发展,说明了非预测分析正逐步取代传统统计学预测分析,数据多次利用正逐步取代传统数据一次性利用的。  3.大数据对统计学的挑战与机遇  3.1数据生产、处理与应用的转变 

     相关统计部门经开展严格的统计设计工作,获得相关的统计数据,数据的预处理分别有数据清洗、非全面数据填补以及数据矫正等。大数据时代下的统计手段尚不十分明确,自大数据流环境而言,要不断探索新型抽样方法,并确保抽样方法的实时、连贯及可行性。除去传统的统计分析方法,还应当开发大数据动态分析、数据流算法等[3]。  3.2大数据时代对市场营销的机遇  3.2.1大数据营销的特点与价值  大数据营销的特点:I.数据采集多平台化特点,即大数据时代下,大数据的数据大多来源于不同的领域、不同的渠道。II.时效性特点,随着信息技术的急速发展,互联网用户消费、购物行为方式往往会瞬间出现转变。国际先进大数据营销企业AdTime基于此大数据营销特点,采取了时间营销措施,即采取相应的技术方式全面获悉用户所需,于第一时间对用户当下的需求进行回应,以使用户在下决心购买的最佳时间及时看到对应的产品广告。III.个性化特点,在大数据时代下,广告商传统媒体导向的营销理念逐步由受众导向取代,现如今,广告商可应用大数据了解用户的地理方位,需求内容等信息,达到对用户个性化营销的目的。  大数据营销的价值:I.升级营销与用户的匹配度,大数据营销不仅可提供给企业了解用户有效的途径,还能够与网络环境下,选取相关技术方法达到对用户精确定位的目的,从而开展好营销工作,升级营销与用户的匹配度。II.改善用户体验,大数据营销促使企业真正意义上认识到用户及其所使用企业产品情况,以给予用户最人性化的提醒。  3.2.2大数据营销的应用  (1)与消费者建立紧密关系  现如今,我国一些企业营销行为仍旧处于个性化定位信息、创意设计阶段,而无法对不同消费者展开个性化的营销活动。大数据时代下,经采用相关数据分析技术方法,基于对消费群体喜好、传媒接触习惯等展开有效的分析,达到特定营销活动明确开展的目的,实现企业精心开展的营销活动精准的辐射至目标消费群体处,与消费者建立紧密关系,极大的改善营销效率、质量[4]。  (2)掌握竞争对手数据  企业通过对竞争对手数据的有效掌握,获悉竞争对手发展状况,基于此帮助企业制定科学合理的产品价格,提升企业产品市场竞争优势。与此同时,企业务必要全面实施以事实为前提的决策手段,广泛地应用数据分析方式对企业每一个发展运营步骤进行优化,经对企业一系列数据的充分优化、对接,促使业务环节中潜在的价值得以被有效挖掘,降低生产成本,知己知彼,促使企业在日趋白热化的市场竞争中占据有利位置。  (3)挖掘企业内部数据  “市场未动,数据先行”俨然转变为国际上企业有效运营发展的一致认识,为了提升企业管理效率,要求企业要充分挖掘企业内部数据,并展开有效的整合、分析,以为企业相关人员做决策提供有利的参考依据,提升决策准确性,促进企业可持续发展。

    3.2.4 企业的应用案例——以亚马逊为例  在应用大数据开展市场营销方面,美国亚马逊公司一直处于领先地位。亚马逊研发出“用户未下单,先发货”功能,即结合用户的购物需求数据信息,分析用户想要购买的产品,达到用户未下单,提前发货的目的。此外,亚马逊通过对用户检索信息的分析,评估流感的传播,但这仅仅为海量检索数据中的一项用途,相同的数据能够应用于预测大选结果、预测某类产品市场行情等等,极大地降低了统计成本[5]。  3.3大数据时代对市场营销的挑战  3.3.1信息收集  大数据并非就是对数据信息展开盲目的收集,即便收集了再多的数据,倘若这些数据并非是市场营销所需要的,如此便会导致前期收集来的数据信息,变成一堆“数据垃圾”。鉴于此,为了避免这一情况发生,务必要充分分析业务需求,再对自身存在价值的数据展开收集、归纳,如此方可实现大数据的有效收集应用。  3.3.2经验与数据  数据采集完毕后,面对参差不齐的数据,还应当做好数据评估工作,评估对何种目标受众开展市场营销工作。鉴于此,要求采取科学合理的手段,将这些参差不齐的数据整合成可被市场营销实践应用的,经结合过去的经验,与采集数据进行有机融合,实现对目标受众的有效分析确定。  3.3.3分析与优化  数据分析,一方面是实现数据优化,一方面是进行决策层面上的调整、转变。此环节对于专业人才的需求提出了严苛的挑战。数据分析、数据优化对于专业人才的知识框架要求大不相同,这要求相关企业不仅要培养专业的数据分析人才,还要打造数据优化人才队伍。 

     3.4大数据营销的未来发展趋势  信息技术不断发展,单一媒体导向的“消费者碎片化”俨然无法达到企业对于数据多样性的需求。大数据时代下,媒体的跨界融合实现对“碎片化”受众的充分聚合。在科学技术技术不断进步的背景下,跨媒介、跨平台、跨终端的多途径将不断被开拓,将使庞大的数据信息获取多维度的整合,并且在多样化网络环境下,消费者主观信息与客观数据有机融合,构筑全面用户数据库环节,将成为未来大数据营销发展的必然趋势[6]。  4.结束语  总而言之,大数据为传统统计学带来了严峻的考验,也为传统统计学有效发展创造了良好的契机。在大数据时代发展潮流中,我们应当充分的认识到大数据对于传统统计学而言,是补充而不是更替,构建于样本统计、预测分析内容上的传统统计学,仍旧于社会统计、经济分析中占据着主导位置。大数据时代下,为了实现企业市场营销的有效开展,相关人员务必要不断专研研究、总结经验,全面分析大数据与统计学的对比,充分认识大数据对统计学的挑战和机遇,“与消费者建立紧密关系”、“掌握竞争对手数据”、“挖掘企业内部数据”等,积极促进企业市场营销的科学合理化。

  • ?

    大数据到底有什么用?看了这篇你就明白了

    难得

    展开

    大数据的作用是在海量数据的基础上,通过算法模型,获得有意义的结果,然后优化资源配置,发现现象,未来预测等。

    长话短说,让我们用一个例子来告诉你大数据有多么强大。

    今天头条:很多数据是别人的,你是怎么得到的?通过数据分析方法提取文字分析,统计分析消除。在今天的标题中,用户点击开始后端服务器有日志,请求一个点击日志,一个临时集群围绕大数据,计算点击率,就像这样可以计算出用户,用户不喜欢再做调整。通过大数据评估点击率,新广告将在一个小时内进行,以观察下一个小时的点击率,广告将进行排名和调整。

    摩拜单车:它是通过物联网终端,总是通过数据,发送数据再上去卖钱,交押金做金融,不要说靠你那五毛钱来生产效益。

    项目推荐:网站、音乐、电影、网站、电子商务网站将根据您的浏览行为进行分析,并根据您的兴趣向您推荐相应的项目,如爱奇艺、QQ音乐、京东等。

    金融:银行利用大数据来分析用户的消费行为、购买能力和还款能力,降低贷款给用户的风险,降低还款率。

    信用:支付宝的芝麻增加了更多的维度,如你的关系、教育、汽车等因素来评估你的信用价值,为信用价值高的人提供更好的服务,例如高信用酒店不必支付押金。

    智慧城市:现在更具代表性的功能是能够控制路灯的亮度,可以达到节约用电的效果。通过交通流控制交通信号灯来减少道路拥堵。

    大数据处理技术的应用使这些方面有了更好的发展,如果不是大数据处理技术的出现,那可能是因为太多的数据处理不过来,或者根本无法处理。这自然会导致一些落后的或根本不可行的企业的发展。当然,将来会有越来越多的大数据应用,比如物联网、人工智能等。前景是光明的。

    如果你不知道,那我就给你一个更粗俗的例子,那就是,“你屁股一撅我就知道你拉的是什么屎”这是由于某人或某物经过长时间的接触,了解了彼此足够的信息,促进了对事物的认知,从而对事物有了更多的了解,并期待着下一步的行动。大数据处理技术就是这样一个过程,他的过程可以分为收集、处理、分析和鉴定,这四个步骤的预测。事实上,它是模拟人类对事物的认知和程序的编程和量化过程的过程。

    2018据说是大数据元年,各位,快加入大数据的浪潮,世界早晚会惩罚不喜欢学习的人。

  • ?

    干货 | 这是一份完整的大数据处理技术总结与分析

    行天

    展开

    一 数据分析处理需求分类

    1 事务型处理

    在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。

    这类系统数据处理特点包括以下几点:

    一是事务处理型操作都是细粒度操作,每次事务处理涉及数据量都很小。

    二是计算相对简单,一般只有少数几步操作组成,比如修改某行的某列;

    三是事务型处理操作涉及数据的增、删、改、查,对事务完整性和数据一致性要求非常高。

    四是事务性操作都是实时交互式操作,至少能在几秒内执行完成;

    五是基于以上特点,索引是支撑事务型处理一个非常重要的技术。

    在数据量和并发交易量不大情况下,一般依托单机版关系型数据库,例如ORACLE、MYSQL、SQLSERVER,再加数据复制(DataGurad、 RMAN、MySQL数据复制等)等高可用措施即可满足业务需求。

    在数据量和并发交易量增加情况下,一般可以采用ORALCE RAC集群方式或者是通过硬件升级(采用小型机、大型机等,如银行系统、运营商计费系统、证卷系统)来支撑。

    事务型操作在淘宝、12306等互联网企业中,由于数据量大、访问并发量高,必然采用分布式技术来应对,这样就带来了分布式事务处理问题,而分布式事务处理很难做到高效,因此一般采用根据业务应用特点来开发专用的系统来解决本问题。

    2 数据统计分析

    数据统计主要是被各类企业通过分析自己的销售记录等企业日常的运营数据,以辅助企业管理层来进行运营决策。典型的使用场景有:周报表、月报表等固定时间提供给领导的各类统计报表;市场营销部门,通过各种维度组合进行统计分析,以制定相应的营销策略等。

    数据统计分析特点包括以下几点:

    一是数据统计一般涉及大量数据的聚合运算,每次统计涉及数据量会比较大。

    二是数据统计分析计算相对复杂,例如会涉及大量goupby、 子查询、嵌套查询、窗口函数、聚合函数、排序等;有些复杂统计可能需要编写SQL脚本才能实现。

    三是数据统计分析实时性相对没有事务型操作要求高。但除固定报表外,目前越来越多的用户希望能做做到交互式实时统计;

    传统的数据统计分析主要采用基于MPP并行数据库的数据仓库技术。主要采用维度模型,通过预计算等方法,把数据整理成适合统计分析的结构来实现高性能的数据统计分析,以支持可以通过下钻和上卷操作,实现各种维度组合以及各种粒度的统计分析。

    另外目前在数据统计分析领域,为了满足交互式统计分析需求,基于内存计算的数据库仓库系统也成为一个发展趋势,例如SAP的HANA平台。

    3 数据挖掘

    数据挖掘主要是根据商业目标,采用数据挖掘算法自动从海量数据中发现隐含在海量数据中的规律和知识。

    数据挖掘主要过程是:根据分析挖掘目标,从数据库中把数据提取出来,然后经过ETL组织成适合分析挖掘算法使用宽表,然后利用数据挖掘软件进行挖掘。传统的数据挖掘软件,一般只能支持在单机上进行小规模数据处理,受此限制传统数据分析挖掘一般会采用抽样方式来减少数据分析规模。

    数据挖掘的计算复杂度和灵活度远远超过前两类需求。一是由于数据挖掘问题开放性,导致数据挖掘会涉及大量衍生变量计算,衍生变量多变导致数据预处理计算复杂性;二是很多数据挖掘算法本身就比较复杂,计算量就很大,特别是大量机器学习算法,都是迭代计算,需要通过多次迭代来求最优解,例如K-means聚类算法、PageRank算法等。

    因此总体来讲,数据分析挖掘的特点是:

    1、数据挖掘的整个计算更复杂,一般是由多个步骤组成计算流,多个计算步骤之间存在数据交换,也就是会产生大量中间结果,难以用一条sql语句来表达。

    2、计算应该能够非常灵活表达,很多需要利用高级语言编程实现。

    二 大数据背景下事务型处理系统相关技术

    在google、facebook、taobao等大互联网公司出现之后,这些公司注册和在线用户数量都非长大,因此该公司交易系统需要解决“海量数据+高并发+数据一致性+高可用性”的问题。

    为了解决该问题,从目前资料来看,其实没有一个通用的解决方案,各大公司都会根据自己业务特点定制开发相应的系统,但是常用的思路主要包括以下几点:

    (1)数据库分片,结合业务和数据特点将数据分布在多台机器上。

    (2)利用缓存等机制,尽量利用内存,解决高并发时遇到的随机IO效率问题。

    (3)结合数据复制等技术实现读写分离,以及提高系统可用性。

    (4)大量采用异步处理机制,对应高并发冲击。

    (5)根据实际业务需求,尽量避免分布式事务。

    1相关系统介绍

    1) 阿里CORBAR系统

    阿里COBAR系统是一个基于MYSQL数据库的分布式数据库系统,属于基于分布式数据库中间件的分布式数据库系统。该系统是前身是陈思儒开发的“变形虫”系统(以前调研过),由于陈思儒离开阿里去了盛大,阿里当心“变形虫”稳定性等问题,重新开发该项目。

    该系统主要采用数据库分片思路,实现了:数据拆分、读写分离、复制等功能。由于此系统由于只需要满足事务型操作即可,因此相对真正并行数据库集群(例如TeraData等),此类系统提供操作没有也不需要提供一些复杂跨库处理,因此该系统存在以下限制:

    (1)不支持跨库的join、分页、排序、子查询。

    (2)insert等变更语句必须包括拆分字段等。

    (3)应该不支持跨机事务(以前变形虫不支持)。

    说白了此类系统不具备并行计算能力,基本上相当于数据库路由器!

    另外此类系统的在实际应用的关键问题是,根据什么对数据进行切分,因为切分不好会导致分布式的事务问题。

    2) 阿里OceanBase系统

    该系统也是淘宝为了解决高并发、大数据环境下事务型处理而定制开发的一个系统。该系统主要思路和特点如下:

    (1)他们发现在实际生成环境中,每天更新的数据只占总体数据的1%不到,因此他们把数据分为:基线数据和增量更新数据。

    (2)基线数据是静态数据,采用分布式存储方式进行存储。

    (3)只在一台服务器上存储和处理增量更新数据,并且是在内存中存储和处理更新数据。

    (4)在系统负载轻的时候,把增量更新批量合并到基线数据中。

    (5)数据访问时同时访问基线数据和增量更新数据并合并。

    因此这样好处是:

    (1)读事务和写事务分离

    (2)通过牺牲一点扩展性(写是一个单点),来避免分布式事务处理。

    说明:该系统虽然能处理高并发的事务型处理,号称很牛逼,但其实也只是根据电商的事务处理来定制开发的专用系统,个人认为其技术难度小于oracle等通用型的数据库。该系统无法应用到银行或者12306等,因为其事务处理的逻辑远远比电商商品买卖处理逻辑复杂。

    在目前的大数据时代,一定是基于应用定制才能找到好的解决方案!

    3) 基于Hbase的交易系统

    在hadoop平台下,HBASE数据库是一个分布式KV数据库,属于实时数据库范畴。支付宝目前支付记录就是存储在HBASE数据库中。

    HBASE数据库接口是非SQL接口,而是KV操作接口(基于Key的访问和基于key范围的scan操作),因此HBASE数据库虽然可扩展性非常好,但是由于其接口限制导致该数据库能支持上层应用很窄。基于HBASE应用的设计中,关键点是key的设计,要根据需要支持的应用来设计key的组成。

    可以认为HBASE数据库只支持作为KEY的这一列的索引。虽然目前HBASE有支持二级索引的方案,二级索引维护将会比较麻烦。

    2并发和并行区别

    并发是指同时执行通常不相关的各种任务,例如交易型系统典型属于高并发系统。

    并行是通过将一个很大的计算任务,划分为多个小的计算任务,然后多个小计算任务的并行执行,来缩短该计算任务计算时间。

    两者主要区别在于:

    (1)通讯与协调方面:在并行计算中,由于多个小任务同属一个大的计算任务,因此小任务之间存在依赖关系,小任务之间需要大量通讯和协调;相反,并发中的多个任务之间基本相互独立,任务与任务之间相关性很小。

    (2)容错处理方面:由于并发任务之间相互独立,某个任务执行失败并不会影响其它的任务。但是并行计算中的多个任务属于一个大任务,因此某个子任务的失败,如果不能恢复(粗粒度容错与细粒度容错),则整个任务都会失败。

    3本章总结

    数据量大不一定需要并行计算,虽然数据量大,数据是分布存储,但是如果每次操作基本上还是针对少量数据,因此每次操作基本上都是在一台服务器上完成,不涉及并行计算。只是需要通过数据复制、数据缓存、异步处理等方式来支撑高并发访问量

    三 大数据背景下数据统计分析技术介绍

    随数据量变大,和事务处理不同的是,单个统计分析涉及数据量会非常大,单个统计分析任务涉及数据会分散在多台服务器上,且由于计算量大,采用单台服务器进行计算,会导致计算时间非常长,单个统计分析任务必须采用并行计算方式来加快单个统计分析任务执行速度。

    1并行查询与并行计算技术介绍

    在大数据背景下的数据统计分析技术门类很多,常见的有:

    n MPP并行数据库 : TeraData、GreenPlum、Vertica等。

    n 基于MapReduce并行计算框架的数据仓库:

    HIVE(Hadoop平台) 、Tenzing(Google公司)

    n 基于Hbase的Phoenix系统

    n HadoopDB系统

    n EMC公司的hapt系统

    n MPP分布式查询引擎: Dremel、Impala、Presto、Shard query、Citusdb。

    n 基于SPARK的Shark、基于Dryad的SCOPE、基于Tez的stinger。

    n 基于hadoop+index的JethroData系统

    n 基于内存计算的Druid系统

    这些系统都解决了海量数据下的数据统计分析的问题,并且这些系统另外一个共同特点是都提供了SQL或者类SQL接口。

    为了能够较好研究这些系统,我们需要对并行查询与并行计算的相关技术做一个简要的介绍。

    首先所有的系统都可以分为三个层次: 语义层、并行计算引擎层、分布式存储层。语义层提供一个编程接口让用户表达所需要计算,并负责把该计算翻译成底层并行计算引擎可以执行的执行计划,并由并行计算引擎来执行,最下面一层是分布式存储层。

    对于提供类SQL接口并行计算系统,语义层可以认为是SQL解析层。

    1) 语义层

    SQL语言是一种声名式语言,SQL只是表达了要做什么,而没有表达怎么做。为此,SQL解析层主要作用是:将用户提交的基于SQL的统计分析请求,转化为底层计算引擎层可以执行的执行计划。也就是解决“怎么做”的问题。

    SQL解析层工作主要包括两个大方面:

    (1) 通过语法分析技术来理解要做什么。在关系数据库中,一般会把SQL语言分析后,形成树型结构的执行计划。

    (2) 在语法分析技术上,利用各种优化技术和算法,找出一种最经济物理执行计划。

    优化可以分为两个方面:一是逻辑层面优化、二是物理执行层面优化。

    (1) 逻辑层优化

    逻辑层面个人认为主要是因为同样表达一个分析请求,有的人SQL写的好,有的人SQL写的烂,因此在逻辑层面可以通过一些等价关系代数变换,实现查询重写,将写的比较烂的sql变换为好的写法。

    比较典型优化是:“把投影和过滤下沉,先执行过滤和投影操作”,减少中间结果。

    (2) 物理层优化

    物理层面优化是在逻辑优化后,结合实际物理执行过程,找出最优的物理执行计划。生成物理查询计划的工作包括:

    ü 增加一些操作符: 包括扫描和排序等。

    ü 确定各个操作符实现算法。例如扫描是全表扫描还是利用索引;Join是采用HASH连接、索引连接、合并排序等实现算法中的那一种。

    ü 确定操作符之间的数据流转方法:物化还是流水线方式。

    ü 采用基于代价估算方法确定最优的物理执行计划,目前代价估算主要是以估算该物理计划需要的IO量。另外对于并行数据库,则还要考虑通讯代价,即尽量减少数据在各个机器之间的传递。

    在物理层优化的代价估算过程中,代价估算需要依靠很多统计信息,如表有多大,表中相关列的值分布是什么样子等。传统数据库在数据Load过程中会事先计算好这些统计信息。并行计算中还需要考虑通讯代价。

    需要指出是,由于imapla、Presto、HIVE等系统只是一个查询引擎,它们可以直接查询以普通文件方式存储在HDFS系统上的文件,因此这些系统一般无法使用索引和各种统计信息来进行物理执行计划的优化,这些系统一般只能在逻辑层进行一些基于规则静态优化。根据SHARK论文,SHARK系统支持根据前面一些节点计算获得的信息,来动态优化后面执行计划。

    (3) 物化与流水线执行方法

    一条SQL语句对开发人员而言,感觉只是一次调用,但是实际上在数据库内部,一条SQL语句执行其实是有多个操作符组合而成的的树型结构计算流。如下图:

    针对该计算流有两种执行方式:一是基于物化或者是实体化执行方式,另外一种是基于数据流的执行方式。

    第一种方法的过程是: 把各个操作运算排序,并把每个操作运算的输出的中间结果存储在磁盘上,直到被另外一个操作运算所...

  • ?

    海量数据预测拥堵 智慧景区用户量单日破千万

    Silvia

    展开

    大数据服务商QuestMobile最新统计的用户规模数据显示,2018年10月1日当天,高德地图日活跃用户数(以下简称DAU)超过1.15亿。

    十一当天,DAU过亿的所有移动APP中,移动视频类5个,系统工具类4个,移动社交类3个,移动购物类1个,金融理财类1个,旅游出行类1个,新闻资讯类1个。高德地图成为唯一一个旅游出行类DAU破亿的APP。

    10月1日当晚,阿里巴巴合伙人、高德地图总裁刘振飞发表内部信宣布,高德地图DAU于19点58分突破1亿。

    QuestMobile的数据印证了这一说法,高德地图已跻身“国民APP”行列,凭借良好的用户产品体验和强大的生态合作伙伴赋能能力,高德地图已全方位应用于出行领域。

    海量数据预测拥堵再次“神准”

    高德地图在DAU超过1.15亿的同时,其他产品数据也连年持续增长。数据显示,在十一期间,高德为用户提供导航规划服务超过105亿次,较去年同期增长98%,高德地图用户驾车导航总里程突破135亿公里,较去年同期增长87%。

    基于十一黄金周期间的海量出行数据,高德地图发布了《2018十一黄金周国民出行报告》(以下简称报告),对十一交通大数据和旅游大数据进行了综合分析。

    从全国高速拥堵趋势来看,10月1日9:00-12:00拥堵里程占比最高,10月5日16:00-18:00是返程高峰。十一期间,珠三角地区高速拥堵程度最高,最长拥堵时长高达113小时,为佛山和广州的S15沈海高速广州直线(从沙涌跨线桥到广花收费站),长三角次之。

    从全国城市范围来看,基于全天拥堵延时指数(6:00-22:00)测算发现,过境和旅游型城市成为国庆黄金周期间较为拥堵的城市。其中,清远市成为全国“堵城”之首,全天拥堵延时指数为1.62,其次是茂名和赣州。

    “智慧诱导”助力40多城市缓解拥堵

    高德地图基于实时的动态数据,与40多个城市合作“智慧诱导”,在十一期间得到广泛应用。该功能动态连接交通管理部门和用户,进行出行中的实时调度,有效缓解了十一出行的交通压力,帮助用户实时躲避拥堵。

    大数据显示宣广枢纽东向西路段节假日易发生拥堵,9月30日和10月1日,交通管理部门通过“智慧诱导”提前进行分流,干预期间,对比去年同期,干预道路通行速度上升30%,通行时间下降35%。

    国庆期间,珠海市情侣路附近举办沙滩音乐节,为缓解拥堵,10月2日,交通管理部门实施“智慧诱导”,提前对相关道路和停车点进行分流,干预道路同比去年,通行速度上升14%,通行时间下降51%。

    10月1日凌晨,G60沪昆高速衢州段出现严重拥堵,实施干预后,干预道路通行速度上升72%,通行时间下降23%。

    赋能生态合作伙伴,智慧景区用户量单日突破千万

    DAU稳居出行行业第一,说明高德地图致力打造的一站式全域出行服务平台,切中了用户需求,提升了用户体验,正在形成新的出行生态。

    今年,高德地图携手生态合作伙伴共同打造第二届“十一全民出行节”,为用户提供“不添堵 乐出游”的出行体验。

    高德地图为景区提供“智慧景区开放平台”服务,向景区免费开放,为景区提供一张地图游中国、地图管家、大数据中心、全域营销等四大能力,赋能景区管理。十一假期期间,智慧景区用户量单日突破千万。

    高德集团总裁刘振飞表示,高德地图的产品数据和服务能力连续多年持续增长,离不开用户的认可和合作伙伴的支持。高德地图将继续围绕用户需求,拥抱行业变化,与各行业合作伙伴共建开放生态,

  • ?

    万字长文揭秘:阿里如何实现海量数据实时分析?

    郦千凝

    展开

    阿里妹导读:随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据。本文由阿里AnalyticDB团队出品,近万字长文,首次深度解读阿里在海量数据实时分析领域的多项核心技术。

    数字经济时代已经来临,希望能和业界同行共同探索,加速行业数字化升级,服务更多中小企业和消费者。

    欢迎转发、收藏此文

    挑战

    随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据。伴随着业务对海量数据实时分析的需求越来越多,数据分析技术这两年也迎来了一些新的挑战和变革:

    在线化和高可用,离线和在线的边界越来越模糊,一切数据皆服务化、一切分析皆在线化。高并发低延时,越来越多的数据系统直接服务终端客户,对系统的并发和处理延时提出了新的交互性挑战。混合负载, 一套实时分析系统既要支持数据加工处理,又要支持高并发低延时的交互式查询。融合分析, 随着对数据新的使用方式探索,需要解决结构化与非结构化数据融合场景下的数据检索和分析问题。

    阿里巴巴最初通过单节点Oracle进行准实时分析, 后来转到Oracle RAC,随着业务的飞速发展, 集中式的Shared Storage架构需要快速转向分布式,迁移到了Greenplum,但不到一年时间便遇到扩展性和并发的严重瓶颈。为了迎接更大数据集、更高并发、更高可用、更实时的数据应用发展趋势,从2011年开始,在线分析这个技术领域,阿里实时数仓坚定的走上了自研之路。

    分析型数据库AnalyticDB

    AnalyticDB是阿里巴巴自主研发、唯一经过超大规模以及核心业务验证的PB级实时数据仓库。自2012年第一次在集团发布上线以来,至今已累计迭代发布近百个版本,支撑起集团内的电商、广告、菜鸟、文娱、飞猪等众多在线分析业务。

    AnalyticDB于2014年在阿里云开始正式对外输出,支撑行业既包括传统的大中型企业和政府机构,也包括众多的互联网公司,覆盖外部十几个行业。AnalyticDB承接着阿里巴巴广告营销、商家数据服务、菜鸟物流、盒马新零售等众多核心业务的高并发分析处理, 每年双十一上述众多实时分析业务高峰驱动着AnalyticDB不断的架构演进和技术创新。

    经过这2年的演进和创新,AnalyticDB已经成长为兼容MySQL 5.x系列、并在此基础上增强支持ANSI SQL:2003的OLAP标准(如window function)的通用实时数仓,跻身为实时数仓领域极具行业竞争力的产品。近期,AnalyticDB成功入选了全球权威IT咨询机构Forrester发布"The Forrester Wave™: CloudData Warehouse,Q4 2018"研究报告的Contenders象限,以及Gartner发布的分析型数据管理平台报告 (Magic Quadrant forData Management Solutions for Analytics),开始进入全球分析市场。AnalyticDB旨在帮客户将整个数据分析和价值化从传统的离线分析带到下一代的在线实时分析模式。

    整体架构

    经过过去2年的架构演进和功能迭代,AnalyticDB当前整体架构如下图。

    AnalyticDB是一个支持多租户的Cloud Native Realtime Data Warehouse平台,每个租户DB的资源隔离,每个DB都有相应独立的模块(图中的Front Node, Compute Node, Buffer Node),在处理实时写入和查询时,这些模块都是资源(CPU, Memory)使用密集型的服务,需要进行DB间隔离保证服务质量。同时从功能完整性和成本优化层面考虑,又有一系列集群级别服务(图中绿色部分模块)。

    下面是对每个模块的具体描述:

    DB级别服务组件:

    Front Node:负责JDBC, ODBC协议层接入,认证和鉴权,SQL解析、重写;分区地址路由和版本管理;同时优化器,执行计划和MPP计算的调度模块也在Front Node。Compute Node: 包含MPP计算Worker模块,和存储模块(行列混存,元数据,索引)。Buffer Node: 负责实时写入,并根据实时数据大小触发索引构建和合并。

    集群级别服务组件:

    Management Console: 管理控制台。Admin Service:集群管控服务,负责计量计费,实例生命周期管理等商业化功能,同时提供OpenAPI和InnerAPI给Management Console和第三方调用。Global Meta Service:全局元数据管理,提供每个DB的元数据管理服务,同时提供分区分配,副本管理,版本管理,分布式DDL等能力。Job Service:作业服务,提供异步作业调度能力。异步作业包括索引构建、扩容、无缝升级、删库删表的后台异步数据清理等。Connector Service:数据源连接服务,负责外部各数据源(图中右侧部分)接入到AnalyticDB。目前该服务开发基本完成,即将上线提供云服务。Monitoring & Alerting Service:监控告警诊断服务,既提供面向内部人员的运维监控告警诊断平台,又作为数据源通过Management Console面向用户侧提供数据库监控服务。Resource Management Service:资源管理服务,负责集群级别和DB级别服务的创建、删除、DNS/SLB挂载/卸载、扩缩容、升降配,无缝升级、服务发现、服务健康检查与恢复。

    数据模型

    AnalyticDB中表组(Table Group)分为两类:事实表组和维度表组。

    事实表组(Fact Table Group),表组在AnalyticDB里是一个逻辑概念,用户可以将业务上关联性比较多的事实表放在同一个事实表组下,主要是为了方便客户做众多数据业务表的管理,同时还可以加速Co-location Join计算。维度表组(Dimension Table Group),用于存放维度表,目前有且仅有一个,在数据库建立时会自动创建,维度表特征上是一种数据量较小但是需要和事实表进行潜在关联的表。

    AnalyticDB中表分为事实表(Fact Table)和维度表(Dimension Table)。

    事实表创建时至少要指定Hash分区列和相关分区信息,并且指定存放在一个表组中,同时支持List二级分区。

    Hash Partition将数据按照分区列进行hash分区,hash分区被分布到多个Compute Node中。List Partition(如果指定List分区列的话)对一个hash分区进行再分区,一般按照时间(如每天一个list分区)。一个Hash Partition的所有List Partition默认存放于同一个Compute Node中。每个Hash Partition配有多个副本(通常为双副本),分布在不同的Compute Node中,做到高可用和高并发。

    维度表可以和任意表组的任意表进行关联,并且创建时不需要配置分区信息,但是对单表数据量大小有所限制,并且需要消耗更多的存储资源,会被存储在每个属于该DB的Compute Node中。

    下图描述了从Database到List分区到数据模型:

    对于Compute Node 来说,事实表的每个List分区是一个物理存储单元(如果没有指定List分区列,可认为该Hash分区只有一个List分区)。一个分区物理存储单元采用行列混存模式,配合元数据和索引,提供高效查询。

    海量数据

    基于上述数据模型,AnalyticDB提供了单库PB级数据实时分析能力。以下是生产环境的真实数据:

    阿里巴巴集团某营销应用单DB表数超过20000张云上某企业客户单DB数据量近3PB,单日分析查询次数超过1亿阿里巴巴集团内某单个AnalyticDB集群超过2000台节点规模云上某业务实时写入压力高达1000w TPS菜鸟网络某数据业务极度复杂分析场景,查询QPS 100+

    导入导出

    灵活的数据导入导出能力对一个实时数仓来说至关重要,AnalyticDB当前既支持通过阿里云数据传输服务DTS、DataWorks数据集成从各种外部数据源导入入库,同时也在不断完善自身的数据导入能力。整体导入导出能力如下图(其中导入部分数据源当前已支持,部分在开发中,即将发布)。

    ★ 数据导入

    首先,由于AnalyticDB兼容MySQL5.x系列,支持通过MySQL JDBC方式把数据insert入库。为了获得最佳写入性能,AnalyticDB提供了Client SDK,实现分区聚合写的优化,相比通过JDBC单条insert,写入性能有10倍以上提升。对于应用端业务逻辑需要直接写入AnalyticDB的场景,推荐使用AnalyticDB Client SDK。

    同时,对于快速上传本地结构化的文本文件,可以使用基于AnalyticDB Client SDK开发的Uploader工具。对于特别大的文件,可以拆分后使用uploader工具进行并行导入。

    另外,对于OSS,MaxCompute这样的外部数据源,AnalyticDB通过分布式的Connector Service数据导入服务并发读取并写入到相应DB中。Connector Service还将支持订阅模式,从Kafka,MQ,RDS等动态数据源把数据导入到相应DB中。AnalyticDB对大数据生态的Logstash,Fluentd,Flume等日志收集端、ETL工具等通过相应插件支持,能够快速把数据写入相应DB。

    今天在阿里巴巴集团内,每天有数万张表从MaxCompute导入到AnalyticDB中进行在线分析,其中大量导入任务单表数据大小在TB级、数据量近千亿。

    ★ 数据导出

    AnalyticDB目前支持数据导出到OSS和MaxCompute,业务场景主要是把相应查询结果在外部存储进行保存归档,实现原理类似insert from select操作。insert from select是把查询结果写入到内部表,而导出操作则是写入外部存储, 通过改进实现机制,可以方便地支持更多的导出数据源。

    核心技术

    高性能SQL Parser

    AnalyticDB经过数年的发展,语法解析器也经历了多次更新迭代。曾经使用过业界主流的 Antlr(http://antlr.org),JavaCC(https://javacc.org)等Parser生成器作为SQL 语法解析器,但是两者在长期、大规模、复杂查询场景下,Parser的性能、语法兼容、API设计等方面不满足要求,于是我们引入了自研的SQL Parser组件FastSQL。

    ★ 领先业界的Parser性能

    AnalyticDB主打的场景是高并发、低延时的在线化分析,对SQL Parser性能要求很高,批量实时写入等场景要求更加苛刻。FastSQL通过多种技术优化提升Parser性能,例如:

    快速对比:使用64位hash算法加速关键字匹配,使用fnv_1a_64 hash算法,在读取identifier的同时计算好hash值,并利用hash64低碰撞概率的特点,使用64位hash code直接比较,比常规Lexer先读取identifier,在查找SymbolTable速度更快。高性能的数值Parser:Java自带的Integer.parseInt()/Float.parseFloat()需要构造字符串再做parse,FastSQL改进后可以直接在原文本上边读取边计算数值。分支预测:在insert values中,出现常量字面值的概率比出现其他的token要高得多,通过分支预测可以减少判断提升性能。

    以TPC-DS99个Query对比来看,FastSQL比Antlr Parser(使用Antlr生成)平均快20倍,比JSQLParser(使用JavaCC生成)平均快30倍,在批量Insert场景、多列查询场景下,使用FastSQL后速度提升30~50倍。

    ★ 无缝结合优化器

    在结合AnalyticDB的优化器的SQL优化实践中,FastSQL不断将SQL Rewrite的优化能力前置化到SQL Parser中实现,通过与优化器的SQL优化能力协商,将尽可能多的表达式级别优化前置化到SQL Parser中,使得优化器能更加专注于基于代价和成本的优化(CBO,Cost-Based Optimization)上,让优化器能更多的集中在理解计算执行计划优化上。FastSQL在AST Tree上实现了许多SQL Rewrite的能力,例如:

    常量折叠:

    SELECT * FROM t1 tWHERE comm_week BETWEEN CAST(date_format(date_add('day',-day_of_week('20180605'),date('20180605')),'%Y%m%d') AS bigint)AND CAST(date_format(date_add('day',-day_of_week('20180605'),date('20180605')),'%Y%m%d') AS bigint)------>SELE...

  • ?

    Excel技巧之Rank函数一秒钟完成海量数据排名统计!

    Mors

    展开

    老师要对学生的成绩需要排名、销售经理要对销售员业绩做排名。竞争激烈的21世纪,各行各业需要排名对比竞争。那么在如此大的数据量面前我们如何才能快速完成排名统计呢!下面给大家介绍Rank函数,一秒钟完成海量数据排名。

    如下图所示,我们要对各部门的员工经费支出进行排名对比。

    操作如下:

    在D2单元格中输入=RANK(C2,C:C,0)这样的函数公式即可完成排名统计。

    函数名称:RANK

    主要功能:返回某一数值在一列数值中的相对于其他数值的排位。

    使用格式:RANK(Number,ref,order)

  • ?

    大数据时代,海量数据应该如何解决存储问题?

    念心安

    展开

    489034603

    由于大数据的迅猛发展,数据正在呈指数级增长,各种传感器的剧增,高清晰度的图像和视频都是数据爆炸的原因。腾讯、淘宝掌握了大量的用户数据,力图描绘出用户的整体“画像”。面对大数据的汹涌来袭,传统的数据存储和数据库技术已经难以应对,那么,大数据技术如何存储海量数据并提高系统容错性?目前,较为主流的海量文件存储技术有Google的GFS和Hadoop的HDFS,HDFS是GFS的开源实现。它们均采用分布式存储的方式存储数据,用冗余存储的模式保证数据的可靠性。

    下面我们通过几个问题,来让大家更好的了解数据存储应该如何解决?

    1、大数据的处理流程包括了哪些环节?每个环节有哪些主要工具?

    数据采集: 半结构日志文件可使用flume; 结构化数据可以使用传统的E TL工具如,datastage、kettle 等等

    数据存储:hadoop hdfs存储海量数据;也可用传统的oracle、sysbase iq等数据仓库解决方案

    数据统计: 使用hive、impala对hadoop进行统计分析;

    数据挖掘:可使用mahout进行数据挖掘

    2、大数据的数据库相比于传统数据库有何变化?出现了哪些新的大数据的数据管理方式?

    量大、结构多样、速度要求高等特点; 出现了以hadoop为代表的分布式存储和nosql等数据存储管理方案

    3、大数据工程师应该都知道,现在处理大数据文件的存储,比较典型的有Google的Big Table和Hadoop的HBase,它们有哪些相似点和不同点?

    Hadoop的HBase是Google的Big 的开源实现,每个人都可以下载来使用,也可以根据自己需要进行修改和完善

    以上都为个人观点,谨供大家参考一下,如果感觉写的可以,即可给自己一个比较准确的定位,为以后的学习找准正确的方向。

    另外,如果小伙伴想学习大数据技术,可以加下图片下面的交流群,群里有很多学习视频都可以下载,而且每天大数据架构师马士兵老师都会在群里分享大数据的技术。。

  • ?

    海量数据,Vlookup歇菜了怎么办?

    吴雪卉

    展开

    有小伙伴想从20多万行的数据中,根据几万行数据查找其对应的详细信息,用Vlookup或者Index+Match直接就卡死了。

    难道这个问题在Excel中就无解了吗?那你也太小瞧Excel了。虽然处理大量数据,我们提倡到数据库中去处理,但是大家都知道,自Excel 2007之后,单张表最大数据行数已经增加到了1048576行,对就是一百多万行。既然Excel给设计成这么大的容量,我们应该相信,微软就会提供相应的处理能力。

    废话少说,我们直接来看一下怎么处理这种问题。

    案例

    用罗斯文数据库截取了一些数据,并用VBA在工作表中重复填充,得到一个超过二十万行的数据源。ID列是一个递增的连续序列数,订单ID列是用随机数函数生成的1~200000之间前的数,会有重复。这个放在一个文件中的工作表中,工作表命名为“

    数据源

    ”。

    如下图所示,数一数前面的行标,确实是6位数,超过二十万行的数据。

    在第二个文件的工作表中存放了一些订单ID,截取了23758个订单ID,工作表命名为“

    查询表

    目的

    根据第二个表中的“订单ID”从第一个表中查询所有其他列的相关信息。

    步骤

    1导入数据

    打开第二个文件(或者新建一个文件也行),在【数据】选项卡下面依次单击“新建查询”、“合并查询”、“启动查询编辑器”。

    在查询编辑器中,点击【开始】选项卡,在最右边的“新建查询”组中依次单击“新建源”、“文件”、“Excel”。

    在弹出的对话框中选择数据源文件后,弹出以下对话框。

    点击红色方框中的“数据源”,然后点击“确定”按钮。

    我们就会导入一份数据,如下图所示。

    用同样的方法,将“查询表”中的数据也导入查询编辑器。

    2创建合并查询

    在查询编辑器的【开始】选项卡中,点击“合并”组中的“合并查询”下拉菜单中的“将查询合并为新查询”。

    在弹出的对话框中,进行以下设置:

    第一个下拉框中选择“查询表”,第二个下拉框中选择“数据源”表。这时,数据都被部分加载显示在这里。

    同时选中上下两个“订单ID”字段,这两个表会通过选中的字段关联在一起。

    在最下面的链接类型中选择“左外部”。如果你了解SQL,那你应该明白,这就叫做Left Join,就是查询结果包含第一个表中的所有数据并匹配上第二个表中相应的数据。

    设置完之后,点击“确定”按钮就创建了一个合并查询,如下图所示。

    我们需要点击下图红色方框中的展开按钮。

    这里列出了所有字段,如果我们只想查看部分字段的话,我们可以在这里只选择要查看的字段。

    这样就得到了一个查询结果。

    3上载数据

    这里需要注意,我们需要点击【开始】选项卡下面的“

    关闭并上载至...

    ”,而不是“关闭并上载”,这是因为“关闭并上载”会直接加载所有三个查询的数据,那个二十多万行的数据也会被加载,而“关闭并上载至...”则会弹出以下对话框,这里我们选择“

    仅创建链接

    这时在工作表的右边就出现了三个链接。

    我们右键点击最下面的Merge1链接,点击菜单中的“加载到...”。

    在弹出的对话框中,查看数据的方式选择“表”,然后点击“加载”按钮。

    咻~几万行查询结果数据就被加载到表中了。

    是不是感觉比使用公式好玩又省时省力呢?而且,如果数据源中同一个“订单 ID”有多行,这里也会全部查询出来。这里我们全程没有用到任何公式、编程,纯菜单式操作,这么实用的知识还不随手分享出去?

    知识拓展

    关于链接的类型

    左外部

    :返回第一个表中所有行,并从第二个表中用关联字段查询匹配行的内容;

    右外部

    :相对于左外部来讲,就是返回第二个表中的所有行,并从第一个表中用关联字段查询匹配行的内容;

    完全外部

    :两个表中所有行都返回,如果有匹配行就返回关联的信息;

    内部

    :只返回两个表中都有的行,比如一个表中有,另一个表中没有,则不返回信息;

    左反

    :返回只在第一个表中存在,不在第二个表中存在的行;

    右反

    :返回只在第二个表中存在,不在第一个表中存在的行。

    有这么多不同的链接类型,小伙伴们有没有什么好想法、好点子呢?快到留言区分享吧!

    End.

    来源:Excel轻松学

    国统计网,是国内最早的大数据学习网站,欢迎关注!

  • ?

    掌握这些海量数据算法的面试方法,提高进一线大数据公司的机会

    忆往夕

    展开

    海量数据处理在面试中是经常会被问的一些问题,处理大量数据的基本功在平常工作中确实是会用到的,今天我就整理了一些这方面的问题。

    所谓海量数据处理, 指的是大数据量上进行的各种数据操作,但因为数据量庞大,会出现程序的运行时间过长,单机的存储空间不够或一些程序在运行过程中内存不足的情况,因而需要一些特别的处理方法,本文就尽可能的把这些特别的处理方法汇总,同时希望各路大神帮忙补充。本文里的各种方法对应的面试题内容也会在博客中持续更新。( 可以点击阅读原文查看博客内容)。

    通过网络上各种文章的收集以及自己平时面试中的一些积累,掌握海量数据问题的处理方法首先要学会两个方法:一是用分治的方法将大数据问题变成小数据问题,其中分治的方法最常用的就是用hash,之后再对各小块问题的结果进行统计、汇总或排序;另一个方法就是用bit map。 其它网络上经常会提到的Trie树,Hadoop等当然能掌握是更好的。本文就先详细举例介绍分治法和bit map方法。其中部份举例题目来源于网络,相信有这方面准备经验的同学可能早就看过了。

    分治法

    大多用来hash映射来将大文件或大量数据进行分而治之的处理,分到不同的机器或节点上,再进行处理。处理的结果可能需要再用hash进行统计汇总,进行归并排序或再用堆排序找出TopK。这里值得一得的是面试过程中如果答出用hash来分治,很可能会引出新的关于hash的问题,比如怎么做hash,处理hash中冲突的方法等,最好都提前准备好。

    下面是关于这方面的几个题目:(篇幅原因,只举例两题,博客上会持续大量更新)

    海量日志数据,提取出某日访次数最多的那个IP

    这题是典型的求TopK,TopK问题最先能想到的肯定是堆排序,但这里因为记录很多,还是可以用分治的方法先打散文件。

    这里注意到IP是32位的,最多有个2^32个IP,可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。

    因为IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理,我们用“分而治之”的思想,按照IP地址的Hash(IP)%1024值,把海量IP日志分别存储到1024个小文件中。这样,每个小文件最多包含4MB个IP地址。对于每一个小文件,可以构建一个IP为key,出现次数为value的Hash map,同时记录当前出现次数最多的那个IP地址。可以得到1024个小文件中的出现次数最多的IP,再依据常规的排序算法得到总体上出现次数最多的IP。如果1024个小文件中有严重的数据倾斜,则需要再进行进一步的分治打散小文件来处理。

    给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

    这里明确给出了每个url占用的字节数和内存限制,那么这个内存里存不下URL明显是需要计算难一下的。从条件中可以算出每个文件的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。

    遍历文件a,对每个url取模 ,这里将大文件分散到小文件的方法有很多种,最直观的,按前N个字母打散也行,重点是要找到一种方法,让所有文件里的URL数量尽可能的均匀,否则出现很大的倾斜的话,还需要再次的打散。

    然后根据所取得的值将url分别存储到1000个小文件中。这样每个小文件的大约为300M。遍历文件b,采取和a相同的方式将url分别存储到1000小文件中。这样处理后,所有可能相同的url都在对应的小文件中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可。如果因为hash的过程中导致小文件的大小不是均匀分布,而出现有些文件还是太大,则可进行再次的hash分治,直至单个文件可以单机处理为止。

    接着用hash进行统计 :求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。

    Bit-Map

    所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。但在面试过程中可能会让你用自己熟悉的语言来写一个Bit-map的程序,最好也提前准备好吧。

    下面是关于这方面的几个题目:(篇幅原因,只举例两题,博客上会持续大量更新)

    在2.5亿个整数中找出不重复的整数,内存不足以容纳这2.5亿个整数。

    方案1:采用Bit-Map(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32*2bit=1GB内存,还可以接受。然后扫描这2.5亿个整数,查看Bit-map中相对应位,如果是00变01,01变10,10保持不变。所描完事后,查看Bit-map,把对应位是01的整数输出即可。

    方案2:也可采用上题类似的方法,进行划分小文件的方法。然后在小文件中找出不重复的整数,并排序。然后再进行归并,注意去除重复的元素。

    已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。

    8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。 (可以理解为从0-99 999 999的数字,每个数字对应一个Bit位,所以只需要99M个Bit==12MBytes,这样,就用了小小的12M左右的内存表示了所有的8位数的电话)

    5亿个int找它们的中位数

    这题也可以用Bit-Map来实现。

    首先我们将int划分为2^16个区域,然后读取数据统计落到各个区域里的数的个数,之后我们根据统计结果就可以判断中位数落到那个区域,同时知道这个区域中的第几大数刚好是中位数。然后第二次扫描我们只统计落在这个区域中的那些数就可以了。

    实际上,如果不是int是int64,我们可以用分治的方法,经过3次这样的划分即可降低到可以接受的程度。即可以先将int64分成2^24个区域,然后确定区域的第几大数,在将该区域分成2^20个子区域,然后确定是子区域的第几大数,然后子区域里的数的个数只有2^20,就可以直接进行统计了。

    欢迎各位大神不吝贡献更多的海量数据处理相关的内容,一同分享,一同进步。

    欢迎关注同名微信公共号,共同进步。

  • ?

    「统计服务」海量数据唾手可得

    两颗心

    展开

    关注“重庆统计微讯”,

    一起涨姿势~

    海量数据唾手可得

    ——中国统计资料馆数字馆上线记

    在小常的电脑收藏夹里,最近又多了个链接——中国统计资料数字馆。“登陆网上资料馆,能快速查到大量统计数据,再也不用一本本地搬年鉴,一页页地翻书了。找到的数据不仅能生成表格,还能输出任选的条、饼、块图形,真是太棒了!”小常兴奋地告诉记者。

    8月21日,中国统计资料数字馆平台在国家统计局内网试运行。这既是资料中心两年多的呕心之作,也是国家统计局积极打造现代服务型统计,创新统计资料管理与服务体系的一大力作,更是政府统计机构为党的十九大的献礼之作。

    管理与服务从线下走到线上

    政府统计数据是记录国民经济和社会发展等重要国情国力的基础数据,是宏观调控和决策的重要依据,也是国家知识遗产的重要组成部分。“加强统计资料管理意义重大,面对凝结着几代统计人心血的历史珍品,我们深感责任重大。”资料中心副主任张芃告诉记者,下决心花大力气收集管理统计资料源于2012年,国家统计局开展的历史数据资料孤本抢救工作,在资料中心和各专业司的共同努力下,用近一年半的时间,分三批次完成了500多册(约10万页)孤本史料翻印。

    如今,随着信息技术的迅猛发展和大数据时代的到来,如何利用现代网络技术及计算机处理能力,更好地把统计资料存好管好用好,是资料管理者之梦。为此,资料中心制定了《统计资料管理工作规划(2013-2017)》,搭建管理服务一体的网络平台,践行规划和实现梦想的奋斗目标——中国统计资料数字馆应运而生!

    从顶层设计到与技术方的论证,从模块集成到平台搭建,从网页设计到内容配置,从数据转换到资源加载,资料处和公众服务处两个处不足10人,经过设计、论证、商谈、培训、运行调试和压力测试以及上线前的安全扫描等层层环节,历经无数次细项繁复的修改,两年的努力,结出了今天的硕果——网站上线3天,统计系统内注册人数就达近150人。

    “五化”打造管理与服务新模式

    打造专业的网上资料馆平台,在国家统计局史无前例,无经验可循;技术合作方广州图创软件公司与国家机关协作,也属首次。资料中心主任钟守洋告诉记者:“中国统计资料数字馆的打造,是我们紧扣时代脉搏,运用先进的技术手段,让统计数据资料更加方便、直观、快捷地服务于社会公众而主动作为的结果。特别是开发数据服务平台,更是我们专注统计数据电子化和探索数据挖掘可视化的自我加压。不久的将来,数字馆逐步推向社会,推动统计服务公众,传播统计知识和文化,向更深层次发展!”

    数字馆的建成,实现了统计资料管理、查询、阅览的电子化和网络化,统计系统资料馆的集群化,统计信息咨询的智能化和统计数据的可视化。网站设置了资源、专题、分馆、服务、咨询等栏目,共有馆藏图书13682种29591册,镜像电子资源中国知网15T、人大资料库60G、方正电子书2591册,随书光盘931种,600多条问答知识库。总馆、分馆馆藏图书、期刊均可实现目录检索。除了总馆之外,目前有辽宁、吉林、贵州、广西统计局资料中心和黑龙江、河南、广东、新疆调查总队8个分馆,其中,部分局队的文献资料已全部纳入网上管理系统,初步形成了总分馆模式。值得一提的是,数字馆的搜索引擎能力强大,可实现多个异构数据库统一检索和结果呈现。

    创新管理与服务仍在路上

    数字馆最大的亮点就是“数据探寻”板块。记者点击“数据探寻”,色彩鲜艳的轮播图,吸引记者进入了自主探究的数据世界。这项创新源于资料中心“依靠技术探索统计数据分析”的初心,即以计算机处理图形及数据模型软件为工具,实现统计数据可视化和数据分析。资料处进行的“数据可视化应用研究”课题理论,在数字馆平台建设中进行了有益的探索和实践。

    “我们的可视化是立足于数据分析,而不仅仅是单纯的图表美化。”张芃表示,“欢迎大家使用我们的可视化和建模工具进行数据分析、预测及图形绘制。我们还将定期丰富图形种类,更新R语言工具包,为公众提供高品质的服务是资料管理人永远的追求。”

    在采访中记者了解到,未来,资料中心将继续开启政府统计机构传播统计文化,服务社会公众的新里程,使统计知识更普及、统计产品更丰富,让统计走进万户千家。可以预见,中国统计资料数字馆的建设刚刚起步,而统计资料管理与服务的创新,将一直在路上!

    编者按

    看完这篇文章以后,你心中是不是有个疑问:重庆的统计数据在哪里查呢?

    我们为大家提供了两种查询方式:

    1.登录“重庆统计”网站:http://cqdata.gov/

    2.手机下载APP“数据重庆”

    及时发布统计数据

    深度分析经济运行

    时时关注行业动态

    贴心分享重庆生活

    欢迎关注

    重庆统计微讯

海量数据统计

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP