Tag Archives: NoSQL

MongoDB Windows安装指南

注意:如果要安装的操作系统为Windows Server 2008 R2或者Windows 7,请先安装补丁来修复清理内存映射文件的问题。

下载Windows版MongoDB

下载地址

针对Windows系统有三个版本:

  • MongoDB for Windows Server 2008 R2 edition,可以在Windows Server 2008 R2、Windows 7 x64以及更新的Windows系统上运行。它使用了最新Windows平台的相关特性,因此无法在老版本的Windows上运行;
  • MongoDB for Windows 64-bit,  可以在所有高于Windows XP版本的64位Windows系统上运行,这包括WIndows 7 x64和Windows 2008 R2;
  • MongoDB for Windows 32-bit,可以在高于Windows XP的系统上运行。这个版本只是为了支持老版本操作系统的开发与测试。

从MongoDB 2.2之后将不再支持Windows XP,请使用最新版本的Windows来安装体验MongoDB。

注意:

  • 64位的MongoDB将无法运行在32位Windows上,请下载对应你系统版本的MongoDB。
  • 32位的MongoDB只是为了测试与体验,仅支持小于2GB的数据库。
  • 你可以通过CMD键入以下命令来查看你的操作系统版本

     

下载完成的压缩文件名为mongodb-win32-i386-[version] 或者 mongodb-win32-x86_64-[version],其中version表示版本号。

配置MongoDB

默认解压至D盘,修改文件夹名为MongoDB,即D:MongoDB。

在当前目录下新建文件夹data、log,即D:MongoDBdata、D:MongoDBlog

命令行下键入

启动MongoDB

命令行下键入

MongoDB数据库就启动了。

重新打开新的命令行键入

MongoDB客户端工具打开

键入如下,测试MongoDB数据库。

如果正确会返回刚刚添加的数据。

MongoDB作为Windows服务启动

在配置完MongoDB后,命令行下键入(Windows 7以上版本,请右击选择管理员模式运行命令行),请确保数据库配置步骤正确,否则服务将无法启动。

添加服务成功后,键入(命令行管理员模式运行)

MongoDB就处于后台运行模式中。

查看MongoDB服务状态;键入

删除MongoDB服务,键入

停止MongoDB服务,键入

 

 

 

 

 

 

Google App Engine 使用总结

从3月份到今天,搭建在GAE上的网站在一步步走向平稳,没有大肆宣传,当前访问量不是很高,所以一直是在免费限额的范围当中。在开发过程中,走了不少弯路,也遇见了不少新问题。
配额介绍:
1)Instanced Hour
免费限额为28IH(Instanced Hour),每Web页按350KB计,平均加载此页面需要耗费掉0.001IH,28/0.001=28000,在单次访问、不考虑缓存的情况下基本等于2.8w页/人/次.如果是内容博客等结构单一的网站基本上能够满足要求。
2)Database Store
Database是开发过程中首先碰到限额天花板的一项,最突出的是Database Small Operation,它的统计数据来自于GQL(Google开发的一套类SQL的数据库操作语句)中基于Key的查询,比如SELECT __key__ FROM Person,这种语句都会统计到Small Operation中。这种查询在程序中使用频率不是很高,大部分情况下会采用 SELECT * FROM Person。对于在数据库中以Blob类型存储大量图片的web应用来说可能会是一场灾难,因为图片的访问是以db.get(Key)的方式查询,频繁地图片访问,很快就会将Small Operation的限额给冲破。前期开发的时候全部使用自己存储图片,然后Key查询的方式访问,没过几天就被冲破限额,没法访问了,只能速度修改程序,改为访问外链展示图片,此后这一项再也没有超出限额,感觉就是在带着脚镣跳舞,自得其乐的感觉。Data Read Operation限额增长速度没有做过多统计,当然这个超出限额只能是收费扩展了,因为访问的不断增长,再怎么优化也是徒劳无功的。
3)Data Index
限额200,基本上能够满足小型网站的要求。现在总共有13张表,43个非重复字段,总共建立20个索引。在数据库访问中,所有的条件查询,GAE都要求建立索引,如若需要需要额外的索引,可以自行添加到index.yaml中。
主要的限额会集中在前段IH以及数据库访问上面,其他Urlfetch、XMPP、Task Queues、Deployments能够满足基本需求。当然如果是多人开发,真实环境测试还是需要考虑Deployments每天限额1000次的发布。
注意点:
1)
静态文件路径需要在app.yaml单独配置访问的URL
2)
SELECT * FROM  X 要比SELECT __key__ FROM X要比花费更多的CPU时间,当然前提是你要保证__key__方式也不会过快的超出限额。
3)
Task Queues作为一种后台自动执行请求的方式,一定要保证测试通过,否则一旦出错,它将会以时间递增的间隔重复执行,直到达到时间最大值停止,但是CPU时间和数据库访问可能会为此而耗干。
4)Email API
发件人必须是本应用的开发管理员、当前的登录的Google Account账户邮箱或者本应用内的有效邮箱地址比如string@appid.appspotmail.com否则邮件只会发送失败。
5)独立域名
你可以通过免费开通Google Apps,然后将GAE应用添加到你的Google Apps服务中去,再将Google Apps中设置好的域名指向你创建GAE应用时的appid.appspot.com就可以,这样既能够摆脱无穷尽的appspot二级域名还可以成功让国内用户访问到构建在GAE上的网站。

示例网站:

http://www.n2hsu.com

Google App Engine、Python 2.7、High Relication、Webapp2……

云数据服务的弄潮儿

原文链接 作者:Derrick Harris

还记得只能选择两三家云计算数据服务的时候吗?事实上,伴随着云计算的发展,在这几大云平台上已经迅速地构建了很多云数据服务。
本文介绍一些主流并且当前运行良好的云数据服务(注:我们这里讨论管理型的数据服务而不是那些还需要专人来管理和维护的数据库实例)。虽然本文作了深入的分析,但难免有疏漏,欢迎指出纰漏之处。

SQL服务

Amazon关系型数据服务是最先发布也是最完善的云数据服务之一。与大多数AWS服务一样,它提供了AWS服务接口,兼容其他绝大多数的AWS服务。在此之前它仅提供基于AWS主机的MySQL数据服务,现在它也为用户提供SQL Server和Oracle数据服务。

Clustrix数据即服务:数据库供应商Clustrix在周二也加入云服务的行列。它的数据服务运行在Rackspace云平台上,为用户带来了设备的高效性、单租户发布的公平性。其中,在旗舰产品中加入了对MySQL的兼容性。他们宣称适用于OLAP和OLTP应用,能够通过多达2500个节点来监控系统的运行状态。

EnterpriseDB Postgres+云数据库:EnterpriseDB 是一家专注于Postgres数据库的厂商,他们的基于云平台的这个旗舰产品主要针对企业级的开发人员而不是试图体验一下的Hacker。 Postgres+云数据库提供了高可用的计算集群、高数据库连接数以及兼容Oracle环境等特性。

FathomDB: 许多GigaOM读者可能知道FathomDB,它作为Rackspace的合作伙伴,让后者能够与AWS的RDS相抗衡,但是时间会改变一切。
FathomDB仍然存在,它已经开源了基础性的技术来帮助开发者构建一些服务,当然现在已经不再提供基本主机数据的服务。不过该公司宣称正在研发下一代数据服务,所以还处于调整期。

Google 云SQL虽然不是最富有特色的数据服务但却具有竞争优势。首先,它可以很容易的集成其他Google云服务中;其次作为Google云服务中引以为傲的一点-云SQL可以实现异地高效的的数据复制。当前它仅支持Java、Python应用,每实例限制了10GB的存储空间。

Heroku Postgres仅提供面向公众的内部Postgres数据库软件即服务的功能。它提供高可靠性、数据保护(提供99.99%的正常运行时间)以及99.999999999%的数据持久性。它也开始尝试为开发者提供非PaaS的数据库服务。它最大的特点是数据剪辑,允许用户通过URL来为其他用户发送SQL查询结果。

HP MySQL云关系型数据库目前的名称还没有确定。作为一个内测版本,将会有大量的工作要做,很多特性后续也会添加进来。由于是构建在Openstack上的MySQL发行版,理论上从商业数据库上迁移到这种云数据库应该不难。

IBM SmartCloud Application Services:跟HP一样,IBM的云数据库服务也在开发当中。就现在可知道细节来说,它基于IBM’s DB2数据库技术,会作为“智慧地球”的一项智慧云服务提供给用户。

Microsoft SQL数据库在微软的云计算中是以SQL Azure的组件形式出现的。它可以操作一个完整的云数据库,但它通过MS SQLServer也提供了共享式的用户体验,也允许用户在可信的数据库上共享数据。还有一个特点就是它支持与其他云供应商发布的SQL数据库之间进行同步。

Oracle 数据服务虽然不是每个人都想要的,但对于已经在使用Oracle数据库的用户来说,Oracle推出基于云的数据库服务还是喜闻乐见的。毕竟Oracle宣称这项服务拥有Oracle DB 11g R2的所有特点和优势。目前价格未知,如果没有长期合同的话,可能会基于数据库容量按月计费。

Rackspace数据库是最先被部署Openstack平台的服务,刚刚被加入到Rackspace的云服务收费行列当中。它现在仅提供较少的访问模式,用户还不能获取SLA,也不支持主机数据库的很多特性(比如监控、备份、GUI操作界面),当然这些预计会加入到GA版本中。虚拟化的服务容器和结构化的存储网络能够让高性能和高可靠性得以保证。
Xeround可能是构建与Amazon RDS之上最流行的云数据库,也是支持度最广泛的MySQL云数据库。比如众多的公有云-AWS、RackSpace、Joyent,、Heroku…… Xeround 的优势是云服务的自动缩放能力以及独一无二的MySQL前端,它构建在理论上能够支持众多数据库选项的基石之上。

NoSQL 服务

Amazon DynamoDB 是一项管理NoSQL的服务,构建在原始Dynamo键值数据存储之上。几年前,由于公司内部需求而诞生的Dynamo是为web、大数据的快速访问、快捷的可扩展性所设计的,它用SSD作为硬件基础,能够在数据增长时自动扩展。
Amazon ElastiCache不是一种NoSQL数据服务技术,但是它满足了的类似需求-开发人员通过管理Memecached来确保MySQL部署更快地服务于用户数据。Memcached 被许多Web应用所采纳,像FaceBook,应用构建在基于硬盘的关系型数据中但是又想让关键数据保持在内存当中。
Cloudant虽然基于开源CouchDB数据库,但它并不自称是NoSQL服务而是数据层,通过搜罗各大云提供商的数据集合构建一个可预见的柔性的NoSQL数据存储,当然也可以构建在MapReduce分析引擎上面。这其中,农业巨头孟山都就使用Cloudant来巩固基因工程的基础设施。
Database.com是Salesforce公司的单一数据服务,既不是真正的NoSQL,也不是一个关系型数据库。作为一个多租户的数据设施服务于Salesfrouce.com的客户关系管理服务和Force.com好多年。在它上面能够存储各种数据类型,包括许多非结构性的数据。它是为已经部署在Salesforce上面的应用而设计的,当然并不限于此。
Microsoft Windows Azure Table Storage是MS 的Windows Azure平台的NoSQL数据服务。它是为更加容易的查询TB级的非关系数据而设计的。作为Windows Azure家族的成员之一,它的存储容量(包括Blob、表、队列存储)限制在每用户100TB以内。
MongoHQ/MongoLab: MongoDB 是最流行的NoSQL数据库,但是在云平台上它可能就是一只笨熊,因为周围充斥着太多的主机型的MongoDB服务,虽然MongoHQ和MongoLab可能更为大家所熟知。它们的优势是简单:快速部署、全面的监控以及你所不能及的可靠性。这些服务商都在试图通过共享和定制化服务来吸引大范围的用户。