{"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\/es\/apache-nifi-and-couchbase-server\/","title":{"rendered":"Apache NiFi y servidor Couchbase"},"content":{"rendered":"<p>Hola a todos Soy Koji, un ingeniero de soluciones que trabaja en Jap\u00f3n. Este es mi primer post en couchbase.com y estoy muy emocionado.<\/p>\n<p>En este blog, voy a explicar c\u00f3mo puedes integrar Couchbase Server con Apache NiFi.<\/p>\n<p><em>\u00cdndice<\/em>:<\/p>\n<ul>\n<li>\n<p><a href=\"#what-is-nifi\">Qu\u00e9 es NiFi<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#nifi-couchbase-and-me\">NiFi, Couchbase y yo<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#nifi-key-components\">Componentes clave de NiFi<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#process-group\">Organizar los flujos de datos por grupo de procesos<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#couchbaseclusterservice\">Configuraci\u00f3n de la conexi\u00f3n al servidor Couchbase: CouchbaseClusterService<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#putcouchbasekey\">Ejemplo de PutCouchbaseKey: Almacenar Tweets en Couchbase Server<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#getcouchbasekey\">GetCouchbaseKey ejemplo: Descargar documentos espec\u00edficos de Couchbase en un \u00fanico archivo Zip<\/a><\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"what-is-nifi\" name=\"what-is-nifi\"><\/a>Qu\u00e9 es NiFi<\/h2>\n<p><a href=\"https:\/\/nifi.apache.org\/\" style=\"text-decoration:none;\"><u>Apache NiFi<\/u><\/a> es un proyecto Apache de alto nivel que soporta grafos dirigidos potentes y escalables de enrutamiento de datos, transformaci\u00f3n y l\u00f3gica de mediaci\u00f3n de sistemas. Recientemente, Hortonworks anunci\u00f3 que proporciona <a href=\"https:\/\/hortonworks.com\/products\/dataflow\/\" style=\"text-decoration:none;\"><u>Hortonworks DataFlow<\/u><\/a> (HDF). NiFi se utiliza en HDF como motor central de procesamiento de flujos de datos para dar soporte a los casos de uso de IoAT (Internet of Anything). Para m\u00e1s informaci\u00f3n, consulte estos enlaces.<\/p>\n<h2><a id=\"nifi-couchbase-and-me\" name=\"nifi-couchbase-and-me\"><\/a>NiFi, Couchbase y yo<\/h2>\n<p>Mi t\u00edtulo oficial en Couchbase es 'Ingeniero de Soluciones', y la preventa es mi tarea principal. Sin embargo, tambi\u00e9n me encanta escribir c\u00f3digo. Escribir c\u00f3digo mantiene frescos mis conocimientos t\u00e9cnicos, lo que en \u00faltima instancia me ayuda a ofrecer mejores soluciones a nuestros clientes.<\/p>\n<p>Hace unos d\u00edas, un conjunto de procesadores NiFi para el acceso a Couchbase Server fue a\u00f1adido al c\u00f3digo base de Nifi. \u00a1La contribuci\u00f3n fue hecha por ME! Fue una gran experiencia trabajar con los committers de NiFi a trav\u00e9s de los detallados procesos de revisi\u00f3n. La exhaustiva <a href=\"https:\/\/nifi.apache.org\/developer-guide.html\" style=\"text-decoration:none;\"><u>gu\u00eda del desarrollador<\/u><\/a> documentaci\u00f3n me ayud\u00f3 mucho a meterme en el proyecto.<\/p>\n<p>En caso de que le interese saber c\u00f3mo funcionaba el proceso de contribuci\u00f3n, aqu\u00ed tiene algunos enlaces que puede consultar:<\/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: Procesadores del servidor Couchbase<\/u><\/a><\/p>\n<\/li>\n<li>\n<p>Solicitud de extracci\u00f3n: <a href=\"https:\/\/github.com\/apache\/nifi\/pull\/96\" style=\"text-decoration:none;\"><u>NIFI-992: A\u00f1adir nifi-couchbase-bundle<\/u><\/a><\/p>\n<\/li>\n<\/ul>\n<p>Vale, basta de introducci\u00f3n. Vamos a sumergirnos en las configuraciones de NiFi para describir c\u00f3mo integrar Couchbase Server.<\/p>\n<h2><a id=\"nifi-key-components\" name=\"nifi-key-components\"><\/a>Componentes clave de NiFi<\/h2>\n<p>Despu\u00e9s de descargar NiFi, puede iniciarlo y acceder al dise\u00f1ador de flujos de datos GUI a trav\u00e9s de su navegador. Estos son algunos de los componentes clave con los que debe familiarizarse:<\/p>\n<ul>\n<li>\n<p><em>FlowFile<\/em>: Cada dato transmitido dentro del flujo NiFi se transfiere como un objeto denominado <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/developer-guide.html#flowfile\" style=\"text-decoration:none;\"><u>FlowFile<\/u><\/a>. Tiene un contenido opaco y un conjunto arbitrario de atributos. S\u00ed, parece un archivo.<\/p>\n<\/li>\n<li>\n<p><em>Procesador<\/em>: Un peque\u00f1o m\u00f3dulo de procesamiento que se supone que es bueno en una sola tarea, algo as\u00ed como un comando de Linux. Actualmente hay unos 80 procesadores disponibles. Realizan funciones como el manejo de archivos, el acceso a bases de datos y el manejo de HTTP y otros protocolos.<\/p>\n<\/li>\n<li>\n<p><em>Relaci\u00f3n<\/em>: Cada procesador est\u00e1 conectado por una tuber\u00eda llamada Relaci\u00f3n. Algunos procesadores tienen m\u00faltiples relaciones como \u00e9xito, fracaso u original. El FlowFile procesado ser\u00e1 transferido al siguiente procesador a trav\u00e9s de esta relaci\u00f3n.<\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"process-group\" name=\"process-group\"><\/a>Organizar los flujos de datos por grupo de procesos<\/h2>\n<p>En NiFi Data Flow, un \"Grupo de Procesos\" puede ser muy \u00fatil cuando el flujo se vuelve m\u00e1s complejo. Te permite organizar m\u00faltiples flujos, entonces cada Grupo de Proceso puede ser iniciado\/detenido individualmente. En este flujo de datos de demostraci\u00f3n, he creado dos grupos de procesos, \"Tweets to Couchbase sample\" y \"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>Configuraci\u00f3n de la conexi\u00f3n al servidor Couchbase: CouchbaseClusterService<\/h2>\n<p>Perm\u00edtanme describir c\u00f3mo configurar una conexi\u00f3n a un cl\u00faster de Couchbase Server.<\/p>\n<p>Dentro de un flujo de datos NiFi realista, tendr\u00e1s que usar procesadores Couchbase varias veces para poner y obtener datos del cluster. As\u00ed que no ser\u00eda una buena idea configurar los ajustes de conexi\u00f3n en cada procesador. Si hicieras eso, ser\u00eda dif\u00edcil cambiar el cluster de destino porque los ajustes del cluster estar\u00edan dispersos por todas partes.<\/p>\n<p>Para evitar este problema, NiFi proporciona un mecanismo llamado ControllerService para configurar un componente central que puede ser compartido entre procesadores. NiFi incluye algunos Controller Services existentes como el que proporciona connection pooling a un RDBMS. As\u00ed que segu\u00ed el dise\u00f1o e implement\u00e9 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>Te permite establecer la Cadena de Conexi\u00f3n para especificar a qu\u00e9 cluster de Couchbase Server acceder. Si los buckets requieren una contrase\u00f1a, tambi\u00e9n puedes establecerla aqu\u00ed. La configuraci\u00f3n de NiFi tiene dos tipos de propiedades, est\u00e1ticas y din\u00e1micas. \"Connection String\" es est\u00e1tica, y \"Bucket Password for {bucket_name}\" es din\u00e1mica. Puede a\u00f1adir nuevas propiedades din\u00e1micas haciendo clic en el bot\u00f3n \"Nueva propiedad\" para especificar contrase\u00f1as para diferentes cubos.<\/p>\n<p>As\u00ed que, de nuevo, lo importante es que toda la configuraci\u00f3n a nivel de cluster es gestionada por este CouchbaseClusterService. Si quieres trabajar con otro cluster de Couchbase, simplemente a\u00f1ade otro CouchbaseClusterService y config\u00faralo apropiadamente.<\/p>\n<h2><a id=\"putcouchbasekey\" name=\"putcouchbasekey\"><\/a>Ejemplo de PutCouchbaseKey: Almacenar Tweets en Couchbase Server<\/h2>\n<p>El procesamiento de feeds de Twitter es un ejemplo com\u00fan que podemos utilizar para ilustrar el flujo de datos en streaming. Con NiFi y Couchbase, es incre\u00edblemente f\u00e1cil, como se muestra en la siguiente imagen:<\/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>: NiFi ha <a href=\"https:\/\/github.com\/apache\/nifi\/tree\/master\/nifi-nar-bundles\" style=\"text-decoration:none;\"><u>una variedad de procesadores \u00fatiles<\/u><\/a> como \u00e9ste, y puede integrarse f\u00e1cilmente con otros sistemas.<\/p>\n<\/li>\n<li>\n<p><em>PutCouchbaseKey<\/em>: Cada Tweet es enviado como un FlowFile. Aqu\u00ed, lo almaceno usando el UUID del FlowFile como el ID del documento de Couchbase. Como muestra la imagen, PutCouchbaseKey tiene una relaci\u00f3n de auto \"reintento\". Si un FlowFile falla con CouchbaseExceptions y puede ser reintentado, como podr\u00eda suceder con un error temporal del lado del servidor, entonces transfi\u00e9relo a la relaci\u00f3n \"retry\". Si el error no es recuperable, como un error de configuraci\u00f3n o alg\u00fan otro error duro, entonces esos FlowFiles son transferidos a la relaci\u00f3n \"failure\".<\/p>\n<\/li>\n<li>\n<p><em>LogAttibute<\/em>: He a\u00f1adido un procesador LogAttribute al final del flujo. El LogAttribute puede emitir mensajes de registro sobre las propiedades y contenidos de un FlowFile. Esto es \u00fatil para depurar cualquier problema que pueda surgir.<\/p>\n<\/li>\n<\/ol>\n<p>Veamos la configuraci\u00f3n de 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>Couchbase Cluster Controller Service se refiere al servicio controlador centralizado de Couchbase que se describi\u00f3 anteriormente.<\/p>\n<\/li>\n<li>\n<p>Nombre del cubo es el nombre del cubo en el que desea almacenar el contenido.<\/p>\n<\/li>\n<li>\n<p>El tipo de documento es Json o Binario.<\/p>\n<\/li>\n<li>\n<p>He dejado la propiedad Id Documento en blanco para que el procesador utilice el UUID de FlowFile como id del documento. Alternativamente, puede especificar <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/expression-language-guide.html\" style=\"text-decoration:none;\"><u>Lenguaje de expresi\u00f3n NiFi<\/u><\/a> aqu\u00ed para utilizar otro valor de propiedad o para calcular un id de documento.<\/p>\n<\/li>\n<\/ul>\n<p>Ahora que hemos configurado CouchbaseClusterService y los procesadores, vamos a iniciar NiFi Data Flow. Lo \u00fanico que tienes que hacer es pulsar el bot\u00f3n del tri\u00e1ngulo verde. \u00a1Entonces podr\u00e1s confirmar que los Tweets est\u00e1n siendo almacenados en 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>GetCouchbaseKey ejemplo: Descargar documentos espec\u00edficos de Couchbase en un \u00fanico archivo Zip<\/h2>\n<p>Es posible que desee descargar un conjunto determinado de documentos de Couchbase Server para enviarlos a otro sistema o para hacer una copia de seguridad parcial.<\/p>\n<p>Para ello, he configurado el flujo de datos como se ve en la siguiente imagen. Es m\u00e1s complejo que el ejemplo anterior de Twitter y utiliza algunos tipos diferentes de procesadores:<\/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>Voy a explicar qu\u00e9 hace cada procesador:<\/p>\n<ol>\n<li>\n<p><em>GetFile<\/em>: Vigila el directorio especificado y, una vez que se introduce en \u00e9l el archivo de destino, transfiere el contenido al siguiente procesador.<\/p>\n<\/li>\n<li>\n<p><em>SplitText<\/em>: Divide el contenido del fichero y env\u00eda cada l\u00ednea como un FlowFile.<\/p>\n<\/li>\n<li>\n<p><em>GetCouchbaseKey<\/em>: Obtiene un documento de Couchbase usando el contenido entrante de FlowFile como id de documento.<\/p>\n<\/li>\n<li>\n<p><em>ActualizarAtributo<\/em>: Con el fin de utilizar Couchbase documento id para el nombre de archivo real que se utiliza en el archivo Zip final, he copiado \"couchbase.doc.id\" atributo a \"nombre de archivo\" aqu\u00ed.<\/p>\n<\/li>\n<li>\n<p><em>FusionarContenido<\/em>: Fusiona y comprime m\u00faltiples FlowFiles en un \u00fanico archivo Zip.<\/p>\n<\/li>\n<li>\n<p><em>ActualizarAtributo<\/em>: Establece el nombre del archivo Zip en la fecha actual, utilizando la expresi\u00f3n \"${now():format('yyyyMMdd_HHmmss')}.zip\".<\/p>\n<\/li>\n<li>\n<p><em>PonerArchivo<\/em>: Por \u00faltimo, coloca el archivo Zip en el directorio especificado.<\/p>\n<\/li>\n<\/ol>\n<p>Los directorios y archivos reales tienen el siguiente aspecto:<\/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>Ahora echemos un vistazo a la configuraci\u00f3n de GetCouchbaseKey:<\/p>\n<ul>\n<li>\n<p>Al igual que PutCouchbaseKey, la conexi\u00f3n a Couchbase se configura en ControllerService<\/p>\n<\/li>\n<li>\n<p>Dej\u00e9 el Id de Documento en blanco, para permitirle usar el contenido entrante de FlowFile como id de documento. Tambi\u00e9n puede especificar Expression Language aqu\u00ed para construir un 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>Conclusi\u00f3n<\/h2>\n<p>\u00bfNo es fant\u00e1stico poder automatizar tareas como \u00e9stas sin tener que escribir ning\u00fan programa? Aunque de momento s\u00f3lo est\u00e1n disponibles procesadores de acceso simple clave\/valor, \u00a1puedes utilizarlo de forma creativa! Estoy planeando a\u00f1adir m\u00e1s procesadores para que puedas utilizar consultas View y N1QL desde NiFi, y estoy deseando volver a verte con nuevas funcionalidades.<br \/>\nGracias, y \u00a1feliz tratamiento de los datos!<\/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\/es\/apache-nifi-and-couchbase-server\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"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\/c01d42dc96c9d44c46e42448069642f4\",\"name\":\"Koji Kawamura, Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\/es\/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\/es\/apache-nifi-and-couchbase-server\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/apache-nifi-and-couchbase-server\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"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\/c01d42dc96c9d44c46e42448069642f4","name":"Koji Kawamura, Ingeniero de soluciones, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@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 fue Ingeniero de Soluciones para Couchbase en Tokio, Jap\u00f3n. Tiene experiencia en varias bases de datos NoSQL y en el ecosistema Hadoop. Ayuda a los clientes japoneses a que sus proyectos tengan \u00e9xito compartiendo las soluciones adecuadas y las mejores pr\u00e1cticas, y tambi\u00e9n impartiendo cursos de formaci\u00f3n oficiales de Couchbase para administradores y desarrolladores en Jap\u00f3n.","url":"https:\/\/www.couchbase.com\/blog\/es\/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 fue Ingeniero de Soluciones para Couchbase en Tokio, Jap\u00f3n. Tiene experiencia en varias bases de datos NoSQL y en el ecosistema Hadoop. Ayuda a los clientes japoneses a que sus proyectos tengan \u00e9xito compartiendo las soluciones adecuadas y las mejores pr\u00e1cticas, y tambi\u00e9n impartiendo cursos de formaci\u00f3n oficiales de Couchbase para administradores y desarrolladores en Jap\u00f3n."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1988","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\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1988"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1988\/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=1988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1988"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}