2023-01-17 16:56来源:m.sf1369.com作者:宇宇
大数据的采集方法
1)数据库采集
Redis、MongoDB和HBase等NoSQL数据库常用于数据的采集。企业通过在采集端部署大量数据库,并在这些数据库之间进行负载均衡和分片,来完成大数据采集工作。
2)系统日志采集
系统日志采集主要是手机公司业务平台日常产生的大量日志数据,供离线和在线的大数据分析系统使用。高可用性、高可靠性、可扩展性是日志收集系统所具有的基本特征。系统日志采集工具均采用分布式架构,能够满足每秒数百MB的日志数据采集和传输需求。
3)网络数据采集
网络数据采集是指通过网络爬虫或网站公开API等方式从网站上获取数据信息的过程。
4)感知设备数据采集
感知设备数据采集是指通过传感器、摄像头和其他智能终端自动采集信号、图片或录像来获取数据。
mongodb的查询结果是json格式的,任何的解析json的第三方类库都是可以解析的。
比如:Jackson,JSON-lib,Gson,fastjson等
简单来说副本集(Replica Set)是指同一份数据被保存到N个机器上,每个机器上都是想同的数据。分片(shard)是指一份数据被分离开保存到N个机器上,N个机器上的数据组合起来是一份数据。
今天花点时间浏览了一下MongoDB的权威指南。MongoDB几个推荐的亮点:
丰富的数据模型扩展性好丰富的弄能速度快易于管理上面这几个亮点对于数据仓库而言优势不是很明显。 对于数据仓库来说可以分为两层来看,一层是做ETL运算服务器,主要要求是大数据量计算,并发要求并不是很高;另外一层就是BI的前端报表展现,虽然说前端报表的数据都是经过ETL加工处理过成品,但是有时候主要业务表的数据时不时也会有个几百万的,当然也可以在这个几百万的基础上再做一次汇总,但是就牺牲了模型的灵活性。所以这个时候就需要就需要前端展现报表服务器既有一定的计算能力,又要有一定的并发能力。 MongoDB对于ETL服务器而言显然不是很合适,它的计算能力还无法跟hadoop、Greenplum媲美,估计计算能力一般(没有测试过)。 对于前端报表展现貌似可以,速度快,支持一定计算能力,并发好。仔细想想也有很多不足,最要命的就是不能join,而且报表展现中很多情况会用到分析函数,数据分析师在分析数据时也会经常用到,这就是一个比较头大的问题,否则为了报表就要多做很多ETL工作,分析师的工作量也会增加很多。MongoDB的shell 脚本目前还无法跟sql的灵活性和易用性相提并论。 还有一点比较困难的是,现在技术人员都是学的关系型数据库,突然转变成NOsql数据库,是一个很大的成本,如果仅仅是一两个人转型还好,如果要一个团队转型难度会很大。
简单的说,没有join,没有事务,使用内存映射,因此效率高。
上面的哥们,mongo服务器实现是C++,跟javascript没有半毛钱关系啊。
你说的javascript指的是客户端,客户端支持很多种语言,跟服务器是否快没有关系的。
用aggregation pipeline:
db.log.aggregate([
{$match:{list:{$exists:true}}},
{$project:{_id:1,sizeOfList:{$size:'$list'},bInSeq:{$setIsSubset:[['b'],'$seq']}}}
])但是$size和$setIsSubset这两个operator需要mongodb服务器是2.6的。
这个似乎不是那么容易解答的,首先你要把数据从mongodb查出来,你要确保已经安装了go语言的mongodb驱动。然后对查出来的数据进行解析,查出来的数据是类似json的数据,这个解析代码需要相关的库或者你自己写的。然后再把数据相应的插入mysql里,这里你也要安装go语言的mysql驱动和odbc
下面是一个瑭锦TANJURD总结 MongoDB 优缺点的列表,希望对打算使用 MongoDB 的同学,能有一些作用:
优势:
快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右。)
很高的可扩展性 – 轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了)
他有一个很好的 replication 模式 (replica sets)
有很完善的Java API
他的存储格式是Json的,这对Java来说非常好处理,对javascirpt亦然。
运维起来非常方便,你不用专门为它安排一个管理员。
它有一个非常活跃的社区(我提出的一个bug在20分钟内就能得到修复。多谢Elliot)
他的版本控制非常清楚。
MongoDB 背后的公司(10gen)已经准备好了明天在 MongoDB 上面的投入的资金了。
劣势
应用经验缺乏,我们都没有相关NoSQL 产品的使用经验。
项目相对来说还比较新。
和以往的存储相比,数据的关系性操作不再存在。