Migración de una base de datos de Oracle en las instalaciones a Amazon OpenSearch Service mediante Logstash - Recomendaciones de AWS

Migración de una base de datos de Oracle en las instalaciones a Amazon OpenSearch Service mediante Logstash

Aditya Goteti, Amazon Web Services

Resumen

Este patrón describe cómo mover datos de una base de datos de Oracle en las instalaciones a Amazon OpenSearch Service mediante Logstash. Incluye consideraciones arquitectónicas y algunos conjuntos de habilidades necesarias y recomendaciones. Los datos pueden proceder de una sola tabla o de varias tablas en las que será necesario realizar una búsqueda de texto completo. 

El servicio OpenSearch se puede configurar dentro de una nube privada virtual (VPC) o se puede disponer abierto al público con restricciones basadas en IP. Este patrón describe un escenario en el que OpenSearch Service está configurado dentro de una VPC. Logstash se utiliza para recopilar los datos de la base de datos de Oracle, analizarlos en formato JSON y, a continuación, introducirlos en OpenSearch Service. 

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa

  • Java 8 (requerido por Logstash 6.4.3)

  • Conectividad entre los servidores de bases de datos en las instalaciones y las instancias de Amazon Elastic Compute Cloud (Amazon EC2) en una VPC, establecida mediante AWS Virtual Private Network (AWS VPN)

  • Una consulta para recuperar los datos necesarios y enviarlos a OpenSearch Service desde la base de datos

  • Controladores de Oracle Java Database Connectivity (JDBC)

Limitaciones

  • Logstash no puede identificar los registros que se han eliminado definitivamente de la base de datos 

Versiones de producto

  • Oracle Database 12c

  • OpenSearch Service

  • Logstash 6.4.3

Arquitectura

Pila de tecnología de origen

  • Base de datos de Oracle en las instalaciones

  • AWS VPN en las instalaciones

Pila de tecnología de destino

  • VPC

  • Instancia de EC2

  • OpenSearch Service 

  • Logstash

  • Puerta de enlace NAT (para actualizar el sistema operativo en instancias de EC2 e instalar Java 8, Logstash y complementos)

Arquitectura de migración de datos

Cómo trasladar datos de una base de datos de Oracle en las instalaciones a Amazon OpenSearch Service mediante Logstash.

Herramientas

Epics

TareaDescripciónHabilidades requeridas

Identificar el tamaño de la base de datos de origen.

El tamaño de los datos de origen es uno de los parámetros que se utilizan para determinar el número de particiones que se van a configurar en un índice.

Administrador de base de datos, Desarrollador de base de datos

Analizar los tipos de datos de cada columna y los datos correspondientes.

OpenSearch Service mapea dinámicamente el tipo de datos cuando encuentra en el documento un campo que no se había visto anteriormente. Si hay algún tipo o formato de datos específico (por ejemplo, campos de fecha) que deba declararse de forma explícita, identifique los campos y defina la asignación de esos campos durante la creación del índice.

Propietario de la aplicación, desarrollador, desarrollador de bases de datos

Determinar si hay columnas con claves principales o únicas.

Para evitar la duplicación de registros en Amazon OpenSearch Service durante las actualizaciones o inserciones, debe configurar el ajuste document_id en la sección de resultados del complemento amazon_es (por ejemplo, document_id => "%{customer_id}" donde customer_id es la clave principal).

Propietario de la aplicación, desarrollador

Analizar el número y la frecuencia de los nuevos registros que se agregan; comprobar la frecuencia con la que se eliminan los registros.

Esta tarea es necesaria para comprender la tasa de crecimiento de los datos de origen. Si los datos se leen de forma intensiva y las inserciones son poco frecuentes, puede tener un índice único. Si se insertan nuevos registros con frecuencia y no hay eliminaciones, el tamaño de la partición puede superar fácilmente el tamaño máximo recomendado de 50 GB. En este caso, se puede crear un índice de forma dinámica configurando los patrones de índice en Logstash y en el código al que se puede acceder mediante un alias.

Propietario de la aplicación, desarrollador

Determinar cuántas réplicas se necesitan.

Propietario de la aplicación, desarrollador

Determinar la cantidad de particiones que se van a configurar en el índice.

Propietario de la aplicación, desarrollador

Identificar los tipos de instancias para los nodos maestros dedicados, los nodos de datos y la instancia EC2.

Para obtener más información, consulte la sección Recursos relacionados.

Propietario de la aplicación, desarrollador

Determinar el número de nodos maestros dedicados y nodos de datos necesarios.

Para obtener más información, consulte la sección Recursos relacionados.

TareaDescripciónHabilidades requeridas

Lanzar una instancia EC2.

Lanzar una instancia EC2 dentro de la VPC a la que está conectada la VPN de AWS.

Constructos de Amazon VPC, VPN de AWS

Instalar Logtash en la instancia EC2.

Desarrollador

Instalar los complementos de Logstash.

Instalar los complementos de Logstash necesarios jdbc-input y logstash-output-amazon_es.

Desarrollador

Configurar Logstash.

Crear el almacén de claves de Logstash para almacenar información confidencial, como las claves de AWS Secrets Manager y las credenciales de las bases de datos, y, a continuación, colocar las referencias en un archivo de configuración de Logstash.

Desarrollador

Configurar la cola de mensajes fallidos y la cola persistente.

De forma predeterminada, cuando Logstash detecta un evento que no puede procesar porque los datos contienen un error de mapeo o algún otro problema, la canalización de Logstash bloquea o descarta el evento fallido. Para protegerse de la pérdida de datos en esta situación, puede configurar Logstash para que escriba los eventos fallidos en una cola de mensajes fallidos en lugar de descartarlos. Para evitar la pérdida de datos durante una interrupción anómala, Logstash tiene una característica de cola persistente que almacenará la cola de mensajes en el disco. Las colas persistentes proporcionan la durabilidad de los datos en Logstash.

Desarrollador

Crear un dominio de Amazon OpenSearch Service.

Cree el dominio de Amazon OpenSearch Service con una política de acceso que no requiera firmar solicitudes con credenciales de AWS Identity and Access Management (IAM). El dominio de Amazon OpenSearch Service debe crearse dentro de la misma VPC. También debe seleccionar los tipos de instancias y establecer el número de nodos dedicados y maestros en función de su análisis.

Desarrollador

Configurar los registros de Amazon OpenSearch Service necesarios.

Para obtener más información, consulte la documentación de OpenSearch Service.

Cree el índice.

Desarrollador

Iniciar Logstash.

Ejecutar Logstash como un servicio en segundo plano. Logstash ejecuta la consulta SQL configurada, extrae los datos, los convierte al formato JSON y los envía a OpenSearch Service. Para la carga inicial, no configure el programador en el archivo de configuración de Logstash.

Desarrollador

Consulte los documentos.

Compruebe el número de documentos del índice y si todos los documentos están presentes en la base de datos de origen. Durante la carga inicial, se añaden al índice y se utilizan para detener Logstash.

Cambie la configuración de Logstash para agregar un programador que se ejecute en un intervalo fijo según los requisitos del cliente y reinicie Logstash. Logstash seleccionará solo los registros que se hayan actualizado o agregado después de la última ejecución, y la marca temporal de la última ejecución se almacenará en el archivo que está configurado con la propiedad last_run_metadata_path => "/usr/share/logstash/.logstash_jdbc_last_run" en el archivo de configuración de Logstash.

Desarrollador

Recursos relacionados