Оценка влияния запросов в MongoDB Atlas Data Lake - PullRequest
0 голосов
/ 26 июня 2019

Есть ли способ оценить стоимость / объем данных, прочитанных запросом, без фактического его выполнения?

Похоже на большой запрос Google --dry_run flag

1 Ответ

1 голос
/ 28 июня 2019

Я не верю, что в данный момент есть такая особенность.Однако вы можете запустить explain() для запроса, например, db.airbnb.explain().find(....).В плане запроса должен быть указан узел url, который содержит размер, например:

> db.airbnb.explain().find({ "address.market" : "New York", "price": {$lt: NumberDecimal("200.00")} } )
{
  "ok" : 1,
  "plan" : {
    "kind" : "multiPlanNode",
    "regionPlans" : {
      "2/ap-southeast-2" : {
....
        "node" : {
          "kind" : "data",
          "partitions" : [
            {
              "url" : "s3://xxxx/json/airbnb/listingsAndReviews.json?agentRegion=2%2Fap-southeast-2&format=.json&region=ap-southeast-2&size=92.65681457519531+MiB",
              "attributes" : {

              }
            }
....

Обратите внимание на раздел:

"url" : "s3://xxxx/json/airbnb/listingsAndReviews.json?agentRegion=2%2Fap-southeast-2&format=.json&region=ap-southeast-2&size=92.65681457519531+MiB"

означает, что запросбудет читать этот S3 URL размером 92 МБ.

Редактировать : Как указывает @willis, при запуске explain() без какого-либо параметра не на самом делевыполнить запрос, но отобразит только план выполнения (см. объяснение () поведения ).Однако при explain('executionStats') запрос будет фактически выполнен.

...