{"id":8463,"date":"2020-04-29T09:00:34","date_gmt":"2020-04-29T16:00:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8463"},"modified":"2020-04-29T09:01:29","modified_gmt":"2020-04-29T16:01:29","slug":"the-series-on-time-series-in-couchbase-episode-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/the-series-on-time-series-in-couchbase-episode-1\/","title":{"rendered":"A s\u00e9rie sobre s\u00e9ries temporais (no Couchbase): Epis\u00f3dio 1"},"content":{"rendered":"<h2>Do que se trata?<\/h2>\n<p>Ent\u00e3o, voc\u00ea tem um caso de uso de s\u00e9ries temporais?  Eu tamb\u00e9m, e este artigo do blog \u00e9 a prova disso.<\/p>\n<p>Quando aprendo sobre um novo assunto, gosto de usar o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Method_of_loci\" target=\"_blank\" rel=\"noopener noreferrer\">m\u00e9todo de loci<\/a> para memorizar e conectar os novos conceitos.  O m\u00e9todo usa um local familiar (sua casa, por exemplo) pelo qual voc\u00ea passa (mentalmente) e preenche com as coisas que deseja lembrar.  Se eu quiser que minha mem\u00f3ria guarde minha agenda para amanh\u00e3, posso come\u00e7ar pela entrada e \"pendurar\" minha consulta m\u00e9dica das 9h ao lado do meu enorme sombrero colorido.  Ao \"caminhar\" at\u00e9 a cozinha, verei minha chamada do Zoom das 10h30 \"fritando\" em cima de uma frigideira com ovos mexidos.  As imagens estranhas ajudam a lembrar melhor das coisas: nosso c\u00e9rebro se apega ao incomum.  \u00c9 interessante notar que esse exemplo tamb\u00e9m \u00e9 uma s\u00e9rie temporal: cada evento em minha agenda acontece em um determinado hor\u00e1rio e cada evento tem determinadas propriedades (nome, local etc.).<\/p>\n<p>Vamos continuar com essa analogia de \"andar por uma casa\" e tentar fazer com que o novo conhecimento sobre s\u00e9ries temporais se fixe.<\/p>\n<h2>O <span style=\"color: #339966\">Verde<\/span> Quarto<\/h2>\n<p><span style=\"color: #339966\">Verde<\/span> \u00e9 uma cor alegre: natureza, renova\u00e7\u00e3o, crescimento, ideias frescas.  Nossa defini\u00e7\u00e3o de s\u00e9rie temporal pertence \u00e0 sala verde.<\/p>\n<p>Quando seu filho estiver com febre e voc\u00ea medir a temperatura corporal dele a cada <strong>hora<\/strong>, voc\u00ea tem um <strong>s\u00e9rie<\/strong> de medi\u00e7\u00f5es ao longo do tempo.  Quando voc\u00ea conecta clandestinamente um rastreador GPS ao carro de um criminoso, voc\u00ea obt\u00e9m uma <strong>s\u00e9rie<\/strong> de locais onde o carro para <strong>semanas<\/strong> ou <strong>meses<\/strong>.  Que tal um\u00a0 <a href=\"https:\/\/www.raspberrypi.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Raspberry Pi<\/a> projeto para coletar temperatura e umidade <strong>leituras<\/strong> uma vez por <strong>segundo<\/strong> que seu filho construiu para a feira de ci\u00eancias da escola?  Instale-o em sua fazenda de cannabis para <strong>fluxo<\/strong> esses dados em seu cluster do Couchbase!  Em seguida, voc\u00ea pode usar os dados com um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/mobile\/\" target=\"_blank\" rel=\"noopener noreferrer\">Couchbase Mobile<\/a> para garantir as condi\u00e7\u00f5es ideais para a melhor colheita dessa importante cultura.<\/p>\n<p>Como voc\u00ea pode ver, os casos de uso de s\u00e9ries temporais v\u00e3o muito al\u00e9m dos velhos e enfadonhos exemplos de ticker de a\u00e7\u00f5es e registros de servidores.  Eles ainda se resumem a um <strong>lista<\/strong> (sequ\u00eancia, s\u00e9rie) <strong>de valores<\/strong> (leituras, medi\u00e7\u00f5es, pontos de dados) <strong>coletados<\/strong> <strong>ao longo do tempo<\/strong>.  Atualmente, os casos de uso de s\u00e9ries temporais s\u00e3o comuns em produtos de consumo, tecnologias industriais e servi\u00e7os comerciais.  Essa popularidade inspirou o surgimento de <a href=\"https:\/\/db-engines.com\/en\/ranking\/time+series+dbms\" target=\"_blank\" rel=\"noopener noreferrer\">bancos de dados de s\u00e9ries temporais<\/a>que incluem diferentes otimiza\u00e7\u00f5es para trabalhar especificamente com dados de s\u00e9ries temporais.  Por exemplo, fornecemos <a href=\"https:\/\/github.com\/couchbaselabs\/cbprometheus_python\" target=\"_blank\" rel=\"noopener noreferrer\">Exportador Prometheus<\/a> (escrito em Python) para converter as m\u00e9tricas do Couchbase Server em <a href=\"https:\/\/prometheus.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Prometeu<\/a> formato de s\u00e9rie temporal, para que voc\u00ea possa criar seus pain\u00e9is de monitoramento com <a href=\"https:\/\/grafana.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Grafana<\/a>.<\/p>\n<p>Estamos deixando nosso <span style=\"color: #339966\">verde<\/span> sala com um <a href=\"https:\/\/en.wikipedia.org\/wiki\/The_Persistence_of_Memory\" target=\"_blank\" rel=\"noopener noreferrer\">rel\u00f3gio derretido<\/a> pendurado no teto (precisa ser estranho, certo?) e um quadro branco derretido com uma s\u00e9rie de medi\u00e7\u00f5es distorcidas com registro de data e hora como um exemplo da <strong>s\u00e9ries temporais <\/strong>dados de um dia de ver\u00e3o no Arizona (em graus Fahrenheit):<\/p>\n<pre class=\"toolbar:2 lang:default decode:true\">2019-07-27 07:11:22, temperature=90, humidity=\"what humidity?\", feeling=\"sweaty\"\r\n2019-07-27 10:21:22, temperature=98, humidity=\"this word again...\", feeling=\"the pain\"\r\n2019-07-27 12:34:56, temperature=107, humidity=\"gotta look up this word in a dictionary\", feeling=\"desperate\"\r\n2019-07-27 15:00:27, temperature=120, feeling=\"boiling inside, fried on the outside\"\r\n2019-07-27 15:32:15, temperature=, feeling=\"confused\", thermometer-status=\"melted\"\r\n<\/pre>\n<h2>O <span style=\"color: #ff6600\">Laranja<\/span> Quarto<\/h2>\n<p><span style=\"color: #ff6600\">Laranja<\/span> \u00e9 a cor que atrai nossa aten\u00e7\u00e3o; ela geralmente traz a sensa\u00e7\u00e3o de entusiasmo e calor.  Portanto, \u00e9 um bom lugar para colocar os detalhes de como trabalhamos com dados de s\u00e9ries temporais no Couchbase Server.<\/p>\n<h3><span style=\"color: #ff6600\">W<\/span>certo!<\/h3>\n<p>Esteja preparado para lidar com muitas grava\u00e7\u00f5es!  Casos de uso reais que envolvem dados de s\u00e9ries temporais produzem milhares de leituras - por hora, por minuto, por segundo.  Quando voc\u00ea multiplica isso pelo n\u00famero de dispositivos ou aplicativos que geram os dados, chega rapidamente a milh\u00f5es de novas grava\u00e7\u00f5es por dia.  O Couchbase Server otimiza a ingest\u00e3o de dados com seu <a href=\"https:\/\/docs.couchbase.com\/server\/current\/introduction\/intro.html#mem-first-archi\" target=\"_blank\" rel=\"noopener noreferrer\">mem\u00f3ria em primeiro lugar<\/a>arquitetura ass\u00edncrona.  Os documentos JSON s\u00e3o compactados na mem\u00f3ria, no disco e na conex\u00e3o.<\/p>\n<p>O Couchbase Server lida com todos os tipos de grava\u00e7\u00f5es - inser\u00e7\u00f5es, atualiza\u00e7\u00f5es e upserts (inserir se a chave n\u00e3o existir; caso contr\u00e1rio, atualizar) - com a mesma efici\u00eancia.  Voc\u00ea pode otimizar ainda mais suas atualiza\u00e7\u00f5es com nossas opera\u00e7\u00f5es de subdocumento dispon\u00edveis para todos os SDKs compat\u00edveis (por exemplo, <a href=\"https:\/\/docs.couchbase.com\/java-sdk\/3.0\/howtos\/subdocument-operations.html\" target=\"_blank\" rel=\"noopener noreferrer\">API de subdocumento do Java SDK<\/a>).<\/p>\n<h3><span style=\"color: #ff6600\">A<\/span>agregar!<\/h3>\n<p>Quando voc\u00ea faz v\u00e1rias medi\u00e7\u00f5es coletadas e as re\u00fane em um \u00fanico documento JSON, voc\u00ea agrega seus dados.  Essa \u00e9 uma etapa t\u00edpica para otimizar o armazenamento de dados de s\u00e9ries temporais.  Isso pode acontecer <strong>antes de<\/strong> inserir as medi\u00e7\u00f5es em um banco de dados (pr\u00e9-agrega\u00e7\u00e3o): seu aplicativo ou seu software de ingest\u00e3o de dados, como o StreamSets Data Collector, pode fazer o trabalho.  Servidor Couchbase <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-overview.html\" target=\"_blank\" rel=\"noopener noreferrer\">Servi\u00e7o de eventos<\/a> pode acumular valores de s\u00e9ries temporais <strong>ap\u00f3s<\/strong> eles foram adicionados a um bucket.  Nesse caso, uma fun\u00e7\u00e3o JavaScript \u00e9 executada como um acionador OnUpdate do banco de dados para salvar valores de <strong>v\u00e1rios documentos JSON<\/strong> em uma matriz de valores em um <strong>documento JSON \u00fanico<\/strong>.  Qualquer uma dessas abordagens o levar\u00e1, por exemplo, a, <strong>60 documentos<\/strong> de leituras por segundo (veja abaixo)<\/p>\n<pre class=\"toolbar:2 lang:js decode:true\">key = \"sensor::temp-press::2020-01-02T12:34:00\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:00\",\r\n  \"sensor\": \"tps-001\",\r\n  \"temperature\": 112.4,\r\n  \"pressure\": 21.7\r\n}\r\n\r\nkey = \"sensor::temp-press::2020-01-02T12:34:01\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:01\",\r\n  \"sensor\": \"tps-001\",\r\n  \"temperature\": 110.8,\r\n  \"pressure\": 21.2\r\n}\r\n\r\n...\r\n\r\nkey = \"sensor::temp-press::2020-01-02T12:34:58\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:58\",\r\n  \"sensor\": \"tps-001\",\r\n  \"pressure\": 22.8\r\n}\r\n\r\nkey = \"sensor::temp-press::2020-01-02T12:34:59\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:59\",\r\n  \"sensor\": \"tps-001\",\r\n  \"temperature\": 113.1,\r\n  \"pressure\": 22.5\r\n}<\/pre>\n<p>para um <strong>\u00fanico<\/strong> documento com todas as leituras, como o que est\u00e1 abaixo:<\/p>\n<pre class=\"toolbar:2 lang:default decode:true\">key = \"sensor::tps-001::1577968440\"\r\n{\r\n  \"values\":\r\n  {\r\n    \"t\": [112.4, 110.8, ... null, 113.1],\r\n    \"p\": [21.7, 21.2, ... 22.8, 22.5]\r\n  },\r\n  \"type\": \"temp-press\",\r\n  \"schema\": \"1.3.5\"\r\n}<\/pre>\n<p>Al\u00e9m de eliminar dados duplicados (registros de data e hora, nomes longos de campos\/atributos JSON), tamb\u00e9m fizemos as seguintes altera\u00e7\u00f5es:<\/p>\n<ul>\n<li>substituiu o carimbo de data\/hora ISO pelo valor da \u00e9poca na chave do documento.  O valor da \u00e9poca corresponde ao minuto (2020-01-02 12:34), para o qual coletamos leituras por segundo.<\/li>\n<li>adicionou o nome do sensor \u00e0 chave do documento.  Dessa forma, podemos consultar os valores do sensor espec\u00edfico usando opera\u00e7\u00f5es de valor-chave, que \u00e9 sempre a maneira mais r\u00e1pida de trabalhar com documentos.<\/li>\n<li>dados de temperatura e press\u00e3o listados em matrizes de 60 elementos, uma medi\u00e7\u00e3o por segundo;<\/li>\n<li>adicionou a vers\u00e3o do esquema JSON do documento.<\/li>\n<\/ul>\n<p>A flexibilidade do formato JSON facilita o lan\u00e7amento r\u00e1pido de sua primeira vers\u00e3o (no esp\u00edrito de \"<a href=\"https:\/\/en.wikipedia.org\/wiki\/Worse_is_better\" target=\"_blank\" rel=\"noopener noreferrer\">Pior \u00e9 melhor<\/a>\") e evoluir o esquema do documento \u00e0 medida que o aplicativo amadurece.  Os bancos de dados especializados em s\u00e9ries temporais s\u00e3o muito mais r\u00edgidos nesse aspecto.  No entanto, \u00e9 uma pr\u00e1tica recomendada manter o controle da vers\u00e3o do esquema em seus documentos.  Isso ajuda a garantir a compatibilidade com vers\u00f5es anteriores em seus aplicativos.  Tamb\u00e9m permite que voc\u00ea atualize os documentos para um novo esquema executando um N1QL <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/update.html\" target=\"_blank\" rel=\"noopener noreferrer\">ATUALIZA\u00c7\u00c3O<\/a> consulta.<\/p>\n<h3><span style=\"color: #ff6600\">R<\/span>leia!<\/h3>\n<p>\u00c9 hora de fazer algo \u00fatil com nossos dados de s\u00e9rie temporal.  Aqui est\u00e3o as op\u00e7\u00f5es que a plataforma de dados Couchbase oferece:<\/p>\n<ul>\n<li>Leituras de valores-chave em menos de um milissegundo \u00e9 o que o Couchbase Server faz muito bem, o dia inteiro.  Afinal de contas, um dos principais motivos pelos quais agregamos nossos dados foi para obt\u00ea-los facilmente em uma \u00fanica opera\u00e7\u00e3o de leitura.<\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-intro\/queriesandresults.html\" target=\"_blank\" rel=\"noopener noreferrer\">Consultas SQL<\/a> para seus dados JSON.  A linguagem N1QL herdou propositadamente a sintaxe SQL para facilitar o seu aprendizado.<\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/fts-performing-searches.html\" target=\"_blank\" rel=\"noopener noreferrer\">Pesquisa de texto completo<\/a> \u00e9 outra maneira de trabalhar com dados dispon\u00edveis no Couchbase Server.  Dependendo do seu caso de uso, a pesquisa pode ser uma alternativa melhor para consultas geoespaciais, com reconhecimento de idioma, intervalo num\u00e9rico e intervalo de datas.  Melhor ainda, voc\u00ea pode <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/n1ql-and-search-how-to-leverage-fts-index-in-n1ql-query\/\" target=\"_blank\" rel=\"noopener noreferrer\">combinar pesquisa e N1QL<\/a> em uma \u00fanica consulta.<\/li>\n<li>O Analytics \u00e9 um ajuste natural para dados de s\u00e9ries temporais.  Como parte de nossa plataforma de dados, oferecemos <a href=\"https:\/\/docs.couchbase.com\/server\/current\/analytics\/primer-beer.html\" target=\"_blank\" rel=\"noopener noreferrer\">Servi\u00e7o de an\u00e1lise<\/a> que permite obter uma ampla variedade de insights de neg\u00f3cios a partir de seus dados.  O Couchbase Analytics \u00e9 executado como parte do mesmo cluster em que seus dados residem, portanto, n\u00e3o s\u00e3o necess\u00e1rias opera\u00e7\u00f5es de ETL (Extrair, Transformar, Carregar).  Voc\u00ea executa consultas paralelas eficientes em c\u00f3pias de sombra atualizadas dos dados.<\/li>\n<li>O Couchbase tamb\u00e9m \u00e9 compat\u00edvel com outros sistemas.  Oferecemos conectores de Big Data compat\u00edveis com sistemas populares, como <a href=\"https:\/\/docs.couchbase.com\/spark-connector\/current\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Fa\u00edsca<\/a>, <a href=\"https:\/\/docs.couchbase.com\/kafka-connector\/current\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Kafka<\/a>e <a href=\"https:\/\/docs.couchbase.com\/elasticsearch-connector\/current\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Elasticsearch<\/a>.<\/li>\n<\/ul>\n<h3><span style=\"color: #ff6600\">M<\/span>Avan\u00e7ar!<\/h3>\n<p>Mais cedo ou mais tarde, ser\u00e1 hora de seguir em frente.  Por quanto tempo voc\u00ea precisa manter seus dados?  Sempre fazemos essa pergunta quando ajudamos nossos clientes a dimensionar seus clusters.  Com o Couchbase, \u00e9 f\u00e1cil aumentar ou diminuir a escala.  Uma empresa de jogos on-line pode querer come\u00e7ar com alguns n\u00f3s extras ao lan\u00e7ar um novo jogo.  Por outro lado, uma startup com um or\u00e7amento apertado pode ter que ser mais vigilante quanto \u00e0 quantidade de dados que mant\u00e9m.<\/p>\n<p>Como podemos excluir dados no Couchbase?<\/p>\n<ul>\n<li>Definir a expira\u00e7\u00e3o do documento (tamb\u00e9m conhecida como TTL, time to live).  Os valores de TTL fazem parte dos metadados do documento: se TTL for zero, o documento n\u00e3o expirar\u00e1.  Um valor maior que zero \u00e9 o n\u00famero de segundos, ap\u00f3s os quais o documento ser\u00e1 marcado como exclu\u00eddo.  O TTL pode ser definido e atualizado por meio de m\u00e9todos SDK ou (a partir do Couchbase Server 6.5.1) por meio de <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-to-manage-ttl-with-couchbase-n1ql\/\" target=\"_blank\" rel=\"noopener noreferrer\">Consulta N1QL<\/a>.<\/li>\n<li>Conjunto <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/expiration.html\" target=\"_blank\" rel=\"noopener noreferrer\">TTL em um balde<\/a>.  Todos os novos documentos que entrarem no compartimento receber\u00e3o o TTL atribu\u00eddo, a menos que ele j\u00e1 esteja definido.<\/li>\n<li>Excluir documentos por meio de consulta N1QL ou fun\u00e7\u00e3o Eventing.  As fun\u00e7\u00f5es de eventos tamb\u00e9m podem ser executadas por <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-timers.html\" target=\"_blank\" rel=\"noopener noreferrer\">cron\u00f4metros<\/a> .<\/li>\n<li>D\u00ea descarga ou deixe cair o balde inteiro.<\/li>\n<\/ul>\n<p>Antes de excluir os dados do cluster do Couchbase, talvez voc\u00ea queira arquiv\u00e1-los ou compartilh\u00e1-los por alguns dos motivos abaixo:<\/p>\n<ul>\n<li>Arquivar documentos em outro cluster do Couchbase usando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/xdcr-overview.html\" target=\"_blank\" rel=\"noopener noreferrer\">XDCR<\/a> (replica\u00e7\u00e3o entre centros de dados).  Os documentos no bucket de origem podem ter TTLs, que podem ser removidos antes de entrar no bucket de destino.  Essa op\u00e7\u00e3o \u00e9 configur\u00e1vel para replica\u00e7\u00f5es XDCR.<\/li>\n<li>Arquivar documentos em um sistema de armazenamento mais barato (por exemplo, AWS S3) para reten\u00e7\u00e3o mais longa.<\/li>\n<li>Mover documentos para um sistema diferente para an\u00e1lise posterior (por exemplo, um lago de dados para pesquisa cient\u00edfica de longo prazo).<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8581\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/arrow-squiggly.png\" alt=\"\" width=\"100\" height=\"72\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/arrow-squiggly.png 100w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/arrow-squiggly-20x14.png 20w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/p>\n<p>Como estamos deixando nossa <span style=\"color: #ff6600\">laranja<\/span> sala, vamos manter isso <span style=\"color: #ff6600\">W<\/span>.<span style=\"color: #ff6600\">A<\/span>.<span style=\"color: #ff6600\">R<\/span>.<span style=\"color: #ff6600\">M<\/span>. sentimento (Write, Aggregate, Read, Move on) em nossa mem\u00f3ria.  O ciclo de vida dos dados da s\u00e9rie temporal \u00e9 mostrado com essas letras mai\u00fasculas - uma letra em cada parede - e as setas onduladas (como a acima) que as conectam.<\/p>\n<h2>Mais quartos em breve<\/h2>\n<p>Bem, <span style=\"color: #ffff00;background-color: #bebebe\"><strong>amarelo<\/strong><\/span> \u00e9 a cor da esperan\u00e7a, mas \u00e9 muito dif\u00edcil de ler em um fundo branco.  Vou us\u00e1-la aqui uma vez como s\u00edmbolo da minha esperan\u00e7a de compartilhar o Epis\u00f3dio 2 desta S\u00e9rie sobre o Tempo com voc\u00eas em breve.  Obrigado por seu tempo!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8580\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/arrow-heart.png\" alt=\"\" width=\"100\" height=\"85\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/arrow-heart.png 100w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/arrow-heart-20x17.png 20w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>What Is This About So, you have a time series use case?\u00a0 So do I, and this blog article is the proof of it. When I learn about a new subject, I like using the method of loci to memorize [&hellip;]<\/p>","protected":false},"author":1414,"featured_media":8593,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,1819,2389],"tags":[1447],"ppma_author":[9081],"class_list":["post-8463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-data-modeling","category-solutions","tag-data-modeling"],"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>The Series on Time Series (in Couchbase): Episode 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\/pt\/the-series-on-time-series-in-couchbase-episode-1\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Series on Time Series (in Couchbase): Episode 1\" \/>\n<meta property=\"og:description\" content=\"What Is This About So, you have a time series use case?\u00a0 So do I, and this blog article is the proof of it. When I learn about a new subject, I like using the method of loci to memorize [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/the-series-on-time-series-in-couchbase-episode-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-29T16:00:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-29T16:01:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"427\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Oleg Kuzmin, Sr. Solutions 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=\"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/\"},\"author\":{\"name\":\"Oleg Kuzmin, Solutions Architect, Databricks\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/567ed489e7c498f0b9ff0014374c2bcd\"},\"headline\":\"The Series on Time Series (in Couchbase): Episode 1\",\"datePublished\":\"2020-04-29T16:00:34+00:00\",\"dateModified\":\"2020-04-29T16:01:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/\"},\"wordCount\":1559,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg\",\"keywords\":[\"Data Modeling\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Data Modeling\",\"Solutions\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/\",\"name\":\"The Series on Time Series (in Couchbase): Episode 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg\",\"datePublished\":\"2020-04-29T16:00:34+00:00\",\"dateModified\":\"2020-04-29T16:01:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg\",\"width\":640,\"height\":427,\"caption\":\"Time Series\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Series on Time Series (in Couchbase): Episode 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\":\"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\/567ed489e7c498f0b9ff0014374c2bcd\",\"name\":\"Oleg Kuzmin, Solutions Architect, Databricks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/3c430b3fd08e47e71c288418a9321d65\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g\",\"caption\":\"Oleg Kuzmin, Solutions Architect, Databricks\"},\"sameAs\":[\"https:\/\/databricks.com\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/oleg-kuzmincouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Series on Time Series (in Couchbase): Episode 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\/pt\/the-series-on-time-series-in-couchbase-episode-1\/","og_locale":"pt_BR","og_type":"article","og_title":"The Series on Time Series (in Couchbase): Episode 1","og_description":"What Is This About So, you have a time series use case?\u00a0 So do I, and this blog article is the proof of it. When I learn about a new subject, I like using the method of loci to memorize [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/the-series-on-time-series-in-couchbase-episode-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-04-29T16:00:34+00:00","article_modified_time":"2020-04-29T16:01:29+00:00","og_image":[{"width":640,"height":427,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg","type":"image\/jpeg"}],"author":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/"},"author":{"name":"Oleg Kuzmin, Solutions Architect, Databricks","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/567ed489e7c498f0b9ff0014374c2bcd"},"headline":"The Series on Time Series (in Couchbase): Episode 1","datePublished":"2020-04-29T16:00:34+00:00","dateModified":"2020-04-29T16:01:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/"},"wordCount":1559,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg","keywords":["Data Modeling"],"articleSection":["Application Design","Best Practices and Tutorials","Data Modeling","Solutions"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/","url":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/","name":"The Series on Time Series (in Couchbase): Episode 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg","datePublished":"2020-04-29T16:00:34+00:00","dateModified":"2020-04-29T16:01:29+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/jason-coudriet-eQux_nmDew0-unsplash.jpg","width":640,"height":427,"caption":"Time Series"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/the-series-on-time-series-in-couchbase-episode-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Series on Time Series (in Couchbase): Episode 1"}]},{"@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\/567ed489e7c498f0b9ff0014374c2bcd","name":"Oleg Kuzmin, arquiteto de solu\u00e7\u00f5es, Databricks","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/3c430b3fd08e47e71c288418a9321d65","url":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g","caption":"Oleg Kuzmin, Solutions Architect, Databricks"},"sameAs":["https:\/\/databricks.com"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/oleg-kuzmincouchbase-com\/"}]}},"authors":[{"term_id":9081,"user_id":1414,"is_guest":0,"slug":"oleg-kuzmincouchbase-com","display_name":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0f297a537c749f924978fb4b8fd8d25dd01526af81550a9df5403c58cb300f06?s=96&d=mm&r=g","author_category":"","last_name":"Kuzmin, Sr. Solutions Engineer, Couchbase","first_name":"Oleg","job_title":"","user_url":"https:\/\/couchbase.com","description":"I help companies succeed in the Digital Economy through adoption of the best NoSQL data platform - Couchbase!"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8463","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\/1414"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=8463"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/8593"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=8463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=8463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=8463"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=8463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}