近年来,随着万物互联,智能电话、电视、洗衣机、冰箱、各种传感器、甚至衣服都可以通过5G连接至互联网,大数据一词早已变得无处不在。但是,如果无法从数据中提取有用的信息,再多的数据也毫无价值。由于体量太大,单人单机已经无法处理和分析这些海量数据,大数据技术应运而生。然而,大数据领域目前尚不存在一种可以解决所有问题的通用解决方案。现有的各种各样的工具和技术有着各自的功能和特性,专注于解决各领域内的特定问题。通常大数据技术体系可以分为5层,即数据生成层、数据获取层、数据储存层、数据处理层和数据分析层。每一层都有若干面向不同需求的组件。下面简单列举一二。
数据生成层
模块 | 例子 |
---|---|
结构化数据 | 表格、交易数据、财务数据 |
半结构化数据 | XML、JSON、email |
非结构化数据 | 文本、图像、视频、日志 |
结构化流式数据 | 高频交易数据 |
半结构化数据 | 传感器数据、社交平台信息流 |
非结构化数据 | 实时监控音频、视频日志 |
数据储存层
模块 | 组件 |
---|---|
关系型数据库(SMP) | Microsoft SQL Server、MySQL |
关系型数据库(MPP) | Greenplum、Vertica、Teradata |
NoSQL(键值对存储) | Riak |
NoSQL(文档存储) | MongoDB |
NoSQL(列式存储) | HBase |
NoSQL(图结构存储) | Neo4J |
分布式文件系统 | HDFS |
数据处理层
模块 | 组件 |
---|---|
SQL处理 | 关系型数据库 |
批处理 | MapReduce |
统一处理 | Spark |
流处理 | Storm |
数据分析层
模块 | 组件 |
---|---|
OLAP工具 | Microsoft SSAS、Pentaho Mondrian |
初级机器学习 | R、RapidMiner、KNIME、SAS、WEKA |
进阶机器学习 | Mahout (MapReduce) |
高级机器学习 | Mahout(Spark/H2O/Flink)、MLlib、H2O ML、 Flink-ML SAMOA、MADlib |
跟进和使用这些技术需要花费较多的人力、物力和时间成本,抬高了大数据的使用门槛。尤其对于中小企业来说,较高的使用门槛延缓了他们从大数据中获益的脚步。希望通过这个讨论,帮助中小企业理解大数据技术体系,从而选择适合自己业务场景的大数据技术。
在实际的业务处理中,通常要基于现实的情况来选择合适的厂商、产品和工具:(1)业务处理需求和特点,是否有特定的场景要求(2)自有技术人员的技术能力和特点;(3)技术发展趋势和技术成熟程度 (4)资金、时间、人员等成本投入等,离开了这些条件,单独谈技术选型没有意义。
2.技术栈和各种工具各有自己适合和擅长的场景,单纯比较优缺点没有太大意义,需要放在具体的场景中进行比较,这样在遇到类似的场景才能有合适合理的选择。
可以选择几个实际的场景,搜索相应的技术进行比较参考,或者做一些交流和测试。
中小企业数据量通常不够大,达不到大数据的应用场景,因此也没必要非要引入大数据组件。中小企业通常数据库产品其实就足够用了,除非有特殊的要求,或者就是做数据处理的。
总的来说,对于技术人员可以关注不同的技术方向,对企业而言则基于企业现实确定。
收起