MongoSQL

使用 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 访问权限列表中:

  1. 获取 Looker 实例所在区域的 Looker IP 地址 列表。
  2. 根据Atlas IP 访问权限列表文档,将这些 IP 地址添加到 Atlas 项目的 IP 访问权限列表中。

为 Looker 创建 MongoDB 用户账号

使用 MongoDB Atlas Web 控制台,按照以下步骤为 Looker 创建数据库用户账号:

  1. 登录 MongoDB Atlas 控制台
  2. 在主导航菜单的安全性下,选择数据库访问权限
  3. 点击添加新的数据库用户
  4. 选择密码作为身份验证方法。输入用户名(例如 looker)和安全密码。
  5. 数据库用户权限下,选择内置角色,然后为 Looker 将访问的数据库分配 read 角色(或自定义读取权限)。
  6. 点击添加用户以保存用户凭据。

获取 Atlas SQL 连接参数

如需创建 Looker 连接,您需要输入 Atlas SQL 连接的连接参数。您可以通过执行以下步骤获取参数信息:

  1. 登录 MongoDB Atlas 控制台
  2. 前往您的集群,然后点击连接
  3. 选择 Atlas SQL(或使用 SQL 连接应用)。
  4. 选择 JDBC 驱动程序
  5. 记下生成的主机端口(通常为 27017)、数据库和 SSL 要求。您将在创建 Looker 连接时输入这些详细信息。

创建 Looker 与数据库的连接

请按照以下步骤建立从 Looker 到 MongoSQL 的连接:

  1. 在 Looker 的管理部分中,选择连接,然后点击添加连接
  2. 填写连接详情。这些设置中的大多数设置对于大多数数据库方言都是通用的。如需了解相关信息,请参阅将 Looker 连接到您的数据库文档页面。接下来将介绍部分设置。其他所有字段均使用默认值,或将其留空。

    • 名称:输入一个唯一的连接名称。
    • 方言:从下拉菜单中选择 MongoSQL
    • 主机:MongoSQL 接口提供的主机名(例如 <cluster-name>.a.query.mongodb.net)。
    • 端口:Atlas SQL 的端口号(默认值:27017)。
    • 数据库: 使用 SQL 架构生成器创建架构的数据库名称。
    • 用户名:为 Looker 创建的数据库用户名。
    • 密码:数据库用户密码。
    • SSL:启用 SSL (ssl=true)。
    • 其他 JDBC 参数:(可选)MongoDB 驱动程序支持的其他 JDBC 参数,例如 authSource=adminconnectTimeoutMS=10000。请参阅支持的 JDBC 参数
  3. 如需验证数据库连接,请点击 Test Connection(测试连接)。

  4. 如果 Looker 显示可以连接,请按连接以创建连接。

然后,您的数据库连接会添加到 Looker 连接 管理页面上的列表中。

支持的 JDBC 参数

对于 MongoSQL 方言,Looker 在 附加 JDBC 参数 字段中支持以下 JDBC 参数:

  • appName
  • authSource
  • clientinfo
  • connectTimeoutMS
  • directConnection
  • disableclientcache
  • extjsonmode
  • heartbeatFrequencyMS
  • journal
  • localThresholdMS
  • maxIdleTimeMS
  • maxWaitTimeMS
  • readPreference
  • replicaSet
  • retryReads
  • retryWrites
  • serverSelectionTimeoutMS
  • socketTimeoutMS
  • ssl
  • tls
  • tlsAllowInvalidHostnames
  • tlsInsecure
  • w
  • wtimeoutMS

查询限制和 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
毫秒
微秒
具体化视图
环比指标
近似计数不同
数据库内分析模型
自定义日历