Looker 至少需要 MongoDB 版本 4.0 及更高版本和 MongoDB Connector for BI 版本 2.6.0 及更高版本(其中引入了
type_conversion_mode
会话变量)。
Looker 可以通过两个选项使用适用于 BI 的 MongoDB 连接器访问 MongoDB:
- 在 MongoDB Atlas 中使用适用于 BI 的 MongoDB 连接器。
- 使用与 MongoDB 数据库在同一服务器上安装的 BI MongoDB 连接器。
MongoDB Atlas
您的 MongoDB Atlas 必须使用 M10+ 集群。为了让 Looker 能够使用在 MongoDB Atlas 上运行的 MongoDB 数据库,您必须使用 MongoDB Connector for BI (MongoBI)。如需启用 Atlas 的 BI 连接器,MongoDB Atlas 必须使用 M10+ 集群。
您还必须创建一个具有所需数据库的读取权限的用户帐号。
为 BI 配置 MongoDB 连接器
在 Looker 中创建连接之前,您的 MongoDB 或 Atlas 管理员需要按照以下步骤设置 BI 的 MongoDB 连接器,具体步骤如下所示:
将 Looker 服务器添加到 Atlas IP 访问权限列表中
Versa 3 仅允许从项目的 IP 访问列表中的条目进行客户端连接。将 Looker 的 IP 地址添加到 Atlas 项目的 IP 访问列表中:
- 获取 Looker 的 IP 地址。
- 按照 Atlas IP 访问权限列表设置中的说明操作,将 Looker 的 IP 地址添加到 Atlas IP 访问权限列表中。
为 BI 启用 MongoDB 连接器
为 BI 启用 MongoDB 连接器:
- 确认您使用的是 M10+ 集群。
- 在 Atlas 中,打开集群的“连接”页面。记下主机名、端口和用户。在 Looker 中配置连接时,您需要使用这些信息。
在同一服务器上使用 MongoDB
在 Looker 中创建连接之前,您的 MongoDB 管理员应按照下文所述的步骤设置 MongoDB 和 Mongo Connector for BI:
安装 Mongo Connector for BI
在 MongoDB 数据库所在的服务器上安装适用于 BI 的 MongoDB 连接器,如在本地安装 BI 连接器 MongoDB 文档页面中所述。
加密网络流量
适用于 BI 的 MongoDB 连接器需要在 MongoDB 的服务器和 Looker 应用之间使用 SSL 加密。按照 Configure SSL for BI Connector MongoDB 文档页面上的 SSL 设置说明执行操作。
设置 Looker 用户和权限
在 MongoDB shell 中,输入 use
命令以切换到 Looker 将连接到的数据库。然后,为角色为 readWrite
的 db.createUser()
创建 Looker 用户:
use looker_database
db.createUser({ user: looker,
pwd: `some_password_here`,
roles: [ "readWrite" ]
})
安装 MongoBI JDBC 驱动程序文件
对于两个适用于 BI 选项的 MongoDB 连接器,Looker 要求按照以下步骤配置 JDBC 驱动程序文件:
下载以下两个 JAR 文件:
使用以下值按照未打包的 JDBC 驱动程序文档页面上的步骤操作:
司机符号:mongobi
司机条目:
- name: mongobi
dir_name: mongobi
module_path: com.mysql.jdbc.Driver
override_jdbc_url_subprotocol: mysql
如果您使用的是 Looker 6.2 或更低版本:
- name: maria15x
dir_name: mongobi
module_path: com.mysql.jdbc.Driver
override_jdbc_url_subprotocol: mysql
如需将驾驶员放入方言目录,这些文件的路径将如下所示:looker/custom_jdbc_drivers/mongobi/mongosql-auth-1.0.0-rc0.jar
looker/custom_jdbc_drivers/mongobi/mysql-connector-java-5.1.47.jar
允许使用常规派生表(推荐)
派生表是 Looker 中的重要工具,可帮助您提高分析的复杂程度。它们在提升查询性能方面也起着重要作用。概括来讲,Looker 的派生表功能提供了一种创建数据库中尚不存在的新表的方法。
适用于 BI 的 MongoDB 连接器支持临时常规派生表,但尚不支持永久性派生表。
由于常规派生表是临时的,因此无需存储。因此,您无需为它们创建架构。但是,您需要向 looker_tmp
架构授予 dbOwner
角色,即使该架构不存在也是如此。
按照此 MongoDB 文档页面上的“修改 MongoDB 用户”部分,在 looker_tmp
上添加 dbOwner
角色,供 Looker 连接的用户使用。
db.grantRolesToUser("looker", [ {role: "dbOwner", db: "looker_tmp"} ])
创建与数据库的 Looker 连接
在 Looker 的管理部分中,选择连接,然后点击添加连接。
填写连接详情。大多数设置是大多数数据库方言通用的设置。如需了解相关信息,请参阅将 Looker 连接到数据库文档页面。
如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。
要保存这些设置,请点击连接。
将 SQL 函数和运算符与 MongoDB Connector for BI 搭配使用
使用 MongoDB 连接器进行 BI 连接开发时,您可以使用此 MongoDB 文档页面上列出的 SQL 函数和运算符。
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
从 Looker 23.8 开始,MongoBI 支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 否 |
对称聚合 | 否 |
派生表 | 是 |
永久性 SQL 派生表 | 否 |
永久性原生派生表 | 否 |
稳定版观看次数 | 否 |
查询终止 | 是 |
基于 SQL 的数据透视 | 否 |
时区 | 否 |
SSL | 是 |
小计 | 否 |
JDBC 附加参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 否 |
百分位 | 否 |
不同百分位 | 否 |
SQL Runner 显示进程 | 是 |
SQL Runner 描述表 | 是 |
SQL Runner 显示索引 | 是 |
SQL Runner 选择 10 | 是 |
SQL 运行程序计数 | 是 |
SQL 说明 | 是 |
OAuth 凭据 | 否 |
上下文评论 | 是 |
连接池 | 否 |
HLL 素描 | 否 |
总体认知度 | 否 |
PDT 增幅 | 否 |
毫秒 | 否 |
微秒 | 否 |
具体化视图 | 否 |
唯一计数 | 否 |
此外:
- MongoDB 不支持维度组的毫秒级和微秒级时间范围。
- MongoDB 不支持维度、毫秒、millisecondX 和微秒类型。
- Looker 会将通过 MongoBI 访问的所有时间戳视为世界协调时间 (UTC) 时区。