Plantilla de Google Cloud a Neo4j

La plantilla Google Cloud a Neo4j te permite importar un conjunto de datos a una base de datos de Neo4j mediante una tarea de Dataflow, que obtiene los datos de archivos CSV alojados en segmentos de Cloud Storage. También te permite manipular y transformar los datos en varios pasos de la importación. Puede usar la plantilla para importaciones iniciales e incrementales.

Requisitos del flujo de procesamiento

  • Una instancia de Neo4j en ejecución
  • Un segmento de Cloud Storage
  • Un conjunto de datos que se va a importar en forma de archivos CSV
  • Un archivo de especificación de trabajo que se va a usar

Crear un archivo de especificación de tarea

El archivo de especificación de trabajo consta de un objeto JSON con las siguientes secciones:

  • config: marcas globales que afectan a la forma en que se realiza la importación.
  • sources: definiciones de fuentes de datos (relacionales).
  • targets: definiciones de destino de datos (gráfico: nodos/relaciones).
  • actions: acciones de precarga o postcarga.

Para obtener más información, consulta el artículo Crear un archivo de especificación de trabajo de la documentación de Neo4j.

Parámetros de plantilla

Parámetros obligatorios

  • jobSpecUri: la ruta al archivo de especificación del trabajo, que contiene la descripción JSON de las fuentes de datos, los destinos de Neo4j y las acciones.

Parámetros opcionales

  • neo4jConnectionUri: la ruta al archivo JSON de conexión de Neo4j.
  • neo4jConnectionSecretId: el ID secreto de los metadatos de conexión de Neo4j. Puede usar este valor como alternativa a neo4jConnectionUri.
  • optionsJson un objeto JSON que también se denomina tokens de tiempo de ejecución. Por ejemplo, {token1:value1,token2:value2}. Spec can refer to $token1 and $token2.. El valor predeterminado es una cadena vacía.
  • readQuery anulación de la consulta SQL. El valor predeterminado es una cadena vacía.
  • inputFilePattern la ruta de sustitución del archivo de texto. Por ejemplo, gs://your-bucket/path/*.json. El valor predeterminado es una cadena vacía.
  • disabledAlgorithms algoritmos separados por comas que se van a inhabilitar. Si se le asigna el valor none, no se inhabilita ningún algoritmo. Usa este parámetro con precaución, ya que los algoritmos inhabilitados de forma predeterminada pueden tener vulnerabilidades o problemas de rendimiento. Por ejemplo, SSLv3, RC4.
  • extraFilesToStage rutas de Cloud Storage o secretos de Secret Manager separados por comas de los archivos que se van a almacenar en el trabajador. Estos archivos se guardan en el directorio /extra_files de cada trabajador. Por ejemplo, gs://<BUCKET_NAME>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID>.

Ejecutar la plantilla

Consola

  1. Ve a la página Crear tarea a partir de plantilla de Dataflow.
  2. Ir a Crear tarea a partir de plantilla
  3. En el campo Nombre de la tarea, introduce un nombre único.
  4. Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es us-central1.

    Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de flujo de datos, seleccione the Google Cloud to Neo4j template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Google_Cloud_to_Neo4j \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       jobSpecUri=JOB_SPEC_URI,\
       neo4jConnectionUri=NEO4J_CONNECTION_URI,\

Haz los cambios siguientes:

  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • JOB_SPEC_URI: la ruta al archivo de especificación del trabajo
  • NEO4J_CONNECTION_URI: la ruta a los metadatos de conexión de Neo4j

API

Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "jobSpecUri": "JOB_SPEC_URI",
       "neo4jConnectionUri": "NEO4J_CONNECTION_URI",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Google_Cloud_to_Neo4j",
     "environment": { "maxWorkers": "10" }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de Dataflow
  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • LOCATION: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • JOB_SPEC_URI: la ruta al archivo de especificación del trabajo
  • NEO4J_CONNECTION_URI: la ruta a los metadatos de conexión de Neo4j

Siguientes pasos