MongoDB发布了连接现有的数据可视化以及BI应用的连接

shutterstock_130139699

 

开源的数据库平台mongoDB今天(美国时间2015-06-02)在纽约举行的其公司举行的MongoDB World发布会上,发表了一些升级内容。其中,就包含了Tableau等数据可视化工具的整合。

负责MongoDB发展方向的VP Kelly Stirman说:MongoDB与一直以来的RDB不同,有着可以处理非典型数据的自由性,所以如今很多企业的应用中都在利用。这也是大家使用MongoDB的重要原因之一,但至此,所使用的数据可视化工具处理非典型数据都非常困难。

他还说,大家都说这些应用很先进,是因为这些应用使用了以往的行(row)与列(column)的数据库无法处理的丰富的数据结构。

因此,为了处理这些愈发先进的MongoDB所带来的无法预测的结果,其公司就发表了可以连接BI(business intelligence)以及数据可视化工具的连接,同时介绍了公司的合作伙伴Tableau,并说明了,其他工具也能同样地这样连接。

 

Tableau虽然是本公司的合作伙伴,但连接是IBM的Cognos以及SAP的BusinessObjects、Microsoft Excel等等,也有与其他工具之间的互换性,所以几乎可以处理所有情况。

 

Stirman然后还说,几百万的用户每天都在使用这些应用,但至此都是MongoDB没有接触到的领域。因此,今天发布的新连接,就会成为两个世界的桥梁。

 

他还说:“至此,要用现有的数据可视化工具处理MongoDB以及数据,需要在编程上耗费大量心力,因此时间与资金的成本都很庞大。但是,只要使用连接的话,现有的可视化工具,就不需要其中的layer了,于是就可以访问MongoDB的数据了。“

 

同样地发布会还在Salesforce.com上举行过,但那次与这次的案例相反,是通过Salesforce的可视化工具wave将外部数据与Salesforce的数据同时进行可视化的连接

与MongoDB的情况相同,至此如果在编程上煞费苦心的话,就可以用wave观察外部数据。并且,Salesforce这次也与MongoDB相同,终于领悟了。要实现与外部顺利连接还是要靠Bender自身这一点。两个公司同时制成的连接,就可以使得数据库与可视化工具之间的数据迁移以及数据访问更加方便。

MongoDB3.2中,除了连接还有REST相应的密码化以及为了数据库管理员,会导入GUI。这方面的内容预计会在今年的第四季度公开。

MongoDB至此引起了风投们极大的注意,大约收集到了3亿美元左右的资金。就是最近一段时间,仅仅是今年一月就获得8000万美元。

 

 

C100DBA MongoDB DBA认证考题讲解 FsyncLock() command

单选题

Which of the following is true after the fsyncLock() command is run ( before fsyncUnlock() is run)?

  1. Writes to the database may succeed
  2. Writes to the database may return an error.
  3. All reads on the database will return an error
  4. Reads on the database may succeed
  5. Profiling will continue .

 

db.fsyncLock()

Forces the mongod to flush all pending write operations to the disk and locks the entire mongodinstance to prevent additional writes until the user releases the lock with the db.fsyncUnlock()command. db.fsyncLock() is an administrative command.

 

 

https://docs.mongodb.org/v3.0/reference/method/db.fsyncLock/

 

db.fsyncLock()应当是锁定 mongod实例使其不再接受任何写操作,

 

 

MongoDB shell version: 2.6.7

connecting to: test

> db.fsyncLock();

{

“info” : “now locked against writes, use db.fsyncUnlock() to unlock”,

“seeAlso” : “http://dochub.mongodb.org/core/fsynccommand”,

“ok” : 1

}

 

 

 

 

 

 

在其他session中操作读和写均被阻塞

 

 

> db.dbdao.find();

> db.dbdao.insert({A:1});

 

 

 

文档中的解释是:db.fsyncLock() may block reads, including those necessary to verify authentication. Such reads are necessary to establish new connections to a mongod that enforces authorization checks.

所以db.fsyncLock() 后可能会阻塞读,但不是100%阻塞。  注意这里仅仅是阻塞 所以不会有报错,所以  return an error.的答案全错。

 

所以 答案D Reads on the database may succeed  正确。

 

 

 

C100DBA MongoDB DBA认证考题讲解 Replica set secondary oplog elect

本文永久链接地址:https://www.askmac.cn/archives/c100dba-mongodb-dba%e8%ae%a4%e8%af%81%e8%80%83%e9%a2%98%e8%ae%b2%e8%a7%a3-replica-set-secondary-oplog-elect.html

 

此题为单选题

 

Screen Shot 2015-04-28 at 10.45.40 PM

 

 

Given a Replica Set with five data-bearing members , suppose the primary goes down with operations in its oplog that have been copied to only one secondary.

 

Assuming no other problem occurs, which of the following describes what is most likely to happen?

 

  • The primary will rollback the operations once it recovers
  • The secondary with the most current oplog will be  elected primary
  • Missing operations will need to be manually added
  • The most current secondary will not rollback the operations following the election .
  • Reads will be stale until the primary comes back up.

 

 

  • The primary will rollback the operations once it recovers 是错误的因为 A rollback reverts write operations on a former primary when the member rejoins its replica set after a failover. A rollback is necessary only if the primary had accepted write operations that the secondaries had not successfully replicated before the primary stepped down.

 

If a higher-priority member catches up to within 10 seconds of the latest oplog entry of the current primary, the set holds an election in order to provide the higher-priority node a chance to become primary.

高优先级的且oplog延迟不超过10秒的节点成员有机会让replica set做election 使其成为primary。

答案应为

  • The most current secondary will not rollback the operations following the election .

 

火热的2015 MongoDB Days深圳行

虽然无法体验《南山南》中的“艳阳天大雪纷飞”,不过深圳这里火热的太阳和四处妹子的短裤大腿确实把我们这些从上海来的一行人给热到了。一下飞机,在”艳阳天”下,开始换装运动。。。脱脱脱!!

话说本次2015 MongoDB Days活动就在深圳举行,因此公司里的哥们姐们对来深圳“考察”一番很是积极踊跃。无奈名额有限,兼文笔不行(^-^),因此矮子里拔高个。。。本人再次脱引而出了~~

这不,开完会当天,吃饱喝足后就开始我的战地报道啦~~~

 

MongoDB作为最流行的NoSQL数据库,无疑正受到越来越多人的关注。其dynamic schema特性,水平分片扩展,以及内存处理快速响应能力是其在快速发展的大数据应用及互联网技术升级中能获得成功的关键所在。

为了时刻紧跟技术前沿,也为和更多MongoDB专家交流,这次的活动还是非常有必要来参加的。除了下午能听到大牛们的精彩演讲,对于小白来说,还能选择在上午参加入门培训,真是一举两得哈~~

 

 

 

[Read more…]

Mongodb 为复制集新增节点

概览

 

本文描述了如何为已有的 replica set 新增节点。有关复制集部署的模式的信息,参见复制集部署架构文档。

最多可参与投票的节点数

一个复制集最多可以拥有7个 参与投票的节点 。如果要为已经拥有7个参与投票节点的复制集新增节点,我们需要将新增的节点设置为 不参与投票的节点 或者将 已有的投票节点 的票数清除。

初始化脚本

在生产环节中,我们可以修改 init script 来管理节点。

 

已有节点

我们可以使用这些命令来为现有复制集新增节点。我们还可以使用命令 “re-add” 来添加一个已经被移除了的节点。如果这个被移除的节点中的数据较新,它能很快恢复并赶上主节点的数据。

数据文件

如果我们有已有节点的备份或者快照,我们可以可以将数据文件( dbPath 文件夹中) 复制到新的机器并使用它们快速的建立一个新的节点。这些数据文件必须是:

  • 同个复制集中可用节点的数据备份。参见 用文件系统快照备份并恢复 以获得更多信息。

    重要

    推荐使用文件快照的方式而不是来 mongodumpmongorestore 来为复制集新成员做数据备份。

  • 比在主节点oplog最旧的操作更近。新成员必须能通过从主节点的oplog应用操作获取当前数据。

需求

  1. 一个可用的复制集。

  2. 一个拥有数据集的MongoDB节点,且可以与现有复制集通讯。

否则,请参考 安装教程 和 部署复制集

 

[Read more…]

C100DBA MongoDB DBA认证考题讲解 Journal日志的存放

本文永久链接:https://www.askmac.cn/archives/mongodb-journal.html

C100DBA MongoDB DBA认证考题讲解 Journal日志的存放

 

Screen Shot 2015-04-28 at 10.44.03 PM

 

Why might you want to put your journal on a separate drive on your primary?

在你的主库上是什么驱动你去把journal日志存放在一个分离(与db文件分离)的磁盘上?

  1. 允许使用文件系统快照备份
  2. 为了改善写出吞吐量
  3. 提供更好的故障容错
  4. 消除对secondary服务器的需求
  5. 增加oplog的窗口

此为单选题, 答案为B 为了改善写出吞吐量

参考:https://docs.mongodb.org/manual/core/write-performance/

Journaling

MongoDB uses write ahead logging to an on-disk journal to guarantee write operation durability and to provide crash resiliency. Before applying a change to the data files, MongoDB writes the change operation to the journal.

While the durability assurance provided by the journal typically outweigh the performance costs of the additional write operations, consider the following interactions between the journal and performance:

  • if the journal and the data file reside on the same block device, the data files and the journal may have to contend for a finite number of available write operations. Moving the journal to a separate device may increase the capacity for write operations.
  • if applications specify write concern that includes journaled, mongod will decrease the duration between journal commits, which can increases the overall write load.
  • the duration between journal commits is configurable using the commitIntervalMs run-time option. Decreasing the period between journal commits will increase the number of write operations, which can limit MongoDB’s capacity for write operations. Increasing the amount of time between commits may decrease the total number of write operation, but also increases the chance that the journal will not record a write operation in the event of a failure.

 

C100DBA MongoDB DBA认证考题讲解 mongodump command

C100DBA MongoDB DBA认证考题讲解 mongodump command

 

Screen Shot 2015-04-28 at 10.46.18 PM

 

 

Which of the following are true about the mongodump command ?

  1. Can backup data by connecting to a running mongos or mongod server
  2. Can backup data using only the data files for a MongoDB database
  3. Writes data in either BSON or JSON format

此为多选题

答案为 A

参考地址:https://docs.mongodb.org/manual/reference/program/mongodump/

1、mongodump 导出数据使用的是BSON格式,而非JSON格式

2、 mongodump can read data from either mongod or mongos instances. mongodump 可以基于mongod/mongos读取数据

 

C100DBA MongoDB DBA认证考题讲解 备份运行中的分片集群

C100DBA MongoDB  DBA认证考题讲解 备份运行中的分片集群

 

Screen Shot 2015-04-28 at 10.43.33 PM

 

 

which of the following must you do before backing up a running sharded  cluster using a file system snapshot?

  1. Disable Journaling
  2. Force an election
  3. Stop all the config server
  4. backup secondaries
  5. Disable the balancer

下列哪个选项是当你使用文件系统快照备份一个在运行中的分片集群时必要做的?

  1. 禁用 Journaling 日志
  2. 强制一次election
  3. 关闭所有的config server
  4. 备份secondaries
  5. 禁用balancer

可参考文档 https://docs.mongodb.org/manual/tutorial/backup-sharded-cluster-with-filesystem-snapshots/

 

最佳答案为 E  禁用balancer

其过程分为:

Disable the balancer.

1

Disable the balancer.

Disable the balancer process that equalizes the distribution of data among the shards. To disable the balancer, use the sh.stopBalancer() method in the mongo shell.

Consider the following example:

use config
sh.stopBalancer()

For more information, see the Disable the Balancer procedure.

2

If necessary, lock one secondary member of each replica set in each shard.

If your mongod does not have journaling enabled or your journal and data files are on different volumes, you must lock your mongod before capturing a back up.

If your mongod has journaling enabled and your journal and data files are on the same volume, you may skip this step.

If you need to lock the mongod, attempt to lock one secondary member of each replica set in each shard so that your backups reflect the state of your database at the nearest possible approximation of a single moment in time.

To lock a secondary, connect through the mongo shell to the secondary member’s mongod instance and issue the db.fsyncLock() method.

3

Back up one of the config servers.

Backing up a config server backs up the sharded cluster’s metadata. You need back up only one config server, as they all hold the same data. Do one of the following to back up one of the config servers:

Create a file-system snapshot of the config server.

Do this only if the config server has journaling enabled. Use the procedure in Backup and Restore with Filesystem Snapshots. Never use db.fsyncLock() on config databases.

Create a database dump to backup the config server.

Issue mongodump against one of the config mongod instances. If you are running MongoDB 2.4 or later with the –configsvr option, then include the –oplog option to ensure that the dump includes a partial oplog containing operations from the duration of the mongodump operation. For example:

mongodump --oplog
4

Back up the replica set members of the shards that you locked.

You may back up the shards in parallel. For each shard, create a snapshot. Use the procedure inBackup and Restore with Filesystem Snapshots.

5

Unlock locked replica set members.

If you locked any mongod instances to capture the backup, unlock them now.

Unlock all locked replica set members of each shard using the db.fsyncUnlock() method in themongo shell.

6

Enable the balancer.

Re-enable the balancer with the sh.setBalancerState() method. Use the following command sequence when connected to the mongos with the mongo shell:

use config
sh.setBalancerState(true)

MongoDB NOSQL数据库连载 第11回 MongoDB的备份

 

本文永久链接地址:https://www.askmac.cn/archives/mongodb-backup.html

 

11  MongoDB的备份

在本连载中,至此我们一直注目MongoDB的功能方面的内容,这次开始我们将分几回介绍MongoDB的非功能方面的内容。这次我们将说明非功能特点中不可或缺的备份功能。另外,我们将使用MongoDB的最新版本v2.4。

 

  关于命令标记

$ : 用命令行来实行的命令

> : 用mongo shell执行的命令

MongoDB的备份的概要

 

要对MongoDB进行备份,需要对数据进行备份以及对配置选项进行备份。

 

配置选项用mongod的启动命令或者配置文件来进行指定。无论那种情况,因为只要复制mongod启动shell以及配置文件等文件就可以进行备份了,所以在这次的文章中将省略说明。

 

在数据的备份之中,可以将全备份与部分备份来进行组合使用,但在MongoDB v2.4中没有提供增量备份的功能。因此,这次我们介绍全量备份以及restore的方法。

[参考]

增量备份是为了恢复因为人为错误损害的数据而被实现的功能,其功能目的对应MongoDB的延迟复制功能。关于延迟复制功能,请参考官方网站。

 

 

要用MongoDB进行全量备份时,有以下两种方法。

  1. 复制数据文件的方法
  2. 利用mongodump

[Read more…]

第10回 MongoDB中的聚集aggregation 处理

本文永久链接地址:https://www.askmac.cn/archives/mongodb-aggregation.html

10  MongoDB中的aggregation 聚集处理

MongoDB中的aggregation 聚集处理的概要

 

一般而言,在NoSQL的程序中,没有RDB的SQL这种Group以及Sum函数等聚集功能。要执行聚集的话,需要在应用上独立地写代码。

但是,MongoDB的开发方针是是一边维持NoSQL的性能,一边实装类似于RDB的功能,关于聚集功能早就实装了。在MongoDB中执行聚集处理的方法有三种。

  1. Aggregation Framework

 

SQL中提供Group By语句以及Sum函数。可以从Mongo Shell中与查询一样实施。一部分的处理($group与$sort)就对应sharding,用各shard进行处理。

 

  1. MongoDB的Map/Reduce功能

 

独立定义Map函数/Reduce函数,执行聚集处理。在Aggregation Framework中无法做到的复杂的聚集处理,使用这种方法。因为对应sharding,所以可以执行分散处理。

 

  1. 与其他聚集处理软件/框架的合作

为了执行大规模的聚集处理,也可以与其他聚集处理软件/框架合作。在这次的文章中,我将介绍与Hadoop的合作。

 

那么马上让我们来使用Aggregation Framework,来试着实际操作处理吧。

[Read more…]

沪ICP备14014813号-2

沪公网安备 31010802001379号