Vom täglichen Absturz bis zur Stabilität: Informatica mit 10 Admin-Augen



Die ETL-Komponente des Data Warehouse befindet sich häufig im Schatten des Warehouse selbst, und es wird weniger darauf geachtet als auf die Hauptdatenbank oder die Frontkomponente BI (Reporting). Gleichzeitig spielt ETL aus Sicht der Mechanismen zum Befüllen des Data Warehouse eine Schlüsselrolle und erfordert von Administratoren nicht weniger Aufmerksamkeit als andere Komponenten. Mein Name ist Alexander, ich verwalte derzeit ETLs in Rostelecom, und in diesem Artikel werde ich versuchen, ein wenig mit dem zu teilen, was der Administrator eines der bekanntesten ETL-Systeme in einem großen Data Warehouse von Rostelecom zu tun hat.

Wenn liebe Leser bereits mit unserem Data Warehouse-Projekt und dem Informatica PowerCenter-Produkt im Allgemeinen vertraut sind, können Sie mit dem nächsten Abschnitt fortfahren.

Vor einigen Jahren reifte die Idee eines einzigen Corporate Data Warehouse und wurde in Rostelecom umgesetzt. Eine Reihe von Speichern, die einzelne Aufgaben lösten, wurde bereits erstellt, aber die Anzahl der Szenarien nahm zu, die Supportkosten stiegen ebenfalls und es wurde klar, dass die Zukunft zentralisiert war. Architektonisch ist dies das Repository selbst, das aus mehreren Ebenen besteht, die auf Hadoop und GreenPlum, Hilfsdatenbanken, ETL-Mechanismen und BI implementiert sind.

Gleichzeitig wurde aufgrund der großen Anzahl geografisch verteilter, heterogener Datenquellen ein spezieller Mechanismus zum Hochladen von Daten geschaffen, dessen Arbeit von Informatica gesteuert wird. Infolgedessen landen Datenpakete im Bereich der Hadoop-Schnittstelle. Danach beginnt der Prozess des Ladens von Daten über die Speicherschichten in Hadoop und GreenPlum und sie werden durch den in Informatica implementierten sogenannten ETL-Steuerungsmechanismus gesteuert. Somit ist das Informatica-System eines der Schlüsselelemente, die den Speicherbetrieb sicherstellen.

Weitere Details zu unserem Speicher werden in einem der folgenden Beiträge besprochen.

Informatica PowerCenter / Big Data Management gilt derzeit als die führende Software auf dem Gebiet der Datenintegrationstools. Dies ist ein Produkt des amerikanischen Unternehmens Informatica, das einer der stärksten Akteure in den Bereichen ETL (Extract Transform Load), Datenqualitätsmanagement, MDM (Stammdatenmanagement), ILM (Information Lifecycle Management) und mehr ist.

Das von uns verwendete PowerCenter ist ein integrierter Tomcat-Anwendungsserver, auf dem Informatica-Anwendungen selbst arbeiten und seine Dienste implementieren:

Die Domäne ist in der Tat die Grundlage für alles andere: Innerhalb der Domäne funktionieren Dienste, Benutzer und GRID-Komponenten.

Administratorkonsole , ein webbasiertes Verwaltungs- und Überwachungstool, neben dem Informatica Developer-Client, dem Haupttool für die Interaktion mit dem Produkt

MRS, Model Repository Service , ein Metadaten-Repository, ist eine Schicht zwischen der Datenbank, in der die Metadaten physisch gespeichert sind, und dem Informatica Developer-Client, in dem sie entwickelt werden. In Repositorys werden sowohl eine Beschreibung der Daten als auch andere Informationen gespeichert, einschließlich einer Reihe anderer Infromatica-Dienste, z. B. Zeitpläne zum Starten von Aufgaben oder Überwachen von Daten, sowie insbesondere ein Anwendungsparametersatz, mit dem dieselbe Anwendung für die Arbeit verwendet werden kann mit verschiedenen Datenquellen und Empfängern.

DIS, Data Integration Service , ist ein Dienst, bei dem die wichtigsten Funktionsprozesse stattfinden, Anwendungen darin arbeiten und die tatsächlichen Starts von Workflows (Beschreibungen der Abfolge von Zuordnungen und ihrer Interaktionen) und Zuordnungen (Transformationen, Blöcke, in denen die Transformationen selbst stattfinden, Datenverarbeitung) stattfinden.

Die GRID-Konfiguration ist in der Tat eine Option zum Erstellen eines Komplexes unter Verwendung mehrerer Server, wenn die von DIS gestartete Last auf die Knoten (dh die Server, die Teil der Domäne sind) verteilt wird. Bei dieser Option können zusätzlich zur Verteilung der Last an DIS über eine zusätzliche GRID-Abstraktionsschicht, die mehrere Knoten kombiniert, auf denen DIS arbeitet, anstatt an einem bestimmten einzelnen Knoten zu arbeiten, auch zusätzliche Backup-MRS-Instanzen erstellt werden. Sie können sogar Hochverfügbarkeit implementieren, wenn im Falle eines primären Fehlers externe Anrufe über Sicherungsknoten getätigt werden können. Eine solche Bauoption haben wir bisher abgelehnt.


Informatica PowerCenter, schematisch

In den ersten Arbeitsphasen traten regelmäßig Probleme in der Datenlieferkette auf, einige davon aufgrund der zu dieser Zeit instabilen Informatica-Arbeit. Ich werde einige der denkwürdigen Momente dieser Saga teilen - die Entwicklung von Informatica 10.


Ehemaliges Informatica-Logo

Andere Informatica-Umgebungen gehören ebenfalls zu unserem Verantwortungsbereich. Sie haben aufgrund einer anderen Auslastung ihre eigenen Besonderheiten. Im Moment werde ich mich jedoch genau daran erinnern, wie sich Informatica als ETL-Komponente des Data Warehouse selbst entwickelt hat.

Wie ist es passiert?


Als wir 2016 für Informatica verantwortlich wurden, erreichte es bereits Version 10.0, und für optimistische Kollegen, die beschlossen, ein Produkt mit einer Nebenversion .0 in einer ernsthaften Lösung zu verwenden, schien alles offensichtlich - Sie müssen die neue Version verwenden! Aus Sicht der Hardwareressourcen war zu dieser Zeit alles hervorragend.

Seit dem Frühjahr 2016 war der Auftragnehmer für die Arbeit von Informatica verantwortlich, und laut den wenigen Benutzern des Systems „hat es ein paar Mal pro Woche funktioniert“. Hier muss erklärt werden, dass der Speicher de facto in der PoC-Phase war, keine Administratoren im Team waren und das System aus verschiedenen Gründen ständig abstürzte, woraufhin der Auftragnehmeringenieur ihn erneut erhöhte.

Im Herbst erschienen drei Administratoren im Team, teilten ihre Verantwortlichkeiten und begannen, die normale Arbeit an Betriebssystemen im Projekt, einschließlich Informatica, in Einklang zu bringen. Unabhängig davon muss gesagt werden, dass dieses Produkt nicht weit verbreitet ist und eine große Community hat, in der Sie die Antwort auf alle Fragen finden und jedes Problem lösen können. Daher war die umfassende technische Unterstützung durch den russischen Partner Informatica sehr wichtig, mit deren Hilfe alle unsere Fehler und die Fehler der jungen Informatca 10 korrigiert wurden.

Das erste, was wir für die Entwickler unseres Teams und Auftragnehmers tun mussten, war, die Arbeit von Informatica selbst zu stabilisieren, um die webbasierte Administrationskonsole (Informatica Administrator) betriebsbereit zu machen.


Deshalb haben wir oft Informatica-Entwickler getroffen

Abgesehen von der Ermittlung der Ursachen war der Hauptgrund für die Abstürze die Interaktion zwischen der Informatica-Software und der Repository-Datenbank, die sich aus Sicht der Netzwerklandschaft auf einem relativ entfernten Server befindet. Dies führte zu Verzögerungen und störte die Mechanismen zur Überwachung des Status der Informatica-Domäne. Nach einigen Optimierungen der Datenbank, der Änderung der Informatica-Parameter, die die Datenbankverzögerungen toleranter machten, und der Aktualisierung der Informatica-Version auf 10.1 und der Übertragung der Datenbank vom vorherigen Server auf den Server in der Nähe von Informatica hat das Problem seine Relevanz verloren, und seitdem stürzt diese Art ab wir beobachten nicht.


Einer der Versuche, Informatica Monitor zum Laufen zu bringen

Bei der Administrationskonsole war die Situation ebenfalls kritisch. Da in einer bedingt produktiven Umgebung eine aktive Entwicklung stattfand, mussten die Kollegen ständig die Arbeit der Zuordnungen und den Workflow „on the go“ analysieren. In der neuen Informatica verfügt der Data Integration Service nicht über ein separates Tool für eine solche Überwachung. Der Überwachungsabschnitt (Informatica Administrator Monitor) wurde jedoch in der Administrationswebkonsole angezeigt, in der Sie den Betrieb von Anwendungen, Workflows und Zuordnungen, Starts und Protokollen beobachten können. In regelmäßigen Abständen war die Konsole nicht mehr verfügbar, oder Informationen zu aktuellen Prozessen in DIS wurden nicht mehr aktualisiert, oder beim Laden von Seiten traten Fehler auf.


Auswahl von Java-Parametern zur Stabilisierung der Arbeit

Das Problem wurde auf viele Arten behoben, Experimente wurden durchgeführt, um die Parameter zu ändern, Protokolle wurden gesammelt, jstack wurde zur Unterstützung gesendet, gleichzeitig wurde aktiv gegoogelt und es wurde nur eine Beobachtung durchgeführt.

Zunächst wurde eine separate MRS für die Überwachung erstellt, die sich später als einer der Hauptverbraucher von Ressourcen in unserer Umgebung herausstellte, da die Zuordnungen sehr intensiv gestartet werden. Die Parameter für Java Heap und einige andere wurden geändert.
Infolgedessen gelang es dem nächsten Update auf Informatica 10.1.1, die Konsole und den Monitor zu stabilisieren, die Entwickler begannen effizienter zu arbeiten und die regelmäßigen Prozesse wurden regelmäßiger.

Die Erfahrung der Wechselwirkung zwischen Entwicklung und Verwaltung kann interessant sein. Die Frage eines gemeinsamen Verständnisses, wie alles funktioniert, was getan werden kann und was nicht, ist bei der Verwendung komplexer Systeme immer wichtig. Wir können daher empfehlen, dass Sie zuerst das Verwaltungsteam in der Verwaltung der Software und das Entwicklungsteam in der Verwaltung von Code- und Zeichnungsprozessen im System schulen und erst dann den ersten und den zweiten senden, um am Ergebnis zu arbeiten. Dies ist wirklich wichtig, wenn Zeit keine endlose Ressource ist. Viele Probleme können sogar durch zufällige Aufzählung von Optionen gelöst werden, aber manchmal erfordern einige a priori Kenntnisse - unser Fall bestätigt die Bedeutung des Verständnisses dieses Axioms.

Als wir beispielsweise versuchten, die Versionierung in MRS aufzunehmen (wie sich herausstellte, benötigten wir eine andere Version von SVN), waren wir nach einiger Zeit bestrebt festzustellen, dass sich die Systemneustartzeit auf einige zehn Minuten erhöhte. Als sie zur Ursache des verzögerten Starts gingen und die Versionierung deaktivierten, machten sie es wieder gut.

Von den bemerkenswerten Hindernissen, die mit Informatica verbunden sind, kann man sich an den epischen Kampf mit den wachsenden Java-Strömen erinnern. Irgendwann war die Zeit für die Replikation gekommen, dh um etablierte Prozesse auf eine große Anzahl von Quellsystemen auszudehnen. Es stellte sich heraus, dass nicht alle Prozesse in 10.1.1 gut funktionierten und DIS nach einiger Zeit nicht mehr funktionsfähig war. Zehntausende von Threads wurden erkannt, und ihre Anzahl stieg während des Anwendungsbereitstellungsprozesses besonders deutlich an. Manchmal musste mehrmals täglich ein Neustart durchgeführt werden, um die Leistung wiederherzustellen.

Hier müssen Sie sich bei der Unterstützung bedanken, die Probleme wurden relativ schnell lokalisiert und mithilfe von EBF (Emergency Bug Fix) behoben - danach hatten alle das Gefühl, dass das Tool wirklich funktioniert.

Es funktioniert immer noch!


Zu Beginn der Arbeit im Zielmodus sah Informatica wie folgt aus. Informatica Version 10.1.1HF1 (HF1 ist HotFix1, eine Hersteller-Assembly aus einer Reihe von EBFs) mit zusätzlichen EBFs, die unsere Skalierungsprobleme beheben, und einige andere, auf einem der drei GRID-Server, 20 x86_64-Kerne und Speicher Ein riesiges langsames Array lokaler Festplatten - dies ist die Serverkonfiguration für den Hadoop-Cluster. Auf einem anderen Server desselben Typs das Oracle DBMS, mit dem die Informatica-Domäne und der ETL-Steuerungsmechanismus arbeiten. All dies wird von den im Team verwendeten Standardüberwachungstools (Zabbix + Grafana) auf beiden Seiten überwacht - Informatica selbst mit seinen Diensten und den darin enthaltenen Ladevorgängen. Jetzt hängen sowohl Leistung als auch Stabilität ohne Berücksichtigung externer Faktoren von den Einstellungen ab, die die Last begrenzen.

Separat können wir über GRID sagen. Die Umgebung wurde auf drei Knoten mit der Möglichkeit des Lastausgleichs erstellt. Beim Testen wurde jedoch festgestellt, dass diese Konfiguration aufgrund von Interaktionsproblemen zwischen den ausgeführten Instanzen unserer Anwendungen nicht wie erwartet funktionierte, und es wurde vorübergehend beschlossen, dieses Konstruktionsschema aufzugeben, indem zwei der drei Knoten aus der Domäne entfernt wurden. Gleichzeitig blieb das Schema selbst das gleiche, und jetzt ist es ein GRID-Dienst, der jedoch zu einem Knoten entartet ist.

Im Moment bleibt die Schwierigkeit bestehen, die mit einem Leistungsabfall während der regelmäßigen Reinigung des Monitorschaltkreises verbunden ist - bei gleichzeitigen Prozessen im CNN und laufender Reinigung können Fehlfunktionen beim Betrieb des ETL-Steuermechanismus auftreten. Dies wird bisher durch „Krücke“ gelöst - manuelle Reinigung der Überwachungsschaltung mit Verlust aller vorherigen Daten. Dies ist für das Produkt bei normaler Vollzeitarbeit nicht allzu kritisch, aber bisher wird nach einer normalen Lösung gesucht.

Ein weiteres Problem ergibt sich aus derselben Situation - manchmal treten mehrere Starts unseres Kontrollmechanismus auf.


Mehrere Anwendungsstarts führen zu einer Störung des Mechanismus

Beim Starten nach einem Zeitplan in Zeiten hoher Systembelastung treten manchmal Situationen auf, die zu einem Ausfall des Mechanismus führen. Bisher wurde das Problem manuell behoben, eine dauerhafte Lösung wird gesucht.

Im Allgemeinen kann zusammengefasst werden, dass es unter hoher Last sehr wichtig ist, angemessene Ressourcen bereitzustellen. Dies gilt auch für Hardwareressourcen für Informatica selbst und für das Datenbank-Repository sowie für die Sicherstellung optimaler Einstellungen für diese. Darüber hinaus bleibt die Frage offen, welches Datenbanklayout besser ist - auf einem separaten Host oder auf demselben Host, auf dem die Informatica-Software funktioniert. Einerseits ist es auf einem Server billiger, und wenn es kombiniert wird, wird ein mögliches Problem mit der Netzwerkinteraktion praktisch beseitigt, andererseits wird die Belastung des Hosts aus der Datenbank durch die Belastung von Informatica ergänzt.

Wie bei jedem ernsthaften Produkt hat Informatica einige merkwürdige Momente.
Einmal, als ich einen Unfall analysierte, bemerkte ich, dass der Zeitpunkt der Ereignisse in den MRS-Protokollen seltsamerweise markiert war.


Temporärer Dualismus in MRS-Protokollen "by design"

Es stellte sich heraus, dass Zeitstempel im Format 12 Stunden ohne Angabe von AM / PM, dh vor oder nach Mittag, geschrieben werden. Es wurde sogar eine Bewerbung zu diesem Thema geöffnet und eine offizielle Antwort erhalten - es war so geplant, dass die Markierungen im MRS-Protokoll in diesem Format geschrieben sind. Das heißt, manchmal bleibt eine gewisse Intrige in Bezug auf den Zeitpunkt des Auftretens eines FEHLERS ...

Strebe nach dem Besten


Heute ist Informatica ein ziemlich stabiles Tool, das für Administratoren und Benutzer praktisch ist und hinsichtlich der aktuellen Funktionen und des Potenzials äußerst leistungsfähig ist. Es übertrifft funktional unsere Bedürfnisse um ein Vielfaches und wird jetzt de facto im Projekt auf nicht sehr charakteristische und typische Weise verwendet. Ein Teil der Schwierigkeit besteht darin, wie die Mechanismen funktionieren. Die Besonderheit besteht darin, dass in kurzer Zeit eine große Anzahl von Threads gestartet wird, die die Parameter intensiv aktualisieren und mit der Repository-Datenbank arbeiten, während die Serverhardwareressourcen fast vollständig von der CPU genutzt werden.

Jetzt sind wir kurz davor, auf Informatica 10.2.1 oder 10.2.2 umzusteigen, in denen einige interne Mechanismen neu gestaltet wurden, und der Support verspricht, dass eine Reihe aktueller Probleme mit Leistung und Funktion fehlen. Unter Hardware-Gesichtspunkten wird erwartet, dass Server für uns optimal sind, da aufgrund des Wachstums und der Entwicklung des Speichers in naher Zukunft ein Spielraum besteht.

Natürlich stehen Tests, Kompatibilitätstests und möglicherweise architektonische Änderungen im HA GRID-Teil bevor. Die Entwicklung innerhalb von Informatica wird fortgesetzt, da wir kurzfristig nichts tun können, um das System zu ersetzen.
Und diejenigen, die weiterhin für dieses System verantwortlich sind, werden es sicherlich auf die von den Kunden vorgebrachten Zuverlässigkeits- und Leistungsindikatoren bringen können.

Dieser Artikel wurde vom Datenverwaltungsteam von Rostelecom erstellt


Aktuelles Informatica-Logo

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


All Articles