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

Herramientas
Logstash 6.4.3
Complemento de entrada JDBC (descarga y más información
) Complemento de salida Logstash (logstash-output-amazon_es
) Controladores JDBC de Oracle
Epics
| Tarea | Descripción | Habilidades 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 | 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. |
| Tarea | Descripción | Habilidades 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 | 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 | Desarrollador |