{"id":2202,"date":"2016-03-23T07:48:55","date_gmt":"2016-03-23T07:48:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2202"},"modified":"2025-06-13T17:24:44","modified_gmt":"2025-06-14T00:24:44","slug":"create-a-zeppelin-interpreter-for-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/create-a-zeppelin-interpreter-for-couchbase\/","title":{"rendered":"Criar um interpretador Zeppelin para o Couchbase"},"content":{"rendered":"<p>Comecei a usar o Zeppelin recentemente. Ele \u00e9 um excelente notebook baseado na Web que permite an\u00e1lises em tempo real. Ele oferece suporte a uma variedade de back-ends por meio do conceito de <a href=\"https:\/\/zeppelin.incubator.apache.org\/docs\/latest\/manual\/interpreters.html\">int\u00e9rpretes<\/a>.<\/p>\n<blockquote><p>O Zeppelin Interpreter \u00e9 o plug-in que permite que o usu\u00e1rio do Zeppelin use uma linguagem\/backend de processamento de dados espec\u00edfico. Por exemplo, para usar o c\u00f3digo scala no Zeppelin, voc\u00ea precisa do interpretador spark.<\/p><\/blockquote>\n<p>Voc\u00ea j\u00e1 pode fazer algum trabalho relacionado ao Couchbase usando o interpretador Spark e o <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/connectors\/spark-1.0\/spark-intro.html\">Conector do Couchbase Spark<\/a>. Mas eu s\u00f3 quero executar algumas consultas N1QL em pads, como com Spark SQL e DataFrames. Portanto, preciso criar um interpretador N1QL do Couchbase. Fazer isso \u00e9 f\u00e1cil e <a href=\"https:\/\/zeppelin.incubator.apache.org\/docs\/latest\/development\/writingzeppelininterpreter.html\">documentado<\/a>Voc\u00ea precisa de apenas uma classe.<\/p>\n<p>Essa classe deve estender a classe abstrata <a href=\"https:\/\/github.com\/apache\/incubator-zeppelin\/blob\/master\/zeppelin-interpreter\/src\/main\/java\/org\/apache\/zeppelin\/interpreter\/Interpreter.java\">org.apache.zeppelin.interpreter.Interpreter<\/a> resultando na implementa\u00e7\u00e3o dos seguintes m\u00e9todos abstratos: <code>aberto<\/code>, <code>pr\u00f3ximo<\/code>, <code>interpretar<\/code>, <code>getFormType<\/code>, <code>getProgress<\/code>, <code>conclus\u00e3o<\/code>.<\/p>\n<p>Foi basicamente o que fiz aqui:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/ldoguin\/833f69d7282bbd9a195d.js\"><\/script><\/p>\n<p><code>aberto<\/code> e <code>pr\u00f3ximo<\/code> s\u00e3o respons\u00e1veis, respectivamente, por abrir e fechar a conex\u00e3o com o Cluster e o Bucket. O m\u00e9todo interpret \u00e9 aquele chamado quando voc\u00ea executa o pad. \u00c9 nele que voc\u00ea transforma o texto do bloco no que quiser. Para esse interpretador, pegarei uma consulta N1QL, a executarei e transformarei o resultado para que possa ser usado no Zeppelin. Aqui, transformar significa achatar os documentos JSON resultantes, pois tudo precisa estar em um formato de tabela.<\/p>\n<p>Agora posso executar qualquer consulta N1QL que eu quiser. Aqui est\u00e1 um exemplo simples extra\u00eddo do bucket de amostra de jogos:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/march\/create-a-zeppelin-interpreter-for-couchbase\/gamesample.png\" \/><\/p>\n<p>Voc\u00ea pode ver um quadro de l\u00edderes no canto inferior esquerdo, a lista de jogadores classificada por n\u00edvel no canto superior esquerdo e a distribui\u00e7\u00e3o de itens por jogador tamb\u00e9m classificada por n\u00edvel. Voc\u00ea pode ver que n\u00e3o h\u00e1 correla\u00e7\u00e3o entre o n\u00edvel do jogador e o n\u00famero de itens que ele tem. A consulta subjacente est\u00e1 usando um JOIN, que est\u00e1 dispon\u00edvel nativamente com o N1QL.<\/p>\n<p>Agora, h\u00e1 muitos outros recursos que poder\u00edamos adicionar. Presumo que o primeiro que vem \u00e0 mente quando voc\u00ea conhece o Zeppelin \u00e9 o autocompletar. Ele pode ser \u00fatil em muitas situa\u00e7\u00f5es, seja para palavras-chave N1QL ou campos json. Na verdade, temos esse recurso dispon\u00edvel no <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/developer-guide\/query-workbench-intro.html\">IU de consulta<\/a> se voc\u00ea inserir o <code>guia<\/code> ou <code>Ctrl+Espa\u00e7o<\/code>. Outros recursos interessantes poderiam ser o suporte de visualiza\u00e7\u00f5es, especialmente para consultas geoespaciais, e do Couchbase FTS. Iniciei o desenvolvimento do plug-in em <a href=\"https:\/\/github.com\/ldoguin\/incubator-zeppelin\/tree\/ZEPPELIN-756_addCouchbaseSupport\">Github<\/a>e voc\u00ea pode segui-lo no Apache <a href=\"https:\/\/issues.apache.org\/jira\/browse\/ZEPPELIN-756\">rastreador de problemas<\/a>. Como sempre, coment\u00e1rios e contribui\u00e7\u00f5es s\u00e3o mais do que bem-vindos!<\/p>","protected":false},"excerpt":{"rendered":"<p>I have started playing with Zeppelin recently. It&apos;s a great web-based notebook that enables real-time analytics. It supports a variety of backends through the concept of interpreters. Zeppelin Interpreter is the plug-in which enable zeppelin user to use a specific [&hellip;]<\/p>\n","protected":false},"author":49,"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,1812],"tags":[1609],"ppma_author":[9023],"class_list":["post-2202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-n1ql-query","tag-zeppelin"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Create a Zeppelin Interpreter for Couchbase - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/create-a-zeppelin-interpreter-for-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a Zeppelin Interpreter for Couchbase\" \/>\n<meta property=\"og:description\" content=\"I have started playing with Zeppelin recently. It&amp;apos;s a great web-based notebook that enables real-time analytics. It supports a variety of backends through the concept of interpreters. Zeppelin Interpreter is the plug-in which enable zeppelin user to use a specific [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/create-a-zeppelin-interpreter-for-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-23T07:48:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:24:44+00:00\" \/>\n<meta name=\"author\" content=\"Laurent Doguin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ldoguin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"unstructured.io\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Create a Zeppelin Interpreter for Couchbase\",\"datePublished\":\"2016-03-23T07:48:55+00:00\",\"dateModified\":\"2025-06-14T00:24:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/\"},\"wordCount\":420,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"keywords\":[\"zeppelin\"],\"articleSection\":[\"Couchbase Server\",\"SQL++ \\\/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/\",\"name\":\"Create a Zeppelin Interpreter for Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-03-23T07:48:55+00:00\",\"dateModified\":\"2025-06-14T00:24:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#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\\\/create-a-zeppelin-interpreter-for-couchbase\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Zeppelin Interpreter for Couchbase\"}]},{\"@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\\\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\",\"name\":\"Laurent Doguin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g12929ce99397769f362b7a90d6b85071\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"caption\":\"Laurent Doguin\"},\"description\":\"Laurent is a nerdy metal head who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/ldoguin\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1985-06-07\",\"gender\":\"male\",\"award\":[\"Devoxx Champion\",\"Couchbase Legend\"],\"knowsAbout\":[\"Java\"],\"knowsLanguage\":[\"English\",\"French\"],\"jobTitle\":\"Director Developer Relation & Strategy\",\"worksFor\":\"Couchbase\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/pt\\\/author\\\/laurent-doguin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Create a Zeppelin Interpreter for Couchbase - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/create-a-zeppelin-interpreter-for-couchbase\/","og_locale":"pt_BR","og_type":"article","og_title":"Create a Zeppelin Interpreter for Couchbase","og_description":"I have started playing with Zeppelin recently. It&apos;s a great web-based notebook that enables real-time analytics. It supports a variety of backends through the concept of interpreters. Zeppelin Interpreter is the plug-in which enable zeppelin user to use a specific [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/create-a-zeppelin-interpreter-for-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-03-23T07:48:55+00:00","article_modified_time":"2025-06-14T00:24:44+00:00","author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Create a Zeppelin Interpreter for Couchbase","datePublished":"2016-03-23T07:48:55+00:00","dateModified":"2025-06-14T00:24:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/"},"wordCount":420,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["zeppelin"],"articleSection":["Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/","name":"Create a Zeppelin Interpreter for Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-03-23T07:48:55+00:00","dateModified":"2025-06-14T00:24:44+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/create-a-zeppelin-interpreter-for-couchbase\/#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\/create-a-zeppelin-interpreter-for-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Create a Zeppelin Interpreter for Couchbase"}]},{"@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\/c0aa9b8f1ed51b7a9e2f7cb755994a5e","name":"Laurent Doguin","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g12929ce99397769f362b7a90d6b85071","url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","caption":"Laurent Doguin"},"description":"Laurent \u00e9 um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve c\u00f3digo em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programa\u00e7\u00e3o reativa e outras coisas que est\u00e3o na moda. Ele tamb\u00e9m foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experi\u00eancia para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Rela\u00e7\u00f5es com Desenvolvedores na Couchbase.","sameAs":["https:\/\/x.com\/ldoguin"],"honorificPrefix":"Mr","birthDate":"1985-06-07","gender":"male","award":["Devoxx Champion","Couchbase Legend"],"knowsAbout":["Java"],"knowsLanguage":["English","French"],"jobTitle":"Director Developer Relation & Strategy","worksFor":"Couchbase","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/laurent-doguin\/"}]}},"acf":[],"authors":[{"term_id":9023,"user_id":49,"is_guest":0,"slug":"laurent-doguin","display_name":"Laurent Doguin","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2202","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\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2202"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2202\/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=2202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2202"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}