Open Source im professionellen Einsatz
Linux-Magazin 08/2006
© photocase.com

© photocase.com

Sehr große Datenmengen mit Informix effektiv verwalten

Stückwerk

Der effiziente, Ressourcen-schonende Umgang mit sehr großen Datenmengen fordert vom Datenbankserver spezielle Fähigkeiten. Informix bietet dem DBA für diesen Zweck das Konzept der fragmentierten Tabelle.

581

Branchenriese IBM hat mit Informix und DB2 gleich zwei dicke kommerzielle Datenbanken in seinem Portfolio, beide laufen auch unter Linux. Dabei kursierten nach der Übernahme von Informix durch IBM im Jahr 2001 zunächst Spekulationen über die Zukunft der Produkte. Inzwischen aber hat sich der Informix Dynamic Server (IDS) neben DB2 als bevorzugte Plattform für OLTP-Anwendungen (Online Transaction Processing) etabliert. In dieser Rolle kommen seine Vorzüge, etwa die Ressourcen-schonende Multithreading-Technologie oder seine Fragementierungs-Mechanismen, besonders gut zum Tragen. Letztere sind Thema dieses Artikels.

Als Beispiel dient ein Mobilfunk-Unternehmen, das die Gesprächsdaten seiner Kunden (CDRs, Call Detail Records) für die Dauer von 80 Tagen in einer Informix-Tabelle ablegt. Die Eckdaten lauten: zehn Millionen Kunden, durchschnittlich fünf CDRs pro Kunde und Tag, 80 Tage Aufbewahrungsdauer.

Die resultierende Tabelle muss also rund vier Milliarden Datensätze aufnehmen. Täglich sind rund 50 Millionen neue CDRs zu laden, etwa die gleiche Datenmenge - nämlich die CDRs des 81. Tages - ist aus der Tabelle zu entfernen.

Fragmentierungs-Konzepte

Eine fragmentierte Tabelle besteht aus mehreren physischen Komponenten, die jeweils nur eine Teilmenge der gesamten Daten enthalten. Gegenüber dem Benutzer beziehungsweise der Applikation präsentiert Informix diese Tabelle jedoch als logische Einheit. Der Administrator kann, ohne eine Änderung an der Applikation vorzunehmen, jede normale Tabelle in eine fragmentierte Tabelle überführen. Dabei unterscheidet Informix zwei Verfahrensweisen: die ausdruckbasierte Fragmentierung (Expression Based) und die Umlauf-Fragmentierung (Round-Robin).

Die Wahl zwischen diesen Methoden fällt bereits beim Anlegen der Tabelle oder später über ein »Alter Table«-Statement. Dabei legt der Administrator auch die DB-Spaces, also die logischen Speicherorte, fest, die ihrerseits aus so genannten Chunks bestehen, denen wiederum physische Volumes oder Raw Devices entsprechen.

Bei der Round-Robin-Fragmentierung erfolgt jeder Insert abwechselnd in die für diese Tabelle definierten DB-Spaces. Diese Methode ist in der Praxis selten anzutreffen, da auch Disk-Striping auf der darunter liegenden Ebene physischer Platten ähnliche Effekte erzielt. Ein weiterer Nachteil ist, dass der Informix-interne Optimierer bei diesem Verfahren nicht feststellen kann, ob die in einem Fragment gespeicherten Daten für das Ergebnis womöglich irrelevant sind und gar nicht berücksicht werden müssten (Fragment-Eliminierung).

Effizienter ist die ausdruckbasierte Methode, die eine gezielte Aufteilung der einzelnen Tabellenfragmente anhand einer in SQL formulierten Bedingung erlaubt. Sie ermöglicht es dem Optimierer auf Grundlage der dabei verwendeten Where-Klausel, bestimmte Fragmente von der Suche nach den Ergebnissen von vornherein auszuschließen. Je nach Granularität der Fragmentierung und Art der Abfrage verbessert sich dadurch die Performance ganz erheblich.

Tages-Tabelle

Listing 1 zeigt das Anlegen einer fragmentierten Tabelle zur Speicherung der Call Detail Records. Insgesamt entstehen 80 Fragmente, die die Daten eines einzelnen Tages - also jeweils rund 50 Millionen Datensätze - beinhalten. Wichtig ist, dass die Fragmentierungs-Klausel auf relativ statischen Spalten beruht. Wenn sich nämlich die zugrunde liegende(n) Spalte(n) häufig ändern, führt dies zur Verschiebung von Datensätzen innerhalb der Fragmente. Das gilt es aus Performancegründen zu vermeiden.

Listing 1: Anlegen einer
fragmentierten Tabelle

01 CREATE TABLE cdr_all_data
02 (
03 cdr_id          CHAR(20) NOT NULL,
04 cdr_date        DATETIME YEAR TO SECOND NOT NULL,
05 ...
06 ...
07 )
08 FRAGMENT BY EXPRESSION
09 cdr_date BETWEEN '2006-01-01 00:00:00' AND '2006-01-01 23:59:59' IN cdr_dbs1,
10 cdr_date BETWEEN '2006-01-02 00:00:00' AND '2006-01-02 23:59:59' IN cdr_dbs2,
11 cdr_date BETWEEN '2006-01-03 00:00:00' AND '2006-01-03 23:59:59' IN cdr_dbs3,
12 ...
13 ...
14 cdr_date BETWEEN '2006-03-22 00:00:00' AND '2006-03-22 23:59:59' IN cdr_dbs80';
15 
16 CREATE INDEX ix_cdr_id on cdr_all_data(cdr_id);

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • IBM stellt Informix Dynamic Server 11 vor

    IBM hat einen neuen Informix-Datenbankserver mit dem Codenamen Cheetah veröffentlicht. Er bringt Neues in den Bereichen Cluster-Anbindung und Verfügbarkeit.

  • Bank 24

    Der Informix Dynamic Server in Version 11 - IBMs neues OLTP-Datenbank-Flaggschiff - bietet eine ganze Fülle an Neuerungen. Dabei hat der Hersteller besonders in Bereiche wie Hochverfügbarkeit, Performance und die Anwendungsintegration investiert.

  • Jede Datenbank 0,- E

    Erst strukturiertes Ablegen macht aus den unfassbar riesigen Datenmengen unserer Tage nutzbare Information. Das dafür einzig brauchbare Archivsystem sind moderne Datenbanken - die acht wichtigsten, kostenlosen und Linux-fähigen Vertreter mussten sich einen gründlichen Eignungstest gefallen lassen.

  • Gekonnt reparieren

    Auch eine zuverlässige Software wie MySQL kommt nicht ohne Wartung über die Runden. Fragmentierte Tabellen, seltsame Fehlermeldungen oder korrupte Datenbanken treten zwar selten auf, kommt es aber dennoch zu solchen Problemen, hilft sich der Admin mit Bordmitteln einfach selbst.

  • Sicher im Tandem

    Manchmal reicht ein einzelner Datenbankserver nicht aus, mehrere müssen den kräftezehrenden Job übernehmen. Die Lösung für solche Probleme heißt pauschal: Replikation. Allerdings verbirgt sich hinter dem Schlagwort eine ganze Reihe sehr verschiedener Szenarios.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.