{"id":7568,"date":"2019-09-04T11:48:42","date_gmt":"2019-09-04T18:48:42","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7568"},"modified":"2025-06-13T19:27:39","modified_gmt":"2025-06-14T02:27:39","slug":"analytics-explain-plan-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/","title":{"rendered":"Analytics Explain Plan &#8211; Part 1"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Co-author:\u00a0 Till Westmann,\u00a0 Senior Director, Engineering<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Introduction<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Couchbase Analytics is the \u201cnewest kid on the block\u201d amongst all the services available in Couchbase Server. The new service is providing rapid time to insight in many use cases like ship to shore, shopping cart analysis, store placement of goods, airline ticket bookings, hotel inventory and many more. Couchbase Server delivers unmatched performance in some of the most demanding use cases, and the expectations from the Analytics service are no different. Over the last few months, we\u2019ve optimized N1QL (SQL for JSON) queries for customers who\u2019ve deployed Analytics in a variety of different deployment topologies. \u201cHow can I interpret the Analytics query plan?\u201d is a recurring request and I will demystify the Analytics query plan in a blog post series.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">In this blog post, part 1, I will provide background on the execution framework and then explain the plan for a simple query. In the next blog of this series I will explain the plan\u00a0 for more complex queries &#8211; including joins, index accesses, and aggregations.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Background<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Couchbase Analytics adds parallel data management to Couchbase Server to complement the capabilities offered by the Query and Index services. Couchbase Analytics has a full MPP (massively parallel processing) based query processor that splits the work of processing a single query across all of the Analytics nodes in a Couchbase data platform cluster. As a result, you can run complex analytical queries \u2013 ad-hoc joins, set aggregation and grouping operations- quickly and in a scalable manner.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">The picture below is a simplified conceptual representation of how a query is processed by the Analytics engine. The picture represents what goes on in a single node and hides the details of the MPP aspects of the query engine.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7569 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image7.png\" alt=\"\" width=\"962\" height=\"914\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/image7.png 962w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/image7-300x285.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/image7-768x730.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/image7-20x20.png 20w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A request is submitted to the Analytics Service and after it is authenticated, the query string is passed to the query compiler.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The query compiler parses and translates the query and produces an optimized query plan. A query plan is a tree (or a DAG)\u00a0 of operators and connectors. These operators are similar to the relational algebra operators in relational databases. The key difference here being that the operators in Couchbase Analytics are also capable of handling nested and schemaless JSON data. The details are outside the scope of this blog post, but you can get under the hood in this <\/span><a href=\"https:\/\/www.youtube.com\/watch?v=1dN11TUj58c\"><span style=\"font-weight: 400\">video presentation<\/span><\/a><span style=\"font-weight: 400\"> from Prof Mike Carey, Chief Architect of Couchbase Analytics.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The query plan is handed off to the execution engine which evaluates the operators in the query plan. <\/span><span style=\"font-weight: 400\">Analytics is designed for big data and can gracefully handle <\/span><span style=\"font-weight: 400\">data spilling from memory to disk as needed.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The buffer cache is used by the execution engine to read stored data from disk and cache the data in memory for quicker access as needed.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The results of the execution are passed to the response handler.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The response handler then passes the results back to the client.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400\">Query Plan<\/span><\/h2>\n<p><span style=\"font-weight: 400\">A<\/span><span style=\"font-weight: 400\"> query plan describes the path of a document through the execution engine. The operations in the plan will be executed for each qualifying document.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Let me illustrate this with a very simple query below which selects the name is all breweries in California.<\/span><\/p>\n<pre class=\"lang:default decode:true\">select name \r\nfrom breweries \r\nwhere state=\u201dCalifornia\u201d<\/pre>\n<p><em><strong>The best way to read the plan would be bottoms-up. It would give you a view of how data is accessed and the steps that follow for query execution.<\/strong><\/em><\/p>\n<p><b>\u00a0 \u00a0<span style=\"color: #0000ff\">Query Plan Operators<\/span>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #0000ff\">Explanation<\/span><\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-7570\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image3.png\" alt=\"\" width=\"300\" height=\"134\" \/><span style=\"font-weight: 400\">Distribute-result: This is the root of the plan that receives the query result. When a client requests the results (synchronously or asynchronously), the results are retrieved from each node and sent to the client.<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">This is a parallel operation that is partitioned across all nodes in the cluster.<\/span><\/i><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-7572\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image6.png\" alt=\"\" width=\"300\" height=\"134\" \/><\/p>\n<p><span style=\"font-weight: 400\">Project: Projects out the field $$breweries and keeps $$15 (which contains the name of the brewery).<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">This is a parallel operation that is partitioned across all nodes in the cluster.<\/span><\/i><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7573 size-medium\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image1-1-300x134.png\" alt=\"\" width=\"300\" height=\"134\" \/><\/p>\n<p><strong>Assign: <\/strong><span style=\"font-weight: 400\">This operator evaluates one or more expressions <\/span><span style=\"font-weight: 400\">and assigns the results to new variables. In this case the value of the key \u201cname\u201d is assigned to variable $15.<br \/>\n<\/span><i><\/i><\/p>\n<p><i><span style=\"font-weight: 400\">This is a parallel operation that is partitioned across all nodes in the cluster.<\/span><\/i><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7574 size-couchbase-grid-thumb\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image2-400x149.png\" alt=\"\" width=\"300\" height=\"134\" \/><\/p>\n<p><span style=\"font-weight: 400\">Select: Selects the matching records based on the predicate defined in the query. In this case the brewery records that belong to \u201cCalifornia\u201d are selected and the rest are filtered out.<br \/>\n<\/span><i><span style=\"font-weight: 400\">This is a parallel operation that is partitioned across all nodes in the cluster.<\/span><\/i><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7575 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image5-e1566580669806.png\" alt=\"\" width=\"300\" height=\"134\" \/><\/p>\n<p><span style=\"font-weight: 400\"><strong><br \/>\nProject:<\/strong> Projects out all $$16 and $$17 and keeps $$breweries.<\/span><\/p>\n<p><i><span style=\"font-weight: 400\"><br \/>\nThis is a parallel operation that is partitioned across all nodes in the cluster. <\/span><\/i><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-7576\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/image4.png\" alt=\"\" width=\"300\" height=\"134\" \/><span style=\"font-weight: 400\">Data-scan: Reads each record from the dataset \u201cbreweries\u201d. \u201cvars\u201d is the list of variables that are created as a result of this operation. The first key for each record is assigned to $$16, the whole record is assigned to $$breweries, and some record metadata is assigned to $$17.<br \/>\n<\/span><i>This is a parallel operation that is partitioned across all nodes in the cluster.<\/i><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>The explain plan is a great tool to optimize analytic queries running in Couchbase Server and this introduction should help demystify the plan and interpret it. You can try it yourself by downloading the latest version <a href=\"https:\/\/www.couchbase.com\/downloads\/\">Couchbase Server 6.5<\/a> and engage with us on<a href=\"https:\/\/www.couchbase.com\/forums\/c\/analytics\/\"> forums<\/a> to get your questions answered.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Co-author:\u00a0 Till Westmann,\u00a0 Senior Director, Engineering Introduction Couchbase Analytics is the \u201cnewest kid on the block\u201d amongst all the services available in Couchbase Server. The new service is providing rapid time to insight in many use cases like ship to [&hellip;]<\/p>\n","protected":false},"author":559,"featured_media":7475,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2294,1821,1816,1812],"tags":[1829,1725],"ppma_author":[9052],"class_list":["post-7568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-analytics","category-couchbase-architecture","category-couchbase-server","category-n1ql-query","tag-bi","tag-nosql-database"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Analytics Explain Plan - Part 1 - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Analytics Explain Plan - Part 1\" \/>\n<meta property=\"og:description\" content=\"Co-author:\u00a0 Till Westmann,\u00a0 Senior Director, Engineering Introduction Couchbase Analytics is the \u201cnewest kid on the block\u201d amongst all the services available in Couchbase Server. The new service is providing rapid time to insight in many use cases like ship to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-04T18:48:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:27:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png\" \/>\n\t<meta property=\"og:image:width\" content=\"893\" \/>\n\t<meta property=\"og:image:height\" content=\"332\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sachin Smotra, Director Product Management, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@smotras\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sachin Smotra, Director Product Management, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\"},\"author\":{\"name\":\"Sachin Smotra, Director Product Management, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b0afdfaea6775eaf75096b65e7791f9a\"},\"headline\":\"Analytics Explain Plan &#8211; Part 1\",\"datePublished\":\"2019-09-04T18:48:42+00:00\",\"dateModified\":\"2025-06-14T02:27:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\"},\"wordCount\":872,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png\",\"keywords\":[\"BI\",\"NoSQL Database\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Analytics\",\"Couchbase Architecture\",\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\",\"name\":\"Analytics Explain Plan - Part 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png\",\"datePublished\":\"2019-09-04T18:48:42+00:00\",\"dateModified\":\"2025-06-14T02:27:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png\",\"width\":893,\"height\":332},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Analytics Explain Plan &#8211; Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b0afdfaea6775eaf75096b65e7791f9a\",\"name\":\"Sachin Smotra, Director Product Management, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e0fd86aac479bbde276340e2945bbd5c\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/351d2ab52ac22b2cfdfc83ff4a2dc0b377d8316ecb298656b8c1a5f9e70a141b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/351d2ab52ac22b2cfdfc83ff4a2dc0b377d8316ecb298656b8c1a5f9e70a141b?s=96&d=mm&r=g\",\"caption\":\"Sachin Smotra, Director Product Management, Couchbase\"},\"description\":\"Sachin Smotra\u2019s career spans more than 15 years building software products across various domains including Java Enterprise software, DRM Solutions for mobile games and web conferencing. As Director Product Management at Couchbase, he is a hands-on product leader responsible for Couchbase Mobile, IOT and Analytics product lines including evangelizing the product strategy and vision with customers, partners, developers and analysts. Before joining Couchbase, Sachin was a Senior Manager, Product Management, at Cisco WebEx where he led the product team responsible for transforming the end to end Customer Experience across the WebEx product lifecycle - consideration, purchase, usage and renewals. Prior to his time at Cisco, Sachin worked at different startups in a multitude of roles across engineering, architecture, product management and alliances.\",\"sameAs\":[\"https:\/\/x.com\/smotras\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/ssmotra\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Analytics Explain Plan - Part 1 - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Analytics Explain Plan - Part 1","og_description":"Co-author:\u00a0 Till Westmann,\u00a0 Senior Director, Engineering Introduction Couchbase Analytics is the \u201cnewest kid on the block\u201d amongst all the services available in Couchbase Server. The new service is providing rapid time to insight in many use cases like ship to [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-09-04T18:48:42+00:00","article_modified_time":"2025-06-14T02:27:39+00:00","og_image":[{"width":893,"height":332,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png","type":"image\/png"}],"author":"Sachin Smotra, Director Product Management, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@smotras","twitter_misc":{"Written by":"Sachin Smotra, Director Product Management, Couchbase","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/"},"author":{"name":"Sachin Smotra, Director Product Management, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b0afdfaea6775eaf75096b65e7791f9a"},"headline":"Analytics Explain Plan &#8211; Part 1","datePublished":"2019-09-04T18:48:42+00:00","dateModified":"2025-06-14T02:27:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/"},"wordCount":872,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png","keywords":["BI","NoSQL Database"],"articleSection":["Best Practices and Tutorials","Couchbase Analytics","Couchbase Architecture","Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/","name":"Analytics Explain Plan - Part 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png","datePublished":"2019-09-04T18:48:42+00:00","dateModified":"2025-06-14T02:27:39+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/RMFI.png","width":893,"height":332},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Analytics Explain Plan &#8211; Part 1"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b0afdfaea6775eaf75096b65e7791f9a","name":"Sachin Smotra, Director Product Management, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e0fd86aac479bbde276340e2945bbd5c","url":"https:\/\/secure.gravatar.com\/avatar\/351d2ab52ac22b2cfdfc83ff4a2dc0b377d8316ecb298656b8c1a5f9e70a141b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/351d2ab52ac22b2cfdfc83ff4a2dc0b377d8316ecb298656b8c1a5f9e70a141b?s=96&d=mm&r=g","caption":"Sachin Smotra, Director Product Management, Couchbase"},"description":"Sachin Smotra\u2019s career spans more than 15 years building software products across various domains including Java Enterprise software, DRM Solutions for mobile games and web conferencing. As Director Product Management at Couchbase, he is a hands-on product leader responsible for Couchbase Mobile, IOT and Analytics product lines including evangelizing the product strategy and vision with customers, partners, developers and analysts. Before joining Couchbase, Sachin was a Senior Manager, Product Management, at Cisco WebEx where he led the product team responsible for transforming the end to end Customer Experience across the WebEx product lifecycle - consideration, purchase, usage and renewals. Prior to his time at Cisco, Sachin worked at different startups in a multitude of roles across engineering, architecture, product management and alliances.","sameAs":["https:\/\/x.com\/smotras"],"url":"https:\/\/www.couchbase.com\/blog\/author\/ssmotra\/"}]}},"authors":[{"term_id":9052,"user_id":559,"is_guest":0,"slug":"ssmotra","display_name":"Sachin Smotra, Director Product Management, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/351d2ab52ac22b2cfdfc83ff4a2dc0b377d8316ecb298656b8c1a5f9e70a141b?s=96&d=mm&r=g","author_category":"","last_name":"Smotra, Director Product Management, Couchbase","first_name":"Sachin","job_title":"","user_url":"","description":"Sachin Smotra\u2019s career spans more than 15 years building software products across various domains including Java Enterprise software, DRM Solutions for mobile games and web conferencing. As Director Product Management at Couchbase, he is a hands-on product leader responsible for Couchbase Mobile, IOT and Analytics product lines including evangelizing the product strategy and vision with customers, partners, developers and analysts.\r\n\r\nBefore joining Couchbase, Sachin was a Senior Manager, Product Management, at Cisco WebEx where he led the product team responsible for transforming the end to end Customer Experience across the WebEx product lifecycle - consideration, purchase, usage and renewals. Prior to his time at Cisco, Sachin worked at different startups in a multitude of roles across engineering, architecture, product management and alliances."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/559"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=7568"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7568\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/7475"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=7568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=7568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=7568"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=7568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}