Desde accidentes diarios hasta estabilidad: Informatica con 10 ojos administrativos



El componente ETL del almacén de datos a menudo está a la sombra del propio almacén y se le presta menos atención que la base de datos principal o el componente frontal, BI, informes. Al mismo tiempo, desde el punto de vista de la mecánica de llenar el almacén de datos, ETL desempeña un papel clave y no requiere menos atención de los administradores que otros componentes. Mi nombre es Alexander, actualmente estoy administrando ETL en Rostelecom, y en este artículo trataré de compartir un poco con lo que tiene que lidiar el administrador de uno de los sistemas ETL más famosos en un gran almacén de datos de Rostelecom.

Si los queridos lectores ya están familiarizados con nuestro proyecto de almacén de datos y el producto Informatica PowerCenter en general, puede pasar a la siguiente sección.

Hace unos años, la idea de un único almacén de datos corporativos maduró y comenzó a aplicarse en Rostelecom. Ya se habían creado varios almacenes que resolvían tareas individuales, pero el número de escenarios estaba creciendo, los costos de soporte también aumentaban y quedó claro que el futuro estaba centralizado. Arquitectónicamente, este es el repositorio en sí, que consta de varias capas, implementado en Hadoop y GreenPlum, bases de datos auxiliares, mecanismos ETL y BI.

Al mismo tiempo, debido a la gran cantidad de fuentes de datos heterogéneas distribuidas geográficamente, se creó un mecanismo especial de carga de datos, cuyo trabajo es controlado por Informatica. Como resultado, los paquetes de datos terminan en el área de interfaz de Hadoop, después de lo cual comienza el proceso de carga de datos a través de las capas de almacenamiento, en Hadoop y GreenPlum, y son controlados por el llamado mecanismo de control ETL implementado en Informatica. Por lo tanto, el sistema Informatica es uno de los elementos clave que aseguran la operación de almacenamiento.

Se discutirán más detalles sobre nuestro almacenamiento en una de las siguientes publicaciones.

Informatica PowerCenter / Big Data Management se considera actualmente el software líder en el campo de las herramientas de integración de datos. Este es un producto de la compañía estadounidense Informatica, que es uno de los jugadores más fuertes en ETL (Extract Transform Load), gestión de calidad de datos, MDM (Master Data Management), ILM (Information Lifecycle Management) y más.

El PowerCenter que utilizamos es un servidor de aplicaciones Tomcat integrado, en el que operan las aplicaciones de Informatica, implementando sus servicios:

El dominio , de hecho, es la base de todo lo demás; dentro del dominio, los servicios, los usuarios y los componentes GRID funcionan.

Administrator Console , una herramienta de administración y monitoreo basada en la web, además del cliente Informatica Developer, la herramienta principal para interactuar con el producto

MRS, Model Repository Service , un repositorio de metadatos, es una capa entre la base de datos en la que se almacenan físicamente los metadatos y el cliente Informatica Developer en el que se está desarrollando. Los repositorios almacenan tanto una descripción de los datos como otra información, incluso para una serie de otros servicios de Infromatica, por ejemplo, Programas para iniciar tareas o monitorear datos, así como el conjunto de parámetros de la aplicación, en particular, lo que permite utilizar la misma aplicación para el trabajo. con varias fuentes de datos y receptores.

DIS, Data Integration Service , es un servicio en el que tienen lugar los principales procesos funcionales, las aplicaciones funcionan y los lanzamientos reales de Workflows (descripciones de la secuencia de mapeos y su interacción) y mapeos (transformaciones, bloques en los que ocurren las transformaciones, el procesamiento de datos).

La configuración GRID es, de hecho, una opción para construir un complejo utilizando varios servidores, cuando la carga lanzada por DIS se distribuye entre los nodos (es decir, los servidores que forman parte del dominio). En el caso de esta opción, además de distribuir la carga a DIS a través de una capa de abstracción GRID adicional, combinando varios nodos, en los que DIS funciona en lugar de trabajar en un solo nodo particular, también se pueden crear instancias de MRS de respaldo adicionales. Incluso puede implementar una alta disponibilidad cuando se pueden realizar llamadas externas a través de nodos de respaldo en caso de una falla primaria. Hasta ahora, hemos rechazado tal opción de construcción.


Informatica PowerCenter, esquemático

En las primeras etapas del trabajo, los problemas aparecían regularmente en la cadena de suministro de datos, algunos de ellos debido al trabajo inestable de Informatica en ese momento. Voy a compartir algunos de los momentos memorables de esta saga: el desarrollo de Informatica 10.


Ex logotipo de Informatica

Otros entornos de Informatica también son parte de nuestra área de responsabilidad, tienen sus propios detalles debido a una carga diferente, pero por ahora recordaré exactamente cómo se desarrolló Informatica como un componente ETL del propio almacén de datos.

Como sucedio


En 2016, cuando nos hicimos responsables de Informatica, ya llegaba a la versión 10.0, y para los colegas optimistas que decidieron usar un producto con una versión menor .0 en una solución seria, todo parecía obvio: ¡debe usar la nueva versión! Desde el punto de vista de los recursos de hardware, todo era excelente en ese momento.

Desde la primavera de 2016, el contratista era responsable del trabajo de Informatica y, según los pocos usuarios del sistema, "funcionaba un par de veces a la semana". Aquí es necesario explicar que el almacenamiento fue de facto en la etapa de PoC, que no había administradores en el equipo y que el sistema fallaba constantemente por varias razones, después de lo cual el ingeniero contratista lo planteó nuevamente.

En otoño, tres administradores aparecieron en el equipo, compartieron sus responsabilidades y comenzaron a alinear el trabajo normal en los sistemas operativos del proyecto, incluida Informatica. Por separado, hay que decir que este producto no está muy extendido y tiene una gran comunidad en la que puede encontrar la respuesta a cualquier pregunta y resolver cualquier problema. Por lo tanto, era muy importante contar con el soporte técnico completo del socio ruso Informatica, con la ayuda de la cual se corrigieron todos nuestros errores y errores del joven Informatca 10, que luego se corrigieron.

Lo primero que tuvimos que hacer para los desarrolladores de nuestro equipo y contratista fue estabilizar el trabajo de Informatica, para que la consola de administración basada en web (Administrador de Informatica) fuera operativa.


Así que a menudo nos encontramos con desarrolladores de Informatica

Dejando de lado el proceso de averiguar las causas, la razón principal de los bloqueos fue la interacción entre el software de Informatica y la base de datos del repositorio ubicada en un servidor relativamente remoto desde el punto de vista del panorama de la red. Esto condujo a demoras e interrumpió los mecanismos para monitorear el estado del dominio de Informatica. Después de ajustar la base de datos, cambiar los parámetros de Informatica, lo que lo hizo más tolerante a los retrasos de la base de datos, y como resultado de actualizar la versión de Informatica a 10.1 y transferir la base de datos desde el servidor anterior al servidor más cercano a Informatica, el problema ha perdido su relevancia, y desde entonces ese tipo de fallas No estamos observando.


Uno de los intentos de hacer funcionar el Monitor de Informatica

Con la consola de administración, la situación también era crítica. Dado que había un desarrollo activo en un entorno condicionalmente productivo, los colegas constantemente necesitaban analizar el trabajo de mapeo, flujo de trabajo "sobre la marcha". En la nueva Informatica, el servicio de integración de datos no tiene una herramienta separada para dicha supervisión, pero la sección de supervisión (Informatica Administrator Monitor) ha aparecido en la consola web de administración, en la que puede observar el funcionamiento de las aplicaciones, el flujo de trabajo y las asignaciones, los inicios, los registros. Periódicamente, la consola dejaba de estar disponible, o la información sobre los procesos actuales en DIS dejaba de actualizarse, o se producían errores al cargar las páginas.


Selección de parámetros de Java para estabilizar el trabajo.

El problema se solucionó de muchas maneras, se realizaron experimentos para cambiar los parámetros, se recolectaron registros, se envió jstack en apoyo, se realizó una búsqueda activa en Google al mismo tiempo y se realizó la observación.

En primer lugar, se creó un MRS separado para el monitoreo, ya que luego resultó ser uno de los principales consumidores de recursos en nuestros entornos, ya que los mapeos se lanzan de manera muy intensiva. Se modificaron los parámetros relacionados con el montón de Java y otros.
Como resultado, la próxima actualización de Informatica 10.1.1 logró estabilizar la consola y el monitor, los desarrolladores comenzaron a trabajar de manera más eficiente y los procesos regulares se volvieron más regulares.

La experiencia de la interacción entre desarrollo y administración puede ser interesante. La cuestión de una comprensión común de cómo funciona todo, qué se puede y qué no se puede hacer, siempre es importante cuando se utilizan sistemas complejos. Por lo tanto, podemos recomendarle con seguridad que primero capacite al equipo de administración sobre cómo administrar el software, y al equipo de desarrollo sobre cómo escribir código y dibujar procesos en el sistema, y ​​solo luego envíe el primero y el segundo para trabajar en el resultado. Esto es realmente importante cuando el tiempo no es un recurso interminable. Muchos problemas pueden resolverse incluso mediante una enumeración aleatoria de opciones, pero a veces algunos requieren conocimiento a priori; nuestro caso confirma la importancia de comprender este axioma.

Por ejemplo, cuando intentamos incluir el control de versiones en MRS (como resultó, necesitábamos una versión diferente de SVN), después de un tiempo estábamos ansiosos por descubrir que el tiempo de reinicio del sistema aumentó a varias decenas de minutos. Yendo a la causa del inicio retrasado y desactivando el versionado, lo hicieron bien nuevamente.

De los obstáculos notables asociados con Informatica, uno puede recordar la batalla épica con las crecientes corrientes de Java. En algún momento, llegó el momento de la replicación, es decir, extender los procesos establecidos a una gran cantidad de sistemas fuente. Resultó que no todos los procesos en 10.1.1 funcionaron bien, y después de algún tiempo, DIS dejó de funcionar. Se detectaron decenas de miles de subprocesos, su número creció especialmente durante el proceso de implementación de la aplicación. A veces era necesario reiniciar varias veces al día para restaurar el rendimiento.

Aquí debe agradecer al soporte, los problemas se localizaron y solucionaron relativamente rápido utilizando EBF (Emergency Bug Fix), después de lo cual todos tuvieron la sensación de que la herramienta realmente estaba funcionando.

¡Aún funciona!


Cuando el trabajo comenzó en modo objetivo, Informatica tenía el siguiente aspecto. Informatica versión 10.1.1HF1 (HF1 es HotFix1, un conjunto de proveedores del complejo EBF) con EBF adicionales instalados que solucionan nuestros problemas de escalado y algunos otros, en uno de los tres servidores GRID, 20 núcleos x86_64 y almacenamiento, en una enorme y lenta matriz de discos locales: esta es la configuración del servidor para el clúster Hadoop. En otro servidor del mismo tipo, el DBMS de Oracle con el que funcionan el dominio de Informatica y el mecanismo de control ETL. Todo esto es monitoreado por las herramientas de monitoreo estándar utilizadas en el equipo (Zabbix + Grafana), en ambos lados: la propia Informática con sus servicios y los procesos de carga. Ahora, tanto el rendimiento como la estabilidad, sin tener en cuenta los factores externos, ahora dependen de la configuración que limita la carga.

Por separado, podemos decir sobre GRID. El entorno se creó en tres nodos, con la posibilidad de equilibrar la carga. Sin embargo, durante las pruebas, se descubrió que debido a problemas de interacción entre las instancias en ejecución de nuestras aplicaciones, esta configuración no funcionó como se esperaba, y decidió temporalmente abandonar este esquema de construcción eliminando dos de los tres nodos del dominio. Al mismo tiempo, el esquema en sí seguía siendo el mismo, y ahora es un servicio GRID, pero degenera en un nodo.

En este momento, sigue existiendo la complejidad asociada con una caída en el rendimiento durante la limpieza regular del circuito del monitor, con procesos simultáneos en la CNN y la limpieza en ejecución, pueden ocurrir fallas en el funcionamiento del mecanismo de control ETL. Esto se está solucionando hasta ahora con “muletas”: limpieza manual del circuito del monitor, con la pérdida de todos sus datos anteriores. Esto no es demasiado crítico para el producto, con un trabajo normal a tiempo completo, pero hasta ahora la búsqueda de una solución normal está en progreso.

Otro problema surge de la misma situación: a veces se producen múltiples lanzamientos de nuestro mecanismo de control.


Múltiples lanzamientos de aplicaciones, lo que lleva a un colapso del mecanismo.

Cuando se inicia de acuerdo con un cronograma en momentos de gran carga en el sistema, a veces ocurren situaciones que conducen a una falla del mecanismo. Hasta ahora, el problema se ha solucionado manualmente; se está buscando una solución permanente.

En general, se puede resumir que bajo una carga pesada es muy importante proporcionar recursos adecuados para ello, esto también se aplica a los recursos de hardware para Informatica, y lo mismo para su repositorio de base de datos, así como para garantizar una configuración óptima para ellos. Además, la cuestión sigue siendo qué diseño de base de datos es mejor: en un host separado o en el mismo donde funciona el software de Informatica. Por un lado, será más barato en un servidor, y cuando se combina, prácticamente se elimina un posible problema con la interacción de la red, por otro lado, la carga en el host de la base de datos se complementa con la carga de Informatica.

Como con cualquier producto serio, Informatica tiene algunos momentos curiosos.
Una vez, al analizar algún tipo de accidente, noté que el tiempo de los eventos estaba extrañamente marcado en los registros de MRS.


Dualismo temporal en los registros de MRS "por diseño"

Resultó que las marcas de tiempo se escriben en el formato de 12 horas, sin especificar AM / PM, es decir, antes del mediodía o después. Incluso se abrió una aplicación sobre este tema, y ​​se recibió una respuesta oficial; así fue planeado, las marcas en el registro de MRS están escritas en este formato. Es decir, a veces sigue habiendo cierta intriga con respecto al momento en que ocurre algún ERROR ...

Lucha por lo mejor


Hoy, Informatica es una herramienta bastante estable, conveniente para el administrador y los usuarios, extremadamente poderosa en términos de capacidades y potencial actuales. Muchas veces excede funcionalmente nuestras necesidades y ahora se utiliza de facto en el proyecto de una manera no muy característica y típica. Parte de la dificultad es cómo funcionan los mecanismos: la especificidad es que se inicia una gran cantidad de subprocesos en un corto período de tiempo, que actualiza de manera intensiva los parámetros y funciona con la base de datos del repositorio, mientras que los recursos de hardware del servidor son utilizados casi por completo por la CPU.

Ahora nos hemos acercado al cambio a Informatica 10.2.1 o 10.2.2, en el que se han rediseñado algunos mecanismos internos, y el soporte promete la ausencia de una serie de problemas actuales con el rendimiento y el funcionamiento. Y desde el punto de vista del hardware, se espera que los servidores sean óptimos para nosotros, dado el margen para el futuro cercano debido al crecimiento y desarrollo del almacenamiento.

Por supuesto, las pruebas, las pruebas de compatibilidad y posiblemente los cambios arquitectónicos en la parte HA GRID están por delante. El desarrollo dentro de Informatica continuará, porque a corto plazo no podemos poner nada para reemplazar el sistema.
Y aquellos que continuarán siendo responsables de este sistema ciertamente podrán llevarlo a los indicadores de confiabilidad y rendimiento requeridos por los clientes.

Este artículo fue preparado por el equipo de gestión de datos de Rostelecom


Logotipo actual de Informatica

Source: https://habr.com/ru/post/454126/


All Articles