页面树结构
转至元数据结尾
转至元数据起始



1   概述

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

本文介绍如何在Smartbi中连接 MongoDB 数据库。版本信息如下

驱动版本Smartbi版本
mongo-java-driver-3.4.2Smartbi V10

Smartbi支持的MongoDB数据类型如下:

数据类型说明备注
INTEGER整数固定格式的简单结构,且子元素结构必须相同
decimal精确值类型
Double双精度浮点型
Date(TIMESTAMP)日期
String(VARCHAR)字符串
Boolean布尔型
json轻量级的数据交换格式
Array数组
不支持其它对象Object和正则表达等数据类型。

2  数据连接

2.1 配置信息

驱动程序类连接字符串驱动程序存放目录支持数据库版本

smartbi.jdbc.MongoDriver

jdbc:smartbi:mongo:<server>:<port>/<dbName>

自定义MongoDB 3.4.10

1)连接字符串主要信息说明:

  • <servername>:数据库的地址;
  • <port>:数据库端口;
  • <dbName>:数据库名称;

以上信息一般向数据库管理员获取。


2)添加自定义驱动方法:

a、首先进入到<Smartbi_PATH>\Tomcat\bin\dynamicLibraryPath文件夹下,手动添加mongodb文件夹。

b、然后进入mongodb文件夹下,添加mongodb驱动(驱动包可以从数据库官网获取或向数据库管理员获取)。

说明

除了常规的MongoDB数据库驱动外还需要额外的两个文件:

1、配置文件,必须是properties类型,文件名不限。内容为:useParentClassLoader=true。

2、Mongodb数据库连接Smartbi产品的接口包,位于samrtbi.war\WEB-INF\dbdriver\目录下面,需要将smartbi-Mongodb*.jar复制到mongodb驱动目录下。


c、最后在数据连接时需要点击自定义选项,选择mongodb。

2.2 连接步骤

1)登录Smartbi企业报表分析平台,选择 数据连接>NoSQL数据库 ,点击 MongoDB 图标进入数据库连接界面。如下图所示:

2)根据配置信息,输入数据库对应的信息。如下图所示:

说明:

a、名称是数据连接名称,用户可以自定义,不可为空。

b、用户名和密码是连接字符串中配置的数据库的连接用户名和密码,可为空,一般可以联系数据库管理员获取。

① 如果MongoDB有账户密码认证时,如果认证的数据库跟需要查询的数据库不一致时,需要在连接字符串后加上“?authenticationDatabase=认证数据库名称

例如:jdbc:smartbi:mongo:10.10.204.155:27017/test?authenticationDatabase=admin

需要查询的数据库是test,账户密码认证的数据库是admin。

② 如果MongoDB没有账户密码认证,或者账户密码认证的数据库名称和查询的数据库一致时,则不需要单独配置“authenticationDatabase”参数

例如:jdbc:smartbi:mongo:10.10.204.155:27017/admin

2.3 测试连接

1)信息正确输入后,点击 测试连接 ,若出现如下图的 测试通过 弹出框,则表示可以成功连接上数据库。如下图所示:

2)测试连接成功后,点击右下角的 保存 按钮,选择数据源的保存位置,保存成功后,该数据连接即添加成功。


2.4 数据库管理

1、在MongoDB示例数据源的更多菜单中选择 数据库管理,进入数据库管理界面,将所需的数据库资源拖拽到已选数据库资源。

2、拖拽所需的数据库资源到已选数据库资源,如下图:

3、点击 保存 ,如下:


使用MongoDB数据源

由于现在可以找到的MongoDB jdbc驱动并不是官方编写的,支持的SQL语法太少,难以支撑Smartbi中的各种数据集。

因此MongoDB数据源仅支持创建原生SQL数据集,之后再基于原生SQL数据集创建电子表格、透视分析报表等。

MongoDB数据源仅支持创建原生SQL数据集。

在原生SQL中书写的数据集脚本必须是用MongoDB数据库的脚本语法

MongoDB数据源不支持在数据模型中使用。

下面演示使用MongoDB示例数据源创建原生sql数据集。

1、在“数据集”界面选择 新建> 原生SQL数据集。

2、在弹出的数据源选择窗口中,选择上一步创建的MongoDB数据源。

3、进入原生SQL数据集编辑界面,在SQL编辑区域输入如下语句:

return db.orders.find({}, {'CategoryName' : 1, 'ShipRegion' : 1,'ShipCity' : 1,'Quantity':1,'UnitPrice':1 }).toArray()

该语句是MongoDB的查询脚本,表示查询orders表中的数据。

4、预览数据,如下:

5、在右侧输出字段上 右键 > 检测输出字段。

6、如下,保存该数据集。

7、之后便可以使用该数据集,进行电子表格、透视分析等报表的制作。

如果使用该数据集创建透视分析,由于透视分析需要进行聚合等一系列复杂的运算,因此系统默认会将数据进行抽取。即默认勾选了“数据抽取到临时表”,如下:


其他复杂场景连接mongodb数据源,可能还需要引用mongo数据库的客户端,可以参考:Windows/Linux/docker环境部署的smartbi如何连接mongodb 相关章节进行配置。



  • 无标签