{"id":2475,"date":"2016-10-27T05:14:43","date_gmt":"2016-10-27T05:14:43","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2475"},"modified":"2023-06-23T03:14:59","modified_gmt":"2023-06-23T10:14:59","slug":"couchbase-spark-connector-2-0-0-released","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-spark-connector-2-0-0-released\/","title":{"rendered":"Lanzamiento de Couchbase Spark Connector 2.0.0"},"content":{"rendered":"<p>En nombre del equipo del SDK me complace anunciar el lanzamiento de la segunda versi\u00f3n principal del Conector Spark de Couchbase que, lo m\u00e1s importante, aporta compatibilidad con la serie Apache Spark 2.0.x.<\/p>\n<p>Un agradecimiento especial a los colaboradores de la comunidad <a href=\"https:\/\/github.com\/lucarosellini\">Luca Rosellini<\/a> y <a href=\"https:\/\/github.com\/shiv4nsh\">Shivansh Srivastava<\/a> que contribuyeron al conector y ayudaron a ponerlo a punto para esta versi\u00f3n.<\/p>\n<h2>Conseguirlo<\/h2>\n<p>Como antes, los artefactos se publican en Maven Central bajo las siguientes coordenadas:<\/p>\n<ul>\n<li>groupId:com.couchbase.client<\/li>\n<li>artifactId: spark-connector_2.10 o spark-connector_2.11<\/li>\n<li>versi\u00f3n: 2.0.0<\/li>\n<\/ul>\n<p>Si est\u00e1 utilizando sbt, s\u00f3lo tiene que utilizar \"com.couchbase.client\" %% \"spark-connector\" % \"2.0.0\".<\/p>\n<p>Tenga en cuenta que tambi\u00e9n se publican a trav\u00e9s de <a href=\"https:\/\/spark-packages.org\/package\/couchbase\/couchbase-spark-connector\">spark-packages.org<\/a> y tambi\u00e9n puede descargarse como archivo (aqu\u00ed para <a href=\"https:\/\/packages.couchbase.com\/clients\/connectors\/spark\/2.0.0\/Couchbase-Spark-Connector_2.10-2.0.0.zip\">Scala 2.10<\/a> as\u00ed como <a href=\"https:\/\/packages.couchbase.com\/clients\/connectors\/spark\/2.0.0\/Couchbase-Spark-Connector_2.11-2.0.0.zip\">Scala 2.11<\/a>).<\/p>\n<h2>Destacados<\/h2>\n<p>Adem\u00e1s de ofrecer compatibilidad con Spark 2.0.x y varias correcciones de errores, esta versi\u00f3n incluye compatibilidad mejorada con Spark Streaming, as\u00ed como compatibilidad inicial con <a href=\"https:\/\/databricks.com\/blog\/2016\/07\/28\/structured-streaming-in-apache-spark.html\">Streaming estructurado<\/a>.<\/p>\n<h3>Spark Streams<\/h3>\n<p>Anteriormente, el Conector ofrec\u00eda soporte experimental para <a href=\"https:\/\/spark.apache.org\/docs\/latest\/streaming-programming-guide.html\">DStreams<\/a> se basa en una implementaci\u00f3n de DCP (el protocolo de cambio de Couchbase) que forma parte del SDK de Java. Por varias razones, hemos tenido problemas con eso y como resultado estamos invirtiendo un esfuerzo significativo para construir una aplicaci\u00f3n independiente. <a href=\"https:\/\/github.com\/couchbaselabs\/java-dcp-client\">DCP-cliente<\/a> con pocos gastos, estable y listo para la producci\u00f3n.<\/p>\n<p>El Spark Connector 2.0.0 se basa en una versi\u00f3n preliminar de este nuevo cliente y en el futuro estabilizar\u00e1 su implementaci\u00f3n junto con la dependencia. Como resultado, la implementaci\u00f3n actual permite por primera vez escalar din\u00e1micamente el cl\u00faster mientras se transmiten los cambios, soporta el control de flujo autom\u00e1tico, as\u00ed como el manejo simple y transparente de la reversi\u00f3n en caso de fallos de nodo.<\/p>\n<p>Desde el punto de vista de la API todos esos cambios son transparentes, se usan los mismos m\u00e9todos para iniciar el stream as\u00ed como para consumir los mensajes. Aqu\u00ed hay un ejemplo que crea un DStream e imprime cada mutaci\u00f3n y borrado que llega desde el servidor. Es posible iniciar el flujo desde el principio o \"ahora\", donde \"ahora\" es el estado actual del sistema por lo que s\u00f3lo las futuras mutaciones y borrados ser\u00e1n enviados a trav\u00e9s del flujo.<\/p>\n<p>En las pr\u00f3ximas versiones estamos planeando proporcionar soporte para la persistencia de la informaci\u00f3n de instant\u00e1neas y restaurar el estado de ellos para sobrevivir mejor a los fallos del nodo Spark y reinicios de la aplicaci\u00f3n. Si necesitas esas garant\u00edas ahora mismo, sigue leyendo sobre el soporte de Structured Streaming, que hoy en d\u00eda ya proporciona esto utilizando la funcionalidad de Spark.<\/p>\n<h3>Streaming estructurado<\/h3>\n<p>El soporte para Structured Streaming tambi\u00e9n se basa en el nuevo cliente DCP, pero como Spark trata las mutaciones como una estructura de tabla de s\u00f3lo ap\u00e9ndice, en este momento s\u00f3lo se transmiten los cambios en los documentos y se ignoran las eliminaciones. Una vez que las supresiones puedan ser se\u00f1aladas correctamente a Spark, proporcionaremos soporte para ello tambi\u00e9n.<\/p>\n<p>El conector permite utilizarlo como fuente o como sumidero.<\/p>\n<p>Spark mantiene su propio WAL (Write Ahead Log) y snapshots cuando consunga stream por lo que es posible (aunque no tan eficiente como nos gustar\u00eda en futuras versiones) reanudar el estado de forma transparente desde la \u00faltima mutaci\u00f3n consumida.<\/p>\n<p>Dado que una abstracci\u00f3n de tabla requiere alg\u00fan tipo de esquema, se recomienda proporcionar uno personalizado basado en sus documentos, de lo contrario se utiliza un esquema por defecto que funciona pero s\u00f3lo proporciona una visi\u00f3n limitada del contenido de una mutaci\u00f3n. El esquema por defecto es el siguiente:<\/p>\n<p>El siguiente ejemplo muestra c\u00f3mo todas las mutaciones del cubo \"muestra-viaje\" se transmiten y luego se almacenan en el esquema proporcionado. Como imprimir todas las mutaciones no es muy interesante, las agrupa por el campo \"tipo\" e imprime el n\u00famero de veces que aparecen:<\/p>\n<p>Dado que Spark mantiene un recuento total, prueba a cambiar uno de los documentos en la interfaz de usuario del servidor y ver\u00e1s c\u00f3mo el recuento de su tipo aumenta en uno en los registros de Spark.<\/p>\n<p>Adem\u00e1s de funcionar como una fuente de flujo, tambi\u00e9n puede utilizarlo como un sumidero para almacenar los resultados de nuevo en Couchbase. Un aspecto importante es especificar la columna que se utilizar\u00e1 como ID del documento, como se muestra en el siguiente ejemplo:<\/p>\n<p>Este ejemplo consume un flujo socket, realiza un recuento de palabras en las l\u00edneas recibidas y luego almacena el recuento en Couchbase. Observe c\u00f3mo el \"idField\" se establece en \"value\" para que la propia palabra se utilice como ID del documento.<\/p>\n<p>Como nota final, recuerda que el Streaming Estructurado est\u00e1 marcado como experimental en Apache Spark, por lo que a medida que la implementaci\u00f3n cambie y madure, adaptaremos tambi\u00e9n nuestra implementaci\u00f3n. Dado que se trata de una nueva caracter\u00edstica tambi\u00e9n estamos buscando activamente comentarios e informes de errores.<\/p>\n<h3>V\u00e9alo en acci\u00f3n<\/h3>\n<p>Si quieres probarlo pero no tienes un ejemplo concreto sobre el que trabajar, te recomiendo que eches un vistazo a nuestro <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-spark-samples\">repositorio de muestras<\/a> que ofrece varios ejemplos basados en nuestro cubo \"muestra-viaje\".<\/p>\n<p>Si est\u00e1s en la Spark Summit Europe esta semana en Bruselas, hay una charla sobre el Conector llamada <a href=\"https:\/\/spark-summit.org\/eu-2016\/events\/spark-and-couchbase-augmenting-the-operational-database-with-spark\/\">\"Aumentar la base de datos operativa con Spark\"<\/a> donde tambi\u00e9n puede obtener m\u00e1s informaci\u00f3n sobre la motivaci\u00f3n y el funcionamiento interno.<\/p>\n<p>Por \u00faltimo, si se encuentra en la zona de la Bah\u00eda y\/o viene a <a href=\"https:\/\/www.couchbase.com\/blog\/es\/connect\/\">Couchbase Connect<\/a> habr\u00e1 varias presentaciones sobre Spark y su integraci\u00f3n con Couchbase Server, \u00a1y nos encantar\u00eda verte all\u00ed!<\/p>","protected":false},"excerpt":{"rendered":"<p>On behalf of the SDK team I&#8217;m happy to announce the release of the second major version of the Couchbase Spark Connector which most importantly brings compatibility with the Apache Spark 2.0.x series. A special thanks goes to community contributors [&hellip;]<\/p>","protected":false},"author":19,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1818],"tags":[],"ppma_author":[8987],"class_list":["post-2475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-java"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Spark Connector 2.0.0 Released - 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\/es\/couchbase-spark-connector-2-0-0-released\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Spark Connector 2.0.0 Released\" \/>\n<meta property=\"og:description\" content=\"On behalf of the SDK team I&#8217;m happy to announce the release of the second major version of the Couchbase Spark Connector which most importantly brings compatibility with the Apache Spark 2.0.x series. A special thanks goes to community contributors [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-spark-connector-2-0-0-released\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-27T05:14:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-23T10:14:59+00:00\" \/>\n<meta name=\"author\" content=\"Michael Nitschinger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@daschl\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Nitschinger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/\"},\"author\":{\"name\":\"Michael Nitschinger\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d\"},\"headline\":\"Couchbase Spark Connector 2.0.0 Released\",\"datePublished\":\"2016-10-27T05:14:43+00:00\",\"dateModified\":\"2023-06-23T10:14:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/\"},\"wordCount\":865,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\",\"Java\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/\",\"name\":\"Couchbase Spark Connector 2.0.0 Released - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-10-27T05:14:43+00:00\",\"dateModified\":\"2023-06-23T10:14:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#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\/couchbase-spark-connector-2-0-0-released\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Spark Connector 2.0.0 Released\"}]},{\"@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\/e5d4d332756da6f361dd88c1576de61d\",\"name\":\"Michael Nitschinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/95e178617974d46e3b02dd1754a3f60b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g\",\"caption\":\"Michael Nitschinger\"},\"description\":\"Michael Nitschinger works as a Principal Software Engineer at Couchbase. He is the architect and maintainer of the Couchbase Java SDK, one of the first completely reactive database drivers on the JVM. He also authored and maintains the Couchbase Spark Connector. Michael is active in the open source community, a contributor to various other projects like RxJava and Netty.\",\"sameAs\":[\"https:\/\/nitschinger.at\",\"https:\/\/x.com\/daschl\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/michael-nitschinger\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Spark Connector 2.0.0 Released - 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\/es\/couchbase-spark-connector-2-0-0-released\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Spark Connector 2.0.0 Released","og_description":"On behalf of the SDK team I&#8217;m happy to announce the release of the second major version of the Couchbase Spark Connector which most importantly brings compatibility with the Apache Spark 2.0.x series. A special thanks goes to community contributors [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-spark-connector-2-0-0-released\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-10-27T05:14:43+00:00","article_modified_time":"2023-06-23T10:14:59+00:00","author":"Michael Nitschinger","twitter_card":"summary_large_image","twitter_creator":"@daschl","twitter_misc":{"Written by":"Michael Nitschinger","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/"},"author":{"name":"Michael Nitschinger","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d"},"headline":"Couchbase Spark Connector 2.0.0 Released","datePublished":"2016-10-27T05:14:43+00:00","dateModified":"2023-06-23T10:14:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/"},"wordCount":865,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server","Java"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/","name":"Couchbase Spark Connector 2.0.0 Released - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-10-27T05:14:43+00:00","dateModified":"2023-06-23T10:14:59+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-2-0-0-released\/#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\/couchbase-spark-connector-2-0-0-released\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Spark Connector 2.0.0 Released"}]},{"@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\/e5d4d332756da6f361dd88c1576de61d","name":"Michael Nitschinger","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/95e178617974d46e3b02dd1754a3f60b","url":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","caption":"Michael Nitschinger"},"description":"Michael Nitschinger trabaja como Ingeniero de Software Principal en Couchbase. Es el arquitecto y mantenedor del SDK Java de Couchbase, uno de los primeros controladores de bases de datos completamente reactivos en la JVM. Tambi\u00e9n es autor y mantiene el conector Spark de Couchbase. Michael participa activamente en la comunidad de c\u00f3digo abierto, contribuyendo a otros proyectos como RxJava y Netty.","sameAs":["https:\/\/nitschinger.at","https:\/\/x.com\/daschl"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/michael-nitschinger\/"}]}},"authors":[{"term_id":8987,"user_id":19,"is_guest":0,"slug":"michael-nitschinger","display_name":"Michael Nitschinger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","author_category":"","last_name":"Nitschinger, Principal Software Engineer, Couchbase","first_name":"Michael","job_title":"","user_url":"https:\/\/nitschinger.at","description":"Michael Nitschinger trabaja como Ingeniero de Software Principal en Couchbase. Es el arquitecto y mantenedor del SDK Java de Couchbase, uno de los primeros controladores de bases de datos completamente reactivos en la JVM. Tambi\u00e9n es autor y mantiene el conector Spark de Couchbase. Michael participa activamente en la comunidad de c\u00f3digo abierto, contribuyendo a otros proyectos como RxJava y Netty."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2475","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\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2475"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2475"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}