使用 MongoSQL 方言(由 MongoSQL 接口 提供支持)将 Looker 直接连接到您的 MongoSQL 集群。将 Looker 连接到 MongoSQL 后,您可以使用关系型 SQL 查询分析文档数据,并构建交互式 Looker 信息中心。
Looker 包含一个开箱即用的、获得 Apache-2.0 许可的 MongoSQL 接口 JDBC 驱动程序。与旧版 MongoBI 方言不同,无需手动安装自定义的未打包 JDBC 驱动程序 JAR 文件。
前提条件和 MongoSQL 配置
在 Looker 中创建连接之前,请在 MongoSQL 中完成以下配置步骤:
使用 SQL 架构构建器构建关系型架构
MongoDB 以灵活的非关系型文档格式(JSON/BSON)存储数据。在 Looker 可以使用标准 SQL 查询 MongoDB 集合之前,您必须使用 MongoSQL 中的 SQL 架构构建器来构建 SQL 架构。
MongoSQL 接口依赖于 SQL 架构构建器创建的关系型架构,将文档结构、嵌套字段和数组映射到标准 SQL 表、行和列。如果没有有效的 SQL 架构,SQL 接口将无法针对 MongoDB 集合转换 SQL 查询。
在 Looker 中创建连接之前,请参阅 MongoSQL 架构构建器文档,以定义和发布表格架构。
对于本地 MongoDB Enterprise 实例,请使用 MongoDB SQL 架构构建器 CLI 定义架构。
将 Looker IP 地址添加到 Atlas IP 访问权限列表
MongoSQL 限制客户端连接只能通过授权的 IP 地址进行。如需从 Looker 实例查询 MongoSQL,您必须执行以下步骤,将 Looker IP 地址添加到 Atlas IP 访问权限列表中:
- 获取 Looker 实例所在区域的 Looker IP 地址 列表。
- 根据Atlas IP 访问权限列表文档,将这些 IP 地址添加到 Atlas 项目的 IP 访问权限列表中。
为 Looker 创建 MongoDB 用户账号
使用 MongoDB Atlas Web 控制台,按照以下步骤为 Looker 创建数据库用户账号:
- 登录 MongoDB Atlas 控制台。
- 在主导航菜单的安全性下,选择数据库访问权限。
- 点击添加新的数据库用户。
- 选择密码作为身份验证方法。输入用户名(例如
looker)和安全密码。 - 在数据库用户权限下,选择内置角色,然后为 Looker 将访问的数据库分配
read角色(或自定义读取权限)。 - 点击添加用户以保存用户凭据。
获取 Atlas SQL 连接参数
如需创建 Looker 连接,您需要输入 Atlas SQL 连接的连接参数。您可以通过执行以下步骤获取参数信息:
- 登录 MongoDB Atlas 控制台。
- 前往您的集群,然后点击连接。
- 选择 Atlas SQL(或使用 SQL 连接应用)。
- 选择 JDBC 驱动程序。
- 记下生成的主机、端口(通常为
27017)、数据库和 SSL 要求。您将在创建 Looker 连接时输入这些详细信息。
创建 Looker 与数据库的连接
请按照以下步骤建立从 Looker 到 MongoSQL 的连接:
- 在 Looker 的管理部分中,选择连接,然后点击添加连接。
填写连接详情。这些设置中的大多数设置对于大多数数据库方言都是通用的。如需了解相关信息,请参阅将 Looker 连接到您的数据库文档页面。接下来将介绍部分设置。其他所有字段均使用默认值,或将其留空。
- 名称:输入一个唯一的连接名称。
- 方言:从下拉菜单中选择 MongoSQL。
- 主机:MongoSQL 接口提供的主机名(例如
<cluster-name>.a.query.mongodb.net)。 - 端口:Atlas SQL 的端口号(默认值:
27017)。 - 数据库: 使用 SQL 架构生成器创建架构的数据库名称。
- 用户名:为 Looker 创建的数据库用户名。
- 密码:数据库用户密码。
- SSL:启用 SSL (
ssl=true)。 - 其他 JDBC 参数:(可选)MongoDB 驱动程序支持的其他 JDBC 参数,例如
authSource=admin或connectTimeoutMS=10000。请参阅支持的 JDBC 参数。
如需验证数据库连接,请点击 Test Connection(测试连接)。
如果 Looker 显示可以连接,请按连接以创建连接。
然后,您的数据库连接会添加到 Looker 连接 管理页面上的列表中。
支持的 JDBC 参数
对于 MongoSQL 方言,Looker 在 附加 JDBC 参数 字段中支持以下 JDBC 参数:
appNameauthSourceclientinfoconnectTimeoutMSdirectConnectiondisableclientcacheextjsonmodeheartbeatFrequencyMSjournallocalThresholdMSmaxIdleTimeMSmaxWaitTimeMSreadPreferencereplicaSetretryReadsretryWritesserverSelectionTimeoutMSsocketTimeoutMSssltlstlsAllowInvalidHostnamestlsInsecurewwtimeoutMS
查询限制和 SQL 行为
在构建 LookML 模型并使用 SQL 接口查询 MongoSQL 时,请注意以下方言特征:
- SQL 架构构建器的要求:如前提条件中所述,SQL 查询需要预配置的关系架构,该架构在 Atlas SQL 架构构建器中定义。
- 派生表:支持临时(常规)派生表,但不支持永久性派生表 (PDT)。
- 日期和时间戳类型:不支持
date数据类型;标准做法是将日期存储为timestamp字段并以这种方式进行建模。 - 时区:从 MongoSQL 接口访问的所有时间戳均以世界协调时间 (UTC) 为准。对于 MongoDB 连接,Looker 不会在数据库中转换时区。
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
从 Looker 26.14 版本开始,MongoSQL 支持以下功能:
| 功能 | 是否支持? |
|---|---|
| Looker (Google Cloud Core) | |
| 对称聚合 | |
| 派生表 | |
| 基于 SQL 的永久性派生表 | |
| 原生永久性派生表 | |
| 稳定视图 | |
| 终止查询 | |
| 基于 SQL 的透视 | |
| 时区 | |
| SSL | |
| 小计 | |
| 其他 JDBC 参数 | |
| 区分大小写 | |
| 位置类型 | |
| 列表类型 | |
| 百分位 | |
| 不同值百分位 | |
| SQL Runner “Show Processes” | |
| SQL Runner “Describe Table” | |
| SQL Runner “Show Indexes” | |
| SQL Runner “Select 10” | |
| SQL Runner “Count” | |
| SQL “Explain” | |
| OAuth 2.0 凭证 | |
| 上下文注释 | |
| 连接池 | |
| HLL 草图 | |
| 汇总感知 | |
| 增量 PDT | |
| 毫秒 | |
| 微秒 | |
| 具体化视图 | |
| 环比指标 | |
| 近似计数不同 | |
| 数据库内分析模型 | |
| 自定义日历 |