诊断命令
buildInfo
对于 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
对于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版本。
例如: | |
cacheMetadata | 有关 Atlas Data Federation 最近如何计算统计数据的信息。 | |
cacheMetadata.computeTime | 统计数据计算开始的时间(采用ISODate格式)。 | |
cacheMetadata.automaticRefreshInProgress | 指示背景作业现在是否正在运行以刷新缓存的标志。 | |
truncated | 指示 Atlas Data Federation 是否强制执行 16MiB 最大文档大小限制的标志。 标志值可以是以下值之一:
|
例子
{ ... "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
对于connectionStatus命令, Atlas Data Federation返回有关当前连接的信息,特别是经过身份验证的用户的状态及其可用角色。
注意
在任何给定时间,只有一个用户可以对与联合数据库实例的连接进行身份验证。 如果用户进行身份验证,然后运行db.auth()
命令,Data Federation 会将之前用户的权限替换为新用户的权限。
connectionStatus命令仅在authenticatedUsers
输出字段中显示新近通过身份验证的用户。
dbStats
对于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
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
时,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
对于getLog命令, Atlas Data Federation返回成功的响应,但不包括日志数据。
getMore
对于getMore命令,当与返回游标的命令结合使用时, Atlas Data Federation会返回游标当前指向的文档的后续批次,例如 查找并聚合。
hostInfo
对于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
对于网络探测(ping)命令, Atlas Data Federation会测试服务器是否响应命令。
whatsmyuri
对于whatsmyuri命令, Atlas Data Federation返回客户端IP解决。