{"id":1929,"date":"2015-05-06T16:27:56","date_gmt":"2015-05-06T16:27:56","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1929"},"modified":"2023-06-27T22:52:58","modified_gmt":"2023-06-28T05:52:58","slug":"couchbase-spark-connector-developer-preview-refresh","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-spark-connector-developer-preview-refresh\/","title":{"rendered":"Conector Couchbase Spark - Atualiza\u00e7\u00e3o da visualiza\u00e7\u00e3o para desenvolvedores"},"content":{"rendered":"<p>J\u00e1 faz algum tempo que n\u00e3o apresentamos <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-the-couchbase-spark-connector\/\">a primeira pr\u00e9via para desenvolvedores<\/a> do nosso nov\u00edssimo Couchbase Spark Connector. Por isso, achamos que era hora de fazer outra vers\u00e3o, com aprimoramentos e alguns recursos novos. Em especial:<\/p>\n<ol>\n<li>Suporte nativo para Spark SQL<\/li>\n<li>Suporte nativo para Spark Streaming<\/li>\n<li>Locais preferenciais para acesso a chave\/valor<\/li>\n<li>Atualiza\u00e7\u00f5es de depend\u00eancias<\/li>\n<\/ol>\n<p>O mais importante \u00e9 que agora usamos <a href=\"https:\/\/spark.apache.org\/releases\/spark-release-1-3-0.html\">Apache Spark 1.3<\/a>que ser\u00e1 a vers\u00e3o de destino para a vers\u00e3o GA do conector.<\/p>\n<p>Se voc\u00ea quiser mergulhar de cabe\u00e7a agora mesmo, aqui est\u00e3o as coordenadas:<\/p>\n<ol>\n<li>ID do grupo: com.couchbase.client<\/li>\n<li>ID do artefato: spark-connector_2.10 ou spark-connector_2.11<\/li>\n<li>Vers\u00e3o: 1.0.0-dp2<\/li>\n<\/ol>\n<p>Certifique-se de incluir o reposit\u00f3rio do Couchbase, pois ele \u00e9 uma vers\u00e3o preliminar:<\/p>\n<p>Al\u00e9m da depend\u00eancia simples do maven, agora tamb\u00e9m estamos dispon\u00edveis em <a href=\"https:\/\/spark-packages.org\/package\/couchbaselabs\/couchbase-spark-connector\">spark-packages.org<\/a>!<\/p>\n<h2>Suporte ao Spark SQL<\/h2>\n<p>O principal motivo da atualiza\u00e7\u00e3o para o Spark 1.3 \u00e9 o suporte \u00e0 nova API DataFrame. A nova API DataFrame \u00e9 baseada em SQL e nos permite integrar fortemente a implementa\u00e7\u00e3o espec\u00edfica de linguagem do couchbase, o N1QL. Isso proporciona uma experi\u00eancia perfeita de ponta a ponta, que \u00e9 familiar e totalmente integrada.<\/p>\n<p>O conector permite que voc\u00ea defina rela\u00e7\u00f5es (o Couchbase em si n\u00e3o imp\u00f5e um esquema) e voc\u00ea pode fornecer um esquema manualmente ou deixar que o conector o infira para voc\u00ea. Se quiser a infer\u00eancia autom\u00e1tica do esquema, \u00e9 uma boa ideia fornecer algum tipo de filtro (por exemplo, em um campo de tipo) para obter melhor precis\u00e3o. Ele carregar\u00e1 documentos de amostra de forma transparente e criar\u00e1 um esquema para voc\u00ea, que poder\u00e1 ser consultado.<\/p>\n<p>Aqui est\u00e1 um exemplo com a amostra de viagem atual:<\/p>\n<p>Isso primeiro imprimir\u00e1 um esquema como:<\/p>\n<p>E, em seguida, os resultados no formato de:<\/p>\n<p>Embora seja \u00f3timo trabalhar com isso, o verdadeiro poder vem quando voc\u00ea deseja combinar DataFrames de fontes diferentes. O exemplo a seguir busca dados do HDFS e do Couchbase e os consulta em conjunto:<\/p>\n<p>Observe que atualmente n\u00e3o h\u00e1 suporte para objetos e matrizes JSON aninhados, mas haver\u00e1 na pr\u00f3xima vers\u00e3o. Eles podem aparecer no esquema, mas falhar\u00e3o durante o tempo de consulta (quando voc\u00ea quiser consultar um desses campos ou incluir no resultado).<\/p>\n<h2>Suporte ao Spark Streaming<\/h2>\n<p>A primeira visualiza\u00e7\u00e3o do desenvolvedor j\u00e1 oferecia suporte para a grava\u00e7\u00e3o de dados de um Spark Stream no Couchbase. Nesta visualiza\u00e7\u00e3o para desenvolvedores, adicionamos suporte experimental para a utiliza\u00e7\u00e3o do nosso protocolo \"DCP\" para alimentar o Spark com muta\u00e7\u00f5es e informa\u00e7\u00f5es de instant\u00e2neos o mais r\u00e1pido poss\u00edvel. Voc\u00ea pode usar isso para fazer uma an\u00e1lise quase em tempo real dos dados \u00e0 medida que eles chegam ao cluster do Couchbase.<\/p>\n<p>Observe que, no momento, o suporte a snapshot e revers\u00e3o n\u00e3o est\u00e1 implementado, portanto, o failover e o rebalanceamento n\u00e3o funcionar\u00e3o como esperado.<\/p>\n<p>Aqui est\u00e1 um exemplo simples de como alimentar as altera\u00e7\u00f5es de seu balde:<\/p>\n<p>Isso \u00e9 tudo o que voc\u00ea precisa fazer neste momento. Certifique-se de test\u00e1-lo em um bucket vazio, pois atualmente ele tamb\u00e9m fornecer\u00e1 todos os dados do bucket. Os recursos para iniciar no instant\u00e2neo atual ser\u00e3o adicionados em uma vers\u00e3o futura. Se voc\u00ea executar o c\u00f3digo e depois escrever documentos no bucket, o Spark Streaming o notificar\u00e1 sobre essas altera\u00e7\u00f5es:<\/p>\n<p>Em seguida, voc\u00ea pode filtrar as muta\u00e7\u00f5es e executar qualquer tipo de opera\u00e7\u00e3o de fluxo sobre elas, inclusive aliment\u00e1-las em um algoritmo de aprendizado de m\u00e1quina ou armazen\u00e1-las em um armazenamento de dados diferente ap\u00f3s o processamento (ou at\u00e9 mesmo de volta ao couchbase).<\/p>\n<h2>Locais preferenciais para acesso a chave\/valor<\/h2>\n<p>Um dos fatores que prejudicam o desempenho ao usar o Spark s\u00e3o as opera\u00e7\u00f5es de embaralhamento. Um \"shuffle\" \u00e9 uma opera\u00e7\u00e3o que envolve a transfer\u00eancia de dados de um trabalhador para outro pela rede. Como o tr\u00e1fego de rede \u00e9 sempre ordens de magnitude mais lento do que o processamento na mem\u00f3ria, o embaralhamento precisa ser evitado o m\u00e1ximo poss\u00edvel.<\/p>\n<p>Quando voc\u00ea est\u00e1 carregando documentos por meio de seus IDs exclusivos, o conector agora sempre (e de forma transparente) indica ao Spark onde o documento est\u00e1 localizado no Couchbase. Como resultado, se voc\u00ea implantar um Spark Worker em cada n\u00f3 do Couchbase, o Spark ser\u00e1 inteligente o suficiente para despachar a tarefa diretamente para esse worker, eliminando a necessidade de transferir o documento pela rede e permitindo o processamento local.<\/p>\n<p>Como o local \u00e9 apenas uma dica, voc\u00ea ainda pode executar seus workers em n\u00f3s diferentes e o Spark os despachar\u00e1 adequadamente se n\u00e3o conseguir encontrar uma correspond\u00eancia perfeita.<\/p>\n<p>No futuro, tamb\u00e9m planejamos locais preferenciais para pesquisas N1QL e View com base no n\u00f3 de destino em que a consulta ser\u00e1 executada.<\/p>\n<h2>Recursos planejados e pr\u00f3ximas etapas<\/h2>\n<p>Embora essa vers\u00e3o nos aproxime da conclus\u00e3o, ainda temos muitas coisas a concluir. O pr\u00f3ximo marco ser\u00e1 uma vers\u00e3o beta e incluir\u00e1 recursos como a API java, aprimoramentos no suporte ao Spark SQL e Streaming e, \u00e9 claro, corre\u00e7\u00f5es e melhorias de estabilidade \u00e0 medida que as encontrarmos.<\/p>\n<p>Como ainda n\u00e3o chegamos \u00e0 vers\u00e3o beta, forne\u00e7a o m\u00e1ximo de feedback poss\u00edvel para que possamos alterar a API conforme necess\u00e1rio.<\/p>","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a while since we&#8217;ve introduced the first developer preview of our brand new Couchbase Spark Connector. So we thought it&#8217;s time for another release, providing enhancements and a handful of new features. In particular: Native Support for Spark [&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":[1],"tags":[],"ppma_author":[8987],"class_list":["post-1929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Spark Connector - Developer Preview Refresh<\/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\/couchbase-spark-connector-developer-preview-refresh\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Spark Connector - Developer Preview Refresh\" \/>\n<meta property=\"og:description\" content=\"It&#8217;s been a while since we&#8217;ve introduced the first developer preview of our brand new Couchbase Spark Connector. So we thought it&#8217;s time for another release, providing enhancements and a handful of new features. In particular: Native Support for Spark [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-spark-connector-developer-preview-refresh\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-06T16:27:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-28T05:52:58+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-developer-preview-refresh\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/\"},\"author\":{\"name\":\"Michael Nitschinger\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d\"},\"headline\":\"Couchbase Spark Connector &#8211; Developer Preview Refresh\",\"datePublished\":\"2015-05-06T16:27:56+00:00\",\"dateModified\":\"2023-06-28T05:52:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/\"},\"wordCount\":813,\"commentCount\":11,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/\",\"name\":\"Couchbase Spark Connector - Developer Preview Refresh\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-05-06T16:27:56+00:00\",\"dateModified\":\"2023-06-28T05:52:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#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-developer-preview-refresh\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Spark Connector &#8211; Developer Preview Refresh\"}]},{\"@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\/e5d4d332756da6f361dd88c1576de61d\",\"name\":\"Michael Nitschinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/pt\/author\/michael-nitschinger\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Spark Connector - Developer Preview Refresh","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\/couchbase-spark-connector-developer-preview-refresh\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase Spark Connector - Developer Preview Refresh","og_description":"It&#8217;s been a while since we&#8217;ve introduced the first developer preview of our brand new Couchbase Spark Connector. So we thought it&#8217;s time for another release, providing enhancements and a handful of new features. In particular: Native Support for Spark [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-spark-connector-developer-preview-refresh\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-05-06T16:27:56+00:00","article_modified_time":"2023-06-28T05:52:58+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-developer-preview-refresh\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/"},"author":{"name":"Michael Nitschinger","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d"},"headline":"Couchbase Spark Connector &#8211; Developer Preview Refresh","datePublished":"2015-05-06T16:27:56+00:00","dateModified":"2023-06-28T05:52:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/"},"wordCount":813,"commentCount":11,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/","name":"Couchbase Spark Connector - Developer Preview Refresh","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-05-06T16:27:56+00:00","dateModified":"2023-06-28T05:52:58+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-spark-connector-developer-preview-refresh\/#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-developer-preview-refresh\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Spark Connector &#8211; Developer Preview Refresh"}]},{"@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\/e5d4d332756da6f361dd88c1576de61d","name":"Michael Nitschinger","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 trabalha como engenheiro de software principal na Couchbase. Ele \u00e9 o arquiteto e mantenedor do Couchbase Java SDK, um dos primeiros drivers de banco de dados totalmente reativos na JVM. Ele tamb\u00e9m \u00e9 o autor e mantenedor do Couchbase Spark Connector. Michael participa ativamente da comunidade de c\u00f3digo aberto e contribui para v\u00e1rios outros projetos, como RxJava e Netty.","sameAs":["https:\/\/nitschinger.at","https:\/\/x.com\/daschl"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/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 trabalha como engenheiro de software principal na Couchbase. Ele \u00e9 o arquiteto e mantenedor do Couchbase Java SDK, um dos primeiros drivers de banco de dados totalmente reativos na JVM. Ele tamb\u00e9m \u00e9 o autor e mantenedor do Couchbase Spark Connector. Michael participa ativamente da comunidade de c\u00f3digo aberto e contribui para v\u00e1rios outros projetos, como RxJava e Netty."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1929","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\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1929"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1929\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1929"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}