Importa datos relacionales en Neo4j utilizando Apache Hop con nuestra guía dedicada de Salida a...
Exporta datos desde Neo4j utilizando Apache Hop - Neo4j Cypher
Introducción
¡Hola! En este te guiaremos en cómo exportar datos de una base de datos de Neo4j a archivos CSV utilizando el complemento de Apache Hop para Cypher.
Si estás aquí, supongo que ya conoces Neo4j y Apache Hop. Digamos que tener una comprensión básica del modelo de grafos de propiedades es el único requisito para completar la tarea.
La idea es exportar datos de una base de datos Neo4j utilizando el transformador (plugin) Neo4j Cypher y cargar los datos en archivos CSV. Puedes encontrar el código y los archivos en el repositorio público how-to-apache-hop.
Podemos dividir la tarea en pequeños pasos:
- Primero, necesitamos identificar los datos que vamos a exportar y el formato.
- Implementar una canalización (pipeline) para obtener las etiquetas de los nodos y ejecutar otra canalización (pipeline) para generar los archivos CSV.
- Implementar una canalización (pipeline) para extraer los datos de los nodos y cargarlos en los archivos CSV.
La base de datos de grafo
Vamos a utilizar una base de datos Neo4j de ejemplo creada en publicaciones anteriores. Puedes consultar Importando datos relacionales a Neo4j con Apache Hop - Graph Output y Importación de Datos Relacionales a Neo4j usando Apache Hop - Neo4j Output.
La base de datos de grafos dvdrental representa los procesos comerciales de una tienda de alquiler de DVD, incluidos datos sobre las películas, los actores y los datos demográficos del personal.
El esquema del grafo dvdrental:
![]() |
Esquema de la base de datos grafo dvdrental |
Paso 1: Identificar los datos a exportar y el formato
Exportaremos los datos de los nodos en este caso:
- Actor
- Film
- Language
- Category
Deberíamos obtener como resultado un archivo CSV con los datos de los nodos en formato JSON.
Paso 2: Implementar una canalización (pipeline) para obtener las etiquetas de los nodos
Para tener la menor cantidad de código posible, implementaremos solo dos canalizaciones (pipelines) para completar la tarea. ¿Cómo? Porque en Apache Hop podemos utilizar el plugin Ejecutor de Pipeline (Pipeline executor).
Veámoslo en una imagen:
![]() |
Implementación de Pipeline executor |
La primera canalización (pipeline) obtendrá todas las etiquetas de nodo ejecutando una consulta Cypher y luego ejecutará otro pipeline (usando el transformador Ejecutor de Pipeline) para generar los archivos CSV. Generaremos un archivo CSV por cada etiqueta de nodo.
![]() |
Pipeline export_labels.hpl |
La segunda canalización (pipeline) se utiliza como una plantilla y extraerá los datos del nodo mediante una consulta Cypher para generar un archivo CSV.
Configuremos la canalización (pipeline) export_labels.hpl
Transformación Neo4j Cypher
Primero, configure una transformación Neo4j Cypher para obtener las etiquetas de los nodos.
Pestaña Options
Establece el nombre del transformador y selecciona la conexión a la base de datos de Neo4j.
![]() |
Transformation Neo4j Cypher - Pestaña Options |
- Nombre de la transformación (Transform name): el nombre de esta transformación en la canalización (pipeline) (write-graph).
- Conexión Neo4j (Neo4j Connection): select the Neo4j connection to write the graph to (neo4j-connection).
Pestaña Cypher
Escribe la consulta Cypher.
![]() |
Neo4j Cypher - Pestaña Cypher |
Pestaña Returns
Utiliza la opción "Obtener campos de salida" (Get Output Fields) para mostrar los campos de resultado de la consulta.
![]() |
Neo4j Cypher - Pestaña Return |
![]() |
Previsualiza Neo4j Cypher |
A continuación, configure la transformación JavaScript para construir las consultas Cypher. Construya las consultas Cypher concatenando el código con el campo de etiqueta.
![]() |
Transformación JavaScript |
Si previsualizas (Preview) los resultados, deberías ver la consulta Cypher para obtener los datos del nodo según la etiqueta::
![]() |
Previsualiza JavaScript |
Transformación Pipeline executor
Finalmente, necesitamos ejecutar otra canalización (pipeline) que obtenga los datos de la consulta Cypher y cargue los datos en un archivo CSV. Utilizamos el complemento Ejecutor de canalización (Pipeline executor) con los campos etiqueta y cypher como parámetros
![]() |
Pipeline export_labels.hpl |
Establece la ruta hacia la nueva canalización (pipeline) y añade los parámetros.
![]() |
Transformación Pipeline executor |
Paso 3: Implementa una canalización (pipeline) para escribir las etiquetas de los nodos
La segunda canalización (pipeline) extraerá los datos del nodo y generará un archivo CSV con el nombre de la etiqueta.
![]() |
Pipeline export_nodes.hpl |
![]() |
Transformación Get variables |
- Nombre de la transformación (Transform name): elige el nombre del transformador (get-cypher).
- Nombre (Name): elige el nombre del campo (cypher).
- Variable: establece la variable para obtener el valor (${CYPHER}).
- Tipo (Type): especifica el tipo de campo (String).
Transformación Neo4j Cypher
A continuación, configure la transformación Neo4j Cypher (Neo4j Cypher) para obtener los datos utilizando el campo cypher creado previamente que almacena la consulta.
Pestaña Options
![]() |
Transformación Neo4j Cypher - Pestaña Options |
- Nombre de la transformación (Transform name): establezca el nombre del transformador.
- Marque la opción Obtener Cypher del campo de entrada (Get Cypher from the input field) y seleccione el campo cypher.
Pestaña Returns
Configure la salida basada en el retorno de la consulta:
MATCH (n:Language) RETURN n;
![]() |
Transformación Neo4j Cypher - Pestaña Returns |
Transformación Text file output
Finalmente, configura la transformación Text file output.
Pestaña File
![]() |
Transformación Text file output - Pestaña Fields |
- Nombre (Name): el campo de salida en la consulta Cypher (n).
- Tipo (Type): establece el tipo de datos (String).
Los archivos CSV generados
- Actor.csv
- Category.csv
- Film.csv
- Language.csv