Docs 菜单
Docs 主页
/
BI Connector

常见问题解答:适用于MongoDBconnector 的BI

在此页面上

  • BI Connector 是否有云托管版本?
  • 如何使用 BI Connector 进行身份验证?
  • 升级 MongoDB 时,BI Connector 应注意哪些事项?
  • BI Connector 是否存储任何数据?
  • 如何处理查询?
  • 如何跳过与 DRDL 类型定义不兼容的数据?
  • 我是否可以将 MongoDB 视图与 BI Connector 结合使用?
  • 是否有适用于 DRDL 的语法验证工具?
  • BI Connector 如何处理日期?
  • 如何将 TLS/SSL 与 BI Connector 结合使用?
  • 我能否使用 SQL EXPLAIN函数?

您可以在MongoDBconnector 中托管用于商业智能的MongoDB Atlas 。要了解如何启用和连接到 Atlas 托管的 BI Connector,请参阅通过 BI Connector for Atlas 连接。

版本 2.0 中的更改:在版本 2.0之前,BI Connector 单独存储一组档案。

如果您使用的是旧发布的MongoDB Connector for BI ,则应按照在本地安装BI Connector中的步骤升级到2.0 。

使用身份验证连接到 MongoDB 部署时,您可以以该部署中配置的用户和角色进行身份验证。

有关如何指定身份验证来源和机制的详细信息,请参阅身份验证

在升级 MongoDB 部署之前,请将 --mongo-versionCompatibility选项设置为当前安装的 MongoDB 主要版本系列,例如3.4 。 升级完成后,重新启动不带 选项的mongosqld --mongo-versionCompatibility,或将其设置为新更新的主要版本系列。

注意

如果使用DRDL 模式文件启动 BI Connector,并且开始使用新引入的BSON 类型,则必须在升级后更新模式文件。

MongoDB 3.4引入十进制 BSON 类型。 当您从 MongoDB 3.2升级到 MongoDB 3.4且模式文件包含float64值(映射到 MongoDB 中的double类型)时,您必须在开始使用新的decimal类型。

BI Connector 实例仅将 SQL 查询转换为 MongoDB 查询。 它本身不存储任何数据。

启动mongosqld时,您需要为其提供一个描述数据模式的DRDL文件。

BI Connector 会构造聚合表达式。

mongosqld始终启用聚合allowDiskUse选项。

BI Connector 无法将某些支持的 SQL 构造映射到等效聚合。 在这种情况下,BI Connector 将在内存中执行这些构造。

MongoDB 3.4引入了只读视图,可用于筛选不兼容的数据。

例如,您可以在test grade数据库中创建一个视图,该视图仅包含包含collection的grades 字段中的数字的文档:

db.runCommand( { create: "numericGrades", viewOn: "grades", pipeline: [ { "$match": { "grade": { "$type": "number" } } } ] } )

然后,您可以使用mongodrdl从该视图生成模式,就像生成collection一样:

mongodrdl -d test -c numericGrades

如果集合中的文档包含某个字段的不同数据类型,您可以筛选特定的数据类型。 为此,您可以在$match DRDL 表定义中的管道开头包含 阶段。

例如,要仅匹配grade字段中包含数字的文档,请使用以下管道阶段:

"$match": { "grade": { "$type": "number" } }

如果您是unwinding包含不同数据类型的数组字段,则要筛选数组以查找特定数据类型,请将$match阶段放在$unwind之后。

提示

另请参阅:

是的。 BI Connector 将视图视为任何其他集合。 有关在 BI Connector 中使用视图的更多信息,请参阅使用 MongoDB 视图管理模式。

DRDL 文件使用 YAML 语法。任何 YAML 验证器,例如 https://yaml-online-parser.appspot.com/可以帮助您检查 DRDL 文件。

BI Connector 将映射到 SQLdatetime 类型,从而正确处理 BSON 日期 数据。例如:

db.data.save({ date: new Date() })

如果将日期数据存储为字符串,BI Connector 会将其视为字符串而不是日期。 例如,BI Connector 将以下内容视为字符串:

db.data.save({ date: '32-FEB-2015' })

mongosqld和 MongoDB 部署之间的连接与 SQL 客户端和mongosqld之间的连接分开配置了 TLS/SSL。

如果要连接的 MongoDB 实例使用TLS/SSL ,请为 mongosqld 提供--mongo-ssl选项

例如:

mongosqld --schema=schema.drdl --mongo-ssl

要指定 TLS/SSL CA 根证书,请使用--mongo-sslCAFile选项。 要指定客户端证书,请使用--mongo-sslPEMKeyFile选项。 例如:

mongosqld --schema=schema.drdl \
--mongo-ssl \
--mongo-sslCAFile=/certs/ca.pem \
--mongo-sslPEMKeyFile=/certs/mongodb_client.pem

要指定 TLS/SSL CA 根证书,请使用--sslCAFile选项。 要指定客户端证书,请使用--sslPEMKeyFile选项。 例如:

mongosqld --schema=schema.drdl \
--sslCAFile=/certs/ca.pem \
--sslPEMKeyFile=/certs/mongosql_server.pem

如果您使用的是允许直接发出SQL语句的SQL客户端(例如MySQL shell ),则可以在任何查询之前添加 EXPLAIN 来获取有关如何执行该查询的信息。 EXPLAIN返回 BI Connector 将发送到 MongoDB 的完整聚合操作,而不运行查询或返回任何结果。 如果您想确切了解特定的 SQL 查询如何转换为 MongoDB 查询语言,则EXPLAIN非常有用。

后退

支持的 SQL 函数和运算符