Hallo Forum,
ich möchte eine riesige Sammlung deutschsprachiger Texte in eine Datenbank spielen. Diese zehn oder mehr Terrabyte sollen in einzelne Sätze getrennt eingefügt werden. Ich brauche dafür keinen Volltextindex oder eine andere Suchmöglichkeit: Datensätze werden in der Regel komplett ausgelesen.
Diese Daten eignen sich hervorragend für eine feldübergreifende Komprimierung. Die Idee geht so: Ich lade 10 GB an Text in die DB und starte eine Komprimierung: Die DB-Engine lernt die Struktur der Daten und komprimiert sie, wie auch alle folgenden Einträge, solange ich nicht die Komprimierung neu starte bzw. die DB nicht von selbst die Komprimierung erneut anstößt.
Für mich ist die feldübergreifende Komprimierung wichtig: Dass also nicht ein einzelnes Feld für sich komprimiert wird, sondern die Komprimierung aus der Spalte insgesamt gelernt wird, weil es sonst einen zu großen Overhead gibt, wenn das feldweise passiert. Deshalb funktioniert z. B. Toast bei PostgrSQL nicht wie ich mir das vorstelle (zumindest, wenn ich das richtig verstanden habe.).
Ich sehe jetzt zwei Lösungen:
* Es gibt ein (freies) DB-System, das diese Funktionalität mitbringt oder
* ich komprimiere die Daten extern und füge sie als Binary Objects ein. (Wie es z. B. die Wikipedia macht.)
Bei letzterer Lösung würde mich interessieren, ob es die Möglichkeit gibt, an eine Spalte eine compress-Funktion zu binden. Sprich alle Zugriffe auf diese Spalte werden automatisch verarbeitet, also komprimiert bzw. dekomprimiert, ohne dass ich dies in dem zugreifenden Programm realisieren müsste. Das Problem wäre hier wieder die feldübergreifende Komprimierung.
Ich freue mich auf Eure Antworten.
ich möchte eine riesige Sammlung deutschsprachiger Texte in eine Datenbank spielen. Diese zehn oder mehr Terrabyte sollen in einzelne Sätze getrennt eingefügt werden. Ich brauche dafür keinen Volltextindex oder eine andere Suchmöglichkeit: Datensätze werden in der Regel komplett ausgelesen.
Diese Daten eignen sich hervorragend für eine feldübergreifende Komprimierung. Die Idee geht so: Ich lade 10 GB an Text in die DB und starte eine Komprimierung: Die DB-Engine lernt die Struktur der Daten und komprimiert sie, wie auch alle folgenden Einträge, solange ich nicht die Komprimierung neu starte bzw. die DB nicht von selbst die Komprimierung erneut anstößt.
Für mich ist die feldübergreifende Komprimierung wichtig: Dass also nicht ein einzelnes Feld für sich komprimiert wird, sondern die Komprimierung aus der Spalte insgesamt gelernt wird, weil es sonst einen zu großen Overhead gibt, wenn das feldweise passiert. Deshalb funktioniert z. B. Toast bei PostgrSQL nicht wie ich mir das vorstelle (zumindest, wenn ich das richtig verstanden habe.).
Ich sehe jetzt zwei Lösungen:
* Es gibt ein (freies) DB-System, das diese Funktionalität mitbringt oder
* ich komprimiere die Daten extern und füge sie als Binary Objects ein. (Wie es z. B. die Wikipedia macht.)
Bei letzterer Lösung würde mich interessieren, ob es die Möglichkeit gibt, an eine Spalte eine compress-Funktion zu binden. Sprich alle Zugriffe auf diese Spalte werden automatisch verarbeitet, also komprimiert bzw. dekomprimiert, ohne dass ich dies in dem zugreifenden Programm realisieren müsste. Das Problem wäre hier wieder die feldübergreifende Komprimierung.
Ich freue mich auf Eure Antworten.