中企动力 > 商学院 > 大数据量数据库
  • ?

    大数据不仅仅是海量数据

    甄茗

    展开

    大数据如果仅仅是海量的结构性数据,那么解决的办法就比较单一,用户可以通过购买更多的存储设备,提高存储设备的效率等解决此类问题。然而,问题似乎没有那么简单。曾经听到过一个对于大数据所下的定义我觉得比较到位:“大数据其实是海量高维度数据的相关性分析”。什么意思呢,我们慢慢说。

    量的积累

    当类型复杂的数据汹涌袭来,那么对于用户IT系统的冲击会是另外一种处理方式。有调查发现,这些复杂数据中有85%的数据属于广泛存在于社交网络、物联网、电子商务等之中的非结构化数据。这些非结构化数据的产生往往伴随着社交网络、移动计算和传感器等新的渠道和技术的不断涌现和应用。

    如今大数据的概念也存在着很多的炒作和大量的不确定性。有人将很多TB的数据集也称作”大数据”。据市场研究公司IDC统计,数据使用预计将增长44倍,全球数据使用量将达到大约35.2ZB(1ZB=10亿TB)。但是单个数据集的文件尺寸也将增加,导致对更大处理能力的需求以便分析和理解这些数据集。

    对大企业而言,大数据的兴起部分是因为计算能力可用更低的成本获得,各类系统如今已能够执行多任务处理。其次,内存的成本也在直线下降,企业可以在内存中处理比以往更多的数据,另外是把计算机聚合成服务器集群越来越简单。IDC认为,这三大因素的结合便催生了大数据。同时,IDC还表示,某项技术要想成为大数据技术,首先必须是成本可承受的,其次是必须满足IBM所描述的三个”V”判据中的两个:多样性(variety)、体量(volume)和速度(velocity)。

    多样性是指,数据应包含结构化的和非结构化的数据;体量是指聚合在一起供分析的数据量必须是非常庞大的;速度则是指数据处理的速度必须很快。

    Garter表示,全球信息量正在以59%以上的年增长率增长,而量是在管理数据、业务方面的显著挑战,IT领袖必须侧重在信息量、种类和速度上。

    量:企业系统内部的数据量的增加是由交易量、其它传统数据类型和新的数据类型引发的。过多的量是一个存储的问题,但过多的数据也是一个大量分析的问题。

    种类:IT领袖在将大量的交易信息转化为决策上一直存在困扰:现在有更多类型的信息需要分析,主要来自社交媒体和移动(情景感知)。种类包括表格数据(数据库)、分层数据、文件、电子邮件、计量数据、视频、静态图像、音频、股票行情数据、金融交易和其它更多种类。

    速度:这涉及到数据流、结构化记录的创建,以及访问和交付的可用性。速度意味着正在被生成的数据有多快,数据必须被多快地处理以满足需求。

    综上所述,大数据的基础是多样的,包括结构和非结构的数据,而软硬件架构的进化使得这样规模的数据处理变成了可能。那么能力有了,怎么来很好的利用能力实现价值呢?

    质的变化

    虽然大数据是一个重大问题,Gartner分析师表示,真正的问题是让大数据更有意义,在大数据里面寻找模式帮助组织机构做出更好的商业决策。尽管”BigData”可以翻译成大数据或者海量数据,但大数据和海量数据是有区别的。在刚才提到的对于大数据的定义中,海量数据以及处理海量数据的能力目前已经满足,那么什么是高纬度数据的相关性分析呢?

    著名的奢侈品品牌Prada在其欧洲门店做过这样一个业务改进,他们在衣服的衣架上安装一个电磁芯片,并在试衣间中安装一套传感器装置,每当衣物被带进试衣间试穿就会被相应计数一次。这样一个简单的改进在于,它使得管理人员能够从数据中找到那些试穿多但是购买少的产品,之所以试穿多购买少说明这种产品一定是看上去不错,但是试穿后会发现一些设计上的瑕疵或者不合理的地方,那么设计人员就会有针对性的修改相关产品,这样做明显提高了门店的销售业绩。

    从上面的例子看出,prada的管理人员创造性的创立了一个新的描述产品属性的维度,这就属于维度的提升和创新,这样创新出的维度就是高维度,高维度可能是传统维度汇总后更高粒度的维度,有的可能是创造出来的描述事物的新角度。而把这些维度关联起来进行分析,将事物不同的维度作为因,将因和果关联起来分析,就能更好的了解事物属性。

    因此可见,硬件性能的提升,价格的下降,以及高扩展性软件架构的应用,使得企业高效的从更多角度,更高频度的收集并分析业务数据变成了可能。作为技术人员,在大数据时代,我们将应用更加高效的软硬件架构构建我们的平台,而要真正的发挥大数据的威力,从业务方面增强创新和创造能力、创新分析方法,提高分析多样性就显得更加至关重要。

  • ?

    12个顶级大数据工具

    程夏菡

    展开

    【VIP会员服务】小鸟云匠心打造完整的VIP会员服务体系,为国内国际用户提供7*24小时服务支持、0元快速备案、100倍故障赔偿、5天无理由退款等多种服务支持和服务保障让用户尊贵售后服务,让云端部署更轻松、更高效。

    如今,为了满足企业的主要需求,大数据工具正在迅速得到应用。在大数据技术作为概念和业务战略出现的十年中,涌现了执行各种任务和流程的数千种工具。而推出这些工具的提供商都承诺可以为企业节省时间和成本,并发现能够让企业获利的商业洞察力。显然,大数据分析工具的市场正在不断增长。

    许多大数据分析工具最初像大数据软件框架Hadoop一样都是开源项目,但商业实体迅速涌现,为开源产品提供了新工具或商业的支持和开发。

    而在这些工具中选择是一个挑战,特别是许多大数据工具只具有单一用途,而企业需要使用大数据完成许多不同的任务,因此企业的分析工具箱会变得过于充实。根据这个行业领域的专家顾问的建议,以下列出一系列主要的大数据分析工具,并列出三个主要类别。

    如上所述,大数据工具都倾向于单一使用类别,并且有多种使用大数据的方式。所以可以按类别分类,然后分析每个分析工具。

    大数据工具:数据存储和管理

    大数据都是从数据存储开始。这意味着从大数据框架Hadoop开始。它是由Apache Foundation开发的开源软件框架,用在计算机集群上分布式存储非常大的数据集。

    显然,存储对于大数据所需的大量信息至关重要。但更重要的是,需要有一种方式来将所有这些数据集中到某种形成/管理结构中,以产生洞察力。因此,大数据存储和管理是真正的基础,而没有这样的分析平台是行不通的。在某些情况下,这些解决方案包括员工培训。

    而这个领域的主要的大数据工具有:

    1. Cloudera

    基本上,Hadoop增加了一些额外的服务,企业将需要这些服务,因为大数据并不是一个简单的练习。 Cloudera的服务团队不仅可以帮助企业构建大数据集群,还可以帮助培训员工更好地访问数据。

    2. MongoDB

    MongoDB是最流行的大数据数据库,因为它适用于管理大数据经常出现的非结构化数据或频繁更改的数据。

    3. Talend

    作为一家提供广泛解决方案的公司,Talend的产品是围绕集成平台构建的,该平台结合了大数据、云计算、应用程序,以及实时数据集成、数据准备和主数据管理。

    Talend大数据集成包括数据质量和治理功能。

    大数据工具:数据清理

    在企业真正处理大量数据以获取洞察信息之前,先需要对其进行清理、转换并将其转变为可远程检索的内容。大数据集往往是非结构化和无组织的,因此需要进行某种清理或转换。

    在这个时代,数据的清理变得更加必要,因为数据可以来自任何地方:移动网络、物联网、社交媒体。并不是所有这些数据都容易被“清理”,以产生其见解,因此一个良好的数据清理工具可以改变所有的差异。事实上,在未来的几年中,将有效清理的数据视为是一种可接受的大数据系统与真正出色的数据系统之间的竞争优势。

    4. OpenRefine

    OpenRefine是一款易于使用的开源工具,通过删除重复项、空白字段和其他错误来清理凌乱的数据。它是开源的软件,但它有一个可以提供帮助的大型社区。

    5. DataCleaner

    与OpenRefine类似,DataCleaner将半结构化数据集转换为数据可视化工具可读取的干净可读的数据集。该公司还提供数据仓库和数据管理服务。

    6. Microsoft Excel

    人们可以从各种数据源导入数据。Excel对手动数据输入和复制/粘贴操作特别有用。它可以消除重复、查找、替换,拼写检查以及用于转换数据的许多公式。但它很快陷入困境,并不适用于大数据集。

    大数据工具:数据挖掘

    一旦数据被清理并准备好进行检查,就可以通过数据挖掘开始搜索过程。这就是企业进行实际发现、决策和预测的过程。

    数据挖掘在很多方面都是大数据流程的真正核心。数据挖掘解决方案通常非常复杂,但力求提供一个令人关注和用户友好的用户界面,这说起来容易做起来难。数据挖掘工具面临的另一个挑战是:它们的确需要工作人员开发查询,所以数据挖掘工具的能力并不比使用它的专业人员强。

    7. RapidMiner

    RapidMiner是一款易于使用的预测分析工具,具有非常用户友好的可视化界面,这意味着企业无需编写代码,即可运行分析产品。

    8. IBM SPSS Modeler

    IBM SPSS Modeler是一套适用于企业级的高级分析的产品,用于数据挖掘。而IBM的服务和咨询无疑是首屈一指的。

    9. Teradata

    Teradata为数据仓库、大数据和分析以及市场营销应用提供端到端解决方案。这一切意味着企业的业务可以真正成为一个数据驱动的业务,并提供商业服务、咨询、培训和支持。

    像许多当前的大数据工具一样,RapidMiner解决方案也包含云计算解决方案

    大数据工具:数据可视化

    数据可视化是企业的数据以可读的格式显示的方式。这是企业查看图表和图形以及将数据放入透视图中的方法。

    数据的可视化与科学一样,是一种艺术形式。而大数据公司将拥有越来越多的数据科学家和高级管理人员,很重要的一点是可以为员工提供更加广泛的可视化服务。销售代表、IT支持、中层管理等这些团队中的每一个成员都需要理解它,因此重点在于可用性。但是,易于阅读的可视化有时与深度特征集的读取不一致,这成为了数据可视化工具的一个主要挑战。

    10. Tableau

    作为这一领域的领导者之一,其数据可视化工具专注于商业智能,无需编程即可创建各种地图、图表、图形等等。Tableau总共有五款产品,其中有一个名为Tableau Public的免费版本供潜在客户试用。

    11. Silk

    Silk是一种简单版本的Tableau,Silk可让企业将数据可视化为地图和图表,而无需任何编程。它甚至会尝试在第一次加载时自动将数据可视化。它还使得在线发布结果变得容易。

    12. Chartio

    Chartio使用自己的可视化查询语言,只需点击几下即可创建功能强大的仪表板,而无需了解SQL或其他建模语言。与其他不同的是,企业直接连接到数据库,因此不需要数据仓库。

    13. IBM Watson Analytics

    IBM Watson Analytics是机器学习(ML)和人工智能(AI)的结合,可帮助提供智能数据科学助理,为业务分析师和数据科学家提供广泛的数据科学技能集的用户指南。

    三层大数据工具

    普华永道移动数据和分析计划首席技术官Ritesh Ramesh说,就精密程度和市场战略而言,大数据工具分解为三层。

    第一层:也是最大的一层,是一系列开源工具。每家公司都以这种方式开始,像Cloudera和Hortonworks。除了基本的基础设施。服务器和存储之外,价值非常小。大多数云计算厂商已经将这一层实现商品化。

    第二层:这是大多数这些供应商已经意识到需要增加他们的市场份额的地方,他们必须在开放源代码工具之上构建一些专有应用程序,从而与其他供应商区分开。例如,Cloudera公司构建了一些类似于Hadoop内核中的数据科学平台。

    第三层:这些是垂直专用的应用程序。这些公司大多与普华永道、Cognizant或埃森哲等系统集成商合作。这就是真正的价值所在,而且这也是大数据工具制造商非常有效的竞争策略。

    Ramesh说,除了基本功能之外,还有三个工具需求领域。首先是数据处理工具。他说,“数据学习工具是客户进行数据质量和性能分析的工具包中的重要工具,可处理5000万行数据,以发现洞察力。”

  • ?

    一起来学大数据|数据库和表结构的基本操作

    鹿涑

    展开

    上篇文章我们学到了如何安装数据库,下来我们学习数据库的一些基本的操作,其中也包括对表的操作。

    数据库基本操作

    show databases;通过此命令可以实现查看所有的数据 库名称,就像下图,这是默认的一些数据库

    create database dbName ;通过此我们可以在数据库系统中创建一个叫reba的数据库

    create database reba character set utf8 ;这条命令与上述命令类似,我们在上面的基础上加上了对数据库字符编码集的限制,能够保证我们的中文在系统中不会出错。

    use dbName ;在use后面加入数据库的名字,也就是打开数据库。在下面创建表的时候必须先打开数据库,在进行建表操作。

    select database();与show类似,同样是查看数据库,不同的是Select查看的当前所正在使用的数据库名称。

    show create database reba ;这条命令是查看创建数据库reba的时候所使用的字符集。

    drop database dbname;删除数据库的操作,

    数据库中创建一个表,相当于在Java中新建一个User类,然后对其封装,List便是一张数据表。

    List

    1.数据类型

    表中的字段数据类型有很多种,如下图,其实我们常用的有int和char,varchar这几种数据类型。

    表字段数据类型

    在这里有人会问char和varchar有什么区别?

    char是一个定长的字符串,它的长度不会变化,而varchar在小于指定长度的情况下,它的长度会根据存储的长度而改变,是一个可变长度的字符串。

    2.约束

    俗话说的好,没有规矩不成方圆。通过这些约束我们可以实现对数据的规范,方便我们对数据的操作。

    表结构操作

    1-创建表

    在java中我们这样来创建一张表

    class User{

    int age ;

    String name ;}

    类比数据库中,我们使用这样的方法,其实这也是一门语言

    create table t_user2(

    age int ,

    name varchar(100) default ‘lisi’)

    创建表的语法

    表建好之后我们使用desc 表名 来查看表的信息

    查看表的字符编码集就是表的创建语句 show create table 表名;

    2-修改表结构

    在修改表中我们使用关键字alter来对表进行操作,具体的内容如下。

    修改表

    通过这些命令,我们可修改表的列名,表的属性以及添加和删除一列的数据。但是,我们基本不用修改表的做这些命令,迫不得已额尽量别用。

    3.删除表

    删除表我们也是一般不用,其中的语法有:

    drop table 表名;

    TRUNCATE TABLE 表名

    这两种方式前面的是有条件的删除,自动增加的主键不会初始化,而后者是直接全部删除,不可退回,速度快,相当于新建了一张表,这个表与之前的一模一样,而且自增的主键也会从头开始计算。

    之前你可能遇到这样的情况,强迫症的你就得使用第二种方式

    这就是对表的一些基本操作,当然我们这里并没有去写对表的数据进行操作。

    下篇文章我们将会对数据坤单表和多表数据的操作做一个详细的说明,有什么一下下方留言!帮助到你的话,关注一下我哟~谢谢大家支持。

    感谢坚持关注的朋友

    世界很大,幸好有你

    欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。

    聚焦最新科技咨讯,探寻未来智能领域,我是女陶。

  • ?

    一起来学大数据|MySQL数据库的简介与安装

    坎贝尔敦

    展开

    学习了Java的一些基础基础知识,今天我们学习到的是数据库的下载使用,比起单纯的读取本地文件,数据库可以更加快速的对数据进行操作。

    Mysql数据库简介

    数据库其实就是我们存储数据的一个仓库,它的本质是一个文件系统,我们将数据通过一定的格式存储起来,实现对数据的增加,删除,修改以及查询操作。

    Mysql数据库是目前市面是开源的关系型数据库,它可以通过结构化语言SQL对数据库进行管理。

    比起别的数据库,mysql数据库的占有内存系哦啊,运行的速度比较快,成本比较低,这样让一些小型的网站有了最好的选择,其中最重要的是开源。

    数据库服务器安装

    我们在网站上可以找到官方版和社区版2种版本的安装,一般我们会选择安装社区版的服务器,因为比起企业版的社区版是免费的呀~而企业版本是付费的,只有稳定的sql版本,付费也是会得到官方的技术支持。

    在网站上下载到压缩包之后,开始下面步骤,我们这里选的是mysql-5.7.17-winx64.zip压缩包。

    1.解压到mysql数据库压缩包d:data,这里主要尽量不要选太深的目录。

    2.配置环境变量

    MYSQL_HOME=d:/datapath=%MYSQL_HOME\bin;

    文件路径都配置好之后,我们将Mysql添加到系统服务中并启动

    3.以管理员身份运行cmd,切换目录到解压的文件夹下的bin

    4,执行安装名mysqld install MySQL --defaults-file="D:\zhong\mysql-5.7.17-winx64\my-default.ini"

    5 start mysql启动数据库

    在这里我们可能会遇到sql服务器无法启动的情况

    这时候我们的解决方法是

    mysql --installmysql --initializenet start mysql

    一般情况是正常的,但如果还是失败了,我们使用命令sc delete mysql,在进程中结束mysqld,删除原解压目录,在根目录下新建一个目录重新解压文件,再次执行上述步骤。

    6.修改密码

    mysql会在启动之后,初始化一个默认的密码,这个密码我们可以在安装目录下的data中 主机名.err这个文件中找到,如下图

    数据库密码

    登陆mysql -uroot -p,输入上面文件中的密码:lsix6)UhXhsJ,修改密码,执行:SET PASSWORD =PASSWORD('root');

    上述就是对数据的简单安装程序,有帮助到大家话,关注一下呗~

    感谢坚持关注的朋友~

    世界很大,幸好有你~

    欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。

    聚焦最新科技咨讯,探寻未来智能领域,我是Mario女陶。

  • ?

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

    褚白梅

    展开

    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 的开源实现,每个人都可以下载来使用,也可以根据自己需要进行修改和完善

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

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

  • ?

    什么样的数据才算大数据?——大数据的特性

    崔莞

    展开

    什么是大数据?大数据就是指在一定时间范围内无法使用传统数据库工具对其进行捕捉、管理、计算、分析和处理的数据集合,大数据有以下四个特性:海量的数据规模(Volumn),数据类型繁多(Variety),数据流转速度极快(Velocity)以及价值密度较低(Value),我们就说说这四大特性。

    海量的数据规模

    我们接触最多最敏感的数据那就是我们手机所购买的流量,最常见的数据计量单位为K、M和G,他们的关系为1G=1024M,1M=1024KB。也许你也听过TB,1TB=1024G,这个数据单位对我们来世已经相当庞大了,我们的笔记本最大的容量也就在1TB这个级别,但是在大数据眼里最小的数据也得10TB起,比TB级还大的数据计量单位还有吗?有,而且还很多,1PB=1024TB,1EB=1024PB,1ZB=1024EB,1YB=1024ZB......我们已经无法感知这么大的数据量了。截止到2011 年,互联网用户数已达到20 亿; RFID 标签在2005 年的保有量仅有13亿个,但是到2010 年这个数字超过了300 亿;2006 年资本市场的数据比2003 年增长了17.5倍;日前新浪微博上每天上传的微博数超过1 亿条;Facebook 每天处理10TB 的数据;世界气象中心积累了220TB 的Web 数据,9PB 其他类型数据……

    极快的数据流转

    数据具有一定的时效性,是不停的变化的,可以随时间数据量逐渐增大,也可在空间上不断移动变化的数据。如果我们采集到的数据不经过流转,最终会过期作废。客户的体验在分秒级别,海量的数据,带来的第一个问题就是大大延长了各类报表生成时间,我们能否在极端的时间内提取最有价值的信心呢?数据在1秒内得不到流转处理,就会给客户带来较差的使用体验,若我们的数据处理软件达不到“秒”处理,所带来的商业价值就会大打折扣。

    价值密度低

    尽管大数据的数据量巨大,但是有价值的信息极少,我们要通过分析才能将大数据从数据到价值的转变,这些工作量极其庞大,所以云计算是一个很好的解决途径。以监控视频为例,一小时的视频,在不间断的监控过程中,可能有用的数据仅仅只有一两秒。

    数据种类繁多

    数据的格式是多样化的,如文字、图片、视频、音频、地理位置信息等,也可以是不同的数据类别,也可以有不容的来源,如传感器、互联网。首先用户是一个复杂的个体,单一的行为数据是不足以描述用户的各种行为,多元化的信息采集处理就像拼图一样,逐渐勾勒出我们身体的骨架,增添上我们的血肉。我们在淘宝、京东购物时,总会在下面的推荐区推荐我们想要的东西,比如我们去频繁的搜索浏览某件商品,这是他们就会采集我们浏览的数据,从中挖去有价值的信息,推送给我们。所以说这样的模式给一种体验,那就是这些app越来越懂我们的爱好和需求。

    大数据未来会渗透在很多领域,大数据与云计算,机器学习与人工智能,物联网,区块链等。

  • ?

    大数据技术如何提升海量经典空间数据管理能力?

    裴诗云

    展开

    很多大数据都具有空间位置信息,这些空间大数据可以通过大数据GIS技术进行高效存储、索引、处理和分析。另一方面,经典GIS所需面对和处理的数据规模也在快速膨胀,对于经典GIS中超大规模数据的处理与分析,同样需要大数据GIS技术作为支撑。经典GIS中常用的缓冲区分析、叠加分析、空间查询等算法都可以通过大数据GIS技术进行分布式重构,用以面向不断膨胀的超大规模数据。

    一、经典GIS数据存储方案

    在各种GIS项目应用当中,首要设计的就是数据存储方案。在经典GIS当中,典型数据类型包括矢量的点线面数据、影像和栅格数据、地图缓存瓦片数据等类型。在存储引擎类型方面,使用较多的类型包括以PostgreSQL为代表的SQL数据库型存储,以及众多NoSQL型数据库,包括以MongoDB为代表的文档型数据库,以HBase为代表的列存储数据库,以Redis为代表的key-value型数据库等。随着互联网应用的深入,各种NoSQL型数据库得到了快速发展,并具有支持分布式可扩展部署,高性能读写等特征,因此在大数据GIS技术中,有必要对其进行吸收和融合。

    在大数据应用中,由于涉及的数据体量巨大,存储和计算环境的部署强调二者的一体化,或者通过计算向数据靠拢来实现高效的数据读写。在海量空间数据场景下,需要通过空间索引技术将节点内的数据尽可能的保持完整性和独立性,尽量避免节点间的数据交换,从而实现高效的分布式计算。

    1、PostgreSQL

    PostgreSQL是一个功能强大的开源关系型数据库系统。可以支持各种主流操作系统,它完全兼容ACID,完全支持外键,连接,视图,触发器和存储过程(使用多种语言)。在GIS应用当中,可以使用它进行矢量点线面数据,栅格数据的高效存储和查询,由于它完全支持ANSI-SQL:2008标准,因此可以基于其上定制各种业务化的查询和存储过程。另一方面,基于其上的PostGIS数据库可以直接进行空间对象的存储和索引,并支持高效的查询,以OpenStreetMap为代表的很多GIS应用直接基于PostgreSQL引擎之上构建存储层。

    2、MongoDB

    MongoDB是一个基于分布式存储的NoSQL文档型数据库,它是一个介于关系型数据库和非关系型数据库之间的产品。大多数NoSQL都提供较少的关系型数据库特征,但MongoDB是个例外,其对于SQL查询支持较为丰富。其BSON形式的数据结构非常适合进行缓存瓦片的存储,而缓存瓦片的使用往往也不要求过多的SQL查询语法支持。另一方面,它也同样可以进行矢量点线面的存储,并且内置了Spatial扩展可以支持空间索引和空间查询。

    3、HDFS

    HDFS是一种分布式文件系统,它虽然不是一种数据库产品,但由于其是Hadoop生态体系的基石,且与Spark技术无缝结合,因此在大数据实施时,经常被用来作为一种通用型存储方案。在大数据GIS当中,其使用方式主要有两类,一种是直接作为文件系统,将csv、json格式的大文件放置其上进行直接存储,另一种是作为Spark计算引擎的存储方案,使用自定义的二进制格式存储空间数据,并进行空间二级索引设计和实现,以高效对接Spark分布式计算。

    二、经典GIS数据处理方案

    由于各种存储引擎特点不一,因此在项目实施中,如何选择最适合的存储和计算方案,需要与项目的具体使用背景相结合。我们建议从数据规模(千万级、亿级、十亿级还是更大)、数据更新频率(年、月、日还是更小)、数据处理复杂性(SQL查询、空间查询还是复杂空间运算)等几个维度进行综合考量。我们选择了几个较为典型的应用场景,进行具体说明。

    1、千万级实时更新

    该应用的典型客户为政府各单位的分中心,虽然全国范围内的汇总数据规模庞大,但省市分中心单位维护的子库数据规模在千万级左右。虽然数据规模不大,但是具有业务逻辑复杂,要求实时更新的特点,因此推荐根据业务场景,灵活使用Oracle或UDB数据库型引擎。可以进行实时更新,也可以根据复杂业务进行较复杂的SQL查询检索。并且可以对接Spark计算引擎,进行大规模数据的复杂计算。

    2、亿级准实时更新

    该应用的典型客户是部委的全国级主中心,从各省市分中心汇总的数据规模可以达到亿级到十亿级规模,更新频率低于分中心的实时业务系统,但也需要具备一些SQL查询能力。此时推荐使用PostgreSQL或MongoDB进行分布式存储,一方面可以支持数据的动态扩展,另一方面也可以支持一定的SQL查询。当然也可以对接Spark计算引擎,进行业务计算。

    3、十亿级低频更新

    该应用的典型客户也是部委的全国级主中心,可能需要对汇总的多年份历史数据进行时间序列分析或者综合性分析。此时的数据更新频率较低,可能是以年为单位,但总体的数据规模非常庞大,可能达到十亿甚至百亿规模。此时推荐使用HDFS进行数据存储,再对接Spark技术进行分布式计算,对这种超大规模的空间数据进行处理和综合分析。

    三、经典GIS应用案例

    矢量数据的空间叠加赋值算法,是国土测绘领域这样的大规模矢量数据分析常用功能。SuperMapiObjectsjavaforSpark以该算法为例,讲解大数据技术如何提升经典GIS数据处理和分析性能。矢量数据分析的基础是高效的空间索引,而分布式矢量分析同样需要基于空间索引进行加速。

    1、分布式构建空间索引

    分布式构建空间索引根据整体流程,又可以细分为索引对象构建,数据集重分区,索引后数据缓存等几个子过程。较常使用的索引类型有均匀格网索引和四叉树索引两种。索引对象构建后可以广播到集群各节点,数据集重分区过程各节点可以获取该对象进行空间对象处理。由于后续的叠加赋值计算需要基于索引后数据进行,所以SuperMapiObjectsjavaforSpark需要把重分区后的数据缓存下来,以kryo序列化的方式将数据缓存到HDFS上。

    2、分布式叠加赋值计算

    由于在前面的分布式构建索引过程中,SuperMap iObjects java for Spark把按照索引重分区后的数据缓存到了HDFS上,因此在进行叠加赋值计算之前,SuperMap iObjects java for Spark首先需要将数据从HDFS上读取到Spark的RDD中。在读取之后,就可以基于索引后的FeatureRDD进行两图层间的叠加计算了。由于叠加赋值一般涉及被更新数据和更新数据两个数据集,所以SuperMap iObjects java for Spark使用RDD的zipPartitions接口来将两个RDD进行组合。

    四、经典GIS性能提升测试

    SuperMap iObjects java for Spark使用的测试环境的单节点操作系统为64位Ubuntu 16.04 Linux系统,CPU为英特尔酷睿i7-6700K,四核处理器,主频为4 GHz,硬盘为1 TB,内存为16 GB。Spark集群配置为一个Master节点,四个Woker节点,即五台同配置的PC机环境。使用的Hadoop版本为2.7.3,Spark版本为2.1.0。

    测试数据局部放大图

    为了保证测试的有效性,SuperMap iObjects java for Spark设计了规模不等的三组矢量数据进行分析计算。A组数据被 更新图层图斑对象数目为10万,更新图层(即提供属性值的图层) 图斑对象数目为80。

    两图层数据分布特征为:更新图层的单个矢量面对象面积显著大于被更新图层对象,但二者的总体图斑覆盖范围相近。B组数据被更新图层图斑对象数目为100万,更新图层图斑对象数目为800,两图层数据分布特征与A组数据类似。C组数据被更新图层图斑对象数目为1000万,更新图层图斑对象数目为1万,两图层数据分布特征与A组数据类似。SuperMap iObjects java for Spark将分布式改进后的方法与传统GIS软件的单节点叠加赋值功能进行了性能对比,结果如表1所示。

    表1性能测试结果

    从测试结果可以看出,基于大数据技术的矢量数据叠加赋值方法,在不同级别的实验数据下,相比传统GIS单节点功能都有更好的性能表现。在小规模数据量(数据A)场景下性能有约33%的提升,在中等规模数据量(数据B)场景下性能有约71%的提升,在大规模数据量(数据C)场景下性能有约90%的提升,图2使用柱状图来更为直观的进行结果展示。

    在对常用的GIS核心算法进行分析之后,我们认为:大多数的经典GIS核心算法都可以进行分布式算法改进,即使用大数据技术进行海量空间数据处理和分析的性能提升。目前SuperMap iObjects java for Spark已经完成的算法包括空间查询、叠加分 析、缓冲区分析、属性更新、矢量裁剪等功能,后面还计划针对矢量数据处理,拓扑检查等经典GIS常用功能进行进一步的升级改进。

    内容来源:超图

  • ?

    告诉你什么叫“大数据”,这么说你就懂了

    代丝

    展开

    人工智能,互联网+,VR,量子科技,大数据,这是在科技领域最火的几个名词了。

    这里首先先聊聊大数据。

    听名字就大气,大数据就是很多的数据,每个人都有一个单独的“大数据库”,这个“大数据库”就存着你的爱好了,性格了,脾气了,身价了,甚至性取向了。

    互联网时代,你的这些“大数据库”对于某些高科技公司基本就是公开的,它们有这个世界上几乎每个人的数据库档案。这些高科技公司可以通过对你的“大数据库”进行分析,分析你是一个什么样的人,分析你最近缺什么了,分析你最近想买什么了,分析你最近是不是想什么变态的事了。

    分析出来之后,就通过大概率事件,主动向你推荐一些你下一步想要进行的活动。

    比如,你再虚拟购物车里存入了充气娃娃了,安全套了等等,它就会认为你即将可能买这方面的东西,于是就根据你选取商品的品质、价格等,主动给你推荐一个可能是你心里最为理想的店铺。

    这就是大数据最基础的应用。

    大数据不仅仅针对每个人,而是针对这个世界的万事万物。

    想想吧,如果一个人的“大数据库”有1亿的数据量,那么这个世界的万事万物将会有多么大的数据。

    你用微信来记录心情,并且和网友分享图片,此外还有各种语音聊天。全国有数亿像你一样的人在使用微信,每天都有大数据在微信这个平台上跑着。

    你再百度地图定位你的位置,搜寻周围的建筑,每个在百度地图上跳出来的坐标,实际上都是由大数据堆成的。

    大数据时代,也得聊聊量子科技,最近中国研发的光量子计算机,就是实现大数据最有效快捷的方式,因为一台量子计算机的运算速度足以秒杀目前世界上所有最先进的计算机的运算速度之和。

    也就是说量子计算机用0.0000000..............1秒的时间就能把你分析的透亮。

    有点像《鹰眼》里的超级计算机,无论你在世界的哪个角落,我都可以立马找到你,并且用我的牛逼到你无法想象的运算速度,运算并分析出我是不是要毁灭你?用哪种方式毁灭你最便捷?

    这就是人工智能发展到失控的时代了!

  • ?

    如何优化大数据高并发量的系统的SQL语句提高效率

    Jewel

    展开

    性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化提高它的解决效率。

    489034603

    当看到一个SQL语句带来了性能问题的时候,首先要看看它的执行计划。看看他是否走了你所期望的索引。物理读逻辑读是不是在合理的范围之内?对于这类的性能问题,可以追溯到表的设计阶段,例如,为 了保证数据库的一致性和完整性,在逻辑设计的时候往往会设计过多的表间关联,尽可能的降低数据的冗余,然而,为了提高系统的响应时间,合理的数据冗余也是必要的。设计人员在设计阶段应根据系统操作的类型、频度加以均衡考虑。下面我们来谈谈优化的技巧:

    【1】表设计的优化

    1、数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率。

    2、能够用数字类型的字段尽量选择数字类型而不用字符串类型的。

    3、对于不可变字符类型char和可变字符类型varchar 都是8000字节,char查询快,但是耗存储空间,varchar查询相对慢一些但是节省存储空间。

    4、字段的长度在最大限度的满足可能的需要的前提下,应该尽可能的设得短一些,这样可以提高查询的效率,而且在建立索引的时候也可以减少资源的消耗。

    5、字段顺序对存储效率也有不小的影响。在做表结构设计的时候,我们往往不会去考虑字段的摆放顺序。但是,实际上字段的摆放顺序对数据库操作的性能是有影响的。

    6、针对各种类型的表来存储各种类型的数据

    【2】 语句的查询优化

    1、保证在实现功能的基础上,尽量减少对数据库的访问次数;

    2、通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;

    3、在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;

    4、在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1;

    5、在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300 COL1,COL2,COL3 FROM T1,因为某些情况下用户是不需要那么多的数据的。

    6、在没有建索引的情况下,数据库查找某一条数据,就必须进行全表扫描了,对所有数据进行一次遍历,查找出符合条件的记录。

    7、在数据量比较小的情况下,也许看不出明显的差别,但是当数据量大的情况下,这种情况就是极为糟糕的了。

    8、合理的使用临时表。例如表A 的 ID 字段有索引,并且这个表的数据有很多。这时候要查询这个ID 的最大值与最小值,如果能合理使用临时表,速度将大幅度提高!

    9、多层的子查询需要进行简单化。

    【3】建立高效的索引

    创建索引一般有以下两个目的:维护被索引列的唯一性和提供快速访问表中数据的策略。大型数据库有两种索引即簇索引和非簇索引,一个没有簇索引的表是按堆结构存储数据,所有的数据均添加在表的尾部,而建立了簇索引的表,其数据在物理上会按照簇索引键的顺序存储,一个表只允许有一个簇索引,因此,根据B树结构,可以理解添加任何一种索引均能提高按索引列查询的速度,但会降低插入、更新、删除操作的性能,尤其是当填充因子(Fill Factor)较大时。所以对索引较多的表进行频繁的插入、更新、删除操作,建表和索引时因设置较小的填充因子,以便在各数据页中留下较多的自由空间,减少页分割及重新组织的工作。据说大部分的数据库性能问题都可以采用索引技术得到解决。

    【4】 强制查询转换

    有时候oracle 的优化器未必能走正确的查询路线,这个时候就需要添加一些hint 之类的来规定他的执行路线。当然了,这个未必是最好的处理方案。因为虽然现在走这个路线是对的,以为因为数据的变化到这这个HINT 变得不可取!

    【经验之谈】

    在日常我们开发的系统中有很多的SQL 语句被写成N层嵌套,我们应该在了解了业务之后,将复杂的SQL 改成多个简单的语句逐步处理,再或者用with as 语法,这个可以解决不少的性能的问题。再者,很多朋友不会使用分析函数,认为它会带来一定的性能问题,其实这是错的。使用分析函数的查询,不但语法简洁,查询效率来看比自己拼得多层查询的效率要好很多。

    以上为个人观点,供大家参考,因为每个公司的业务逻辑不同,所采用的方法也不尽相同,我们只能做的让它变的更好,在大数据领域没有最好。

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

  • ?

    大数据海量存储揭秘,详解HBase存储结构

    Cynthia

    展开

    HBase是一个查询极其快速的非关系型数据库,它在实时读写和实时访问上有着巨大的优势,并且非常灵活。今天小鸟就从HBase的存储结构来向大家揭秘其强大之处。

    之前小鸟已经介绍过HBase的系统架构了,没有看过的同学欢迎翻阅之前的文章:大数据Hadoop工具,HBase系统架构简介

    下面正式进入今天的主题:HBase的存储结构

    先来看下面这幅图:

    这是一个HBase表的存储结构模型,其中有4个字段。分别为Rowkey(主键)、Time Stamp(时间戳)、CF(列族)、CF:xx(列)。这看上去是一个数据表,但是对于HBase而言,这只是一行数据。看到这大家可能会比较迷惑,这明明就是数据表嘛,我用了这么多年excel,你可别骗我。

    为了方便理解,我们先来举个例子,请看下面这幅图:

    这是一个普通的数据表,名为legens。其中有5列数据,分别为id、名字,出生日期,外号和出生地。有些小伙伴看到表里的内容应该会很熟悉,但是这并不是重点。假如,现在有些人不止1个外号了。有些人有2个甚至3个外号,这时如果要将数据存入数据表,则需要修改表结构,修改结果如下:

    如果接下来还有别的字段要添加,比如性别等。那么这个表结构还需要修改。因此在统计结构不严谨的数据的时候,普通的关系型存储结构并不好用。那么如果使用HBase的话,如何存这些数据呢?请看下图:

    这就代表着一行数据,和普通的数据表类似但又不完全像,接下来小鸟就按照前面的过程来讲解。

    首先,rowkey是主键,它决定一行数据。rowkey在生成的时候就会排好序,排序规则按照字典顺序。所谓字典顺序就是ABCD、1234。Rowkey只能存储64k的字节数据,如果太长则影响性能。

    Timestamp是时间戳,每插入一次数据都会有一个时间戳,其作用是标识本次加入的数据,起到一个版本的作用,HBase在插入数据的时候默认版本号就是时间戳。这个字段可以自己修改定义,但是一般都采用默认的时间戳。

    通常获取数据就是获取时间戳最近的一条数据。假如现在加入一条数据。Cf1:name=劫。那此时如果获取rowkey为1的一行下,cf1为name的数据时,获取到的就是劫而非亚索。

    因为此时劫是新加入的,HBase在做数据更新的时候就是利用新数据来覆盖旧数据的。

    Cf是列族,全称是Colunm Family。HBase表中的每个列都属于一个列族。列族必须作为表模式事先定义完毕。例如create ‘legens’ ‘cf1’ ‘cf2’ ‘cf3’……。一个列族下的所有数据都存于一个目录下,由几个文件保存。

    除此之外,权限控制、存储和调优都是在列族层做处理的,因为表在建模的时候并不会考虑有多少列。

    列族一般不轻易修改。

    name、born、alias等都是列,列名以列作为前缀。例如cf1:name。一个列族有多个列成员,上述cf1就有name、born、alias1、alias2、alias3。并且列在后续可以按需求增加。加入现在要在cf1中加入height,则直接添加cf1:height=xxx。

    确定一个列的某个属性的值需要四个值来确定,分别是rowkey、列族、列名、和timestamp。

    最后要说明的是,HBase中存储的数据是没有类型的,全部都是以字节码的形式存储。

    以上就是本次HBase存储结构的全部内容了,有任何疑问欢迎私信或者评论,小鸟将第一时间解答。另外开黑也可以的。

大数据量数据库

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

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

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP