{"id":14594,"date":"2023-07-26T12:16:39","date_gmt":"2023-07-26T19:16:39","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=14594"},"modified":"2024-02-07T11:56:01","modified_gmt":"2024-02-07T19:56:01","slug":"introducing-couchbase-time-series","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/introducing-couchbase-time-series\/","title":{"rendered":"Presentaci\u00f3n de Couchbase Time Series"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Couchbase se complace en anunciar el lanzamiento de una nueva funci\u00f3n de series temporales como parte de Couchbase 7.2. Esta funci\u00f3n se basa en la robusta arquitectura de base de datos distribuida de Couchbase, que est\u00e1 dise\u00f1ada para escalar horizontalmente a medida que crecen los datos, a la vez que proporciona redundancia y alta disponibilidad integradas. Esto significa que a medida que su negocio crece y sus necesidades de datos de series temporales aumentan, Couchbase puede expandirse sin esfuerzo para satisfacer esas necesidades, por lo que es una soluci\u00f3n ideal para empresas de todos los tama\u00f1os.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Esta nueva e innovadora t\u00e9cnica para gestionar datos de series temporales abre todo un nuevo mundo de posibilidades para los usuarios de Couchbase. Con la capacidad de almacenar y analizar grandes cantidades de datos de series temporales utilizando Couchbase SQL++ y SDKs. Esto permite a los usuarios aprovechar sus conocimientos e infraestructura existentes, facilitando la configuraci\u00f3n y desbloqueando poderosas perspectivas para explorar las tendencias de los datos con facilidad.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Principales ventajas de las series temporales\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Los datos de series temporales se almacenan en documentos JSON en la base de datos Couchbase Multi Model. Proporciona el mismo alto rendimiento, almacenamiento en cach\u00e9 avanzado para una r\u00e1pida recuperaci\u00f3n de datos y baja latencia. Couchbase Query SQL++ y el servicio Index mejoran las capacidades de recuperaci\u00f3n de datos para permitir casos de uso de consultas anal\u00edticas complejas.<\/span><\/p>\n<p><span style=\"font-weight: 400\">El soporte de datos de series temporales en Couchbase proporciona estas ventajas adicionales:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Almacenamiento eficiente de grandes vol\u00famenes de datos de series temporales<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Almacenamiento optimizado de la estructura de datos para puntos de datos con marca de tiempo<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Nuevas funciones avanzadas de consulta de series temporales<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Baja necesidad de almacenamiento de \u00edndices<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400\">Ejemplos de casos de uso de series temporales<\/span><\/h2>\n<p><span style=\"font-weight: 400\"><strong>Comercio financiero - <\/strong>Las operaciones financieras se basan en el an\u00e1lisis de grandes cantidades de datos en tiempo real, como las cotizaciones burs\u00e1tiles, los tipos de cambio y los precios de las materias primas. El an\u00e1lisis de series temporales puede ayudar a los operadores a identificar tendencias y tomar decisiones de compra y venta con conocimiento de causa.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Supervisi\u00f3n del Internet de las cosas (IoT) - <\/strong>Los dispositivos IoT generan una gran cantidad de datos de series temporales, como lecturas de temperatura, consumo de energ\u00eda y datos de sensores. Estos datos pueden analizarse en tiempo real para detectar anomal\u00edas y predecir fallos en los equipos antes de que se produzcan.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Mantenimiento predictivo - <\/strong>Muchas industrias dependen de equipos y maquinaria caros, y el tiempo de inactividad puede ser costoso. Analizando series temporales de datos procedentes de sensores y otras fuentes, las organizaciones pueden predecir cu\u00e1ndo es probable que fallen los equipos y programar el mantenimiento de forma proactiva para minimizar el tiempo de inactividad y maximizar la eficiencia.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Principales caracter\u00edsticas de Couchbase Time Series<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Puedes almacenar datos de series temporales en Couchbase, usando nuestro SDK\/SQL++ para cargar, y la capacidad de consulta anal\u00edtica avanzada con \u00cdndice Secundario Global para consultar\/analizar los datos de la misma manera que con documentos JSON normales.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Eficacia del almacenamiento<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Los conjuntos de datos de series temporales suelen ser muy extensos, y cada punto de datos consta de atributos, como la marca de tiempo, el valor o valores, la granularidad y otra informaci\u00f3n relacionada. Un almacenamiento eficiente es fundamental, ya que puede determinar la rapidez con la que se pueden consultar los datos para su an\u00e1lisis.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Las series temporales de Couchbase utilizan dos especificaciones para mejorar la eficiencia del almacenamiento.<\/span><\/p>\n<p><b>El uso de matrices para los puntos de datos<\/b><span style=\"font-weight: 400\"> - Por su propia naturaleza, los datos de series temporales son una serie de puntos de datos. Estos puntos de datos comparten una estructura com\u00fan, por ejemplo, el tiempo y los valores, o cualquier otro atributo que est\u00e9 asociado al momento en que se recogi\u00f3 el punto de datos.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Utilizar una matriz para almacenar un conjunto de puntos de datos de un intervalo determinado puede reducir en gran medida el coste de almacenamiento, en comparaci\u00f3n con tener que almacenar cada punto de datos individual como un documento independiente en la base de datos.\u00a0<\/span><\/p>\n<p><b>El uso de la posici\u00f3n del array<\/b><span style=\"font-weight: 400\"> - Observe tambi\u00e9n que los elementos de la matriz de puntos de datos no tienen un nombre de campo asociado, sino que se basa en la posici\u00f3n del elemento en la matriz. En este ejemplo, los tres elementos de la matriz son: la fecha de observaci\u00f3n, el valor de apertura y el valor de cierre de la acci\u00f3n.<\/span><\/p>\n<pre class=\"lang:js decode:true\">docid:  \"stock:XYZ:d1\"\r\n{\r\n  \"ts_data\": [ [1672531200000, 92.08, 95.62],[1672531201000, 95.62, 99.25],..]\r\n}<\/pre>\n<p><b>Utilizar el tiempo EPOCH -\u00a0<\/b><span style=\"font-weight: 400\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Epoch_(computing)\">\u00c9poca<\/a> en lugar de la cadena de fecha ISO para reducir el tama\u00f1o de cada punto de datos y mejorar el tiempo de procesamiento.\u00a0<\/span><\/p>\n<pre class=\"lang:js decode:true\">docid:  \"stock:XYZ:d1\"\r\n{\r\n  \"ts_data\": [ [1672531200000, 92.08, 95.62],[1672531201000, 95.62, 99.25],..]\r\n  \"ts_start\": 1672531200000 \/* dstart y dend denotan el *\/\r\n  \"ts_end\":   1672617599999,\/* intervalo de tiempo de todos los puntos de datos en ts_data *\/\r\n  \"ticker\":   \"XYZ\"\r\n}<\/pre>\n<h3><span style=\"font-weight: 400\">Consulta optimizada con una nueva funci\u00f3n _timeseries<\/span><\/h3>\n<p><span style=\"font-weight: 400\">La funci\u00f3n Couchbase Time Series incluye un nuevo<\/span> <b>_timeseries<\/b> <span style=\"font-weight: 400\">funci\u00f3n. Esta funci\u00f3n tiene varias finalidades:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Genera din\u00e1micamente los objetos de las series temporales a partir del <\/span><span style=\"font-weight: 400\">ts_datos <\/span><span style=\"font-weight: 400\">matriz de matrices<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Transmite eficientemente los resultados cuando se utiliza con UNNEST, optimiza el tiempo de respuesta y el uso de memoria.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Puede generar autom\u00e1ticamente la marca de tiempo para cada punto de datos cuando se utiliza el par\u00e1metro ts_interval<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Admite casos de uso de series temporales m\u00e1s avanzados para intervalos irregulares de puntos de datos de series temporales, como en lugar de un conjunto m\u00faltiple de puntos de datos por marca de tiempo.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Consulte el <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/time-series.html\"><span style=\"font-weight: 400\">Documentaci\u00f3n sobre series temporales de Couchbase<\/span><\/a><span style=\"font-weight: 400\"> para m\u00e1s detalles.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Almacenamiento optimizado de \u00edndices<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Debido a la forma en que Couchbase almacena los datos de series temporales, con cada punto de datos almacenado como un elemento en un array dentro de un documento JSON, podemos optimizar nuestra estrategia de indexaci\u00f3n de la base de datos. Espec\u00edficamente, dado que cada documento contiene tanto la hora de inicio como la hora final de todos los puntos de datos del array, podemos crear una \u00fanica definici\u00f3n de \u00edndice para cada documento. Esto significa que incluso para grandes conjuntos de datos de series temporales con millones de puntos de datos, podemos almacenar los datos en s\u00f3lo unos pocos documentos en lugar de un documento por punto de datos.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Por ejemplo, un conjunto de datos de series temporales con 1 mill\u00f3n de puntos de datos puede almacenarse en s\u00f3lo 1.000 documentos, suponiendo que cada <em>ts_datos<\/em> array puede almacenar hasta 1.000 elementos de datos y el tama\u00f1o del documento se mantiene por debajo del l\u00edmite de documentos JSON de Couchbase de 20 MB. Esto no s\u00f3lo reduce el n\u00famero de documentos necesarios para almacenar los datos, sino que tambi\u00e9n conduce a tama\u00f1os de \u00edndice m\u00e1s peque\u00f1os, mejorando el rendimiento de la base de datos y reduciendo los requisitos de espacio en disco.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En resumen, aprovechando la capacidad de Couchbase para almacenar datos de series temporales como matrices dentro de documentos JSON, podemos optimizar nuestra estrategia de indexaci\u00f3n para reducir significativamente el n\u00famero de documentos necesarios y reducir el tama\u00f1o del \u00edndice, lo que resulta en un rendimiento de consulta m\u00e1s r\u00e1pido y un uso m\u00e1s eficiente de los recursos de almacenamiento.<\/span><\/p>\n<pre class=\"lang:js decode:true\">CREAR \u00cdNDICE ix1 EN docs(ticker, ts_end, ts_start);<\/pre>\n<h3><span style=\"font-weight: 400\">Conservaci\u00f3n de datos\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Los documentos de series temporales se almacenan como documentos JSON est\u00e1ndar en Couchbase. As\u00ed, durante el proceso de carga de datos se puede establecer el mismo Time-To-Live (TTL).<\/span><\/p>\n<pre class=\"lang:js decode:true\">\/* El documento se eliminar\u00e1 autom\u00e1ticamente en 30 d\u00edas *\/\r\n\r\nINSERT INTO coll1 (CLAVE, VALOR)\r\n\r\n   VALUES (\"stock:XYZ:d1\", {\"ticker\": \"XYZ\",..}, {\"expiration\":60*60*24*30});<\/pre>\n<h2><span style=\"font-weight: 400\">Ejemplo de recorrido<\/span><\/h2>\n<p><span style=\"font-weight: 400\">As\u00ed que vamos a recorrer el proceso de carga de un conjunto de datos de precios de acciones reales en Couchbase utilizando el modelo de datos de series temporales definido por la funci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Como he descrito anteriormente, la funci\u00f3n de series temporales de Couchbase requiere el documento JSON en este formato espec\u00edfico:<\/span><\/p>\n<pre class=\"lang:js decode:true\">docid:  \"stock:XYZ:d1\"\r\n{\r\n  \"ts_data\": [ [1672531200000, 92.08, 95.62],[1672531201000, 95.62, 99.25],..]\r\n  \"ts_start\": 1672531200000 \/* dstart y dend denotan el *\/\r\n  \"ts_end\":   1672617599999,\/* intervalo de tiempo de todos los puntos de datos en ts_data *\/\r\n  \"ticker\":   \"XYZ\"\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Siga los pasos que se indican a continuaci\u00f3n si necesita convertir sus propios datos de series temporales al formato anterior.<\/span><\/p>\n<p><span style=\"font-weight: 400\">El conjunto de datos utilizado aqu\u00ed es para el precio de las acciones de XYZ Inc para 2013-2015.\u00a0<\/span><\/p>\n<p><b>Datos_XYZ.csv<\/b><\/p>\n<pre class=\"lang:default decode:true\">fecha,apertura,m\u00e1ximo,m\u00ednimo,cierre,volumen,Nombre\r\n2013-02-08,27.285,27.595,27.24,27.295,5100734,XYZ\r\n2013-02-11,27.64,27.95,27.365,27.61,8916290,XYZ\r\n2013-02-12,27.45,27.605,27.395,27.545,3866508,XYZ<\/pre>\n<h3><span style=\"font-weight: 400\">Migrar datos a la estructura de datos de series temporales de Couchbase<\/span><\/h3>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Cargar el archivo CSV en una colecci\u00f3n Couchbase:<\/span><\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">cbimport csv --infer-types -c https:\/\/:8091 -u  -p  -d 'file:\/\/XYZ_data.csv' -b 'ts' --scope-collection-exp \"s1.c1\" -g \"#UUID#\"<\/pre>\n<p><span style=\"font-weight: 400\">La importaci\u00f3n crear\u00e1 un documento JSON en la colecci\u00f3n <em>c1<\/em> para cada punto de datos.<\/span><\/p>\n<pre class=\"lang:js decode:true\">{\r\n    \"c1\": {\r\n      \"Nombre\": \"XYZ\",\r\n      \"cerrar\": 55.99,\r\n      \"date\": \"2016-05-25T00:00:00.000Z\",\r\n      \"alto\": 56.69,\r\n      \"bajo\": 55.7699,\r\n      \"abierto\": 56.47,\r\n      \"volumen\": 9921707\r\n    }\r\n  },\r\n  {\r\n    \"c1\": {\r\n      \"Nombre\": \"XYZ\",\r\n      \"cerrar\": 31.075,\r\n      \"date\": \"2013-06-11T00:00:00.000Z\",\r\n      \"alto\": 31.47,\r\n      \"bajo\": 30.985,\r\n      \"abierto\": 31.15,\r\n      \"volumen\": 5540312\r\n    }\r\n  }, ...<\/pre>\n<p><span style=\"font-weight: 400\">2. Utilizar SQL++ para transformar la colecci\u00f3n <em>c1<\/em> en la estructura de datos de series temporales y, a continuaci\u00f3n, insertar en la colecci\u00f3n <em>c3:<\/em><\/span><\/p>\n<pre class=\"lang:js decode:true\">INSERT INTO ts.s1.c3 (CLAVE _k, VALOR _v)\r\nSELECT \"acci\u00f3n:XYZ:2013\" _k,\r\n{\"ticker\": a.Nombre ,\r\n  \"ts_start\" : MIN(STR_TO_MILLIS(a.date)),\r\n  \"ts_end\" : MAX(STR_TO_MILLIS(a.date)),\r\n  \"ts_data\" : ARRAY_AGG([STR_TO_MILLIS(a.date), a.close]) } _v\r\nFROM ts.s1.c1 a\r\nWHERE a.date BETWEEN \"2013-01-01\" Y \"2013-12-31\"\r\nGROUP BY a.Nombre;<\/pre>\n<p><span style=\"font-weight: 400\">El SQL++ realiza una <em>INSERTAR SELECCIONAR<\/em> y crea un \u00fanico documento con la estructura requerida para el procesamiento de series temporales de Couchbase. Tenga en cuenta que el <em>ts_datos<\/em> contiene todos los puntos de datos de precios de cierre diarios de 2013.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">3. Repita la operaci\u00f3n INSERT\/SELECT para 2014 y 2015.<\/span><\/p>\n<pre class=\"lang:js decode:true\">[\r\n  {\r\n    \"id\": \"stock:XYZ:2013\",\r\n    \"ticker\": \"XYZ\",\r\n    \"ts_start\": 1387497600000,\r\n    \"ts_end\": 1365465600000,\r\n    \"ts_data\": [\r\n      [ 1387497600000, 38.67 ],\r\n      [ 1380585600000, 36.21 ],\r\n      ...]\r\n\r\n  },\r\n  {\r\n    \"id\": \"stock:XYZ:2014\",\r\n    \"ticker\": \"XYZ\",\r\n    \"ts_start\": 1413331200000,\r\n    \"ts_end\": 1402444800000,\r\n    \"ts_data\": [\r\n      [ 1413331200000, 42.59 ],\r\n      [ 1399507200000, 36.525],\r\n      ...]\r\n  },\r\n  {\r\n    \"id\": \"stock:XYZ:2015\",\r\n    \"ticker\": \"XYZ\",\r\n    \"ts_start\": 1444780800000,\r\n    \"ts_end\": 1436313600000,\r\n    \"ts_data\": [\r\n      [ 1444780800000, 62.92 ],\r\n      [ 1421280000000, 46.405],\r\n      ...]\r\n\r\n  }\r\n]<\/pre>\n<h3><span style=\"font-weight: 400\">Estrategias de ingesti\u00f3n de datos<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Hay varios escenarios que puede tener para la carga incremental de sus documentos JSON de Series Temporales.<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A\u00f1adir un rango de puntos de datos como un nuevo documento JSON - Para este escenario se puede utilizar el anterior SQL++ INSERT. S\u00f3lo tiene que asegurarse de que los rangos de puntos de datos no se superpongan a los documentos existentes.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A\u00f1adir un rango de puntos de datos a <\/span><b>un documento JSON existente<\/b><span style=\"font-weight: 400\"> - Aqu\u00ed tienes dos opciones:<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Reemplazar todo el documento utilizando UPSERT\/SELECT como en el INSERT\/SELECT<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Utilizar Couchbase SDK para a\u00f1adir s\u00f3lo los nuevos puntos de datos de elementos\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<pre class=\"lang:js decode:true\">\/\/ Inicializar los objetos cluster y bucket de Couchbase.\r\nCluster cluster = CouchbaseCluster.create(\"\");\r\nBucket bucket = cluster.openBucket(\"\");\r\n\r\n\/\/ Especifica el ID del documento y la ruta del subdocumento a actualizar\r\nString docId = \"\"; \/\/ eg. \"stock:XYZ:2015\"\r\nString path = \"a.ts_data[-1]\"; \/\/ -1 especifica el \u00faltimo elemento de la matriz\r\n\r\n\/\/ Crear un objeto JSON que represente el nuevo elemento del array a a\u00f1adir\r\nJsonObject newElement = JsonObject.create()\r\n    .put(\"0\", \"2015-12-31\")\r\n    .put(\"1\", 300);\r\n\r\n\/\/ Utilice la API de subdocumentos para actualizar la matriz\r\nJsonDocument doc = bucket.get(docId);\r\nif (doc != null) {\r\n    bucket.mutateIn(docId)\r\n        .arrayAppend(ruta, nuevoElemento)\r\n        .execute();\r\n}<\/pre>\n<h3><span style=\"font-weight: 400\">Consulta de los datos de las series temporales<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Antes de consultar los datos, debe crear un \u00edndice. Aunque esto no es absolutamente necesario, ya que s\u00f3lo tenemos unos pocos documentos, aunque cada documento consta de todo el a\u00f1o de la cotizaci\u00f3n diaria de las acciones.\u00a0<\/span><\/p>\n<pre class=\"lang:default decode:true\">CREAR \u00cdNDICE ix1 EN c3(ticker, ts_end, ts_start);<\/pre>\n<p><span style=\"font-weight: 400\">A continuaci\u00f3n definimos el rango de datos sobre el que queremos que se ejecute la consulta. Aqu\u00ed definimos un array con dos elementos, la hora de inicio y fin de 2013-01-01 y 2015-12-31.<\/span><\/p>\n<pre class=\"lang:default decode:true\">\\set -$ts_ranges [1682947800000,1685563200000];<\/pre>\n<h3><span style=\"font-weight: 400\">Ver los puntos de datos de las series temporales<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Utiliza el <em>_timeseries<\/em> como se ha descrito anteriormente:<\/span><\/p>\n<pre class=\"lang:default decode:true\">SELECT t.* FROM c3 COMO d\r\n  UNNEST _timeseries(d, {\"ts_ranges\":$ts_ranges}) COMO t\r\nWHERE d.ticker = 'XYZ' AND (d.ts_start = $ts_ranges[0]);<\/pre>\n<p><b>Resultados:<\/b><\/p>\n<pre class=\"lang:js decode:true\">[\r\n  { \"_t\": 1413331200000, \"_v0\": 42.59 },\r\n  { \"_t\": 1399507200000, \"_v0\": 36.525},\r\n  { \"_t\": 1392854400000, \"_v0\": 37.79 },\r\n  { \"_t\": 1395100800000, \"_v0\": 39.82 },\r\n  { \"_t\": 1410307200000, \"_v0\": 41.235}, ... ]<\/pre>\n<h3><span style=\"font-weight: 400\">Visualizar los datos de las series temporales con la funci\u00f3n Ventana de SQL<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Ahora que podemos acceder a todo el conjunto de datos, podemos utilizar la funci\u00f3n de ventanas SQL++ de Couchbase para ejecutar algunas funciones avanzadas de agregaci\u00f3n. Esta consulta devuelve la media diaria de la acci\u00f3n, as\u00ed como una media m\u00f3vil de 7 d\u00edas.<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<pre class=\"lang:default decode:true\">SELECT MILLIS_TO_TZ(day*86400000, \"UTC\") AS day, dayavg , AVG(dayavg) OVER (ORDER BY day ROWS 7 PRECEDING) AS sevendaymovavg\r\nFROM ts.s1.c3 COMO d\r\nUNNEST _timeseries(d, {\"ts_ranges\":$ts_ranges}) AS t\r\nWHERE d.ticker = 'XYZ'\r\n\u00a0\u00a0\u00a0\u00a0  <span style=\"font-weight: 400\">\u00a0\u00a0AND (d.ts_start &lt;= $ts_ranges[<\/span><span style=\"font-weight: 400\">1<\/span><span style=\"font-weight: 400\">] AND d.ts_end &gt;= $ts_ranges[<\/span><span style=\"font-weight: 400\">0<\/span><span style=\"font-weight: 400\">])<\/span>\r\nGROUP BY IDIV(t._t,86400000) AS day\r\nLETTING dayavg = AVG(t._v0);<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Resultados:<\/strong><\/p>\n<pre class=\"lang:js decode:true\">[\r\n  {\r\n    \"day\": \"2014-01-02T00:00:00Z\",\r\n    \"dayavg\": 39.12,\r\n    \"sevendaymovavg\": 39.12\r\n  },\r\n  {\r\n    \"day\": \"2014-01-03T00:00:00Z\",\r\n    \"dayavg\": 39.015,\r\n    \"sevendaymovavg\": 39.067499999999995\r\n  },\r\n  {\r\n    \"day\": \"2014-01-06T00:00:00Z\",\r\n    \"dayavg\": 38.715,\r\n    \"sevendaymovavg\": 38.949999999999996\r\n  },\r\n  {\r\n    \"day\": \"2014-01-07T00:00:00Z\",\r\n    \"dayavg\": 38.745,\r\n    \"sevendaymovavg\": 38.89875\r\n  },\r\n  {\r\n    \"day\": \"2014-01-08T00:00:00Z\",\r\n    \"dayavg\": 38.545,\r\n    \"sevendaymovavg\": 38.827999999999996\r\n  },\r\n  ..\r\n]<\/pre>\n<h3><span style=\"font-weight: 400\">Utilizar gr\u00e1ficos SQL++ en datos de series temporales<\/span><\/h3>\n<p><span style=\"font-weight: 400\">En este ejemplo, utilizamos la funci\u00f3n de Series Temporales de Couchbase y su capacidad de Gr\u00e1ficos para seguir una estrategia de trading popular mediante el seguimiento de medias m\u00f3viles r\u00e1pidas (5 d\u00edas) frente a medias m\u00f3viles lentas (30 d\u00edas).<\/span><\/p>\n<pre class=\"lang:default decode:true\">SELECT MILLIS_TO_TZ(day*86400000, \"UTC\") AS day, dayavg ,\r\nAVG(dayavg) OVER (ORDER BY day ROWS 5 PRECEDING) AS fma,\r\nAVG(dayavg) OVER (ORDER BY day ROWS 30 PRECEDING) AS sma\r\nFROM ts.s1.c3 COMO d\r\nUNNEST _timeseries(d, {\"ts_ranges\":$ts_ranges}) COMO t\r\nWHERE d.ticker = 'XYZ'\r\n<span style=\"font-weight: 400\">  AND (d.ts_start &lt;= $ts_ranges[<\/span><span style=\"font-weight: 400\">1<\/span><span style=\"font-weight: 400\">] AND d.ts_end &gt;= $ts_ranges[<\/span><span style=\"font-weight: 400\">0<\/span><span style=\"font-weight: 400\">])<\/span>\r\nGROUP BY IDIV(t._t,86400000) AS day\r\nLETTING dayavg = AVG(t._v0);<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14655\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/06\/image2-2-1024x904.png\" alt=\"\" width=\"900\" height=\"795\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image2-2-1024x904.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image2-2-300x265.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image2-2-768x678.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image2-2-1536x1355.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image2-2-1320x1165.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image2-2.png 1854w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">La idea detr\u00e1s de esta estrategia es identificar cu\u00e1ndo la tendencia a corto plazo (FMA) cruza por encima o por debajo de la tendencia a largo plazo (SMA). Cuando la FMA cruza la SMA, se considera una se\u00f1al de compra, y a la inversa, una se\u00f1al de venta cuando la FMA cruza por debajo de la SMA.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Utilizar la Expresi\u00f3n de Tabla Com\u00fan de SQL++ con datos de series temporales<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Este an\u00e1lisis calcula el \u00cdndice de Fuerza Relativa, es decir, la velocidad y el cambio de los movimientos del precio de las acciones para identificar cu\u00e1ndo una acci\u00f3n est\u00e1 sobrecomprada o vendida. Un valor de RSI &gt; 70 puede indicar que la acci\u00f3n est\u00e1 sobrecomprada y que debe corregirse. Por el contrario, cuando el RSI es inferior a 30, puede indicar que la acci\u00f3n est\u00e1 sobrevendida y se espera un rebote.<\/span><\/p>\n<pre class=\"lang:default decode:true\">WITH cambio_precio AS (\r\nSELECT t._t as fecha,\r\n        t._v0 AS precio,\r\n        LAG(t._v0, 1) OVER (ORDER BY t._t) AS prev_price,\r\n        ROW_NUMBER() OVER (ORDER BY t._t) AS rn\r\nFROM ts.s1.c3 COMO d\r\nUNNEST _timeseries(d, {\"ts_ranges\":$ts_ranges}) AS t\r\nWHERE d.ticker = 'XYZ'\r\n  AND ( $ts_ranges[0] BETWEEN d.ts_start AND d.ts_end\r\n      OR (d.ts_start BETWEEN $ts_ranges[0] AND $ts_ranges[1] AND d.ts_end BETWEEN $ts_ranges[0] AND $ts_ranges[1] )\r\n      OR $ts_ranges[1] BETWEEN d.ts_start AND d.ts_end\r\n      )\r\n),\r\nganancia_p\u00e9rdida AS (\r\n  SELECT pc.date, pc.price, pc.prev_price,\r\n        CASE WHEN pc.price &gt; pc.prev_price THEN pc.price - pc.prev_price ELSE 0 END AS gain,\r\n        CASE WHEN pc.price = 14\r\n),\r\nse\u00f1ales_compra_venta AS (\r\n  SELECT rsi.date, rsi.rsi_val,\r\n        CASE WHEN rsi.rsi_val  70 THEN 'sell' (vender)\r\n        END COMO se\u00f1al\r\n  FROM rsi\r\n)\r\nSELECT * FROM buy_sell_signals bss WHERE bss.signal IS NOT NULL;<\/pre>\n<p><span style=\"font-weight: 400\"><strong>Resultados:<\/strong><\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<pre class=\"lang:default decode:true\">d\u00eda rsi_val se\u00f1al\r\n\"2014-01-22T00:00:00Z\" 11.147540983606476 \"comprar\"\r\n\"2014-01-23T00:00:00Z\" 9.898107714701524 \"comprar\"\r\n\"2014-01-24T00:00:00Z\" 8.785529715762195 \"comprar\"\r\n\"2014-01-27T00:00:00Z\" 12.584573748308443 \"comprar\"\r\n\"2014-01-28T00:00:00Z\" 20.638820638820576 \"comprar\"\r\n\"2014-01-29T00:00:00Z\" 19.354838709677352 \"comprar\"\r\n\"2014-02-24T00:00:00Z\" 90.84507042253534 \"vender\"\r\n\"2014-02-25T00:00:00Z\" 95.1306413301663 \"vender\"\r\n\"2014-02-26T00:00:00Z\" 95.25462962962968 \"vender\"\r\n\"2014-02-27T00:00:00Z\" 90.03690036900366 \"vender\"\r\n\"2014-02-28T00:00:00Z\" 88.79668049792528 \"vender\"\r\n\"2014-03-03T00:00:00Z\" 79.06403940886698 \"vender\"\r\n\"2014-03-04T00:00:00Z\" 78.8557213930348 \"vender\"\r\n\"2014-03-07T00:00:00Z\" 71.54072620215895 \"vender\"\r\n\"2014-03-26T00:00:00Z\" 26.635514018691566 \"comprar\"\r\n\"2014-03-27T00:00:00Z\" 17.887029288702877 \"comprar\"\r\n\"2014-03-28T00:00:00Z\" 20.75268817204305 \"comprar\"\r\n\"2014-03-31T00:00:00Z\" 23.83474576271186 \"comprar\"\r\n\"2014-04-01T00:00:00Z\" 26.632653061224502 \"comprar\"\r\n\"2014-04-02T00:00:00Z\" 29.02208201892749 \"comprar\"\r\n\"2014-04-03T00:00:00Z\" 28.020304568527948 \"comprar\"\r\n\"2014-04-04T00:00:00Z\" 20.309477756286242 \"comprar\"\r\n\"2014-04-07T00:00:00Z\" 12.318220701454209 \"comprar\"\r\n\"2014-04-08T00:00:00Z\" 26.561324303987945 \"comprar\"\r\n\"2014-04-09T00:00:00Z\" 29.326574945691576 \"comprar\"<\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span style=\"font-weight: 400\">Principales conclusiones<\/span><\/h2>\n<p><b>Almacenamiento de datos <\/b><span style=\"font-weight: 400\">- El almacenamiento total de datos para las series temporales de Couchbase depender\u00e1 de cu\u00e1ntos puntos de datos elijas empaquetar en el array. Si el an\u00e1lisis es por hora, d\u00eda, mes, entonces empaquete los puntos de datos seg\u00fan el periodo. Tenga en cuenta que el almacenamiento tambi\u00e9n se puede reducir a\u00fan m\u00e1s si se utiliza una serie de tiempo regular donde el elemento de tiempo en la serie de tiempo se puede derivar, y por lo tanto no requiere el almacenamiento del elemento de tiempo de \u00e9poca.<\/span><\/p>\n<p><b>Elemento de datos y retenci\u00f3n de datos con TTL<\/b><span style=\"font-weight: 400\"> - El tama\u00f1o m\u00e1ximo del documento JSON en Couchbase es de 20MB. Aunque esto podr\u00eda significar que puedes empaquetar un gran n\u00famero de puntos de datos en el array de series temporales, tambi\u00e9n debes tener en cuenta que la configuraci\u00f3n de Time To Live es a nivel de documento, y no a nivel de elemento del array.\u00a0<\/span><\/p>\n<p><b>Ingesta de datos <\/b><span style=\"font-weight: 400\">- La aplicaci\u00f3n es responsable de la estrategia de ingesti\u00f3n de datos.  C\u00f3mo empaquetar los puntos de datos de series temporales en las matrices, y el tama\u00f1o de las matrices. Lo que significa que tiene que decidir si anexar a un documento existente, o iniciar uno nuevo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Para m\u00e1s informaci\u00f3n, consulte el <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/time-series.html\"><span style=\"font-weight: 400\">Documentaci\u00f3n sobre series temporales de Couchbase<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase is excited to announce the release of a new time-series feature as part of Couchbase 7.2. This feature is built on top of the robust Couchbase distributed database architecture, which is designed to scale horizontally as your data grows, [&hellip;]<\/p>","protected":false},"author":26326,"featured_media":14656,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1819],"tags":[1834,9602,9827],"ppma_author":[8919],"class_list":["post-14594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-data-modeling","tag-charts","tag-storage","tag-time-series"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Time Series: Key Benefits + Use Case Examples<\/title>\n<meta name=\"description\" content=\"As your business grows and your time series data needs increase, Couchbase can effortlessly expand to meet those needs, making it an ideal solution.\" \/>\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\/es\/introducing-couchbase-time-series\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Couchbase Time Series\" \/>\n<meta property=\"og:description\" content=\"As your business grows and your time series data needs increase, Couchbase can effortlessly expand to meet those needs, making it an ideal solution.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/introducing-couchbase-time-series\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-26T19:16:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-07T19:56:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/06\/image1-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"907\" \/>\n\t<meta property=\"og:image:height\" content=\"428\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Binh Le\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Binh Le\" \/>\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\/introducing-couchbase-time-series\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/\"},\"author\":{\"name\":\"Binh Le\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63\"},\"headline\":\"Introducing Couchbase Time Series\",\"datePublished\":\"2023-07-26T19:16:39+00:00\",\"dateModified\":\"2024-02-07T19:56:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/\"},\"wordCount\":1735,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png\",\"keywords\":[\"charts\",\"storage\",\"time series\"],\"articleSection\":[\"Couchbase Server\",\"Data Modeling\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/\",\"name\":\"Couchbase Time Series: Key Benefits + Use Case Examples\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png\",\"datePublished\":\"2023-07-26T19:16:39+00:00\",\"dateModified\":\"2024-02-07T19:56:01+00:00\",\"description\":\"As your business grows and your time series data needs increase, Couchbase can effortlessly expand to meet those needs, making it an ideal solution.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png\",\"width\":907,\"height\":428,\"caption\":\"Couchbase time series chart\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Couchbase Time Series\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\/f89064928e262c71eb43bee996c48c63\",\"name\":\"Binh Le\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5b68c37e30928a9d7b2c8470b1a303b7\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"caption\":\"Binh Le\"},\"description\":\"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/binh-le-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Time Series: Key Benefits + Use Case Examples","description":"As your business grows and your time series data needs increase, Couchbase can effortlessly expand to meet those needs, making it an ideal solution.","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\/es\/introducing-couchbase-time-series\/","og_locale":"es_MX","og_type":"article","og_title":"Introducing Couchbase Time Series","og_description":"As your business grows and your time series data needs increase, Couchbase can effortlessly expand to meet those needs, making it an ideal solution.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/introducing-couchbase-time-series\/","og_site_name":"The Couchbase Blog","article_published_time":"2023-07-26T19:16:39+00:00","article_modified_time":"2024-02-07T19:56:01+00:00","og_image":[{"width":907,"height":428,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/06\/image1-2.png","type":"image\/png"}],"author":"Binh Le","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Binh Le","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/"},"author":{"name":"Binh Le","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63"},"headline":"Introducing Couchbase Time Series","datePublished":"2023-07-26T19:16:39+00:00","dateModified":"2024-02-07T19:56:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/"},"wordCount":1735,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png","keywords":["charts","storage","time series"],"articleSection":["Couchbase Server","Data Modeling"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/","name":"Couchbase Time Series: Key Benefits + Use Case Examples","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png","datePublished":"2023-07-26T19:16:39+00:00","dateModified":"2024-02-07T19:56:01+00:00","description":"As your business grows and your time series data needs increase, Couchbase can effortlessly expand to meet those needs, making it an ideal solution.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/06\/image1-2.png","width":907,"height":428,"caption":"Couchbase time series chart"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-time-series\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Couchbase Time Series"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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\/f89064928e262c71eb43bee996c48c63","name":"Binh Le","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5b68c37e30928a9d7b2c8470b1a303b7","url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","caption":"Binh Le"},"description":"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/binh-le-2\/"}]}},"authors":[{"term_id":8919,"user_id":26326,"is_guest":0,"slug":"binh-le-2","display_name":"Binh Le","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","first_name":"Binh","last_name":"Le","user_url":"","author_category":"","description":"Binh Le es director de producto principal del servicio de consultas de Couchbase. Antes de Couchbase, trabaj\u00f3 en Oracle y dirigi\u00f3 el equipo de gesti\u00f3n de productos para Sales Clould Analytics y CRM OnDemand. Binh es licenciado en Inform\u00e1tica por la Universidad de Brighton, Reino Unido."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/14594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/26326"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=14594"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/14594\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/14656"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=14594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=14594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=14594"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=14594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}