通常数据库分为关系型数据库和非关系型数据库,关系型数据库的优势到现在也是无可替代的,比如MySQL、SQL Server、Oracle、DB2、SyBase、Informix、PostgreSQL以及比较小型的Access等等数据库,这些数据库支持复杂的SQL操作和事务机制,适合小量数据读写场景;但是到了大数据时代,人们更多的数据和物联网加入的数据已经超出了关系数据库的承载范围。
大数据时代初期,随着数据请求并发量大不断增大,一般都是采用的集群同步数据的方式处理,就是将数据库分成了很多的小库,每个数据库的数据内容是不变的,都是保存了源数据库的数据副本,通过同步或者异步方式保证数据的一致性,每个库设定特定的读写方式,比如主数据库负责写操作,从数据库是负责读操作,等等根据业务复杂程度以此类推,将业务在物理层面上进行了分离,但是这种方式依旧存在一定的负载压力的问题,企业数据在不断的扩增中,后面就采用分库分表的方式解决,对读写负载进行分离,但是这种实现依旧存在不足,且需要不断进行数据库服务器扩容。
NoSQL数据库大致分为5种类型
1、列族数据库:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下面简单介绍几个
(1)Cassandra:Cassandra是一个列存储数据库,支持跨数据中心的数据复制。它的数据模型提供列索引,log-structured修改,支持反规范化,实体化视图和嵌入超高速缓存。
(2)HBase:Apache Hbase源于Google的Bigtable,是一个开源、分布式、面向列存储的模型。在Hadoop和HDFS之上提供了像Bigtable一样的功能。
(3)Amazon SimpleDB:Amazon SimpleDB是一个非关系型数据存储,它卸下数据库管理的工作。开发者使用Web服务请求存储和查询数据项
(4)Apache Accumulo:Apache Accumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建立在Apache Hadoop、Zookeeper和Thrift技术之上。
(5)Hypertable:Hypertable是一个开源、可扩展的数据库,模仿Bigtable,支持分片。
(6)Azure Tables:Windows Azure Table Storage Service为要求大量非结构化数据存储的应用提供NoSQL性能。表能够自动扩展到TB级别,能通过REST和Managed API访问。
2、键值数据库:Redis、SimpleDB、Scalaris、Memcached等,下面简单介绍几个
(1)Riak:Riak是一个开源,分布式键值数据库,支持数据复制和容错。(2)Redis:Redis是一个开源的键值存储。支持主从式复制、事务,Pub/Sub、Lua脚本,还支持给Key添加时限。
(3)Dynamo:Dynamo是一个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使用。
(4)Oracle NoSQL Database:来自Oracle的键值NoSQL数据库。它支持事务ACID(原子性、一致性、持久性和独立性)和JSON。
(5)Oracle NoSQL Database:具备数据备份和分布式键值存储系统。
(6)Voldemort:具备数据备份和分布式键值存储系统。
(7)Aerospike:Aerospike数据库是一个键值存储,支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。
3、文档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面简单介绍几个
(1)MongoDB:开源、面向文档,也是当下最人气的NoSQL数据库。
(2)CounchDB:Apache CounchDB是一个使用JSON的文档数据库,使用Javascript做MapRece查询,以及一个使用HTTP的API。
(3)Couchbase:NoSQL文档数据库基于JSON模型。
(4)RavenDB:RavenDB是一个基于.NET语言的面向文档数据库。
(5)MarkLogic:MarkLogic NoSQL数据库用来存储基于XML和以文档为中心的信息,支持灵活的模式。
4、图数据库:Neo4J、InfoGrid、OrientDB、GraphDB,下面简单介绍几个
(1)Neo4j:Neo4j是一个图数据库;支持ACID事务(原子性、独立性、持久性和一致性)。
(2)InfiniteGraph:一个图数据库用来维持和遍历对象间的关系,支持分布式数据存储。
(3)AllegroGraph:AllegroGraph是结合使用了内存和磁盘,提供了高可扩展性,支持SPARQ、RDFS++和Prolog推理。
5、内存数据网格:Hazelcast、Oracle Coherence、Terracotta BigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面简单介绍几个
(1)Hazelcast:Hazelcast CE是一个开源数据分布平台,它允许开发者在数据库集群之上共享和分割数据。
(2)Oracle Coherence:Oracle的内存数据网格解决方案提供了常用数据的快速访问能力,一致性支持事务处理能力和数据的动态划分。
(3)Terracotta BigMemory:来自Terracotta的分布式内存管理解决方案。这项产品包括一个Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop连接器。
(4)GemFire:Vmware vFabric GemFire是一个分布式数据管理平台,也是一个分布式的数据网格平台,支持内存数据管理、复制、划分、数据识别路由和连续查询。
(5)Infinispan:Infinispan是一个基于Java的开源键值NoSQL数据存储,和分布式数据节点平台,支持事务,peer-to-peer 及client/server 架构。
(6)GridGain:分布式、面向对象、基于内存、SQL+NoSQL键值数据库。支持ACID事务。
(7)GigaSpaces:GigaSpaces内存数据网格能够充当应用的记录系统,并支持各种各样的高速缓存场景。
❷ 微服务容器平台面对大数据存储是怎么做的
整体而言,大数据平台从平台部署和数据分析过程可分为如下几步:
1、linux系统安装
一般使用开源版的Redhat系统--CentOS作为底层平台。为了提供稳定的硬件基础,在给硬盘做RAID和挂载数据存储节点的时,需要按情况配置。例如,可以选择给HDFS的namenode做RAID2以提高其稳定性,将数据存储与操作系统分别放置在不同硬盘上,以确保操作系统的正常运行。
2、分布式计算平台/组件安装
目前国内外的分布式系统的大多使用的是Hadoop系列开源系统。Hadoop的核心是HDFS,一个分布式的文件系统。在其基础上常用的组件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等。
先说下使用开源组件的优点:1)使用者众多,很多bug可以在网上找的答案(这往往是开发中最耗时的地方)。2)开源组件一般免费,学习和维护相对方便。3)开源组件一般会持续更新,提供必要的更新服务‘当然还需要手动做更新操作’。4)因为代码开源,若出bug可自由对源码作修改维护。
再简略讲讲各组件的功能。分布式集群的资源管理器一般用Yarn,‘全名是Yet Another Resource Negotiator’。常用的分布式数据数据‘仓’库有Hive、Hbase。Hive可以用SQL查询‘但效率略低’,Hbase可以快速‘近实时’读取行。外部数据库导入导出需要用到Sqoop。Sqoop将数据从Oracle、MySQL等传统数据库导入Hive或Hbase。Zookeeper是提供数据同步服务,Yarn和Hbase需要它的支持。Impala是对hive的一个补充,可以实现高效的SQL查询。ElasticSearch是一个分布式的搜索引擎。针对分析,目前最火的是Spark‘此处忽略其他,如基础的MapRece 和 Flink’。Spark在core上面有ML lib,Spark Streaming、Spark QL和GraphX等库,可以满足几乎所有常见数据分析需求。
值得一提的是,上面提到的组件,如何将其有机结合起来,完成某个任务,不是一个简单的工作,可能会非常耗时。
3、数据导入
前面提到,数据导入的工具是Sqoop。用它可以将数据从文件或者传统数据库导入到分布式平台‘一般主要导入到Hive,也可将数据导入到Hbase’。
4、数据分析
数据分析一般包括两个阶段:数据预处理和数据建模分析。
数据预处理是为后面的建模分析做准备,主要工作时从海量数据中提取可用特征,建立大宽表。这个过程可能会用到Hive SQL,Spark QL和Impala。
数据建模分析是针对预处理提取的特征/数据建模,得到想要的结果。如前面所提到的,这一块最好用的是Spark。常用的机器学习算法,如朴素贝叶斯、逻辑回归、决策树、神经网络、TFIDF、协同过滤等,都已经在ML lib里面,调用比较方便。
5、结果可视化及输出API
可视化一般式对结果或部分原始数据做展示。一般有两种情况,行熟悉展示,和列查找展示。在这里,要基于大数据平台做展示,会需要用到ElasticSearch和Hbase。Hbase提供快速‘ms级别’的行查找。 ElasticSearch可以实现列索引,提供快速列查找。
平台搭建主要问题:
1、稳定性 Stability
理论上来说,稳定性是分布式系统最大的优势,因为它可以通过多台机器做数据及程序运行备份以确保系统稳定。但也由于大数据平台部署于多台机器上,配置不合适,也可能成为最大的问题。 曾经遇到的一个问题是Hbase经常挂掉,主要原因是采购的硬盘质量较差。硬盘损坏有时会到导致Hbase同步出现问题,因而导致Hbase服务停止。由于硬盘质量较差,隔三差五会出现服务停止现象,耗费大量时间。结论:大数据平台相对于超算确实廉价,但是配置还是必须高于家用电脑的。
2、可扩展性 Scalability
如何快速扩展已有大数据平台,在其基础上扩充新的机器是云计算等领域应用的关键问题。在实际2B的应用中,有时需要增减机器来满足新的需求。如何在保留原有功能的情况下,快速扩充平台是实际应用中的常见问题。
上述是自己项目实践的总结。整个平台搭建过程耗时耗力,非一两个人可以完成。一个小团队要真正做到这些也需要耗费很长时间。
目前国内和国际上已有多家公司提供大数据平台搭建服务,国外有名的公司有Cloudera,Hortonworks,MapR等,国内也有华为、明略数据、星环等。另外有些公司如明略数据等还提供一体化的解决方案,寻求这些公司合作对 于入门级的大数据企业或没有大数据分析能力的企业来说是最好的解决途径。
对于一些本身体量较小或者目前数据量积累较少的公司,个人认为没有必要搭建这一套系统,暂时先租用AWS和阿里云就够了。对于数据量大,但数据分析需求较简单的公司,可以直接买Tableau,Splunk,HP Vertica,或者IBM DB2等软件或服务即可。
-
❸ 大数据分析需要哪些工具
说到大数据,肯定少不了分析软件,这应该是大数据工作的根基,但市面上很多各种分析软件,如果不是过来人,真的很难找到适合自己或符合企业要求的。小编通过各大企业对大数据相关行业的岗位要求,总结了以下几点:
(1)SQL数据库的基本操作,会基本的数据管理
(2)会用Excel/SQL做基本的数据分析和展示
(3)会用脚本语言进行数据分析,Python or R
(4)有获取外部数据的能力,如爬虫
(5)会基本的数据可视化技能,能撰写数据报告
(6)熟悉常用的数据挖掘算法:回归分析、决策树、随机森林、支持向量机等
对于学习大数据,总体来说,先学基础,再学理论,最后是工具。基本上,每一门语言的学习都是要按照这个顺序来的。
1、学习数据分析基础知识,包括概率论、数理统计。基础这种东西还是要掌握好的啊,基础都还没扎实,知识大厦是很容易倒的哈。
2、你的目标行业的相关理论知识。比如金融类的,要学习证券、银行、财务等各种知识,不然到了公司就一脸懵逼啦。
3、学习数据分析工具,软件结合案列的实际应用,关于数据分析主流软件有(从上手度从易到难):Excel,SPSS,stata,R,Python,SAS等。
4、学会怎样操作这些软件,然后是利用软件从数据的清洗开始一步步进行处理,分析,最后输出结果,检验及解读数据。
❹ 大数据都需要什么技术
、数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后
❺ 国内有哪些公司能提供大数据服务
国内大数据服务公司很多,但需要判断是否合规,目前国家对于数据行业极力支持但同时监管也在加强,合规将是企业挑选合规产品与否的关键要素,例如,MobTech是一家数据智能科技平台,覆盖设备数超138亿,累计App数超64万,重量的是合规自有数据,几乎覆盖全国95%以上设备,并通过多年线上大数据积累,进一步融合线下真实场景数据,形成业内独一无二的第三方全景大数据服务平台,更智能的洞察用户多方面的个性化特征,形成6000+用户标签维度,涵盖人口属性、经济水平、地理属性、兴趣爱好、金融理财、餐饮美食、居家建材、旅游出行、媒介使用倾向等更多垂直分类,满足零售、营销、金融风控、地产商圈分析、汽车等多场景需求。在数据服务商筛选中,一定要注意数据合规性,数据体量,以及数据细分维度,是否能满足你的需求。
❻ 简述操作系统层面可以对大数据处理提供哪些支持
大数据是指以多元形式,自许多来源搜集而来的庞大数据组,往往具有实时性。在企业对企业销售的情况下,这些数据可能得自社交网络、电子商务网站、顾客来访纪录,还有许多其他来源。这些数据,并非公司顾客关系管理数据库的常态数据组。从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和/或虚拟化技术。大数据的意义是由人类日益普及的网络行为所伴生的,受到相关部门、企业采集的,蕴含数据生产者真实意图、喜好的,非传统结构和意义的数据 。
❼ 大数据存储需要具备什么
大数据之大 大是相对而言的概念。例如,对于像SAPHANA那样的内存数据库来说,2TB可能就已经是大容量了;而对于像谷歌这样的搜索引擎,EB的数据量才能称得上是大数据。 大也是一个迅速变化的概念。HDS在2004年发布的USP存储虚拟化平台具备管理32PB内外部附加存储的能力。当时,大多数人认为,USP的存储容量大得有些离谱。但是现在,大多数企业都已经拥有PB级的数据量,一些搜索引擎公司的数据存储量甚至达到了EB级。由于许多家庭都保存了TB级的数据量,一些云计算公司正在推广其文件共享或家庭数据备份服务。有容乃大 由此看来,大数据存储的首要需求存储容量可扩展。大数据对存储容量的需求已经超出目前用户现有的存储能力。我们现在正处于PB级时代,而EB级时代即将到来。过去,许多企业通常以五年作为IT系统规划的一个周期。在这五年中,企业的存储容量可能会增加一倍。现在,企业则需要制定存储数据量级(比如从PB级到EB级)的增长计划,只有这样才能确保业务不受干扰地持续增长。这就要求实现存储虚拟化。存储虚拟化是目前为止提高存储效率最重要、最有效的技术手段。它为现有存储系统提供了自动分层和精简配置等提高存储效率的工具。拥有了虚拟化存储,用户可以将来自内部和外部存储系统中的结构化和非结构化数据全部整合到一个单一的存储平台上。当所有存储资产变成一个单一的存储资源池时,自动分层和精简配置功能就可以扩展到整个存储基础设施层面。在这种情况下,用户可以轻松实现容量回收和容量利用率的最大化,并延长现有存储系统的寿命,显着提高IT系统的灵活性和效率,以满足非结构化数据增长的需求。中型企业可以在不影响性能的情况下将HUS的容量扩展到近3PB,并可通过动态虚拟控制器实现系统的快速预配置。此外,通过HDSVSP的虚拟化功能,大型企业可以创建0.25EB容量的存储池。随着非结构化数据的快速增长,未来,文件与内容数据又该如何进行扩展呢?不断生长的大数据 与结构化数据不同,很多非结构化数据需要通过互联网协议来访问,并且存储在文件或内容平台之中。大多数文件与内容平台的存储容量过去只能达到TB级,现在则需要扩展到PB级,而未来将扩展到EB级。这些非结构化的数据必须以文件或对象的形式来访问。基于Unix和Linux的传统文件系统通常将文件、目录或与其他文件系统对象有关的信息存储在一个索引节点中。索引节点不是数据本身,而是描述数据所有权、访问模式、文件大小、时间戳、文件指针和文件类型等信息的元数据。传统文件系统中的索引节点数量有限,导致文件系统可以容纳的文件、目录或对象的数量受到限制。HNAS和HCP使用基于对象的文件系统,使得其容量能够扩展到PB级,可以容纳数十亿个文件或对象。位于VSP或HUS之上的HNAS和HCP网关不仅可以充分利用模块存储的可扩展性,而且可以享受到通用管理平台HitachiCommandSuite带来的好处。HNAS和HCP为大数据的存储提供了一个优良的架构。大数据存储平台必须能够不受干扰地持续扩展,并具有跨越不同时代技术的能力。数据迁移必须在最小范围内进行,而且要在后台完成。大数据只要复制一次,就能具有很好的可恢复性。大数据存储平台可以通过版本控制来跟踪数据的变更,而不会因为大数据发生一次变更,就重新备份一次所有的数据。HDS的所有产品均可以实现后台的数据移动和分层,并可以增加VSP、HUS数据池、HNAS文件系统、HCP的容量,还能自动调整数据的布局。传统文件系统与块数据存储设备不支持动态扩展。大数据存储平台还必须具有弹性,不允许出现任何可能需要重建大数据的单点故障。HDS可以实现VSP和HUS的冗余配置,并能为HNAS和HCP节点提供相同的弹性。
❽ 支持大型数据库的服务器需要什么配置
选择数据库服务器的原则:
1、高性能原则:保证所选购的服务器,不仅能够满足运营系统的运行和业务处理的需要,而且能够满足一定时期业务量的增长。一般可以根据经验公式计算出所需的服务器TpmC值(Tpmc是衡量计算机系统的事务处理能力的程序)。
后比较各服务器厂商和TPC组织公布的TpmC值,选择相应的机型。同时,用服务器的市场价/报价除去计算出来的TpmC值得出单位TpmC值的价格,进而选择高性能价格比的服务器。
2、可靠性原则:可靠性原则是所有选择设备和系统中首要考虑的,尤其是在大型的、有大量处理要求的、需要长期运行的系统上。考虑服务器系统的可靠性,不仅要考虑服务器单个节点的可靠性或稳定性,而且要考虑服务器与相关辅助系统之间连接的整体可靠性。
(8)大数据微服务需要哪些数据支持扩展阅读:
优点:
1、编程量减少
数据库服务器提供了用于数据操纵的标准接口API(Application Programming Interface,应用程序编程接 口)。
2、数据库安全高
数据库服务器提供监控性能、并发控制等工具。由DBA(Database Administrator,数据库管理员)统一负 责授权访问数据库及网络管理。
3、数据可靠性管理
数据库服务器提供统一的数据库备份/恢复、启动/停止数据库的管理工具。
4、计算机资源利用充分
数据库服务器把数据管理及处理工作从客户机上分离出来,使网络中各计算机资源能灵活分配、各尽其用。