在前一篇中,我们介绍的主要是站在开发人员的角度如何使用Mongodb数据服务来保存数据,这一篇会介绍在保存数据之后,如何去查看数据,也就是怎么样去使用Mongodb数据服务的通用后台。
Mongodb数据服务的后台是采用Silverlight4制作的。进入后台,第一件事情是登录系统:
这个配置是通过配置服务进行的,来看一下Mongodb数据服务的配置部分中的管理员配置(至于其它配置会在实现篇中介绍,因为其中涉及到了Mongodb数据服务的实现细节):
在这里我们定义了三个用户,进入aa这个用户看一下:
这里除了定义登录用户名、密码之外还定义了管理的数据库:
在这里,通过我们限制aa这个用户只能对以Aic开头的数据库有权限,来看看他可以管理的表:
*代表所有表,也就是aa这个用户只能在后台看到Aic相关的数据库,但是可以看到所有这个分类下的所有数据库和表。
如果希望某个用户只能看Test这个表而不限制数据库或分类的话,可以配置数据库前缀为*而表名为Test。
需要注意,数据库和表都是字典项,完全可以配置多个。
在点击了登录按钮之后,进入主界面,下面是全貌:
系统分为两个部分DASHBOARD就是查看数据的入口,而MENAGEMENT是管理数据的入口。
在DASHBOARD页面上有几个区域
1、首先是选择要查询的数据:先选择分类之后会出现数据库,然后选择数据库后会出现数据库下的表。在这里系统对按月分库概念透明,只要有任意一个月份中有数据都会显示出来,选择后的样子如下图:
2、然后是选择要查询的时间段:这里可以通过直接选择时间跨度自动生成时间,也可以使用时间选择和日期选择空间输入时间和日期,也可以直接手动输入。对于自动生成时间的话,默认给出了一些跨度:
选择了一个跨度之后,时间段的间隔就会是这个跨度,默认情况下会生成最新1小时或是1天的时间段,也可以点击向前或者向后按钮来调节这个时间段。点击当前则还是回到最新的时间段。
3、第三步的高级数据筛选是可选步骤,在选择了数据库、表和时间段之后,可以要求系统加载相应的一些过滤筛选控件,比如:
要注意的是,只有进行了第一步和第二步才能展开高级数据筛选,因为其下拉框或多选框中的数据项是基于这个时间段这个数据库中真实的数据生成的。
4、现在就可以选择需要查看的视图了,下面分别来看一下每一种视图的功能。
1)首先是列表视图:
每一个视图都会以模态对话框的形式展现。关闭对话框回到DASHBOARD页面。在这里,可以看到,由于我们选择了查看3个表的数据,所以在这里列出了三个Tab来展现各自的数据。在一般情况下,我们仅仅会选择一个关心的表(因为往往数据按照应用程序或业务类型分表)。
- 可以根据屏幕大小和喜好,修改每页显示的记录数,然后点击刷新按钮重置。点击刷新后,这个选项将会记住。
- 点击上下分页控件的相关按钮可以切换分页,这只会切换当前Tab的分页,其它表的分页还会保持原来的。
- 可以点击行后点击查看详细按钮查看详细记录,也就是进入详细视图。
- 可以点击查看分组统计视图直接进入分组统计视图,因为我们往往会在查看了列表数据的时候,通过这个视图来查看查看一些数据的分组统计。
2)详细视图的界面如下:
点击展开所有则可以直接完整打开树。点击展开一级可以展开一级树,点击收缩一级可以收缩一级树。
3)数据量统计视图的界面如下:
在打开这个视图的时候,会根据时间跨度计算粒度,也就是图表上一个点的时间跨度,把整个图表的点控制在100个左右。然后会抓取每一个粒度时间段中的记录数,以折线图形式显示在图表上。当然,如果你觉得这个默认的粒度不可以,也可以修改粒度后点击刷新按钮。这个视图往往针对监控,监控数据量是否有异常,因此可以点击开启自动刷新按钮来定时自动刷新界面,刷新的时间间隔取决于粒度。一般而言,如果粒度是1分钟以下的话,这个功能比较有用,对于更大的粒度,往往只是查看一次就好了。对于图表上的每一个点都可以点击,点击后直接进入列表视图。也就是查看这个粒度时间段中,对于点击的表以列表方式查看所有数据。
4)分组统计视图界面如下:
在这个视图中,它找到表所有单选方式和多选方式过滤的列,然后以饼图形式列出所有列值的分组统计,这样,我们就很容易发现哪些数据是量最多的。这对于监控数据、统计数据来说非常有用。之所以只考虑MongodbFilterOption为CheckBoxListFilter或DropDownListFilter的列,是因为可以想象它们的值是有限多的,如果是无限多的话,那么应该使用TextBoxFilter。因此,在选择MongodbFilterOption的时候要考虑并选择合适的搜索方式。
5)状态视图暂时还没有实现,这里略过。
注意到,DASHBOARD页面底部还有一栏:
在这里有两种其它查找数据的方式
1、在选择了分类和数据库之后,可以直接输入主键来查询详细的数据:
这是因为,在很多时候,我们通过某种方式知道了某个记录的主键,比如错误页面报错,给出了一个错误ID。此时,我们知道这是一个Aic分类中的日志数据,但是无法确定是哪个表的,此时可以直接查询详细视图,无需通过列表视图进入:
2、不需要任何选择,可以直接根据上下文ID来查看到所有关联的数据,比如:
在这个列表视图中找到第一条记录的上下文标识,然后查询其它关联数据:
查找到了八种关联的数据,只不过在这里不能修改分页记录数也不能查看分组统计。
除了DASHBOARD页面还有MANAGEMENT页面,在这里我们可以看到整个数据集群的状态:
最高层次是服务器集群,一个服务器集群至少有一台服务器,当然也可以配置主从分离,这个在配置后台可以看到:
点击服务器集群的名字,可以在右边看到统计信息和下属所有数据库组的信息。之所以称作数据库组是因为我们按照日期分库,一个数据库组可以有多个数据库。
点击一个数据库组的名字可以看到有关这个数据库的元数据详细信息:
展开数据库组,可以看到下面列出了每一个数据库。在这里我们的Aic__Log这个数据库组具有两个数据库,分别是2011年9月的和2011年10月的,要看到它的具体信息,可以点击:
在具体的数据库下,还可以展开查看每一个表的信息,在表下还可以展开查看查看表上建立的索引。
这里就不给出更多截图了。需要理解的是一个概念,在这个管理视图中其实查看的是两种数据:
1、元数据:元数据和和分库没关系,它对于一个数据库组来说是固定的,点击服务器集群和数据库组看到列表都是元数据。元数据是死的。
2、状态数据:状态数据反映的是实际数据库的状态,基本信息中的数据以及点击数据库节点看到的表信息都是状态数据,状态数据和实际数据库中的信息一致,比如201009年的日志信息数据库中可以包含两个表,而201010的日志信息数据库可以包含三个表。当然,表下面列出的索引也是状态数据。状态数据是活的。
至此,我们把这个Mongodb数据后台的大致使用介绍完了,可以发现它的功能强大,可查可管。并且多种视图可以满足不同数据的查看需要:
1、列表视图+详细数据:适用于日志数据
2、统计视图:适用于统计数据和业务量数据
3、分组统计视图:适用于统计数据和监控数据的分析
4、状态视图:适用于状态数据