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 管理员需要按照本页中介绍的步骤设置 MongoDB Connector for BI:
将 Looker 服务器添加到 Atlas IP 访问权限列表
Atlas 仅允许来自项目 IP 访问列表中条目的客户端连接。将 Looker IP 地址添加到 Atlas 项目的 IP 访问权限列表中:
- 获取 Looker IP 地址。
- 按照 Atlas IP 访问权限列表设置说明,将 Looker IP 地址添加到 Atlas IP 访问权限列表中。
为 BI 启用 MongoDB 连接器
为 BI 启用 MongoDB 连接器:
- 确认您使用的是 M10 及更高版本的集群。
- 在 Atlas 中,打开集群的“Connect”页面。记下主机名、端口和用户。您在 Looker 中配置连接时需要使用这些信息。
同一服务器上的 MongoDB
在 Looker 中创建连接之前,MongoDB 管理员应按照本页中介绍的步骤设置 MongoDB 和 Mongo Connector for BI:
安装适用于 BI 的 Mongo Connector
在 MongoDB 数据库所在的服务器上安装适用于 BI 的 MongoDB Connector,如在本地安装 BI 连接器中所述 MongoDB 文档页面。
加密网络流量
适用于 BI 的 MongoDB Connector 要求在 MongoDB 服务器和 Looker 应用之间使用 SSL 加密。请按照 Configure SSL for BI Connector 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.16 开始,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 不支持将毫秒、毫秒 X 和微秒类型用于维度。
- Looker 会将从 MongoBI 访问的所有时间戳视为采用世界协调时间 (UTC) 时区。