{"id":2434,"date":"2016-11-11T06:17:07","date_gmt":"2016-11-11T06:17:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2434"},"modified":"2019-02-26T00:16:53","modified_gmt":"2019-02-26T08:16:53","slug":"cbas-dashboard-node","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/cbas-dashboard-node\/","title":{"rendered":"Painel de visualiza\u00e7\u00e3o com o Couchbase Analytics"},"content":{"rendered":"<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">No mundo do Big Data, onde temos gogolbytes de informa\u00e7\u00f5es dispon\u00edveis sobre todos os aspectos dos nossos aplicativos e dos usu\u00e1rios que interagem com eles, \u00e9 fundamental poder analisar todos esses dados e fornecer intelig\u00eancia perspicaz.  Na Couchbase, estamos trabalhando para criar plataformas de gerenciamento de dados que permitam aproveitar esses dados.  Isso poder\u00e1 ser acessado por uma variedade de plataformas de an\u00e1lise padr\u00e3o do setor, como Tableau, QlikView e Microstrategy, bem como por plataformas de an\u00e1lise NoSQL de \u00faltima gera\u00e7\u00e3o, como <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/www.cloud9charts.com\/couchbase\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;\">Nuvem9<\/span><\/a><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\"> e <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/slamdata.com\/solution\/couchbase-analytics\/\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;\">SlamData<\/span><\/a><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">No entanto, tamb\u00e9m \u00e9 importante que os desenvolvedores tenham APIs para acessar os sistemas que armazenam e analisam esses dados.  Com esse n\u00edvel de acesso direto, esses desenvolvedores t\u00eam a flexibilidade de criar tudo, desde pain\u00e9is simples at\u00e9 relat\u00f3rios personalizados completos para seus usu\u00e1rios.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">A partir da vers\u00e3o 2.2.4 do nosso SDK do Node.js, agora temos suporte experimental para realizar consultas do Couchbase Analytics em um cluster.  A API \u00e9 muito semelhante \u00e0s APIs existentes dispon\u00edveis para realizar consultas N1QL no SDK do Node.js. \u00a0<\/span><\/p>\n<pre><code class=\"language-javascript\">\/\/ Connect to the local cluster and enable experimental Couchbase Analytics support.\r\nvar cluster = new couchbase.Cluster('couchbase:\/\/localhost');\r\ncluster.enableCbas(['localhost:8095']);\r\n\r\n\/\/ Perform a simple query, selecting all users with a specific email.\r\nvar qs = 'SELECT * FROM users WHERE email=\"tom@example.com\"';\r\nvar q = couchbase.CbasQuery.fromString(qs);\r\ncluster.query(q, function(err, res) {\r\n if (err) {\r\n    throw err;\r\n }\r\n\r\n console.log(res);\r\n});<\/code><\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Como voc\u00ea pode notar, a diferen\u00e7a entre nossas APIs N1QL e as APIs do Couchbase Analytics \u00e9 que, com o Couchbase Analytics, voc\u00ea deve executar suas consultas no n\u00edvel do cluster e usar o CbasQuery para instanciar seu objeto de consulta.<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Usando essas novas APIs, tamb\u00e9m criamos um novo aplicativo de demonstra\u00e7\u00e3o de painel que re\u00fane algumas bibliotecas conhecidas no mundo do Node.js para mostrar como voc\u00ea pode transformar essas novas APIs em uma interface \u00fatil que pode exibir m\u00e9tricas espec\u00edficas de neg\u00f3cios que s\u00e3o \u00fateis para voc\u00ea e seus colegas.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 21.3333px; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;\">Como funciona o painel<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">O painel que montamos consiste em dois componentes separados.  Primeiro, um componente do lado do servidor que est\u00e1 executando o SDK do Node.js e fornece uma interface restful.  Segundo, um componente do lado do cliente que \u00e9 uma p\u00e1gina HTML5 simples.  O componente do lado do servidor atender\u00e1 ao componente do lado do cliente a partir da raiz de seu servi\u00e7o da Web para facilitar as coisas.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">O lado do cliente do aplicativo \u00e9 uma p\u00e1gina HTML e Javascript simples que cont\u00e9m um pequeno formul\u00e1rio que permite especificar alguns par\u00e2metros, uma grande se\u00e7\u00e3o de texto que exibe todas as consultas que foram executadas no cluster do Couchbase Analytics, bem como tr\u00eas gr\u00e1ficos que s\u00e3o usados para apresentar os dados das suas consultas.  Quando a p\u00e1gina \u00e9 carregada ou quando voc\u00ea clica no bot\u00e3o de atualiza\u00e7\u00e3o, enviamos solicita\u00e7\u00f5es para o aplicativo no lado do servidor solicitando v\u00e1rias informa\u00e7\u00f5es sobre nossos dados de amostra de viagem.  Quando uma resposta \u00e9 recebida do servidor, passamos essas informa\u00e7\u00f5es para o Chart.js, que gera nossos gr\u00e1ficos.<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\"><img loading=\"lazy\" decoding=\"async\" style=\"border-width: initial; border-style: none; transform: rotate(0rad);\" src=\"https:\/\/lh4.googleusercontent.com\/4ZtJzuDqd71tPaXeH8QDSyLsjbEMaZ5ouTy73kFP3F8lmhwha7PPnmlKJtk03SD84z4XrAcjjEpwrNPmVn_rycDNSn_r-PaeyzhYWCdfyI6aafy7eZlqn7tk-TtTtjiK3uPgPDoq\" alt=\"Screen+Shot+2016-11-01+at+11.20.39+AM.png\" width=\"624\" height=\"208\" \/><\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">O c\u00f3digo para isso \u00e9 bastante simples.<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\">\n<pre><code class=\"language-javascript\">$.get('\/pricestats?' + formData)\r\n.done(function(data) {\r\n  addNarration(data.narration);\r\n\r\n  var info = data.data;\r\n\r\n  config1.data.labels = [];\r\n  config1.data.datasets[0].data = [];\r\n\r\n  for (var i = 0; i &lt; info.length; ++i) {\r\n      config1.data.labels.push(info[i].grpdate);\r\n      config1.data.datasets[0].data.push(info[i].metric);\r\n  }\r\n\r\n  myChart1.update();\r\n}).fail(function(err) {\r\n  addNarrationText(err.toString());\r\n});<\/code><\/pre>\n<p><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Ele simplesmente usa o Express para iniciar um servidor Web que responde a qualquer solicita\u00e7\u00e3o de raiz com a p\u00e1gina do lado do cliente para esse aplicativo.  Al\u00e9m disso, ele registra alguns pontos de extremidade REST que o aplicativo usa para atualizar seus gr\u00e1ficos.  Cada um desses pontos de extremidade REST faz o front-end de uma consulta SQL++ no cluster do Couchbase Analytics e, em seguida, retorna os resultados dessa consulta para o lado do cliente do aplicativo a ser representado graficamente.<\/span><\/p>\n<\/div>\n<div dir=\"ltr\" style=\"margin-left: 0pt;\">\n<pre><code class=\"language-javascript\">var qs =\r\n  'SELECT ' +\r\n  '  parse_date(SUBSTR(e.date, 0, 10), \"Y-M-D\") AS grpdate, ' +\r\n  'SUM(e.price) AS metric ' +\r\n  'FROM users u ' +\r\n  '  UNNEST u.flights e ' +\r\n  'WHERE parse_date(SUBSTR(e.date, 0, 10), \"Y-M-D\") &gt;= parse_date(\"2016-10-01\", \"Y-M-D\") ' +\r\n  '  AND parse_date(SUBSTR(e.date, 0, 10), \"Y-M-D\") &lt; parse_date(\"2016-11-01\", \"Y-M-D\") ' +\r\n  'GROUP BY grpdate ' +\r\n  'ORDER BY grpdate;';\r\n\r\nvar q = couchbase.CbasQuery.fromString(qs);\r\ncluster.query(q, function(err, qres) {\r\nif (err) {\r\n  res.status(400).send(err);\r\n  return;\r\n}\r\n\r\nres.send({\r\n  data: qres,\r\n  narration: [\r\n    ['sql', qs]\r\n  ]\r\n});\r\n});<\/code><\/pre>\n<p><span style=\"color: #000000; font-family: Arial; font-size: 14.6667px; text-align: left; white-space: pre-wrap;\">Al\u00e9m do servi\u00e7o RESTful fornecido pelo aplicativo no lado do servidor, tamb\u00e9m inclu\u00edmos a cria\u00e7\u00e3o autom\u00e1tica dos buckets de sombra do Couchbase Analytics necess\u00e1rios para a amostra de viagem e a inser\u00e7\u00e3o de 1.000 entradas de dados de compra de voos gerados aleatoriamente para nos dar algo interessante para analisar.<\/span><\/p>\n<pre><code class=\"language-javascript\">var qs =\r\n  'CREATE BUCKET tsBucket WITH {\"name\":\"travel-sample\",\"nodes\":\"127.0.0.1\"};' +\r\n  'CREATE SHADOW DATASET airlines ON tsBucket WHERE `type` = \"airline\";' +\r\n  'CREATE SHADOW DATASET airports ON tsBucket WHERE `type` = \"airport\";' +\r\n  'CREATE SHADOW DATASET hotels ON tsBucket WHERE `type` = \"hotel\";' +\r\n  'CREATE SHADOW DATASET landmarks ON tsBucket WHERE `type` = \"landmark\";' +\r\n  'CREATE SHADOW DATASET routes ON tsBucket WHERE `type` = \"route\";' +\r\n  'CREATE SHADOW DATASET users ON tsBucket WHERE `type` = \"user\";' +\r\n  'CONNECT BUCKET tsBucket WITH {\"password\":\"\"};';\r\n\r\n\r\nvar q = couchbase.CbasQuery.fromString(qs);\r\ncluster.query(q, function(err, res) {\r\n \/\/ We ignore errors here since they are usually just\r\n \/\/  'dataset already exists'.\r\n callback(null);\r\n});<\/code><\/pre>\n<\/div>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 21.3333px; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;\">Obtendo o painel de exemplo<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Para come\u00e7ar a usar nossa nova demonstra\u00e7\u00e3o, basta acessar o reposit\u00f3rio do GitHub, que est\u00e1 localizado em:<\/span><a style=\"text-decoration: none;\" href=\"https:\/\/github.com\/brett19\/node-cbasdashdemo\"> <span style=\"font-size: 14.6667px; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;\">https:\/\/github.com\/couchbaselabs\/node-cbasdashdemo<\/span><\/a><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\"> e seguindo o guia de introdu\u00e7\u00e3o dispon\u00edvel no LEIAME inclu\u00eddo.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 21.3333px; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;\">Obtendo a vers\u00e3o do Node.js<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Como em todos os nossos lan\u00e7amentos do Node.js, publicamos essa vers\u00e3o no NPM e ela pode ser instalada com uma simples invoca\u00e7\u00e3o do npm:<\/span><\/p>\n<pre class=\"lang:default decode:true\">npm install Couchbase@2.2.4<\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Tamb\u00e9m enviamos bin\u00e1rios pr\u00e9-constru\u00eddos como parte do nosso processo de lan\u00e7amento do npm, o que permite que voc\u00ea comece a usar o SDK do Node.js sem maiores problemas (observe que o Node.js v7.0.0 n\u00e3o tem bin\u00e1rios pr\u00e9-constru\u00eddos do m\u00f3dulo Couchbase dispon\u00edveis no momento e requer um compilador funcional para ser instalado).<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is [&hellip;]<\/p>","protected":false},"author":31,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1822],"tags":[],"ppma_author":[9004],"class_list":["post-2434","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js"],"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>Visualization Dashboard with Couchbase Analytics<\/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\/pt\/cbas-dashboard-node\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visualization Dashboard with Couchbase Analytics\" \/>\n<meta property=\"og:description\" content=\"In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/cbas-dashboard-node\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-11T06:17:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-02-26T08:16:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Brett Lawson, Principal Software Engineer, 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=\"Brett Lawson, Principal Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\"},\"author\":{\"name\":\"Brett Lawson, Principal Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f\"},\"headline\":\"Visualization Dashboard with Couchbase Analytics\",\"datePublished\":\"2016-11-11T06:17:06+00:00\",\"dateModified\":\"2019-02-26T08:16:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\"},\"wordCount\":668,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Node.js\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\",\"name\":\"Visualization Dashboard with Couchbase Analytics\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-11-11T06:17:06+00:00\",\"dateModified\":\"2019-02-26T08:16:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#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\/cbas-dashboard-node\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visualization Dashboard with Couchbase Analytics\"}]},{\"@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\/5cfc2fbf25776be2a027a474562be02f\",\"name\":\"Brett Lawson, Principal Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ee3586f0c112c20e863af447d44dec8f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g\",\"caption\":\"Brett Lawson, Principal Software Engineer, Couchbase\"},\"description\":\"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/brett-lawson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Painel de visualiza\u00e7\u00e3o com o Couchbase Analytics","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\/cbas-dashboard-node\/","og_locale":"pt_BR","og_type":"article","og_title":"Visualization Dashboard with Couchbase Analytics","og_description":"In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/cbas-dashboard-node\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-11-11T06:17:06+00:00","article_modified_time":"2019-02-26T08:16:53+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Brett Lawson, Principal Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Brett Lawson, Principal Software Engineer, Couchbase","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/"},"author":{"name":"Brett Lawson, Principal Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f"},"headline":"Visualization Dashboard with Couchbase Analytics","datePublished":"2016-11-11T06:17:06+00:00","dateModified":"2019-02-26T08:16:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/"},"wordCount":668,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Node.js"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","url":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","name":"Painel de visualiza\u00e7\u00e3o com o Couchbase Analytics","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-11-11T06:17:06+00:00","dateModified":"2019-02-26T08:16:53+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#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\/cbas-dashboard-node\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Visualization Dashboard with Couchbase Analytics"}]},{"@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\/5cfc2fbf25776be2a027a474562be02f","name":"Brett Lawson, engenheiro de software principal, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ee3586f0c112c20e863af447d44dec8f","url":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","caption":"Brett Lawson, Principal Software Engineer, Couchbase"},"description":"Brett Lawson \u00e9 engenheiro de software principal da Couchbase. Brett \u00e9 respons\u00e1vel pelo projeto e desenvolvimento dos clientes Node.js e PHP do Couchbase, al\u00e9m de desempenhar um papel no projeto e desenvolvimento da biblioteca C, libcouchbase.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/brett-lawson\/"}]}},"authors":[{"term_id":9004,"user_id":31,"is_guest":0,"slug":"brett-lawson","display_name":"Brett Lawson, Principal Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","author_category":"","last_name":"Lawson","first_name":"Brett","job_title":"","user_url":"","description":"Brett Lawson \u00e9 engenheiro de software principal da Couchbase. Brett \u00e9 respons\u00e1vel pelo projeto e desenvolvimento dos clientes Node.js e PHP do Couchbase, al\u00e9m de desempenhar um papel no projeto e desenvolvimento da biblioteca C, libcouchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2434","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\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2434"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2434\/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=2434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2434"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}