Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

诊断命令

在此页面上

  • buildInfo
  • collStats
  • connectionStatus
  • dbStats
  • explain
  • 使用
  • 输出
  • getLog
  • getMore
  • hostInfo
  • ping
  • whatsmyuri

对于 buildInfo命令,响应包含以下字段:

字段
说明
ok
返回1 (表示成功)或0 (表示失败)。
version
MongoDB 客户端兼容版本。 这是 Data Federation 服务兼容的 MongoDB 客户端的最早版本。
versionArray
数组格式的 MongoDB 客户端兼容版本。
dataLake.version
Data Federation 的版本号。
dataLake.gitVersion
Data Federation 服务的 Git 版本。
dataLake.date
Data Federation 服务的构建时间戳。
dataLake.mongoSQLVersion
mongoSQL Data Federation 服务的版本。

例子

{
"ok" : <return>,
"version" : "<version-number>",
"versionArray" : [
<number>,
<number>,
<number>,
<number>
],
"dataLake" : {
"version" : "<version-number>",
"gitVersion" : "<version-number>",
"date" : "<timestamp>",
"mongoSQLVersion" : "<version-number>"
}
}

对于collStats命令,Atlas Data Federation 在响应中省略了以下字段:

  • avgObjSize

  • capped

  • max

  • maxSize

  • wiredTiger

  • nindexes

  • totalIndexSize

  • indexSizes

Atlas Data Federation 在响应中包含以下字段。您可以使用这些字段来验证使用哪些分区来填充collection,了解计算统计数据的最新时间,并确定 Atlas Data Federation 是否截断了文档。

字段
说明
dataLake.partitionCount
分区数量。
dataLake.avgPartitionSize
所有分区的平均大小。
dataLake.partitions.format
分区的文件格式。
dataLake.partitions.attributes
筛选分区属性。
dataLake.partitions.count
分区中的文档数。
dataLake.partitions.size
分区的大小(以字节为单位)。
dataLake.partitions.source
云存储URL,其中包含分区的后端数据。
dataLake.partitions.version

Atlas 集群的MongoDB版本。 collStats命令仅针对 Atlas集群数据存储返回此值。 该值的格式如下:

<major-version-number>.<minor-version-number>.<patch-version-number>

例如:7.0.1

cacheMetadata
有关 Atlas Data Federation 最近如何计算统计数据的信息。
cacheMetadata.computeTime
统计数据计算开始的时间(采用ISODate格式)。
cacheMetadata.automaticRefreshInProgress
指示背景作业现在是否正在运行以刷新缓存的标志。
truncated

指示 Atlas Data Federation 是否强制执行 16MiB 最大文档大小限制的标志。 标志值可以是以下值之一:

  • true - 如果输出文档大小超过限制,因此被截断以仅包含允许文档遵守大小限制的足够分区。 如果为true ,Atlas Data Federation 返回的partitionCountavgPartitionSize值可能小于实际值。

  • false - 如果 Atlas Data Federation 返回整个文档。

例子

{
...
"partitionCount": <number of partitions>,
"avgPartitionSize": <average size of all partitions>,
"partitions": [
{
"format": <file format>,
"attributes": <filtering attributes>,
"count": <number of documents in partition>,
"source": <cloud storage URL>,
"size": <size, in bytes, of the partition>
},
...
],
"truncated": false,
"cacheMetadata": {
computeTime: ISODate("2021-07-25T15:10:33.513Z"),
automaticRefreshInProgress: false
},
...
}

Atlas Data Federation 引入了一个可选的布尔参数sync来绕过缓存并获取给定集合的最新存储统计信息。 以下值对sync参数有效:

  • true — 绕过缓存并返回最新的存储统计信息

  • false — 返回缓存的数据

如果省略sync参数,则默认为false

例子

db.runCommand( {collStats: "<string>", sync: true|false} )

要学习;了解有关此命令支持的参数的更多信息,请参阅collStats。

对于connectionStatus命令, Atlas Data Federation返回有关当前连接的信息,特别是经过身份验证的用户的状态及其可用角色。

注意

在任何给定时间,只有一个用户可以对与联合数据库实例的连接进行身份验证。 如果用户进行身份验证,然后运行db.auth()命令,Data Federation 会将之前用户的权限替换为新用户的权限。

connectionStatus命令仅在authenticatedUsers输出字段中显示新近通过身份验证的用户。

对于dbStats命令, Atlas Data Federation引入了一个可选的布尔参数sync ,以绕过缓存并获取给定数据库的最新存储统计信息。 以下值对sync参数有效:

  • true — 绕过缓存并返回最新的存储统计信息

  • false - 同时使用缓存的数据

如果省略sync参数,则默认为false

例子

db.runCommand( {dbStats: 1, sync: true|false} )

要学习;了解有关此命令支持的参数的更多信息,请参阅dbStats。

Atlas Data Federation 命令在响应中省略了以下字段:

  • object

  • avgObjSize

  • fsUsedSize

  • fsTotalSize

这些命令在响应中添加以下字段。您可以使用这些字段来确定命令是否返回过时的数据。

字段
说明
cacheMetadata
包含有关最近计算统计数据的信息。
cacheMetadata.computeTime
统计数据计算开始的时间(采用ISODate格式)。
cacheMetadata.automaticRefreshInProgress
指示背景作业现在是否正在运行以刷新缓存的标志。

explain命令返回描述Data Federation查询计划的信息。 explain输出与MongoDB的不同之处在于,它提供了有关用于满足查询的数据分区的信息。

以下命令可在 Data Federation 中进行解释:

  • aggregate()

  • count()

  • find()

Atlas Data Federation 支持以下verbosity模式:

  • queryPlanner — 提供有关查询计划的信息。 如果未指定详细程度,Atlas Data Federation 默认采用此模式。

  • queryPlannerExtended — 提供有关查询计划的详细信息,包括有关对象存储对象的信息,例如将查询的对象存储对象名称和大小。

  • executionStats — 提供查询执行统计信息和性能。

Atlas Data Federation 不支持allPlansExecution模式。

例子

以下示例演示如何使用explain命令获取有关聚合命令的信息,包括有关查询计划的详细信息。

db.runCommand({ "explain": { "aggregate": "user", "verbosity":
"queryPlannerExtended", "pipeline": [ ], "cursor": {} }})

以下示例展示如何将方法附加到explain方法,例如find()方法,以获取有关查询的查询执行统计信息。

db.users.explain("executionStats").find({"type": "admin"})

当您运行explain时,Atlas Data Federation 会为其他分区返回以下附加字段:

输出字段名称
说明
stats
描述 Atlas Data Federation 可能为查询打开的分区数量和总大小的文档。
stats.size
Atlas Data Federation 可能为查询打开的分区的总大小。
stats.numberOfPartitions
Atlas Data Federation 可能为查询打开的分区数量。
truncated
布尔值,表示explain输出是否被截断。 explain总输出文档大小限制为 16 MiB。
plan
包含查询的查询执行计划的文档。 该文档包含嵌套的执行计划节点,每个节点都是描述该计划节点的文档。 嵌套计划节点文档包含 Atlas Data Federation 查询执行的内部描述,并包括可能更改的各种节点类型。 如果您在了解查询计划方面需要更多帮助,请联系 MongoDB 支持部门。

queryPlanner模式下, explain返回的结果提供有关联合数据库实例中分区的详细信息。

示例输出
1{
2 ok: 1,
3 stats: { size: '66 B', numberOfPartitions: 2 },
4 truncated: false,
5 plan: {
6 kind: 'region',
7 region: 'aws/us-east-1',
8 node: {
9 kind: 'data',
10 size: '66 B',
11 numberOfPartitions: 2,
12 partitionsTruncated: false,
13 partitions: [
14 {
15 source: 'projectID:cluster',
16 provider: 'atlas',
17 size: '4 B',
18 database: 'locations',
19 collection: 'nyc'
20 },
21 {
22 source: 'dls:projectID',
23 provider: 'dls:aws',
24 size: '62 B',
25 metadataLocation: { provider: 'aws', region: 'us-east-1' },
26 dataSetName: 'v1$atlas$archive$etc',
27 optimizationPlan: { kind: 'everything' }
28 }
29 ]
30 }
31 }
32}

explain命令会返回 Atlas 分区的以下附加字段:

输出
说明
database
Atlas Data Federation 查询的数据库。
collection
Atlas Data Federation 查询的collection。
pipeline
Atlas Data Federation 执行的聚合管道。

explain命令会为 Online 存档分区返回以下附加字段:

输出字段名称
说明
optimizationPlan
有关 Online 存档优化的详细信息。 当查询包含与为 Online 存档配置的分区键匹配的字段时,查询可能会得到优化。

queryPlannerExtended模式, explain返回的结果提供分区类型的扩展查询计划信息。

示例输出
1{
2 ok: 1,
3 stats: { size: '66 B', numberOfPartitions: 2 },
4 truncated: false,
5 plan: {
6 kind: 'region',
7 region: 'aws/us-east-1',
8 node: {
9 kind: 'data',
10 size: '66 B',
11 numberOfPartitions: 2,
12 partitionsTruncated: false,
13 partitions: [
14 {
15 source:'projectID:cluster',
16 provider: 'atlas',
17 size: '4 B',
18 database: 'locations',
19 collection: 'nyc'
20 },
21 {
22 source: 'dls:projectID',
23 provider: 'dls:aws',
24 size: '62 B',
25 metadataLocation: { provider: 'aws', region: 'us-east-1' },
26 dataSetName: 'v1$atlas$archive$etc',
27 scannedDataSetPartitionsCount: 1,
28 percentOfTotalPartitions: 100,
29 optimizationPlan: { kind: 'everything' }
30 },
31 ]
32 }
33 }
34}

explain命令会返回queryPlanner中的所有信息以及在线存档分区的以下附加字段:

输出字段名称
说明
scannedDataSetPartitionsCount
为完成查询而扫描的分区数。
percentOfTotalPartitions
扫描的分区占分区总数的百分比。

executionStats模式, explain返回的结果仅提供有关Atlas分区的查询执行统计信息和性能的信息。 这些可通过对Atlas分区的根本的Atlas集合执行executionStats解释命令来获取。 对于非 Atlas 分区, explain返回queryPlanner信息。 结果中的partitions字段包括一个额外的explainResults字段,它是可能包含以下字段的文档:

输出字段名称
说明
executionStats
提供有关Atlas集群获胜查询计划执行情况的信息,包括检查的文档和密钥的数量。
queryPlanner
包含有关Atlas集群的查询计划选择的信息,包括索引选择。
stages
包括管道阶段的细分以及每个阶段的统计数据。

注意

要学习;了解有关这些字段的更多信息,请参阅executionStats。

示例输出
1{
2 ok: 1,
3 stats: { size: '66 B', numberOfPartitions: 2 },
4 truncated: false,
5 plan: {
6 kind: 'region',
7 region: 'aws/us-east-1',
8 node: {
9 kind: 'data',
10 size: '66 B',
11 numberOfPartitions: 2,
12 partitionsTruncated: false,
13 partitions: [
14 {
15 source: 'projectID:cluster',
16 provider: 'atlas',
17 size: '4 B',
18 database: 'locations',
19 collection: 'nyc',
20 explainResults: {
21 queryPlanner: {
22 ...
23 winningPlan: {
24 ...
25 },
26 rejectedPlans: []
27 },
28 executionStats: {
29 ...
30 },
31 stages: {
32 ...
33 }
34 }
35 },
36 {
37 source: 'dls:projectID',
38 provider: 'dls:aws',
39 size: '62 B',
40 metadataLocation: { provider: 'aws', region: 'us-east-1' },
41 dataSetName: 'v1$atlas$archive$etc'
42 },
43 ]
44 }
45 }
46}

对于getLog命令, Atlas Data Federation返回成功的响应,但不包括日志数据。

对于getMore命令,当与返回游标的命令结合使用时, Atlas Data Federation会返回游标当前指向的文档的后续批次,例如 查找聚合。

对于hostInfo命令, Atlas Data Federation仅从标准MongoDB响应中返回以下字段子集:

{
"ok" : <return>,
"system" : {
"currentTime" : ISODate("<timestamp>"),
"hostname" : "<hostname>",
"cpuAddrSize" : <number>,
"memSizeMB" : <number>,
"numCores" : <number>,
"cpuArch" : "<identifier>",
},
"os" : {
"type" : "<string>",
"name" : "<string>",
},
"extra" : { }
}

对于网络探测(ping)命令, Atlas Data Federation会测试服务器是否响应命令。

对于whatsmyuri命令, Atlas Data Federation返回客户端IP解决。

后退

管理