Looker 可以通过以下两种方式使用 MongoDB Connector for BI 访问 MongoDB:
- 在 MongoDB Atlas 中使用 MongoDB Connector for BI。
- 使用安装在与 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 Connector:
- 验证您是否位于 M10+ 集群上。
- 在 Atlas 中,打开集群的“连接”页面。记下主机名、端口和用户。在 Looker 中配置连接时,您需要使用这些信息。
同一服务器上的 MongoDB
在 Looker 中创建连接之前,您的 MongoDB 管理员应按照以下步骤设置 MongoDB 和 BI 的 Mongo 连接器,本页对此进行了说明:
安装适用于 BI 的 Mongo 连接器
在 MongoDB 数据库所在的服务器上安装适用于 BI 的 MongoDB Connector,如在本地安装 BI 连接器中所述 MongoDB 文档页面。
对网络流量进行加密
适用于 BI 的 MongoDB Connector 要求在 MongoDB 服务器和 Looker 应用之间使用 SSL 加密。按照为 BI 连接器配置 SSL MongoDB 文档页面上的 SSL 设置说明进行操作。
设置 Looker 用户和权限
在 MongoDB shell 中,输入 use
命令以切换到 Looker 将连接的数据库。然后,为 Looker 创建一个 db.createUser()
用户,角色为 readWrite
:
use looker_database
db.createUser({ user: looker,
pwd: `some_password_here`,
roles: [ "readWrite" ]
})
安装 MongoBI JDBC 驱动程序文件
对于这两个适用于 BI 的 MongoDB Connector 选项,Looker 都需要按照以下步骤配置 JDBC 驱动程序文件:
下载以下两个 JAR 文件:
按照未打包的 JDBC 驱动程序文档页面上的步骤操作,使用以下值:
驱动程序符号:mongobi
driver entry:
- 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 Connector 支持临时常规派生表,但不支持永久性派生表。
由于常规派生表是临时表,因此不需要存储。因此,您无需为它们创建架构。但是,您需要向 looker_tmp
架构授予 dbOwner
角色,即使该架构不存在也是如此。
请按照有关配置数据库用户的 MongoDB 文档页面中的“修改 MongoDB 用户”部分操作,在 looker_tmp
上为 Looker 将用于连接的用户添加 dbOwner
角色。
db.grantRolesToUser("looker", [ {role: "dbOwner", db: "looker_tmp"} ])
正在创建与数据库的 Looker 连接
请按照以下步骤创建从 Looker 到数据库的连接:
- 在 Looker 的管理部分中,选择连接,然后点击添加连接。
从方言下拉菜单中选择 MongoBI。
填写连接详情。大多数设置对大多数数据库方言都是通用的。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。
要保存这些设置,请点击连接。
将 SQL 函数和运算符与适用于 BI 的 MongoDB Connector 搭配使用
使用 MongoDB 连接器进行 BI 连接开发时,您可以使用 MongoDB 文档中列出的 SQL 函数和运算符。
功能支持
要让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
从 Looker 24.12 开始,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) 时区。