{"id":1988,"date":"2015-10-15T01:21:40","date_gmt":"2015-10-15T01:21:39","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1988"},"modified":"2015-10-15T01:21:40","modified_gmt":"2015-10-15T01:21:39","slug":"apache-nifi-and-couchbase-server","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/apache-nifi-and-couchbase-server\/","title":{"rendered":"Apache NiFi e servidor Couchbase"},"content":{"rendered":"<p>Ol\u00e1 a todos! Eu sou Koji, um engenheiro de solu\u00e7\u00f5es que trabalha no Jap\u00e3o. Esta \u00e9 minha primeira postagem no couchbase.com e estou muito animado!<\/p>\n<p>Neste blog, vou explicar como voc\u00ea pode integrar o Couchbase Server com o Apache NiFi.<\/p>\n<p><em>\u00cdndice<\/em>:<\/p>\n<ul>\n<li>\n<p><a href=\"#what-is-nifi\">O que \u00e9 NiFi<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#nifi-couchbase-and-me\">NiFi, Couchbase e eu<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#nifi-key-components\">Componentes principais do NiFi<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#process-group\">Organize os fluxos de dados por grupo de processos<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#couchbaseclusterservice\">Configura\u00e7\u00e3o de conex\u00e3o do servidor Couchbase: CouchbaseClusterService<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#putcouchbasekey\">Exemplo de PutCouchbaseKey: Armazenar tweets no servidor Couchbase<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#getcouchbasekey\">Exemplo de GetCouchbaseKey: Baixar documentos espec\u00edficos do Couchbase como um \u00fanico arquivo Zip<\/a><\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"what-is-nifi\" name=\"what-is-nifi\"><\/a>O que \u00e9 NiFi<\/h2>\n<p><a href=\"https:\/\/nifi.apache.org\/\" style=\"text-decoration:none;\"><u>Apache NiFi<\/u><\/a> \u00e9 um projeto de n\u00edvel superior da Apache que oferece suporte a gr\u00e1ficos direcionados avan\u00e7ados e dimension\u00e1veis de roteamento de dados, transforma\u00e7\u00e3o e l\u00f3gica de media\u00e7\u00e3o do sistema. Recentemente, a Hortonworks anunciou que fornece <a href=\"https:\/\/hortonworks.com\/products\/dataflow\/\" style=\"text-decoration:none;\"><u>Hortonworks DataFlow<\/u><\/a> (HDF). O NiFi \u00e9 usado no HDF como um mecanismo central de processamento de fluxo de dados para dar suporte a casos de uso de IoAT (Internet of Anything). Consulte esses links para obter mais informa\u00e7\u00f5es.<\/p>\n<h2><a id=\"nifi-couchbase-and-me\" name=\"nifi-couchbase-and-me\"><\/a>NiFi, Couchbase e eu<\/h2>\n<p>Meu t\u00edtulo oficial na Couchbase \u00e9 \"Engenheiro de solu\u00e7\u00f5es\", e a pr\u00e9-venda \u00e9 minha principal tarefa. No entanto, eu tamb\u00e9m adoro escrever c\u00f3digo. Escrever c\u00f3digo mant\u00e9m meu conhecimento t\u00e9cnico atualizado, o que, em \u00faltima an\u00e1lise, me ajuda a oferecer solu\u00e7\u00f5es melhores aos nossos clientes.<\/p>\n<p>H\u00e1 alguns dias, um conjunto de processadores NiFi para acesso ao Couchbase Server foi adicionado \u00e0 base de c\u00f3digo do Nifi. A contribui\u00e7\u00e3o foi feita pelo ME! Foi uma \u00f3tima experi\u00eancia trabalhar com os committers do NiFi durante os processos de revis\u00e3o detalhados. O abrangente <a href=\"https:\/\/nifi.apache.org\/developer-guide.html\" style=\"text-decoration:none;\"><u>guia do desenvolvedor<\/u><\/a> A documenta\u00e7\u00e3o realmente me ajudou a entrar no projeto.<\/p>\n<p>Caso voc\u00ea tenha interesse em saber como funcionava o processo de contribui\u00e7\u00e3o, aqui est\u00e3o alguns links para consulta:<\/p>\n<ul>\n<li>\n<p>JIRA: <a href=\"https:\/\/issues.apache.org\/jira\/browse\/NIFI-992\" style=\"text-decoration:none;\"><u>NIFI-992: Processadores do servidor Couchbase<\/u><\/a><\/p>\n<\/li>\n<li>\n<p>Solicita\u00e7\u00e3o de pull: <a href=\"https:\/\/github.com\/apache\/nifi\/pull\/96\" style=\"text-decoration:none;\"><u>NIFI-992: Adicionando o pacote nifi-couchbase<\/u><\/a><\/p>\n<\/li>\n<\/ul>\n<p>Ok, chega de introdu\u00e7\u00e3o. Vamos nos aprofundar nas configura\u00e7\u00f5es do NiFi para descrever como integrar o Couchbase Server!<\/p>\n<h2><a id=\"nifi-key-components\" name=\"nifi-key-components\"><\/a>Componentes principais do NiFi<\/h2>\n<p>Depois de fazer o download do NiFi, voc\u00ea pode inici\u00e1-lo e acessar o designer de fluxo de dados da GUI por meio do navegador. Aqui est\u00e3o alguns dos principais componentes com os quais voc\u00ea deve se familiarizar:<\/p>\n<ul>\n<li>\n<p><em>FlowFile<\/em>: Cada parte dos dados transmitidos no NiFi Flow \u00e9 transferida como um objeto chamado <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/developer-guide.html#flowfile\" style=\"text-decoration:none;\"><u>FlowFile<\/u><\/a>. Ele tem conte\u00fado opaco e um conjunto arbitr\u00e1rio de atributos. Sim, de fato, parece um arquivo.<\/p>\n<\/li>\n<li>\n<p><em>Processador<\/em>: Um pequeno m\u00f3dulo de processamento que deve ser bom em uma \u00fanica tarefa, como um comando do Linux. Atualmente, h\u00e1 cerca de 80 processadores dispon\u00edveis. Eles executam fun\u00e7\u00f5es como manipula\u00e7\u00e3o de arquivos, acesso a bancos de dados e manipula\u00e7\u00e3o de HTTP e outros protocolos.<\/p>\n<\/li>\n<li>\n<p><em>Relacionamento<\/em>: Cada processador \u00e9 conectado por um tubo chamado Relacionamento. Alguns processadores t\u00eam v\u00e1rios relacionamentos, como sucesso, falha ou original. O FlowFile processado ser\u00e1 transferido para o pr\u00f3ximo processador por meio dessa rela\u00e7\u00e3o.<\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"process-group\" name=\"process-group\"><\/a>Organize os fluxos de dados por grupo de processos<\/h2>\n<p>No NiFi Data Flow, um \"Process Group\" pode ser muito \u00fatil quando o fluxo se torna mais complexo. Ele permite que voc\u00ea organize v\u00e1rios fluxos e, em seguida, cada Process Group pode ser iniciado\/interrompido individualmente. Neste fluxo de dados de demonstra\u00e7\u00e3o, configurei dois Process Groups, \"Tweets to Couchbase sample\" e \"Dump Couchbase Documents sample\".<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-process-groups.jpg\" \/><\/p>\n<h2><a id=\"couchbaseclusterservice\" name=\"couchbaseclusterservice\"><\/a>Configura\u00e7\u00e3o de conex\u00e3o do servidor Couchbase: CouchbaseClusterService<\/h2>\n<p>Vou descrever como configurar uma conex\u00e3o com um cluster do Couchbase Server.<\/p>\n<p>Em um fluxo de dados NiFi realista, voc\u00ea ter\u00e1 de usar os processadores do Couchbase v\u00e1rias vezes para colocar e obter dados do cluster. Portanto, n\u00e3o seria uma boa ideia definir as configura\u00e7\u00f5es de conex\u00e3o em cada processador. Se voc\u00ea fizesse isso, seria dif\u00edcil alterar o cluster de destino porque as configura\u00e7\u00f5es do cluster estariam espalhadas por toda parte.<\/p>\n<p>Para evitar esse problema, o NiFi fornece um mecanismo chamado ControllerService para configurar um componente central que pode ser compartilhado entre os processadores. O NiFi inclui alguns Controller Services existentes, como o que fornece pooling de conex\u00e3o a um RDBMS. Portanto, segui o design e implementei o CouchbaseClusterService.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-couchbasectrl-properties.jpg\" \/><\/p>\n<p>Permite definir a cadeia de conex\u00e3o para especificar qual cluster do Couchbase Server deve ser acessado. Se os buckets exigirem uma senha, voc\u00ea tamb\u00e9m poder\u00e1 defini-la aqui. A configura\u00e7\u00e3o do NiFi tem dois tipos de propriedades: est\u00e1tica e din\u00e2mica. A \"Connection String\" \u00e9 est\u00e1tica, e a \"Bucket Password for {bucket_name}\" \u00e9 din\u00e2mica. Voc\u00ea pode adicionar novas configura\u00e7\u00f5es de propriedade din\u00e2mica clicando no bot\u00e3o \"New property\" para especificar senhas para diferentes buckets.<\/p>\n<p>Portanto, mais uma vez, o importante \u00e9 que toda a configura\u00e7\u00e3o em n\u00edvel de cluster \u00e9 gerenciada por esse CouchbaseClusterService. Se voc\u00ea quiser trabalhar com outro cluster do Couchbase, basta adicionar outro CouchbaseClusterService e configur\u00e1-lo adequadamente.<\/p>\n<h2><a id=\"putcouchbasekey\" name=\"putcouchbasekey\"><\/a>Exemplo de PutCouchbaseKey: Armazenar tweets no servidor Couchbase<\/h2>\n<p>O processamento do feed do Twitter \u00e9 um exemplo comum que podemos usar para ilustrar o fluxo de dados de streaming. Com o NiFi e o Couchbase, isso \u00e9 incrivelmente f\u00e1cil, como mostra a imagem a seguir:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-putcouchbasekey-df.jpg\" \/><\/p>\n<ol>\n<li>\n<p><em>GetTwitter<\/em>: A NiFi tem <a href=\"https:\/\/github.com\/apache\/nifi\/tree\/master\/nifi-nar-bundles\" style=\"text-decoration:none;\"><u>uma variedade de processadores \u00fateis<\/u><\/a> como esse, e pode ser facilmente integrado a outros sistemas.<\/p>\n<\/li>\n<li>\n<p><em>PutCouchbaseKey<\/em>: Cada Tweet \u00e9 enviado como um FlowFile. Aqui, eu o armazeno usando o UUID do FlowFile como o ID do documento do Couchbase. Como mostra a imagem, PutCouchbaseKey tem uma rela\u00e7\u00e3o de \"repeti\u00e7\u00e3o\" pr\u00f3pria. Se um FlowFile falhar com CouchbaseExceptions e puder ser tentado novamente, como pode acontecer com um erro tempor\u00e1rio do lado do servidor, transfira-o para o relacionamento \"retry\". Se o erro n\u00e3o for recuper\u00e1vel, como uma configura\u00e7\u00e3o incorreta ou algum outro erro grave, esses FlowFiles ser\u00e3o transferidos para o relacionamento \"failure\" (falha).<\/p>\n<\/li>\n<li>\n<p><em>Registro de atributos<\/em>: Adicionei um processador LogAttribute no final do fluxo. O LogAttribute pode emitir mensagens de registro sobre as propriedades e o conte\u00fado de um FlowFile. Isso \u00e9 \u00fatil para depurar quaisquer problemas que possam surgir.<\/p>\n<\/li>\n<\/ol>\n<p>Vamos dar uma olhada na configura\u00e7\u00e3o do PutCouchbaseKey:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-putcouchbasekey-config.jpg\" \/><\/p>\n<ul>\n<li>\n<p>O Couchbase Cluster Controller Service refere-se ao servi\u00e7o de controlador centralizado do Couchbase descrito anteriormente.<\/p>\n<\/li>\n<li>\n<p>Bucket Name (Nome do compartimento) \u00e9 o nome do compartimento no qual voc\u00ea deseja armazenar o conte\u00fado.<\/p>\n<\/li>\n<li>\n<p>O tipo de documento \u00e9 Json ou Bin\u00e1rio.<\/p>\n<\/li>\n<li>\n<p>Deixei a propriedade Document Id em branco para permitir que o processador use o UUID do FlowFile como ID do documento. Como alternativa, voc\u00ea poderia especificar <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/expression-language-guide.html\" style=\"text-decoration:none;\"><u>Linguagem de express\u00e3o NiFi<\/u><\/a> aqui para usar outro valor de propriedade ou para calcular um ID de documento.<\/p>\n<\/li>\n<\/ul>\n<p>Agora que j\u00e1 configuramos o CouchbaseClusterService e os processadores, vamos iniciar o NiFi Data Flow. A \u00fanica coisa que voc\u00ea precisa fazer \u00e9 apertar o bot\u00e3o do tri\u00e2ngulo verde. Ent\u00e3o, voc\u00ea poder\u00e1 confirmar que os Tweets est\u00e3o sendo armazenados no Couchbase!<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-putcouchbasekey-tweets-bucket.jpg\" \/><\/p>\n<h2><a id=\"getcouchbasekey\" name=\"getcouchbasekey\"><\/a>Exemplo de GetCouchbaseKey: Baixar documentos espec\u00edficos do Couchbase como um \u00fanico arquivo Zip<\/h2>\n<p>Talvez voc\u00ea queira fazer download de um determinado conjunto de documentos do Couchbase Server para envi\u00e1-los a outro sistema ou para fazer um backup parcial.<\/p>\n<p>Para fazer isso, configurei o fluxo de dados como voc\u00ea v\u00ea na imagem a seguir. Ele \u00e9 mais complexo do que o exemplo anterior do Twitter e usa alguns tipos diferentes de processadores:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-getcouchbasekey-df.jpg\" \/><\/p>\n<p>Vou explicar o que cada processador faz:<\/p>\n<ol>\n<li>\n<p><em>GetFile<\/em>: Observa o diret\u00f3rio especificado e, quando o arquivo de destino \u00e9 colocado nele, transfere o conte\u00fado para o pr\u00f3ximo processador.<\/p>\n<\/li>\n<li>\n<p><em>SplitText<\/em>: Divide o conte\u00fado do arquivo e envia cada linha como um FlowFile.<\/p>\n<\/li>\n<li>\n<p><em>GetCouchbaseKey<\/em>: Obt\u00e9m um documento do Couchbase usando o conte\u00fado do FlowFile de entrada como um ID de documento.<\/p>\n<\/li>\n<li>\n<p><em>UpdateAttribute<\/em>: Para usar o ID do documento do Couchbase para o nome de arquivo real que \u00e9 usado no arquivo Zip final, copiei o atributo \"couchbase.doc.id\" para \"filename\" aqui.<\/p>\n<\/li>\n<li>\n<p><em>Mesclar conte\u00fado<\/em>: Mescla e compacta v\u00e1rios FlowFiles em um \u00fanico arquivo Zip.<\/p>\n<\/li>\n<li>\n<p><em>UpdateAttribute<\/em>: Define o nome do arquivo Zip como a data atual, usando a express\u00e3o \"${now():format('yyyyMMdd_HHmmss')}.zip\"<\/p>\n<\/li>\n<li>\n<p><em>PutFile<\/em>: Finalmente, coloca o arquivo Zip no diret\u00f3rio especificado.<\/p>\n<\/li>\n<\/ol>\n<p>Os diret\u00f3rios e arquivos reais t\u00eam a apar\u00eancia abaixo:<\/p>\n<pre>\n<code># Directory and File\ndrwxr-xr-x  2 koji  wheel    68B Oct  2 16:19 couchbase-dump-in\/\ndrwxr-xr-x  2 koji  wheel    68B Oct  2 16:29 couchbase-dump-out\/\n-rw-r--r--  1 koji  wheel   111B Oct  2 16:25 in.dat\n\n# Specify Couchbase Document Ids to get\nkoji@Kojis-MacBook-Pro:tmp$ cat in.dat\n000069ee-cf4d-46bb-a11d-de09a00cd82c\n00021100-bb6c-4327-8cad-16474f5cd928\n0004b561-1ea4-4e46-8455-2040481d638e\n\n# GetFile deletes original file so that it won\u2019t be processed again.\n# It\u2019s recommended to create the file in different dir,\n# then put the file into the input dir.\n# (Optionally, you can keep the original file)\nkoji@Kojis-MacBook-Pro:tmp$ cp in.dat couchbase-dump-in\/\n\n# After NiFi processing, a Zip file is created.\nkoji@Kojis-MacBook-Pro:tmp$ ll couchbase-dump-out\/\ntotal 8\n-rw-r--r--  1 koji  wheel   3.8K Oct  2 16:51 20151002_165136.zip\n\n# Extract the Zip file and confirm JSON files are stored in it.\nkoji@Kojis-MacBook-Pro:couchbase-dump-out$ unzip 20151002_165136.zip\nArchive:  20151002_165136.zip\n  inflating: 000069ee-cf4d-46bb-a11d-de09a00cd82c\n  inflating: 00021100-bb6c-4327-8cad-16474f5cd928\n  inflating: 0004b561-1ea4-4e46-8455-2040481d638e<\/code><\/pre>\n<p>Agora vamos dar uma olhada na configura\u00e7\u00e3o do GetCouchbaseKey:<\/p>\n<ul>\n<li>\n<p>Assim como o PutCouchbaseKey, uma conex\u00e3o com o Couchbase \u00e9 configurada no ControllerService<\/p>\n<\/li>\n<li>\n<p>Deixei o Document Id em branco para permitir que ele usasse o conte\u00fado do FlowFile de entrada como id do documento. Voc\u00ea tamb\u00e9m pode especificar a Expression Language aqui para criar um ID de documento.<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/october\/apache-nifi-and-couchbase-server\/nifi-getcouchbasekey-config.jpg\" \/><\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>N\u00e3o \u00e9 fant\u00e1stico que voc\u00ea possa automatizar tarefas como essas sem precisar escrever nenhum programa? Embora apenas processadores simples de acesso a chave\/valor estejam dispon\u00edveis no momento, voc\u00ea pode us\u00e1-los de forma criativa! Estou planejando adicionar mais processadores para que voc\u00ea possa usar consultas View e N1QL do NiFi, e estou ansioso para v\u00ea-lo novamente com novas funcionalidades.<br \/>\nObrigado e feliz processamento de dados!<\/p>","protected":false},"excerpt":{"rendered":"<p>Hello everyone! I\u2019m Koji, a Solutions Engineer working in Japan. This is my first post under couchbase.com and I\u2019m really excited about it! In this blog, I\u2019m going to explain how you can integrate Couchbase Server with Apache NiFi. Table [&hellip;]<\/p>","protected":false},"author":61,"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":[1481],"ppma_author":[9035],"class_list":["post-1988","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-nifi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apache NiFi and Couchbase Server - 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\/apache-nifi-and-couchbase-server\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache NiFi and Couchbase Server\" \/>\n<meta property=\"og:description\" content=\"Hello everyone! I\u2019m Koji, a Solutions Engineer working in Japan. This is my first post under couchbase.com and I\u2019m really excited about it! In this blog, I\u2019m going to explain how you can integrate Couchbase Server with Apache NiFi. Table [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/apache-nifi-and-couchbase-server\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-10-15T01:21:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Koji Kawamura, Solutions Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Koji Kawamura, Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/\"},\"author\":{\"name\":\"Koji Kawamura, Solutions Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c01d42dc96c9d44c46e42448069642f4\"},\"headline\":\"Apache NiFi and Couchbase Server\",\"datePublished\":\"2015-10-15T01:21:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/\"},\"wordCount\":1338,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"NiFi\"],\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/\",\"name\":\"Apache NiFi and Couchbase Server - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-10-15T01:21:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#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\/apache-nifi-and-couchbase-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache NiFi and Couchbase Server\"}]},{\"@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\/c01d42dc96c9d44c46e42448069642f4\",\"name\":\"Koji Kawamura, Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/332f612d3f7b7211295380196da05a64\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/df29421870cf1829d95368759510ceaef1ba85b131d27c253acdde599772027a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/df29421870cf1829d95368759510ceaef1ba85b131d27c253acdde599772027a?s=96&d=mm&r=g\",\"caption\":\"Koji Kawamura, Solutions Engineer, Couchbase\"},\"description\":\"Koji was a Solutions Engineer for Couchbase in Tokyo, Japan. He has experience in various NoSQL databases and Hadoop eco-system. He helps Japanese customers to make their projects successful by sharing the right solutions and best practices, and also by instructing Couchbase official training courses for administrators and developers in Japan.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/koji-kawamura\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apache NiFi and Couchbase Server - 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\/apache-nifi-and-couchbase-server\/","og_locale":"pt_BR","og_type":"article","og_title":"Apache NiFi and Couchbase Server","og_description":"Hello everyone! I\u2019m Koji, a Solutions Engineer working in Japan. This is my first post under couchbase.com and I\u2019m really excited about it! In this blog, I\u2019m going to explain how you can integrate Couchbase Server with Apache NiFi. Table [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/apache-nifi-and-couchbase-server\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-10-15T01:21:39+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Koji Kawamura, Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Koji Kawamura, Solutions Engineer, Couchbase","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/"},"author":{"name":"Koji Kawamura, Solutions Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c01d42dc96c9d44c46e42448069642f4"},"headline":"Apache NiFi and Couchbase Server","datePublished":"2015-10-15T01:21:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/"},"wordCount":1338,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["NiFi"],"articleSection":["Uncategorized"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/","url":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/","name":"Apache NiFi and Couchbase Server - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-10-15T01:21:39+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/#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\/apache-nifi-and-couchbase-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache NiFi and Couchbase Server"}]},{"@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\/c01d42dc96c9d44c46e42448069642f4","name":"Koji Kawamura, engenheiro de solu\u00e7\u00f5es, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/332f612d3f7b7211295380196da05a64","url":"https:\/\/secure.gravatar.com\/avatar\/df29421870cf1829d95368759510ceaef1ba85b131d27c253acdde599772027a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/df29421870cf1829d95368759510ceaef1ba85b131d27c253acdde599772027a?s=96&d=mm&r=g","caption":"Koji Kawamura, Solutions Engineer, Couchbase"},"description":"Koji foi engenheiro de solu\u00e7\u00f5es da Couchbase em T\u00f3quio, Jap\u00e3o. Ele tem experi\u00eancia em v\u00e1rios bancos de dados NoSQL e no ecossistema Hadoop. Ele ajuda os clientes japoneses a tornar seus projetos bem-sucedidos, compartilhando as solu\u00e7\u00f5es certas e as pr\u00e1ticas recomendadas, al\u00e9m de ministrar cursos de treinamento oficiais do Couchbase para administradores e desenvolvedores no Jap\u00e3o.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/koji-kawamura\/"}]}},"authors":[{"term_id":9035,"user_id":61,"is_guest":0,"slug":"koji-kawamura","display_name":"Koji Kawamura, Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/df29421870cf1829d95368759510ceaef1ba85b131d27c253acdde599772027a?s=96&d=mm&r=g","author_category":"","last_name":"Kawamura","first_name":"Koji","job_title":"","user_url":"","description":"Koji foi engenheiro de solu\u00e7\u00f5es da Couchbase em T\u00f3quio, Jap\u00e3o. Ele tem experi\u00eancia em v\u00e1rios bancos de dados NoSQL e no ecossistema Hadoop. Ele ajuda os clientes japoneses a tornar seus projetos bem-sucedidos, compartilhando as solu\u00e7\u00f5es certas e as pr\u00e1ticas recomendadas, al\u00e9m de ministrar cursos de treinamento oficiais do Couchbase para administradores e desenvolvedores no Jap\u00e3o."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1988","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\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1988"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1988\/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=1988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1988"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}