DE102010006931A1 - Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen - Google Patents

Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen Download PDF

Info

Publication number
DE102010006931A1
DE102010006931A1 DE102010006931A DE102010006931A DE102010006931A1 DE 102010006931 A1 DE102010006931 A1 DE 102010006931A1 DE 102010006931 A DE102010006931 A DE 102010006931A DE 102010006931 A DE102010006931 A DE 102010006931A DE 102010006931 A1 DE102010006931 A1 DE 102010006931A1
Authority
DE
Germany
Prior art keywords
trivial
block
bit
quasi
areas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102010006931A
Other languages
English (en)
Inventor
Joerg Bienert
Norbert Heuser
Michael Hummel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ParStream GmbH
Original Assignee
Bienert Jorg 50354
Heusser Norbert 53179
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bienert Jorg 50354, Heusser Norbert 53179 filed Critical Bienert Jorg 50354
Priority to DE102010006931A priority Critical patent/DE102010006931A1/de
Priority to EP11710114.7A priority patent/EP2531939B1/de
Priority to EP13005074.3A priority patent/EP2690565B1/de
Priority to PCT/EP2011/000519 priority patent/WO2011095345A1/en
Priority to JP2012551553A priority patent/JP5709903B2/ja
Priority to ES11710114T priority patent/ES2408701T1/es
Priority to DE11710114T priority patent/DE11710114T1/de
Priority to CN201180015734.1A priority patent/CN102906740B/zh
Priority to US13/576,082 priority patent/US9805045B2/en
Publication of DE102010006931A1 publication Critical patent/DE102010006931A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Das Verfahren zur Verarbeitung von Datensätzen, insbesondere in Datenbanksystemen, besteht aus folgenden Schritten: I. Erstellen von Datensammlungen II. Anlegen der Datensammlungen mit einer binären Struktur III. Aufteilen der Datensammlungen in mehrere Bitvektoren IV. Verkleinern jedes Bitvektors mit folgenden Unterschritten: – Aufteilen des Bitvektors in aufeinanderfolgende Teilbereiche gleicher Größe, wobei jeder Teilbereich aus n Bits besteht, – Klassifizieren der Teilbereiche in triviale Teilbereiche, quasi-triviale Teilbereiche und nicht-triviale Teilbereiche, – Zusammenfassen von einem nicht-trivialen oder mehreren aufeinanderfolgenden nicht-trivialen Teilbereichen zu jeweils einem R-Block und Notieren der absoluten Bitvektorposition PR des ersten Bits des ersten in jedem R-Block enthaltenen nicht-trivialen Teilbereiches und der Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche, – Entfernen der trivialen Teilbereiche, – Zusammenfassen von einem quasi-trivialen oder mehreren aufeinanderfolgenden quasi-trivialen Teilbereichen zu jeweils einem O-Block, Notieren der absoluten Bitvektorposition PO des ersten Bits des ersten in jedem O-Block enthaltenen quasi-trivialen Teilbereiches und der Anzahl mO der in einem O-Block aufeinanderfolgenden quasi-trivialen Teilbereiche und Entfernen der quasi-trivialen Teilbereiche, V. Auswählen von mindestens zwei Bitvektoren und Verknüpfen der mindestens zwei Bitvektoren zu einem Lösungsvektor, wobei die Verknüpfung der Bitvektoren durch die Verknüpfung von O- und/oder R-Blöcken der Bitvektoren erfolgt.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen.
  • Mit Hilfe der Datenbanken können Datensammlungen verarbeitet werden, indem sie beispielsweise durchsucht oder durch Verknüpfungen miteinander ausgewertet werden.
  • Die Datensammlungen werden häufig so bereitgestellt, dass in aus den Datensammlungen erzeugten Datensätzen mit binärer Struktur je nach verwendeten Daten zum Teil binäre Datenstrukturen enthalten sind, die über weite Teilbereiche nur Nullwerte enthalten. Beim Erzeugen von Datensammlungen kann es dazu kommen, dass Daten, die sich beispielsweise nur geringfügig unterscheiden, nicht zusammengefasst werden, sondern als zwei unterschiedliche Datensätze erstellt werden. Dadurch ist häufig die Anzahl der Datensätze in einer Datenbank sehr groß.
  • Um dennoch die Datensätze gut verwalten zu können, ist man dazu übergegangen, die Datensätze zu verkleinern, ohne dass Informationen verloren gehen. Dies geschieht beispielsweise durch eine Datenkompression.
  • Dies hat den Vorteil, dass die aufzubewahrende, beispielsweise elektronisch zu speichernde, Datenmenge deutlich reduziert wird. Jedoch müssen bei elektronischen Verarbeitungsprozessen, wie beispielsweise bei Verknüpfung von Daten mit Rechnern, die komprimierten Daten jeweils wieder vollständig entkomprimiert und somit in den ursprünglichen Zustand zurückgesetzt werden, um eine entsprechende Verarbeitung durchführen zu können.
  • Dadurch wird die Verarbeitungszeit durch den vorzunehmenden Dekomprimierungsvorgang erhöht.
  • Bei der elektronischen Verarbeitung der Daten ist darüber hinaus ein sehr großer Arbeitsspeicher notwendig, in dem die entkomprimierten Daten für die Verarbeitung vorgehalten werden müssen. Da die Daten vor der Verarbeitung in den Ursprungszustand zurückgesetzt bzw. entkomprimiert werden müssen, ist lediglich eine sequentielle Verarbeitung der Daten möglich. Dies ist dadurch begründet, dass die Dekomprimierung durch die Art der Komprimierung meist nur sequentiell möglich ist.
  • Es ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren zur Verarbeitung von Datensammlungen bereitzustellen, bei dem bei der Verarbeitung von Datensätzen ein Zurücksetzen der Daten in den ursprünglichen Zustand nicht notwendig ist, sondern die Daten im verkleinerten Zustand verarbeitet werden können. Darüber hinaus ist es wünschenswert, dass einzelne Verarbeitungsoperationen parallel durchgeführt werden können.
  • Zur Lösung der Aufgabe dient ein Verfahren mit den Merkmalen des Anspruchs 1.
  • Erfindungsgemäß ist vorgesehen, dass bei einem Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen, folgende Schritte durchgeführt werden. Zunächst werden Datensammlungen erstellt und aus den Datensammlungen Datensätze in einer binären Struktur erzeugt. Die Datensätze werden anschließend in mehrere Bitvektoren aufgeteilt. Jeder Bitvektor wird verkleinert, indem folgende Unterschritte durchgeführt werden:
    • – Aufteilen des Bitvektors in aufeinanderfolgende Teilbereiche gleicher Größe, wobei jeder Teilbereich aus n Bits besteht
    • – Klassifizieren der Teilbereiche in triviale Teilbereiche, quasi-triviale Teilbereiche und nicht-triviale Teilbereiche
    • – Zusammenfassen von einem nicht-trivialen oder mehreren aufeinanderfolgenden nicht-trivialen Teilbereichen zu jeweils einem R-Block und Notieren der absoluten Bitvektorposition PR des ersten Bits des ersten in jedem R-Block enthaltenen nicht-trivialen Teilbereiches und der Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche
    • – Entfernen der trivialen Teilbereiche
    • – Zusammenfassen von einem quasi-trivialen oder mehreren aufeinanderfolgenden quasi-trivialen Teilbereichen zu jeweils einem O-Block, Notieren der absoluten Bitvektorposition PO des ersten Bits des ersten in jedem O-Block enthaltenen quasi-trivialen Teilbereiches und der Anzahl mO der in einem O-Block aufeinanderfolgenden quasi-trivialen Teilbereiche und Entfernen der quasi-trivialen Teilbereiche.
  • Anschließend werden mindestens zwei Bitvektoren ausgewählt und zu einem Lösungsvektor verknüpft, wobei die Verknüpfung der Bitvektoren durch die Verknüpfung von O- und/oder R-Blöcken der Bitvektoren erfolgt. Triviale Teilbereiche und quasi-triviale Teilbereiche können dabei beispielsweise Teilbereiche sein, in denen eine regelmäßige Bitstruktur enthalten ist. Triviale Teilbereiche können beispielsweise Teilbereiche sein, in denen nur Nullen enthalten sind, während quasi-triviale Teilbereiche Teilbereiche sein können, in denen nur Einsen enthalten sind. Nicht-triviale Teilbereiche sind Teilbereiche, in denen sowohl Einsen als auch Nullen enthalten sind.
  • Durch die Verkleinerung des Bitvektors, wobei keine Informationen verloren gehen und die bei einer elektronischen Datenverarbeitung beispielsweise durch eine Datenkompression erfolgen kann, wird die Menge an zu verarbeitenden Daten deutlich reduziert. Dabei sieht die Erfindung in vorteilhafter Weise vor, dass jeder Bitvektor verkleinert bzw. komprimiert wird. Dazu werden die Bitvektoren jeweils in aufeinanderfolgende Teilbereiche gleicher Größe aufgeteilt, wobei jeder Teilbereich aus n Bits besteht. Die Teilbereiche können nun Bits enthalten, die unterschiedliche Werte besitzen oder nur Bits mit dem gleichen Wert aufweisen.
  • Dadurch sind die Teilbereiche in unterschiedliche Teilbereiche klassifizierbar. Die Teilbereiche, in denen die Bits unterschiedliche Werte aufweisen, sind nicht-triviale Teilbereiche. Die Teilbereiche, in denen die Bits beispielsweise nur den Wert 1 besitzen, sind quasi-triviale Teilbereiche. Die Teilbereiche, in denen die Bits nur den Wert 0 aufweisen, sind beispielsweise triviale Teilbereiche.
  • Anschließend können jeweils aufeinanderfolgende nicht-triviale Teilbereiche und aufeinanderfolgende quasi-triviale Teilbereiche zu Blöcken zusammengefasst werden. Die nicht-trivialen Teilbereiche werden zu R-Blöcken zusammengefasst. In jedem R-Block wird die Position PR des ersten Bits, des ersten in jedem R-Block enthaltenen Teilbereiches, die das Bit im ursprünglichen Zustand in dem Bitvektor besitzt, notiert. Ferner wird die Anzahl mR der in einem R-Block enthaltenen aufeinanderfolgenden nicht-trivialen Teilbereiche notiert. Falls auf einen nicht-trivialen Teilbereich sofort ein quasi-trivialer Teilbereich oder ein trivialer Teilbereich folgt, wird der einzelne nicht-triviale Teilbereich in den R-Block gesetzt und die Bitvektorposition PR und die Anzahl mR = 1 notiert.
  • Die quasi-trivialen Teilbereiche werden im wesentlichen fiktiv zusammengefasst, indem aufeinanderfolgende quasi-triviale Teilbereiche aufgefunden werden, die absolute Position PO des ersten Bits des ersten in jedem O-Block fiktiv enthaltenen quasi-trivialen Teilbereiches, die das Bit in dem Ursprungszustand des Bitvektors besitzt, zusammen mit der Anzahl mO der in einem O-Block aufeinanderfolgenden quasi-trivialen Teilbereiche notiert. Anschließend werden die quasi-trivialen Teilbereiche entfernt, so dass lediglich die Information über die absolute Bitvektorposition PO und die Anzahl mO in dem O-Block noch enthalten sind. Folgt auf einen quasi-trivialen Teilbereich unmittelbar ein trivialer Teilbereich oder ein nicht-trivialer Teilbereich, wird lediglich die absolute Bitvektorposition PO des ersten Bits dieses quasi-trivialen Teilbereiches notiert und die Anzahl mO = 1 notiert.
  • Die trivialen Teilbereiche werden vollständig entfernt.
  • Durch die Notierung der absoluten Position des ersten Bits des ersten in jedem R-Block enthaltenen Teilbereiches und der Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche können die in jedem R-Block enthaltenen Daten verwendet werden, ohne dass es notwendig ist, den Bitvektor in den Ursprungszustand zu versetzen bzw. zu dekomprimieren.
  • Durch die Verwendung der absoluten Bitvektorposition PO der ursprünglich in jedem O-Block enthaltenen quasi-trivialen Teilbereiche und der Anzahl mO der ursprünglich in einem O-Block aufeinanderfolgenden quasi-trivialen Teilbereiche sind in den O-Blöcken ausreichende Informationen enthalten, um auch diese Daten bei der Verarbeitung von Datensätzen zu nutzen, ohne dass ein Zurücksetzen des Bitvektors in den ursprünglichen Zustand bzw. ein Dekomprimieren des Bitvektors notwendig ist.
  • Dadurch, dass die absoluten Bitvektorpositionen PO und PR der O- bzw. R-Blöcke bekannt sind, ist es auch möglich, die darin enthaltenen Daten zur parallelen Datenverarbeitung zu nutzen. So ist es beispielsweise möglich, dass bei der Verknüpfung von mindestens zwei Bitvektoren zu einem Lösungsvektor die Verknüpfung von einzelnen O- und/oder R-Blöcken der Bitvektoren parallel durchgeführt wird. Dadurch ist eine besonders schnelle Verarbeitung der Datensätze möglich.
  • Die Erfindung sieht in vorteilhafter Weise vor, dass die absolute Bitvektorposition PR und die Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche am Anfang jedes R-Blockes, vorzugsweise in binärer Form, notiert werden. Dabei kann in jedem R-Block ein Informationsbereich mit n Bits erzeugt werden, in dem die absolute Vektorposition PR und die Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche binär notiert werden, wobei die Anzahl mR in den letzten x Bits des Informationsbereiches notiert wird und x = log2 n ist. Eine derartige Notierung hat sich als besonders vorteilhaft herausgestellt, die darüber hinaus eine geringe Datenmenge benötigt. Durch das Vorsehen des Informationsbereiches am Anfang jedes R-Blocks ist die Verarbeitung der in dem R-Block enthaltenen Daten in vorteilhafter Weise möglich, da bereits bei Beginn der Verarbeitung des R-Blocks bekannt ist, wie viele Daten in dem R-Block enthalten sind und wo diese Daten ursprünglich in dem Bitvektor enthalten waren.
  • Dadurch, dass jeder Teilbereich aus n Bits besteht und in jedem R-Block stets eine ganzzahlige Anzahl mR von nicht-trivialen Teilbereichen in jedem R-Block enthalten sind, ist die absolute Bitvektorposition PR stets ein ganzzahliges Vielfaches von n.
  • Bei der Notierung der absoluten Bitvektorposition PR in binärer Form verbleiben daher die letzten x Bits des Informationsbereiches stets als 0, unter der Voraussetzung, dass x = log2 n ist. Die letzten x Bits des Informationsbereiches werden daher für die Notierung der absoluten Bitvektorposition PR nicht benötigt, so dass in diesem die Anzahl mR der aufeinanderfolgenden nicht-trivialen Teilbereiche notiert werden kann. Dadurch wird die für den Informationsbereich benötigte Datenmenge reduziert.
  • Die Erfindung sieht ferner in vorteilhafter Weise vor, dass ausschließlich die absolute Bitvektorposition PO, die Anzahl mO der in einem O-Block ursprünglich enthaltenen quasi-trivialen Teilbereiche und eine Kennzeichnung des O-Blocks, vorzugsweise in binärer Form, in einem O-Block notiert werden. Dabei kann vorgesehen sein, dass in jedem O-Block ein erster und ein zweiter Informationsbereich mit jeweils n Bits erzeugt wird, in denen die absolute Bitvektorposition PO und die Anzahl mO der in einem O-Block ursprünglich enthaltenen quasi-trivialen Teilbereiche binär notiert werden, wobei die absolute Bitvektorposition PO in dem ersten Informationsbereich und die Anzahl mO in dem zweiten Informationsbereich notiert werden, wobei ferner die Kennzeichnung der letzten x Bits des ersten Informationsbereiches notiert wird und x = log2 n ist. Die Kennzeichnung kann beispielsweise dadurch erfolgen, dass die letzten x Bits den Wert 0 besitzen.
  • Auf diese Weise kann ein O-Block mit dem in den O-Block enthaltenen Informationen der absoluten Bitvektorposition PO und der Anzahl mO mit einer geringen Datenmenge erzeugt werden.
  • In einem Ausführungsbeispiel der Erfindung ist vorgesehen, dass die Anzahl mR ≤ n – 1 ist. Auch kann vorgesehen sein, dass die Anzahl mO ≤ 2n ist. Jeder Bitvektor kann eine maximale Länge von 2n + n – 1 besitzen.
  • In einem Ausführungsbeispiel der Erfindung ist vorgesehen, dass die Verarbeitung von Datensätzen über eine Rechnereinheit mit mehreren SIMD-Prozessoren (SIMD – single instruction multiple data) erfolgt, wobei die parallele Verknüpfung auf die mehreren SIMD-Prozessoren verteilt wird.
  • Im Folgenden wird unter Bezugnahme auf die einzige Figur die Erfindung näher erläutert.
  • Das erfindungsgemäße Verfahren zur Verarbeitung von Datensätzen, insbesondere in Datenbanksystemen, kann beispielsweise im Zusammenhang mit Datenbanksystemen für Call Data Records (CDR) bei Abrechnungssystemen im Telekommunikationsbereich verwendet werden.
  • Datensammlungen über Telekommunikationsdienstleistungen werden beispielsweise in Datenbanksystemen gespeichert, wobei die Daten beispielsweise aus Telefonnummer, Dauer des Gespräches, Uhrzeit etc. bestehen können. Mit Hilfe der Datenbanksysteme können diese Daten ausgewertet werden.
  • Die Daten werden häufig jedoch so erstellt, dass nur eine der Informationen, wie beispielsweise Uhrzeit oder Dauer zutrifft. Selbst wenn von einem Anschluss Gespräche zur gleichen Telefonnummer kurz nacheinander geführt werden, so wird dies als zwei unabhängige Gespräche angesehen und es werden zwei unterschiedliche Daten angelegt. Dadurch entsteht eine sehr große Anzahl von Daten. In Deutschland beträgt die Anzahl derartiger Daten mehrere Milliarden.
  • Die Datensammlungen werden nun in Datensätzen mit einer binären Struktur überführt. Dies kann beispielsweise in Form einer Matrix (bitmap) geschehen, wobei die Zeilen beispielsweise die jeweiligen Gespräche darstellen und die Spalten die entsprechenden Bedingungen, wie Uhrzeit, Dauer etc. In dieser Matrix bedeutet der Binärwert 1, dass die entsprechende Information zutrifft und der Binärwert 0, dass diese Information nicht zutrifft. Aufgrund der Struktur der Datensätze sind in der binären Struktur in Form einer Matrix nun große Bereiche, in denen die Bits mit dem Wert 0 enthalten sind und es existieren auch Bereiche, in denen eine Vielzahl von aufeinanderfolgenden Bits mit dem Wert 1 enthalten sind.
  • Die binäre Struktur kann nun in mehrere Bitvektoren aufgeteilt werden, wobei jede Spalte einen Bitvektor darstellt.
  • Zur Vereinfachung der Verarbeitung der Datensätze können die Bitvektoren nun verkleinert werden, ohne dass es zu Verlust von Informationen kommt. Dazu werden die Bitvektoren in aufeinanderfolgende Teilbereiche gleicher Größe aufgeteilt, wobei jeder Teilbereich aus n Bits besteht. Die entsprechenden Teilbereiche sind in der Figur schematisch dargestellt. Dabei ist der erste Teilbereich eines Bitvektors, der dritte Teilbereich eines Bitvektors und der fünfte Teilbereich eines Bitvektors gezeigt. Die Teilbereiche bestehen in dem gezeigten Ausführungsbeispiel aus 32 Bits, da bei vielen Computern die Basisspeichereinheit aus 32 Bits besteht. Neuere Systeme besitzen 64 Bit Basisspeichereinheiten, so dass es selbstverständlich auch möglich ist, die Teilbereiche mit 64 Bits vorzusehen.
  • Anschließend werden die Teilbereiche klassifiziert. Die Teilbereiche, die jeweils Bits mit den Werten 0 und 1 in einer beliebigen Reihenfolge enthalten, sind sogenannte nicht-triviale Teilbereiche. Die Teilbereiche, die ausschließlich Bits mit dem Wert 1 beinhalten, sind quasi-triviale Teilbereiche. Die Teilbereiche, die ausschließlich Bits mit dem Wert 0 beinhalten, sind triviale Teilbereiche. Jeweils mehrere aufeinanderfolgende nicht-triviale Teilbereiche werden nun zu einem R-Block zusammengefasst.
  • In dem R-Block wird ein Informationsbereich am Anfang des R-Blockes erzeugt, der die Länge von n Bits besitzt. In dem gezeigten Ausführungsbeispiel besitzt der Informationsbereich des R-Blocks die Länge 32 Bits. In diesem Informationsbereich wird nun die absolute Position des ersten Bits der aufeinanderfolgenden Teilbereiche notiert, die die Teilbereiche in dem ursprünglichen Bitvektor besitzen. In der Figur sind die absoluten Bitvektorpositionen als Offset bezeichnet.
  • Da in dem gezeigten Ausführungsbeispiel die Teilbereiche jeweils eine Länge von 32 besitzen, sind die letzten 5 Bits des Informationsbereiches, die Bits 28 bis 32, bei der Notierung der absoluten Bitvektorposition PR stets unverändert, so dass diese für die Notierung der absoluten Bitvektorposition PR nicht benötigt werden. Daher können die Bits 28 bis 32 genutzt werden, um die Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche zu notieren.
  • In dem dargestellten Ausführungsbeispiel besitzt der Bit Nummer 27 des Informationsbereiches den Wert 0, so dass die Bitvektorposition PR ebenfalls 0 ist. Das Bit 32 besitzt den Wert 1, so dass angezeigt wird, dass ein nicht-trivialer Teilbereich in diesem Block enthalten ist. In einem R-Block können maximal 31 nicht-triviale Teilbereiche enthalten sein. Sollten mehr als 31 nicht-triviale Teilbereiche in einem Bitvektor aufeinander folgen, so werden diese in zwei oder mehr unterschiedliche R-Blöcke aufgeteilt.
  • Für den Fall, dass der Bitvektor die Länge von 64 Bits besitzt, sind jeweils die letzten 6 Bits des Informationsbereiches frei, so dass die Notierung des absoluten Bitvektors bei Bit Nummer 58 bekommt. In diesem Fall können in einem R-Block 63 nicht-triviale Teilbereiche enthalten sein.
  • Für die Anzahl mR der in einem R-Block enthaltenen nicht-trivialen Teilbereiche gilt somit mR ≤ n – 1.
  • In einem R-Block kann beispielsweise auch nur ein nicht-trivialer Teilbereich enthalten sein, wie in dem Beispiel der Figur gezeigt.
  • Die quasi-trivialen Teilbereiche, die nur Bits mit dem Wert 1 besitzen, werden ebenfalls zu Blöcken zusammengefasst, die als O-Blöcke bezeichnet werden. Dabei werden diese Blöcke lediglich fiktiv zusammengefasst. In einem O-Block sind lediglich ein erster und ein zweiter Informationsbereich enthalten. In dem ersten Informationsbereich ist eine Kennzeichnung enthalten, dass es sich um einen O-Block handelt sowie die absolute Bitvektorposition des ersten Bits des ersten in dem O-Block fiktiv enthaltenen Teilbereichs notiert wird. In dem dargestellten Beispiel ist die absolute Bitvektorposition PO 64, so dass der Bit 26 des ersten Informationsbereiches den Wert 1 besitzen. Die Kennzeichnung erfolgt, indem in dem ersten Informationsbereich die Bits 28 bis 32 den Wert 0 besitzen. Dadurch kann der O-Block von dem R-Block unterschieden werden. In dem zweiten Informationsbereich ist die Anzahl mO der fiktiv in dem O-Block enthaltenen quasi-trivialen Teilbereiche binär notiert. In dem dargestellten Ausführungsbeispiel können in einem O-Block maximal 232 quasi-triviale Teilbereiche fiktiv enthalten sein.
  • Bei einem System, bei dem Teilbereiche aus 64 Bits bestehen, wird die Kennzeichnung in den Bits 59 bis 64 des ersten Informationsbereiches notiert, indem diese Bits auf 0 gesetzt werden. Die Anzahl wird wiederum in dem zweiten Informationsbereich notiert, wobei in diesem Fall die Anzahl der fiktiv in einem O-Block aufeinanderfolgenden quasi-trivialen Teilbereich theoretisch maximal mO = 264 ist.
  • Die quasi-trivialen Teilbereiche werden nun entfernt. Ferner werden die trivialen Teilbereiche, bei denen die Bitwerte stets den Wert 0 besitzen, ebenfalls entfernt. Auf diese Weise kann durch die Verkleinerung der Bitvektoren die Datenmenge stark reduziert werden, insbesondere bei Datensätzen, wie in dem beschriebenen Ausführungsbeispiel, bei dem große Datenmengen mit Bits mit dem Wert 0 oder mit Bits mit dem Wert 1 aufeinanderfolgen.
  • Bei der weiteren Verarbeitung der Datensätze werden nun mindestens zwei Bitvektoren ausgewählt und miteinander verknüpft. Die Auswahl der Bitvektoren richtet sich nach der gestellten Anfrage. Bei der Verknüpfung der Bitvektoren werden O- und/oder R-Blöcke der Bitvektoren miteinander verknüpft. Dazu wird zunächst festgestellt, ob die beiden miteinander zu verknüpfenden Blöcke einen Überschneidungsbereich aufweisen. Dieser Überschneidungsbereich wird dann lediglich dann durch die entsprechenden Operation, beispielsweise eine Und- oder eine Oder-Operation miteinander verknüpft. Das Ergebnis wird in einen Lösungsvektor geschrieben.
  • Dabei kann die Lösung in dem Lösungsvektor bereits in komprimierter Form eingetragen werden. Selbstverständlich ist es auch möglich, dass der Lösungsvektor im unkomprimierten Zustand ausgegeben wird. Die nach der Verknüpfung verbleibenden Freistellen in dem Lösungsvektor werden in dem unkomprimierten Zustand dann mit den Werten 0 aufgefüllt.
  • Aus dem Lösungsvektor können nun die Gespräche, die die entsprechenden Anfragen erfüllen, entnommen werden, da für diese Gespräche an der entsprechenden Position des Lösungsvektors der Bitvektor 1 beträgt.
  • Bei der Verknüpfung der Bitvektoren kann die Verknüpfung von O- und/oder R-Blöcken der Bitvektoren parallel vorgenommen werden, da bei den Blöcken die absolute Bitvektorposition der in den Blöcken enthaltenen Teilbereiche bekannt ist. Insbesondere ist es bei der Verknüpfung nicht notwendig, dass die Bitvektoren in den ursprünglichen Zustand zurückversetzt werden, d. h. dass sie entkomprimiert werden müssen.
  • Dadurch ist bei der Verknüpfung eine enorme Zeitersparnis möglich. Bei der Verwendung von Rechnersystemen zur Verarbeitung der Datensätze ist ferner der Speicherbedarf bei der Verknüpfung gering gehalten.
  • Es ist erfindungsgemäß vorgesehen, dass die Verknüpfungsoperationen auf mehreren SIMD-Prozessoren (single instruction multiple data) parallel stattfinden kann. In einem besonderen Ausführungsbeispiel ist vorgesehen, dass die auf Graphikkarten vorhandenen SIMD-Prozessoren für die Verarbeitung der Daten genutzt werden. Dabei kann beispielsweise vorgesehen sein, dass in einer Rechnereinheit mehrere Graphikkarten enthalten sind.
  • Selbstverständlich ist es möglich, dass das erfindungsgemäße Verfahren auch bei anderen Datensätzen als Telekommunikationsdaten Anwendung findet. Das erfindungsgemäße Verfahren ist jedoch besonders leistungsfähig bei Datensätzen in binärer Struktur, bei denen eine Vielzahl von Bitwerten mit 0 oder Bitwerten mit 1 aufeinanderfolgen.
  • SIMD-Prozessoren sind für die erforderlichen Verknüpfungsaufgaben ausreichend und darüber hinaus in großer Anzahl in normalen Rechnersystemen verfügbar. Beispielsweise verfügen Graphikchips leistungsstarker Graphikkarten über 256 SIMD-Prozessoren. Dadurch können eine große Anzahl von Verknüpfungsoperationen gleichzeitig durchgeführt werden, so dass die Verarbeitung der Daten sehr schnell erfolgen kann.

Claims (10)

  1. Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen, mit folgenden Schritten: I. Erstellen von Datensammlungen II. Anlegen der Datensammlungen mit einer binären Struktur III. Aufteilen der Datensätze in mehrere Bitvektoren IV. Verkleinern jedes Bitvektors mit folgenden Unterschritten: – Aufteilen des Bitvektors in aufeinanderfolgende Teilbereiche gleicher Größe, wobei jeder Teilbereich aus n Bits besteht, – Klassifizieren der Teilbereiche in triviale Teilbereiche, quasi-triviale Teilbereiche und nicht-triviale Teilbereiche, – Zusammenfassen von einem nicht-trivialen oder mehreren aufeinanderfolgenden nicht-trivialen Teilbereichen zu jeweils einem R-Block und Notieren der absoluten Bitvektorposition PR des ersten Bits des ersten in jedem R-Block enthaltenen nicht-trivialen Teilbereiches und der Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche, – Entfernen der trivialen Teilbereiche, – Zusammenfassen von einem quasi-trivialen oder mehreren aufeinanderfolgenden quasi-trivialen Teilbereichen zu jeweils einem O-Block, Notieren der absoluten Bitvektorposition PO des ersten Bits des ersten in jedem O-Block enthaltenen quasi-trivialen Teilbereiches und der Anzahl mO der in einem O-Block aufeinanderfolgenden quasi-trivialen Teilbereiche und Entfernen der quasi-trivialen Teilbereiche, V. Auswählen von mindestens zwei Bitvektoren und Verknüpfen der mindestens zwei Bitvektoren zu einem Lösungsvektor, wobei die Verknüpfung der Bitvektoren durch die Verknüpfung von O- und/oder R-Blöcken der Bitvektoren erfolgt.
  2. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass bei der Verknüpfung der mindestens zwei Bitvektoren mehrere Verknüpfungen von O- und/oder R-Blöcken der Bitvektoren parallel erfolgen.
  3. Verfahren nach Anspruch 1 oder 2 dadurch gekennzeichnet, dass die absolute Bitvektorposition PR und die Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche am Anfang jedes R-Blocks mit nicht-trivialen Teilbereichen, vorzugsweise in binärer Form, notiert werden.
  4. Verfahren nach einem der Ansprüche 1 bis 3 dadurch gekennzeichnet, dass ausschließlich die absolute Bitvektorposition PO, die Anzahl mO der in einem O-Block ursprünglich enthaltenen quasi-trivialen Teilbereiche und eine Kennzeichnung des O-Blocks, vorzugsweise in binärer Form, in einem O-Block notiert werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Anzahl mR ≤ n – 1 ist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Anzahl mO ≤ 2n ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass jeder Bit-Vektor eine maximale Länge von 2n + n – 1 besitzt.
  8. Verfahren nach einem der Ansprüche 3 bis 7 dadurch gekennzeichnet, dass in jedem R-Block ein Informations-Bereich mit n Bits erzeugt wird, in dem die absolute Bitvektorposition PR und die Anzahl mR der in einem R-Block aufeinanderfolgenden nicht-trivialen Teilbereiche binär notiert werden, wobei die Anzahl mR in dem letzten x Bits des Informations-bereiches notiert werden und x = log2 n ist.
  9. Verfahren nach einem der Ansprüche 4 bis 7 dadurch gekennzeichnet, dass in jedem O-Block ein erster und ein zweiter Informations-Bereich mit jeweils n Bits erzeugt wird, in dem die absolute Bitvektorposition PO und die Anzahl mO der in einem O-Block ursprünglich enthaltenen quasi-trivialen Teilbereiche binär notiert werden, wobei die absolute Bitvektorposition PO in dem ersten Informationsbereich und die Anzahl mO in dem zweiten Informationsbereich notiert werden, wobei ferner die Kennzeichnung in den letzten Bits des ersten Informationsbereiches notiert wird und x = log2 n ist.
  10. Verfahren nach einem der Ansprüche 2 bis 9 dadurch gekennzeichnet, dass die parallele Verknüpfung auf einer Rechnereinheit mit mehreren SIMD-Prozessoren durchgeführt wird.
DE102010006931A 2010-02-04 2010-02-04 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen Withdrawn DE102010006931A1 (de)

Priority Applications (9)

Application Number Priority Date Filing Date Title
DE102010006931A DE102010006931A1 (de) 2010-02-04 2010-02-04 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
EP11710114.7A EP2531939B1 (de) 2010-02-04 2011-02-04 Verfahren und system zur komprimierung von datensätzen und zur verarbeitung komprimierter datensätze
EP13005074.3A EP2690565B1 (de) 2010-02-04 2011-02-04 Verfahren und system zur komprimierung von datensätzen und zur verarbeitung komprimierter datensätze
PCT/EP2011/000519 WO2011095345A1 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records
JP2012551553A JP5709903B2 (ja) 2010-02-04 2011-02-04 データレコードを圧縮し圧縮されたデータレコードを処理するための方法、システム、コンピュータプログラム、その記録媒体、データコレクションを記憶したデータ記憶媒体、並びに通話データ記録システム
ES11710114T ES2408701T1 (es) 2010-02-04 2011-02-04 Procedimiento y sistema para comprimir registros de datos y para procesar registros de datos comprimidos
DE11710114T DE11710114T1 (de) 2010-02-04 2011-02-04 Verfahren und system zur komprimierung von datensätzen und zur verarbeitung komprimierter datensätze
CN201180015734.1A CN102906740B (zh) 2010-02-04 2011-02-04 压缩数据记录和处理压缩数据记录的方法和系统
US13/576,082 US9805045B2 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010006931A DE102010006931A1 (de) 2010-02-04 2010-02-04 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen

Publications (1)

Publication Number Publication Date
DE102010006931A1 true DE102010006931A1 (de) 2011-08-04

Family

ID=43952834

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102010006931A Withdrawn DE102010006931A1 (de) 2010-02-04 2010-02-04 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
DE11710114T Pending DE11710114T1 (de) 2010-02-04 2011-02-04 Verfahren und system zur komprimierung von datensätzen und zur verarbeitung komprimierter datensätze

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE11710114T Pending DE11710114T1 (de) 2010-02-04 2011-02-04 Verfahren und system zur komprimierung von datensätzen und zur verarbeitung komprimierter datensätze

Country Status (7)

Country Link
US (1) US9805045B2 (de)
EP (2) EP2690565B1 (de)
JP (1) JP5709903B2 (de)
CN (1) CN102906740B (de)
DE (2) DE102010006931A1 (de)
ES (1) ES2408701T1 (de)
WO (1) WO2011095345A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2720376A1 (de) * 2012-10-09 2014-04-16 Alcatel Lucent Sichere und verlustfreie Datenkomprimierung
US9094537B2 (en) * 2013-03-22 2015-07-28 Jdsu Uk Limited Method and apparatus for managing call data
KR101656750B1 (ko) * 2016-02-26 2016-09-23 주식회사 아미크 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US10725911B2 (en) * 2018-12-10 2020-07-28 Sap Se Non-Uniform pagination of columnar data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0633537A2 (de) * 1993-06-30 1995-01-11 Microsoft Corporation Verfahren und System zur Suchen komprimierter Daten

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04340866A (ja) 1991-05-16 1992-11-27 Mutoh Ind Ltd ビットマップ・ランレングス変換装置
JP2790594B2 (ja) 1993-05-28 1998-08-27 株式会社日立製作所 データベースレコードの圧縮方法および復元方法
JP3218226B2 (ja) 1996-03-19 2001-10-15 三菱電機株式会社 符号化装置及び復号装置及びそれらの方法及び画像処理装置
US5907297A (en) * 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression
JP3860910B2 (ja) 1998-04-30 2006-12-20 株式会社アドバンテスト データ圧縮装置およびデータ圧縮方法
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
KR100390672B1 (ko) 2000-12-01 2003-07-07 (주)아이디스 영상 압축 장치 및 방법
US7293150B2 (en) 2002-06-28 2007-11-06 Microsoft Corporation Method and system for creating and restoring an image file
US6831575B2 (en) * 2002-11-04 2004-12-14 The Regents Of The University Of California Word aligned bitmap compression method, data structure, and apparatus
US7961960B2 (en) * 2006-08-24 2011-06-14 Dell Products L.P. Methods and apparatus for reducing storage size
US8918305B2 (en) * 2007-03-23 2014-12-23 D.E. Shaw Research, Llc Distributed computation of multiple-body interactions using local-coordinate reference frames
US7769729B2 (en) 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
US9236881B2 (en) * 2009-08-07 2016-01-12 Algorhyme A/S Compression of bitmaps and values

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0633537A2 (de) * 1993-06-30 1995-01-11 Microsoft Corporation Verfahren und System zur Suchen komprimierter Daten

Also Published As

Publication number Publication date
EP2690565B1 (de) 2020-06-17
US9805045B2 (en) 2017-10-31
CN102906740A (zh) 2013-01-30
JP2013519141A (ja) 2013-05-23
JP5709903B2 (ja) 2015-04-30
CN102906740B (zh) 2015-10-21
EP2690565A1 (de) 2014-01-29
US20130204850A1 (en) 2013-08-08
EP2531939B1 (de) 2014-04-09
WO2011095345A1 (en) 2011-08-11
ES2408701T1 (es) 2013-06-21
DE11710114T1 (de) 2013-07-25
EP2531939A1 (de) 2012-12-12

Similar Documents

Publication Publication Date Title
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE69736148T2 (de) Verfahren und Einrichtung zur Datenverschlüsselung
DE2909153C2 (de) Einrichtung zur digitalen Analyse von Bild- oder Zeichenmustern
DE69733989T2 (de) Verfahren zur Extrahierung von Daten und Verfahren zur Verdeckerung von Daten
DE19535546B4 (de) Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
DE102010006931A1 (de) Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
DE102007045741A1 (de) Verfahren und Vorrichtung zum Codieren und Decodieren von Multimediadaten
DE60116392T2 (de) Verfahren und vorrichtung für verschachtelte datensicherung
DE3150203C2 (de)
DE3742142A1 (de) Verfahren und vorrichtung zur kompression und rekonstruktion von datenfolgen
EP1145113B1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE60211210T2 (de) Vorrichtung und verfahren zur bildskalierung
DE3545106C2 (de)
DE102019106724A1 (de) Effiziente Datenverarbeitung
WO2003094093A2 (de) Vergleich von verarbeitungsprotokollen
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE1955797A1 (de) Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer
DE3113189C2 (de) Vorrichtung zur Umsetzung von digitalen Zeichencodes, die von einem Datenverarbeitungssystem empfangen oder geliefert werden
DE102006048432A1 (de) Verfahren und Aufzeichnungsformat für Bildkomprimierung
DE2136536C3 (de) Anordnung zur Komprimierung binarer Daten
DE19956625A1 (de) Echtzeit-Datensortierung und -reduktion
EP2924585A1 (de) Verfahren zur Kompression von Beobachtungen einer Vielzahl von Testabläufen
DE60002223T2 (de) Verriegelung von threads
DE1474090A1 (de) Informationsverarbeitung
DE1524264C3 (de) Einrichtung zur Erzeugung einer Bildaufzeichnung

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: PARSTREAM GMBH, DE

Free format text: FORMER OWNERS: BIENERT, JOERG, 50354 HUERTH, DE; HEUSSER, NORBERT, 53179 BONN, DE; HUMMEL, MICHAEL, 51503 ROESRATH, DE

Effective date: 20120405

Owner name: PARSTREAM GMBH, DE

Free format text: FORMER OWNER: JOERG BIENERT,NORBERT HEUSSER,MICHAEL HUMMEL, , DE

Effective date: 20120405

R082 Change of representative

Representative=s name: HOESSLE PATENTANWAELTE PARTNERSCHAFT, DE

Effective date: 20120405

R120 Application withdrawn or ip right abandoned
R120 Application withdrawn or ip right abandoned

Effective date: 20150306