DataX implementa la sincronización de datos entre Mysql y ElasticSearch (ES)

1. Requisitos del entorno Linux

jdk1.8 y superior
python2

2. Trabajo de preparación

2.1 jdk de instalación de Linux

 yum install -y java-1.8.0-openjdk.x86_64

Compruebe si la instalación es exitosa

java -version

2.2 Instalar Python en Linux

 yum install -y python

Verifique el número de versión de Python para determinar si la instalación se realizó correctamente

python --version

2.3 Descargar datosX:

3. Importe y descomprima el paquete comprimido DataX.

tar -zxvf datax.tar.gz 

4. Escribe un trabajo de sincronización.

En datax/job, el formato json, el contenido específico y el significado de la configuración principal son los siguientes

Mysqlreader se utiliza para leer la parte de datos de mysql, configurar
el nombre de usuario de información relacionada con mysql, la contraseña es la contraseña de la cuenta de la base de datos
querySql: el sql que necesita consultar los datos, también puede especificar los campos que deben buscarse a través de columnas (querySql tiene alta prioridad)
la parte elasticsearchwriter escribe los datos en la parte ES, configura la información relacionada con ES, el
punto final es la dirección ES, el índice es el índice, las columnas son la información que debe escribirse en la columna y el resto de la configuración es opcional

¡fosa! : Si le indica que la conexión mysql falló durante la ejecución y que la contraseña de la cuenta, la IP y el número de puerto son correctos, debe agregar useSSL=false después del contenido de jdbcUrl como se muestra en el artículo.

vim /opt/software/datax/job/job.json

Reemplace el contenido con el siguiente

{
    
    
    "job": {
    
    
      "setting": {
    
     
          "speed": {
    
    
              "channel": 1
          },
          "errorLimit": {
    
    
              "percentage": 0
          }
      },
      "content": [
          {
    
    
            "reader": {
    
    
                "name": "mysqlreader",
                "parameter": {
    
    
                    "username": "root",
                    "password": "123456",
                    "connection": [{
    
    
                        "querySql": ["select * from user_t"],
                        "jdbcUrl": ["jdbc:mysql://数据库地址:3306/mysql?useSSL=false"]
                    }]
                }
            },
              "writer": {
    
    
                  "name": "elasticsearchwriter",
                  "parameter": {
    
    
                      "endpoint":"http://ES地址:9200",
                       "accessId":"",
                      "accessKey":"",
                      "index": "user-demo",
                      "cleanup": false,
                      "discovery":false,
                      "column": [
                          {
    
    
                            "name": "id",
                            "type": "id"
                          },
                        {
    
    
                            "name": "userName",
                            "type": "text"
                        },
                                                 {
    
    
                            "name": "address",
                            "type": "text"
                        }

                      ]
                  }
              }
            }
        ]
        }
    }

5. Ejecutar trabajo

Después de la configuración, ejecute el comando:

 python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json 

Preste atención a cambiarlo a su propia ruta de datos.

En circunstancias normales, muchos resultados serán así: dado que inserté tres datos de prueba en la tabla mysql, el número total de registros leídos es 3
Insertar descripción de la imagen aquípara completar la operación.

6. Actualizaciones periódicas

6.1 Crear una tarea programada


contenido de vim crondatax :
5 13 * * * python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json

/opt/software/datax/log.2>&1 significa ejecutar el comando python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json a las 13:05 todos los días date +\%Y\%m\%d\%H\%M\%S.
La dirección de salida es /opt/software/datax,
el formato crontab denominado "log.time" puede consultar la siguiente figura:

6.2 Enviar tareas programadas

crontab crondatax

/sbin/servicio crond reinicio

6.3 Ver tareas programadas

crontab-l

7. Ideas de actualización incremental

El campo de hora de la última operación se agrega al diseñar la tabla de la base de datos. Los datos recién agregados y modificados registrarán la última hora
en el json de Datax. En la declaración de consulta de MySQL, de acuerdo con las reglas de las tareas programadas, los datos de este campo de hora son mayor que el tiempo antes de que se consulte el intervalo de tiempo de la tarea programada.

Supongo que te gusta

Origin blog.csdn.net/m0_68681879/article/details/132764153
Recomendado
Clasificación