{"id":4037,"date":"2017-09-21T15:22:15","date_gmt":"2017-09-21T22:22:15","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4037"},"modified":"2025-06-13T17:23:13","modified_gmt":"2025-06-14T00:23:13","slug":"gear-n1ql-era-engagement-databases","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/gear-n1ql-era-engagement-databases\/","title":{"rendered":"Prepare-se com o N1QL para a era dos bancos de dados de engajamento"},"content":{"rendered":"<h2 style=\"font-weight: 600;\"><b><strong><span style=\"font-weight: 400;\">Plataforma de banco de dados de engajamento do Couchbase<\/span><\/strong><\/b><\/h2>\n<p><b><strong><span style=\"font-weight: 400;\">Uau!!! Voc\u00ea j\u00e1 ouviu falar de <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/binaries\/content\/assets\/website\/docs\/whitepapers\/engagement-database.pdf\/\">Bancos de dados de engajamento<\/a>? Tenho certeza de que \"n\u00e3o\", n\u00e3o at\u00e9 <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/engaging-growth-introducing-industrys-first-engagement-database\/\">Couchbase anunciado<\/a> com a vers\u00e3o 5.0. Na economia digital de hoje, o sucesso de uma empresa depende de sua capacidade de alavancar a transforma\u00e7\u00e3o digital bem-sucedida para proporcionar envolvimento e experi\u00eancia superiores ao cliente. O DNA de tudo isso est\u00e1 nos dados, e isso exige uma plataforma de banco de dados avan\u00e7ada que possa lidar com os problemas de dados nos sistemas de engajamento em escala, com facilidade e nas ra\u00edzes. Esses problemas s\u00e3o bastante exclusivos e, portanto, as solu\u00e7\u00f5es tamb\u00e9m devem ser. A compreens\u00e3o superior dos problemas nesse espa\u00e7o e as solu\u00e7\u00f5es elegantes e eficientes para esses problemas levaram \u00e0 descoberta de uma nova categoria de bancos de dados, que chamamos de <\/span>Bancos de dados de engajamento<span style=\"font-weight: 400;\">. Esse banco de dados \u00e9 complementar aos bancos de dados transacionais e anal\u00edticos que voc\u00ea pode ter em sua infraestrutura de estrutura de dados. A figura a seguir mostra como eles se encaixam.<\/span><\/strong><\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/lh3.googleusercontent.com\/kwgc-qJkHbvWTIJwc3bSZdQILcf2MMM38tPCk1JXloCAifq4RtI9Hk-IXzd9sZFi4lD4gKMTa1nE45AuEvLWUTt3Mtxe6BdhnHS-oLZ2Cm5npwijwYjDrsj11KBv3Q_iwBltNGiV\" width=\"303\" height=\"269\" \/><\/p>\n<p><b><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/n1ql\/\">N1QL<\/a><\/b>\u00e9 a linguagem de consulta estendida SQL projetada para permitir que seus aplicativos aproveitem o poder dos bancos de dados de envolvimento e JSON. O N1QL tem toda a sofistica\u00e7\u00e3o e os recursos necess\u00e1rios para lidar com esquemas flex\u00edveis e dados JSON estruturados hierarquicamente. Voc\u00ea pode escrever consultas declarativas simples usando o N1QL para lidar naturalmente com esses dados.<\/p>\n<p><b><strong><span style=\"font-weight: 400;\">O Couchbase 5.0 traz uma s\u00e9rie de funcionalidades avan\u00e7adas de consulta e otimiza\u00e7\u00f5es de desempenho no N1QL para atender \u00e0s demandas de aplicativos voltados para o envolvimento do cliente. Muitas das melhorias de funcionalidade e desempenho tamb\u00e9m incluem aprimoramentos correspondentes nos \u00edndices GSI para ajudar o N1QL a aproveitar totalmente as otimiza\u00e7\u00f5es. Veja <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/introduction\/whats-new.html\">Novidades do Couchbase Server 5.0<\/a> para obter a lista completa e os detalhes.<\/span><\/strong><\/b><\/p>\n<h1 style=\"font-weight: 600;\"><b><strong><span style=\"font-weight: 400;\">\u00cdndices adaptativos<\/span><\/strong><\/b><\/h1>\n<p><b><strong><span style=\"font-weight: 400;\">Os \u00edndices adaptativos s\u00e3o tipos especiais de \u00edndices no Couchbase que podem indexar todos ou um conjunto de campos espec\u00edficos de um documento de forma extremamente adapt\u00e1vel. Ao contr\u00e1rio dos \u00edndices GSI compostos, esse tipo de \u00edndice \u00e9 gen\u00e9rico por natureza. Deixe-me explicar. Os \u00edndices adapt\u00e1veis podem pesquisar com efici\u00eancia qualquer valor de chave de \u00edndice sem restri\u00e7\u00f5es, como ordena\u00e7\u00e3o de chave de \u00edndice de prefixo, em \u00edndices compostos t\u00edpicos. Isso permite consultas de pesquisa ad-hoc eficientes que podem usar predicados da cl\u00e1usula WHERE em campos arbitr\u00e1rios sem a necessidade de criar v\u00e1rios \u00edndices compostos ou diferentes combina\u00e7\u00f5es de chaves de \u00edndice. <\/span><\/strong><\/b><\/p>\n<p><b><strong><span style=\"font-weight: 400;\">Por exemplo, considere um caso de uso de perfil de usu\u00e1rio. O perfil de uma pessoa pode precisar ser pesquisado com base em qualquer um dos atributos pessoais, como nome, sobrenome, idade, cidade, endere\u00e7o, emprego, cargo, empresa, foaf etc. Da mesma forma, a disponibilidade de um quarto de hotel pode ser pesquisada com base em crit\u00e9rios amplos, como instala\u00e7\u00f5es do quarto, comodidades, pre\u00e7o, localiza\u00e7\u00e3o, dist\u00e2ncia de pontos de interesse espec\u00edficos etc. Nesses cen\u00e1rios, os \u00edndices compostos secund\u00e1rios tradicionais n\u00e3o podem ser usados com efic\u00e1cia (consulte a se\u00e7\u00e3o <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/n1ql\/n1ql-language-reference\/adaptive-indexing.html#untitled1__section_w31_bnm_5z\">Contraste com os \u00edndices compostos<\/a> para entender os problemas). Os \u00edndices adaptativos resolvem esse problema criando um \u00edndice gen\u00e9rico que pode executar essas consultas de pesquisa ad hoc de forma eficaz e eficiente.<\/span><\/strong><\/b><\/p>\n<p><b><strong><span style=\"font-weight: 400;\">Por exemplo, a figura a seguir (1) mostra como tr\u00eas \u00edndices diferentes I1, I2 e I3 s\u00e3o necess\u00e1rios para as tr\u00eas consultas Q1, Q2 e Q3. Al\u00e9m disso, n\u00e3o \u00e9 poss\u00edvel fazer uma consulta em qualquer outro campo n\u00e3o indexado sem criar os respectivos \u00edndices. Al\u00e9m disso, uma consulta apenas sobre idade, como a Q4, n\u00e3o poder\u00e1 usar o \u00edndice I2, pois tamb\u00e9m precisa do prefixo index-key id. A Figura (2) mostra como um \u00fanico \u00edndice adapt\u00e1vel pode ajudar as consultas em todos os campos, independentemente da ordem da chave do \u00edndice.<\/span><\/strong><\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/lh5.googleusercontent.com\/e3Bnp5H7R-0RaEwtWn-fbAz4Q8sUdbcyWQI2CFP3zbXZYXyYkwqgexM6a2g_smNzRVwYA0Q2BNrq2tTomHbV96ukrmbckMyvdSG2jUKAX4gkiGdwDu9MgfgPk2Nsh1OmEWtZV5vu\" width=\"1600\" height=\"822\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/lh3.googleusercontent.com\/a2v4hjOGW4PqgrpW8PY5dmEYGJAQ38b9sNrb1jA2IgdQt4abZGP8Q8uNfJRR23ClTPx1hoaVyHQpI_HkgOhPiuEg_Bw0IfPGkaNCe0cWgM3DXQcEaH8kOLPyPNfiwekT1EDaIu9y\" width=\"1600\" height=\"744\" \/><\/p>\n<p><b><strong><span style=\"font-weight: 400;\">Observe que os \u00edndices adaptativos n\u00e3o s\u00e3o uma panaceia. Esses n\u00fameros podem dar a impress\u00e3o de que os \u00edndices adaptativos s\u00e3o melhores do que os \u00edndices simples\/compostos. Isso n\u00e3o \u00e9 totalmente verdade. Se voc\u00ea conhece as consultas (e as chaves de \u00edndice) apriori, ent\u00e3o \u00e9 sempre melhor usar \u00edndices secund\u00e1rios normais. Porque eles seriam mais r\u00e1pidos do que os \u00edndices adaptativos. Lembre-se de que os \u00edndices adaptativos podem ter um tamanho muito maior, pois indexam v\u00e1rias\/todas as chaves de \u00edndice e os valores correspondentes. Portanto, eles podem n\u00e3o ter um desempenho t\u00e3o r\u00e1pido quanto os \u00edndices secund\u00e1rios simples. Entretanto, os \u00edndices adaptativos resolvem os problemas que os \u00edndices secund\u00e1rios n\u00e3o conseguem resolver com pouca sobrecarga. <\/span><\/strong><\/b><\/p>\n<p><b><strong><span style=\"font-weight: 400;\">A vida \u00e9 feita de compensa\u00e7\u00f5es! Para obter mais detalhes e exemplos, consulte o <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/n1ql\/n1ql-language-reference\/adaptive-indexing.html#untitled1\">\u00cdndice adaptativo<\/a> documenta\u00e7\u00e3o.<\/span><\/strong><\/b><\/p>\n<h1><span style=\"font-weight: 400;\">Express\u00f5es poderosas de subconsulta<\/span><\/h1>\n<p><span style=\"font-weight: 400;\">O N1QL \u00e9 uma linguagem de consulta avan\u00e7ada. Ela \u00e9 SQL para JSON e tem todas as extens\u00f5es e express\u00f5es de linguagem necess\u00e1rias para lidar com muitas sutilezas na modelagem de dados JSON, como:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Esquema flex\u00edvel<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Campos e valores de dados ausentes. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Valores de matriz de m\u00faltiplos valores<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Dados aninhados em que um campo de um documento pode ser outro objeto JSON totalmente formado<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Esse tipo de coisa n\u00e3o existe em bancos de dados relacionais e, portanto, o SQL n\u00e3o precisa lidar com isso. No entanto, por design, o N1QL precisa lidar com todas as nuances do trabalho com dados JSON. De fato, esses s\u00e3o os tipos de caracter\u00edsticas de dados complexos, flexibilidade, escalabilidade e simplicidade que levaram os aplicativos modernos a uma plataforma de banco de dados de engajamento como o Couchbase.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Uma dessas funcionalidades para simplificar elegantemente o trabalho com dados de matriz \u00e9 fornecida pelo suporte do N1QL para express\u00f5es Subquery em matrizes. Isso permite que voc\u00ea trate uma matriz como um espa\u00e7o-chave de documentos e que voc\u00ea use todo o poder do N1QL na matriz, tratando os elementos da matriz como documentos do espa\u00e7o-chave. Talvez voc\u00ea n\u00e3o perceba, mas isso \u00e9 muito mais poderoso do que parece ;-) <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por exemplo, considere os seguintes dados de pedidos de clientes:<\/span><\/p>\n<pre class=\"lang:js decode:true\">{\r\n    \"type\": \"order\",\r\n    \"customerId\": \"Prasad_4444\",\r\n    \"order_number\": \"12345\",\r\n    \"products\": [\r\n        {\r\n            \"productId\": \"prod1\",\r\n            \"quantity\": 1,\r\n            \"price\": 39.99\r\n        },\r\n        {\r\n            \"productId\": \"prod2\",\r\n            \"quantity\": 2,\r\n            \"price\": 49.99\r\n        }\r\n    ]\r\n}<\/pre>\n<p dir=\"ltr\">Aqui, o campo de matriz <strong>\u00a0<\/strong><code>produtos[]<\/code><span id=\"_tmp_pre_2\">\u00a0<\/span> cont\u00e9m os detalhes do pedido sobre todos os produtos solicitados. Agora, vamos tentar escrever uma consulta para encontrar o valor total do pedido. A consulta deve percorrer cada elemento da tabela \u00a0<code>produtos[]<\/code><span id=\"_tmp_pre_3\">\u00a0<\/span> e calcular a soma de \u00a0<code>quantidade * pre\u00e7o<\/code>. Sem usar esse recurso (por exemplo: ao usar o Couchbase 4.5), a consulta teria a seguinte apar\u00eancia:<\/p>\n<div class=\"CodeMirror cm-s-default\">\n<div class=\"CodeMirror-scroll\">\n<div class=\"CodeMirror-sizer\">\n<div class=\"CodeMirror-lines\">\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<pre class=\"lang:mysql decode:true\">SELECT d1.customerId, \r\n       ((SELECT RAW SUM(d2u.price * d2u.quantity)\r\n         FROM default d2 \r\n         USE KEYS meta(d1).id \r\n         UNNEST d2.products d2u\r\n         WHERE d2.customerId = d1.customerId\r\n         GROUP BY meta(d2).id))[0] AS total\r\nFROM default d1 ;<\/pre>\n<p>Essa consulta em si \u00e9 poss\u00edvel gra\u00e7as \u00e0 maravilhosa cl\u00e1usula UNNEST na instru\u00e7\u00e3o SELECT do N1QL. No entanto, a mesma consulta pode ser reescrita como abaixo, usando a Subquery Expression on Arrays:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"CodeMirror cm-s-default\">\n<div class=\"CodeMirror-scroll\">\n<div class=\"CodeMirror-sizer\">\n<div class=\"CodeMirror-lines\">\n<div class=\"CodeMirror-code\">\n<div class=\"CodeMirror-gutter-wrapper\">\n<pre class=\"lang:mysql decode:true\">SELECT customerId,\r\n       (SELECT RAW SUM(p.price * p.quantity)\r\n        FROM d.products AS p)[0] AS total\r\nFROM default AS d;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p dir=\"ltr\">N\u00e3o \u00e9 ridiculamente simples e intuitivo? De fato, seu desempenho tamb\u00e9m seria melhor. \u00c9 assim que o N1QL capacita os desenvolvedores de aplicativos, e um Banco de Dados de Engajamento permite que os clientes enfrentem seus desafios de dados em aplicativos de Sistemas de Engajamento. H\u00e1 muito mais para falar sobre esse maravilhoso recurso... Veja <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/n1ql\/n1ql-language-reference\/subqueries.html\" rel=\"nofollow\">documenta\u00e7\u00e3o<\/a> e isso <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/using-n1ql-subquery-expressions-to-query-over-nested-couchbase-documents\/\" rel=\"nofollow\">blog<\/a>.<\/p>\n<p dir=\"ltr\">A prop\u00f3sito, imagine modelar esses dados simples com um RDBMS e escrever uma consulta equivalente em SQL ou em outro banco de dados NoSql. Tenho certeza de que esse pode ser um problema divertido de resolver se voc\u00ea quiser perder seu fim de semana!!!<\/p>\n<h1>Acesso a dados externos e consultas federadas<\/h1>\n<p dir=\"ltr\">Um dos problemas da explos\u00e3o de dados \u00e9 que os aplicativos que envolvem o cliente podem precisar encontrar e se integrar a dados relevantes de v\u00e1rias fontes internas e externas. \u00c9 cada vez mais importante que os aplicativos centrados em dados combinem seus dados com fontes de dados externas fornecidas por:<\/p>\n<ul>\n<li>\n<p dir=\"ltr\">Provedores de servi\u00e7os de dados, como \u00a0<a href=\"https:\/\/maps.googleapis.com\/\" rel=\"nofollow\">API de geocodifica\u00e7\u00e3o do Google<\/a>ou <a href=\"https:\/\/developer.yahoo.com\/yql\/guide\/yql_url.html\" rel=\"nofollow\">API do Yahoo<\/a> etc.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Provedores de dados, como <a href=\"https:\/\/www.data.gov\/\" rel=\"nofollow\">www.data.gov<\/a><\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Micro servi\u00e7os, como o Couchbase Full Text Search, outros clusters do Couchbase ou qualquer outra fonte de dados que possa fornecer dados JSON.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" class=\"fr-fin fr-dib\" src=\"https:\/\/lh4.googleusercontent.com\/6g5ksrguFSkBhBUm4XSjoBgzc4G8JJtnGkr2c3NVG11tTZZqWCoA4eNscMiuT4dLwq8iWoyetgIw1PwxbrB7yDPF8s2JHBufRMOICZtegrQ-JrT-bSG_207YQCIU-KRTpEsjiNrN\" width=\"624\" height=\"377\" \/><\/p>\n<p dir=\"ltr\">O Couchbase Server 5.0 adiciona uma nova fun\u00e7\u00e3o N1QL CURL(), que permite que as consultas N1QL interajam e se integrem a fontes de dados JSON externas dispon\u00edveis em HTTP\/REST. Isso permite consultas N1QL federadas em fontes de dados externas.  Por exemplo:<\/p>\n<ul>\n<li>\n<p dir=\"ltr\">Voc\u00ea pode acessar a API de geocodifica\u00e7\u00e3o do Google para obter mais detalhes de localiza\u00e7\u00e3o sobre um determinado local armazenado em seu banco de dados.<\/p>\n<\/li>\n<\/ul>\n<div class=\"CodeMirror cm-s-default\">\n<div class=\"CodeMirror-scroll\">\n<div class=\"CodeMirror-sizer\">\n<div class=\"CodeMirror-lines\">\n<div class=\"CodeMirror-code\">\n<div class=\"CodeMirror-gutter-wrapper\">\n<pre class=\"lang:mysql decode:true\">SELECT CURL(\"https:\/\/maps.googleapis.com\/maps\/api\/geocode\/json\",\r\n            {\r\n                 \"data\":[\"address=santa+cruz\",\"components=country:ES\"],\r\n                 \"get\":true\r\n            });<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p dir=\"ltr\">Voc\u00ea pode usar a API de dados financeiros do Yahoo para obter mais detalhes sobre um determinado s\u00edmbolo de a\u00e7\u00e3o armazenado em seu banco de dados.<\/p>\n<\/li>\n<\/ul>\n<div class=\"CodeMirror cm-s-default\">\n<div class=\"CodeMirror-scroll\">\n<div class=\"CodeMirror-sizer\">\n<div class=\"CodeMirror-lines\">\n<div class=\"CodeMirror-code\">\n<div class=\"CodeMirror-gutter-wrapper\">\n<pre class=\"lang:mysql decode:true\">SELECT meta().id, to_number(hdp_low) AS hdp_low \r\nFROM bucket_name\r\nLET hdp_low = curl(\"https:\/\/query.yahooapis.com\/v1\/public\/yql\", \r\n                   {\"data\":\"q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22HDP%22)&amp;format=json&amp;diagnostics=true&amp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&amp;callback=\"\r\n                   }).query.results.quote.DaysLow\r\nWHERE to_number(hdp_low) &lt; $min_threshold;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Da mesma forma, voc\u00ea pode usar os \u00edndices FTS em sua consulta N1QL para pesquisa de texto completo ou acessar dados de outros Couchbase Clusters ou outras fontes de dados JSON em suas consultas N1QL (usando todo o poder das express\u00f5es N1QL nos dados externos). Para obter mais informa\u00e7\u00f5es, consulte <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/n1ql\/n1ql-language-reference\/curl.html#topic_8_8\" rel=\"nofollow\">Fun\u00e7\u00e3o CURL<\/a>.<\/p>\n<h1>RBAC para declara\u00e7\u00f5es N1QL<\/h1>\n<p dir=\"ltr\">O controle de acesso baseado em fun\u00e7\u00e3o (RBAC) \u00e9 vital para a administra\u00e7\u00e3o da seguran\u00e7a em implementa\u00e7\u00f5es empresariais. O Couchbase Server 5.0 traz o RBAC para aplicativos em que os usu\u00e1rios podem ser adicionados ao sistema com v\u00e1rias fun\u00e7\u00f5es predefinidas. O servi\u00e7o de consulta adiciona suporte ao RBAC com os seguintes recursos principais:<\/p>\n<ul>\n<li>\n<p dir=\"ltr\">As fun\u00e7\u00f5es de n\u00edvel de instru\u00e7\u00e3o s\u00e3o adicionadas para a execu\u00e7\u00e3o de v\u00e1rias instru\u00e7\u00f5es N1QL, como SELECT, UPDATE, INSERT, e para acessar os espa\u00e7os de chave do sistema.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Novas instru\u00e7\u00f5es N1QL GRANT e REVOKE foram adicionadas, alinhadas com o padr\u00e3o SQL.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Novos espa\u00e7os-chave do sistema user_info, my_user_info e applicable_roles foram adicionados para acessar v\u00e1rios detalhes de atribui\u00e7\u00f5es de fun\u00e7\u00f5es.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">Obter mais informa\u00e7\u00f5es <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/security\/security-authorization.html#authorization\" rel=\"nofollow\">aqui<\/a>.<\/p>\n<h1>Monitoramento e cria\u00e7\u00e3o de perfil de consultas N1QL<\/h1>\n<p dir=\"ltr\">Esse recurso permite o monitoramento e a cria\u00e7\u00e3o de perfis de consultas detalhadas e de granula\u00e7\u00e3o fina. Isso fornece informa\u00e7\u00f5es detalhadas sobre v\u00e1rias fases da consulta, operadores de consulta envolvidos no processamento da consulta e tempos e caracter\u00edsticas de execu\u00e7\u00e3o correspondentes (como resultados intermedi\u00e1rios). Todas as informa\u00e7\u00f5es de monitoramento tamb\u00e9m s\u00e3o capturadas em v\u00e1rios espa\u00e7os-chave do sistema, como system:active_requests e system:completed_requests. Isso ajuda a diagnosticar consultas problem\u00e1ticas e problemas de desempenho. A figura a seguir mostra o plano visual e os detalhes do perfil da consulta no banco de trabalho de consultas.<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" class=\"fr-fin fr-dib\" src=\"https:\/\/lh6.googleusercontent.com\/nePqgMCQkqCgam6FIM-GoRn3XYsbodrDe4AQTgL_drcAeD95PZCys72OGvRSltCC-6u2-d7SMB8gNu1Q773teSqh0aXjHJpsFle5kP12Iuwlqoial50ifg__B26iUXW8dMw4VW7v\" alt=\"Screen Shot 2017-02-19 at 1.49.18 AM.png\" width=\"624\" height=\"327\" \/><\/p>\n<p dir=\"ltr\">Novos par\u00e2metros de consulta s\u00e3o fornecidos para ativar, desativar e controlar os recursos de monitoramento, e podem ser configurados para um mecanismo de consulta ou consultas individuais. Veja <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/monitoring\/monitoring-n1ql-query.html#topic_nvs_ghr_dz\" rel=\"nofollow\">Monitoramento de consultas N1QL<\/a> para obter detalhes.<\/p>\n<h1>Aprimoramentos de desempenho do N1QL<\/h1>\n<p dir=\"ltr\">No Couchbase Server 5.0, o N1QL e os \u00edndices secund\u00e1rios globais juntos permitem muitas otimiza\u00e7\u00f5es de desempenho.<\/p>\n<ul>\n<li>\n<p dir=\"ltr\">Expans\u00e3o de predicados complexos: Oferece suporte ao pushdown eficiente e exato de predicados AND\/OR complexos para o \u00edndice. Isso ajuda em:<\/p>\n<ul>\n<li>\n<p dir=\"ltr\">Evitar resultados esp\u00farios do Indexador em determinadas consultas em que os predicados t\u00eam varreduras de intervalo em chaves de \u00edndice de prefixa\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">usar eficientemente v\u00e1rios \u00edndices para diferentes condi\u00e7\u00f5es de um predicado OR etc.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p dir=\"ltr\">Proje\u00e7\u00e3o de \u00edndice: Na vers\u00e3o 5.0, o N1QL adiciona suporte para solicitar apenas as informa\u00e7\u00f5es necess\u00e1rias do Index e, assim, evitar qualquer processamento desnecess\u00e1rio.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Foi adicionado suporte para criar \u00edndices com ASC\/DESC especificado para chaves de \u00edndice individuais e aproveitar a ordem de \u00edndice para consultas com a cl\u00e1usula ORDER BY alinhada.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Operadores como OFFSET, MAX(), MIN(), DISTINCT, COUNT (campo DISTINCT) s\u00e3o transferidos para o indexador.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">Para obter mais detalhes, consulte <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/5.0\/performance\/index_pushdowns.html#index_pushdowns\" rel=\"nofollow\">Otimiza\u00e7\u00f5es de pushdown de \u00edndice<\/a>.<\/p>\n<h1>Resumo<\/h1>\n<p dir=\"ltr\">Tenho certeza de que isso \u00e9 muito empolgante e impressionante. Estamos muito animados para compartilhar nossa vis\u00e3o sobre bancos de dados de envolvimento e inovar o N1QL para ajud\u00e1-lo a se preparar!  Neste artigo, falamos sobre muitos recursos avan\u00e7ados do N1QL e aprimoramentos de desempenho na plataforma de banco de dados de envolvimento do Couchbase Server 5.0. Se tiver algum coment\u00e1rio ou pergunta, entre em contato conosco. Parab\u00e9ns!<\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase Engagement Database Platform Woo-Hoo!!! Have you heard of Engagement Databases? I am sure, \u201cNo\u201d, not until Couchbase announced it with 5.0 release. In today\u2019s digital economy, success of a business is dependent on its ability to leverage successful digital [&hellip;]<\/p>","protected":false},"author":70,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1812],"tags":[1971,1771,1903],"ppma_author":[8935],"class_list":["post-4037","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n1ql-query","tag-couchbase-5-0","tag-curl","tag-rbac"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Gear up with N1QL to the era of Engagement Databases - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"This article talks about many rich N1QL feature and performance enhancements in the Couchbase Server 5.0 Engagement Database Platform.\" \/>\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\/pt\/gear-n1ql-era-engagement-databases\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gear up with N1QL to the era of Engagement Databases\" \/>\n<meta property=\"og:description\" content=\"This article talks about many rich N1QL feature and performance enhancements in the Couchbase Server 5.0 Engagement Database Platform.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/gear-n1ql-era-engagement-databases\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-21T22:22:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:23:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh3.googleusercontent.com\/kwgc-qJkHbvWTIJwc3bSZdQILcf2MMM38tPCk1JXloCAifq4RtI9Hk-IXzd9sZFi4lD4gKMTa1nE45AuEvLWUTt3Mtxe6BdhnHS-oLZ2Cm5npwijwYjDrsj11KBv3Q_iwBltNGiV\" \/>\n<meta name=\"author\" content=\"Prasad Varakur, Principal Product Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prasad Varakur, Principal Product Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/\"},\"author\":{\"name\":\"Prasad Varakur, Principal Product Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c649b2296584f6b734c5a21681137e46\"},\"headline\":\"Gear up with N1QL to the era of Engagement Databases\",\"datePublished\":\"2017-09-21T22:22:15+00:00\",\"dateModified\":\"2025-06-14T00:23:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/\"},\"wordCount\":1681,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Couchbase 5.0\",\"curl\",\"RBAC\"],\"articleSection\":[\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/\",\"name\":\"Gear up with N1QL to the era of Engagement Databases - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-09-21T22:22:15+00:00\",\"dateModified\":\"2025-06-14T00:23:13+00:00\",\"description\":\"This article talks about many rich N1QL feature and performance enhancements in the Couchbase Server 5.0 Engagement Database Platform.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gear up with N1QL to the era of Engagement Databases\"}]},{\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/c649b2296584f6b734c5a21681137e46\",\"name\":\"Prasad Varakur, Principal Product Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5d664f4b9aadb80e438fd06cce0d151e\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3dd2299380c7af4e8a9732a0465d1c082c95eaff26cdf4abf54816d9b693043a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3dd2299380c7af4e8a9732a0465d1c082c95eaff26cdf4abf54816d9b693043a?s=96&d=mm&r=g\",\"caption\":\"Prasad Varakur, Principal Product Manager, Couchbase\"},\"description\":\"Prasad Varakur is a Principal Product Manager, Couchbase. Prasad is Product and Engineering leader in Databases(SQL, noSQL, Bigdata) &amp; Distributed systems.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/prasad-varakur\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Gear up with N1QL to the era of Engagement Databases - The Couchbase Blog","description":"Este artigo fala sobre muitos recursos avan\u00e7ados do N1QL e aprimoramentos de desempenho na plataforma de banco de dados de envolvimento do Couchbase Server 5.0.","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\/pt\/gear-n1ql-era-engagement-databases\/","og_locale":"pt_BR","og_type":"article","og_title":"Gear up with N1QL to the era of Engagement Databases","og_description":"This article talks about many rich N1QL feature and performance enhancements in the Couchbase Server 5.0 Engagement Database Platform.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/gear-n1ql-era-engagement-databases\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-09-21T22:22:15+00:00","article_modified_time":"2025-06-14T00:23:13+00:00","og_image":[{"url":"https:\/\/lh3.googleusercontent.com\/kwgc-qJkHbvWTIJwc3bSZdQILcf2MMM38tPCk1JXloCAifq4RtI9Hk-IXzd9sZFi4lD4gKMTa1nE45AuEvLWUTt3Mtxe6BdhnHS-oLZ2Cm5npwijwYjDrsj11KBv3Q_iwBltNGiV","type":"","width":"","height":""}],"author":"Prasad Varakur, Principal Product Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prasad Varakur, Principal Product Manager, Couchbase","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/"},"author":{"name":"Prasad Varakur, Principal Product Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c649b2296584f6b734c5a21681137e46"},"headline":"Gear up with N1QL to the era of Engagement Databases","datePublished":"2017-09-21T22:22:15+00:00","dateModified":"2025-06-14T00:23:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/"},"wordCount":1681,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Couchbase 5.0","curl","RBAC"],"articleSection":["SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/","url":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/","name":"Gear up with N1QL to the era of Engagement Databases - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-09-21T22:22:15+00:00","dateModified":"2025-06-14T00:23:13+00:00","description":"Este artigo fala sobre muitos recursos avan\u00e7ados do N1QL e aprimoramentos de desempenho na plataforma de banco de dados de envolvimento do Couchbase Server 5.0.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/gear-n1ql-era-engagement-databases\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Gear up with N1QL to the era of Engagement Databases"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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\/c649b2296584f6b734c5a21681137e46","name":"Prasad Varakur, gerente principal de produtos da Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5d664f4b9aadb80e438fd06cce0d151e","url":"https:\/\/secure.gravatar.com\/avatar\/3dd2299380c7af4e8a9732a0465d1c082c95eaff26cdf4abf54816d9b693043a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3dd2299380c7af4e8a9732a0465d1c082c95eaff26cdf4abf54816d9b693043a?s=96&d=mm&r=g","caption":"Prasad Varakur, Principal Product Manager, Couchbase"},"description":"Prasad Varakur \u00e9 gerente de produto principal da Couchbase. Prasad \u00e9 l\u00edder de produtos e engenharia em bancos de dados (SQL, noSQL, Bigdata) e sistemas distribu\u00eddos.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/prasad-varakur\/"}]}},"authors":[{"term_id":8935,"user_id":70,"is_guest":0,"slug":"prasad-varakur","display_name":"Prasad Varakur, Principal Product Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3dd2299380c7af4e8a9732a0465d1c082c95eaff26cdf4abf54816d9b693043a?s=96&d=mm&r=g","author_category":"","last_name":"Varakur","first_name":"Prasad","job_title":"","user_url":"","description":"Prasad Varakur \u00e9 gerente de produto principal da Couchbase. Prasad \u00e9 l\u00edder de produtos e engenharia em bancos de dados (SQL, noSQL, Bigdata) e sistemas distribu\u00eddos."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/70"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=4037"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4037\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=4037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=4037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=4037"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=4037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}