Importación por lotes de base de datos de gráficos (HugeGraph-Loader)

Importación por lotes de base de datos de gráficos (HugeGraph-Loader)


Capítulo
Capítulo 1 Enlace: Importación por lotes de la base de datos de gráficos (HugeGraph-Loader)

prefacio

HugeGraph-Loader es el componente de importación de datos de HugeGraph, que puede convertir datos de varias fuentes de datos en vértices y bordes de gráficos e importarlos a la base de datos de gráficos en lotes.
Las fuentes de datos admitidas actualmente incluyen:

  1. Archivos o directorios del disco local, admite archivos de formato TEXTO, CSV y JSON, admite archivos comprimidos
  2. Archivo o directorio HDFS, soporte para archivos comprimidos
  3. Las bases de datos relacionales convencionales, como MySQL, PostgreSQL, Oracle, archivos de disco local de SQL Server y archivos HDFS, admiten cargas reanudables.

1. Proceso de ejecución del cargador

El proceso básico de uso de HugeGraph-Loader se divide en los siguientes pasos:

  1. Escribe un modelo gráfico
  2. Preparar archivos de datos
  3. Escribir el archivo de mapa de origen de entrada
  4. Ejecutar importación de comandos

Dos, importación de archivos csv

1. Archivo de mapeo de datos

El archivo de asignación de datos es el siguiente. Si el archivo csv tiene un encabezado, no es necesario asignar un valor al encabezado debajo de la entrada. Si se asigna, la primera línea se usará como análisis de datos.

 {
    
    
	"version": "2.0",
	"structs": [{
    
    
		"id": "1",
		"skip": false,
		"input": {
    
    
			"type": "FILE",
			"path": "/mnt/parastor/aimind/kg-resources/Oakcsys1/d2r/job-63c3b6727701166100cd7426/file-mapping-7f19ceeea95a417495bc33bd54fa1bf9/人员列表1.csv",
			"file_filter": {
    
    
				"extensions": ["*"]
			},
			"format": "CSV",
			"delimiter": ",",
			"date_format": "yyyy-MM-dd HH:mm:ss",
			"time_zone": "GMT+8",
			"skipped_line": {
    
    
				"regex": "(^#|^//).*|"
			},
			"compression": "NONE",
			"batch_size": 500,
			"header": null,
			"charset": "GBK",
			"list_format": {
    
    
				"start_symbol": "",
				"end_symbol": "",
				"elem_delimiter": "|",
				"ignored_elems": [""]
			}
		},
		"vertices": [{
    
    
			"label": "ry",
			"skip": false,
			"id": "姓名",
			"unfold": true,
			"field_mapping": {
    
    
				"年龄": "nl",
				"性别": "xb"
			},
			"value_mapping": {
    
    },
			"selected": ["姓名", "年龄", "性别"],
			"ignored": [],
			"null_values": ["Null"],
			"update_strategies": {
    
    },
			"field_formats": []
		}],
		"edges": []
	}]
}

Tres, importación de archivos json

1. Archivo de mapeo de datos

El archivo de asignación de datos es el siguiente. El archivo json no tiene encabezado y se le debe asignar un valor al encabezado. El formato json es un conjunto de datos JSON por línea. Por ejemplo: {“
name
”: “marko”, “sex” : "masculino", "edad": "12", "peso": "0,4"}
{"nombre": "josh", "sexo": "femenino", "edad": "16", "peso": "0.4"}

  {
    
    
	"version": "2.0",
	"structs": [{
    
    
		"id": "1",
		"skip": false,
		"input": {
    
    
			"type": "FILE",
			"path": "C:\\Users\\kmliu\\Desktop\\上传文件2\\t_user3.json",
			"file_filter": {
    
    
				"extensions": ["*"]
			},
			"format": "JSON",
			"delimiter": ",",
			"date_format": "yyyy-MM-dd HH:mm:ss",
			"time_zone": "GMT+8",
			"skipped_line": {
    
    
				"regex": "(^#|^//).*|"
			},
			"compression": "NONE",
			"batch_size": 500,
			"header": ["sex", "name", "weight", "age"],
			"charset": "UTF-8",
			"list_format": {
    
    
				"start_symbol": "",
				"end_symbol": "",
				"elem_delimiter": "|",
				"ignored_elems": [""]
			}
		},
		"vertices": [{
    
    
			"label": "ry2",
			"skip": false,
			"id": "name",
			"unfold": true,
			"field_mapping": {
    
    
				"sex": "sex",
				"age": "age"
			},
			"value_mapping": {
    
    },
			"selected": ["sex", "name", "age"],
			"ignored": [],
			"null_values": ["Null"],
			"update_strategies": {
    
    },
			"field_formats": []
		}],
		"edges": []
	}]
}

Tres, importación de datos mysql

1. Archivo de mapeo de datos

El archivo de asignación de datos es el siguiente

{
    
    
	"version": "2.0",
	"structs": [{
    
    
		"id": "1",
		"skip": false,
		"input": {
    
    
			"type": "JDBC",
			"vendor": "MYSQL",
			"header": ["id", "name", "age", "sex"],
			"charset": "UTF-8",
			"list_format": {
    
    
				"start_symbol": "",
				"end_symbol": "",
				"elem_delimiter": "|",
				"ignored_elems": [""]
			},
			"driver": "com.mysql.cj.jdbc.Driver",
			"url": "jdbc:mysql://xxx.xxx.xxx.xxx:3306",
			"database": "baseName",
			"schema": null,
			"table": "user3",
			"username": "root",
			"password": "root",
			"batch_size": 500,
			"primary_key": "name"
		},
		"vertices": [{
    
    
			"label": "ry",
			"skip": false,
			"id": "name",
			"unfold": true,
			"field_mapping": {
    
    
				"age": "nl",
				"sex": "xb"
			},
			"value_mapping": {
    
    },
			"selected": ["sex", "name", "age"],
			"ignored": [],
			"null_values": ["Null"],
			"update_strategies": {
    
    },
			"field_formats": []
		}],
		"edges": []
	}]
}

4. Llame al paso hugGraph

1. Entrada del método de llamada

El parámetro Oakcsys1 es el nombre colectivo en la base de datos de gráficos y json1.json es el archivo de asignación de datos. Las reglas generadas se han descrito anteriormente, "xxx.xx.xx.xx", "-p", "18081" para el dirección de la base de datos del gráfico e ip.

 public static void main(String[] args) {
    
    
        // -g {GRAPH_NAME} -f ${INPUT_DESC_FILE} -s ${SCHEMA_FILE} -h {HOST} -p {PORT}
        if (args.length == 0) {
    
    
            args = new String[]{
    
    "-g", "Oakcsys1",
                    "-f", "C:\\Users\\kmliu\\Desktop\\上传文件2\\json1.json",
                    "-h", "xxx.xx.xx.xx", "-p", "18081"
            };
        }
        HugeGraphLoader loader;
        try {
    
    
            loader = new HugeGraphLoader(args);
        } catch (Throwable e) {
    
    
            Printer.printError("Failed to start loading", e);
            return;
        }
        loader.load();
    }

5. Registro de datos de importación

1. El registro es el siguiente

: -----映射任务运行中-日志打印-----
: --------------------------------------------------
: detail metrics
: input-struct '1'
:     read success                  : 4                   
:     read failure                  : 0                   
: vertex 'ry'
:     parse success                 : 4                   
:     parse failure                 : 0                   
:     insert success                : 4                   
:     insert failure                : 0                   
: --------------------------------------------------
: count metrics
:     input read success            : 4                   
:     input read failure            : 0                   
:     vertex parse success          : 4                   
:     vertex parse failure          : 0                   
:     vertex insert success         : 4                   
:     vertex insert failure         : 0                   
:     edge parse success            : 0                   
:     edge parse failure            : 0                   
:     edge insert success           : 0                   
:     edge insert failure           : 0                   
: --------------------------------------------------
: meter metrics
:     total time                    : 5.549s              
:     vertex load rate(vertices/s)  : 0                   
:     edge load rate(edges/s)       : 0                   
: -----映射任务运行中-日志打印结束-----

Resumir

Los anteriores son los pasos básicos para usar HugeGraphLoader, que se usa principalmente para importar conjuntos de datos en bases de datos de gráficos y admite la importación de datos de csv, json, txt, mysql, hive, etc. la importación es rápida

Supongo que te gusta

Origin blog.csdn.net/Oaklkm/article/details/128671373
Recomendado
Clasificación