Looker 可以通过以下两种方法使用 MongoDB Connector for BI 访问 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 访问权限列表
Atlas 仅允许来自项目 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,本页面对此进行了说明:
安装适用于 BI 的 Mongo 连接器
在 MongoDB 数据库所在的服务器上安装 MongoDB Connector for BI,如安装 BI 连接器本地 MongoDB 文档页面中所述。
加密网络流量
适用于 BI 的 MongoDB 连接器要求在 MongoDB 服务器和 Looker 应用之间使用 SSL 加密。按照为 BI 连接器配置 SSL MongoDB 文档页面上的 SSL 设置说明进行操作。
设置 Looker 用户和权限
在 MongoDB shell 中,输入 use
命令以切换到 Looker 将连接的数据库。然后,使用 db.createUser()
创建角色为 readWrite
的 Looker 用户:
use looker_database
db.createUser({ user: looker,
pwd: `some_password_here`,
roles: [ "readWrite" ]
})
安装 MongoBI JDBC 驱动程序文件
对于这两种 MongoDB Connector for BI 选项,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 派生的表功能提供了一种创建数据库中尚不存在的新表的方法。
MongoDB Connector for BI 支持临时常规派生表,但不支持永久性派生表。
由于常规派生表是临时表,因此不需要存储。因此,您无需为它们创建架构。不过,您需要向 looker_tmp
架构授予 dbOwner
角色,即使该架构不存在也是如此。
按照此关于配置数据库用户的 MongoDB 文档页面中的“修改 MongoDB 用户”部分,在 looker_tmp
上为 Looker 将用于连接的用户添加 dbOwner
角色。
db.grantRolesToUser("looker", [ {role: "dbOwner", db: "looker_tmp"} ])
创建 Looker 与数据库的连接
如需创建从 Looker 到数据库的连接,请按以下步骤操作:
- 在 Looker 的管理部分中,选择连接,然后点击添加连接。
从方言下拉菜单中选择 MongoBI。
填写连接详情。大多数设置对大多数数据库方言是通用的。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
如需验证连接是否成功,请点击 Test。如需了解问题排查信息,请参阅测试数据库连接文档页面。
如需保存这些设置,请点击连接。
将 SQL 函数和运算符与 MongoDB Connector for BI
使用适用于 BI 连接的 MongoDB 连接器进行开发时,您可以使用 MongoDB 文档中列出的 SQL 函数和运算符。
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
从 Looker 24.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 不支持毫秒、毫秒和微秒类型的维度。
- Looker 会将从 MongoBI 访问的所有时间戳都视为采用世界协调时间 (UTC) 时区。