MongoDB学习笔记(1):MongoDB的安装和说明 快速开始 下载地址 官网下载: https://www.mongodb.com/download-center?jmp=nav#community 安装指导: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ 可视化工具: Robo3T 基本概念 数据库 一个MongoDB中可以建立多个数据库,默认数据库为db位于data目录下. MongoDB的单个实例可…
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很大.特此记录,以备查看. 文章目录: MongoDB和Java(1):Linux下的MongoDB安装 MongoDB和Java(2):普通用户启动mongod进程 MongoDB和Java(3):Java操作MongoB MongoDB和Java(4):Spring Data整合MongoDB(X…
MongoDB是一种文本式数据库.与传统的关系式数据库最大不同是MongoDB没有标准的格式要求,即没有schema,合适高效处理当今由互联网+商业产生的多元多态数据.MongoDB也是一种分布式数据库,充分具备大数据处理能力和高可用性.MongoDB提供了scala终端驱动mongo-scala-driver,我们就介绍一下MongoDB数据库和通过scala来进行数据操作编程. 与关系数据库相似,MongoDB结构为Database->Collection->Document.Collec…
1. 什么是副本集 副本集就是mongoDB副本所组成的一个集群. 同期原理是,写操作发生在主库,从库同步主库的OpLog日志. 集群中没有特定的主库,主库是选举产生,如果主库down了,会再选举出一台主库. mongoDB也可以配置成主从模式,但,官方已经不建议使用主从模式了,替代方案是采用副本集的模式. 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:primary,2 secondary. 2. 成员数应该为奇数,如果为偶数的情况下添加…
MongoDB shell MongoDB自带简洁但功能强大的JavaScript shell.JavaScript shell键入一个变量会将变量的值转换为字符串打印到控制台上. 下面介绍基本的操作,一些注意事项.数据库CRUD操作将在下面的篇幅中介绍<NoSQL学习之路 (四):创建.读取.更新.删除(CRUD)> 打开命令提示(cmd.exe).进入到MongoDB解压的目录的bin目录下,即D:\NoSQL\mongodb-win32-x86_64-2.4.3\bin;然后执行mong…
再有两天就进入2018了,想想还是要准备一下明年的工作方向.回想当初开始学习函数式编程时的主要目的是想设计一套标准API給那些习惯了OOP方式开发商业应用软件的程序员们,使他们能用一种接近传统数据库软件编程的方式来实现多线程,并行运算,分布式的数据处理应用程序,前提是这种编程方式不需要对函数式编程语言.多线程软件编程以及集群环境下的分布式软件编程方式有很高的经验要求.前面试着发布了一个基于scalaz-stream-fs2的数据处理工具开源项目.该项目基本实现了多线程的数据库数据并行处理,能充分…
MongoDB是一种文件型数据库,对数据格式没有硬性要求,所以可以实现灵活多变的数据存储和读取.MongoDB又是一种分布式数据库,与传统关系数据库不同的是,分布式数据库不支持table-join,所以在设计数据库表结构方面与关系数据库有很大的不同.分布式数据库有一套与传统观念不同的数据模式,在设计库表结构时必须从满足各种数据抽取的需要为主要目的.关系数据库设计要求遵循范式模式(normalization)库表结构,在抽取数据时再通过table-join联结关系表.因为分布式数据库不支持tabl…
在前面几篇关于数据库引擎的讨论里很多的运算函数都返回了scala.Future类型的结果,因为我以为这样就可以很方便的实现了non-blocking效果.无论任何复杂的数据处理操作,只要把它们包在一个Future{...}里扔给系统运算就算完事不理了,马上可以把关注放到编程的其它部分了.在3月17日的深圳scala用户meetup里我做了个关于scala函数式编程的分享,里面我提到现在使用最多的函数组件就是scala.Future了.我想这应该在scala用户群里是个比较普遍的现象:大家都认为这…
最近刚好有同事在学习MongoDB,我们讨论过MongoDB应该置于服务器端然后通过web-service为客户端提供数据的上传下载服务.我们可以用上节讨论的respapi框架来实现针对MongoDB的CRUD操作.在谈到restapi之前我在这篇讨论先介绍一下MongoDB数据库操作的scala编程,因为与传统的SQL数据库操作编程有比较大的差别. 在前面有关sdp (streaming-data-processor)系列的博文中有一段是关于MongoDBEngine的.刚好把这套工具的使用在…
简单来说:JDBC是一种开放标准的跨编程语言.跨数据库类型编程API.各类型数据库产品厂商都会按它的标准要求来提供针对自身产品的JDBC驱动程序.最主要的这是一套成熟的工具,在编程人员中使用很普及.既然我们的目标是开发一套标准的大数据系统集成API,那么采用JDBC系统数据接口可以沿用业内丰富的技术资源.覆盖更多类型用户的编程需要,以及降低使用门槛.对于scala编程语言来讲,ScalikeJDBC是一套最合适满足我们下面开发要求的工具库,因为它可以用最简单易用的方式来实现JDBC的基本功能.…