¡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:
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 |
Exportaremos los datos de los nodos en este caso:
Deberíamos obtener como resultado un archivo CSV con los datos de los nodos en formato JSON.
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 |
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 |
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 |
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 |
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 |