“文档” 菜单
文档首页
/
BI Connector
/

自动模式模式(MongoDB 中模式持久化)

在此页面上

  • 概述
  • 重新生成模式
  • 持久化模式的用户权限

--schemaSource选项指示mongosqld使用已连接 MongoDB 实例上的特定数据库进行模式存储。 mongosqld可以创建新数据库用于模式存储,也可以使用现有数据库。

如果您指定先前已用于模式存储的现有数据库,则--schemaMode选项将确定mongosqld是将新模式数据写入指定数据库还是仅从该数据库读取。 如果指定当前不存在的数据库,则必须将--schemaMode设置为auto

以下示例命令使用名为sampleDb的数据库来存储模式信息,并将--schemaMode设置为auto

mongosqld --schemaSource sampleDb --schemaMode auto

要了解有关采样模式的更多信息,请参阅采样模式参考图。

默认情况下, mongosqld在生成模式后不会自动对数据进行重新采样。 指定--schemaRefreshIntervalSecs选项以指示mongosqld自动对数据进行重采样并按固定安排重新生成模式。

要强制对模式进行一次性更新,请在 SQL 客户端中使用 FLUSH SAMPLE 命令。

如果您的 MongoDB 实例使用身份验证,则除了缓存采样中所述的权限外,您还必须指定对指定模式数据库具有写入权限的 MongoDB 用户。

要创建具有运行具有持久模式的mongosqld所需权限的用户,您可以创建具有所需最低权限的自定义角色(如缓存采样的用户权限中所述),或使用内置的 readAnyDatabase角色。无论哪种情况,用户还需要对指定模式数据库的写入权限。

db.getSiblingDB("admin").createUser(
{
user: "<username>",
pwd: "<password>",
roles: [
{ "role": "readAnyDatabase", "db": "admin" },
{ "role": "readWrite", "db": "<dbname>" }
]
}
)

在以下示例中,名为bicUser 、密码为myPass的用户提供档案以读取和更新名为schemaDb的模式数据库。

mongosqld --auth -u bicUser -p myPass --schemaSource schemaDb --schemaMode auto

后退

独立运行模式(缓存采样)

来年

使用 MongoDB 视图