-
STAND DER TECHNIK
-
Die vorliegende Erfindung bezieht sich auf verteilte Datenbanken und insbesondere auf ein Verarbeiten von Daten verteilter Datenbanken.
-
Datenbanken finden in Gebieten wie eBusiness, soziale Netzwerke, Internetsuchen und Internet der Dinge (IOT, Internet of Things) usw. breite Anwendung. Bei Datenbanken kann es sich um relationale Datenbanken und nichtrelationale Datenbanken handeln. Bei einer relationalen Datenbank ist eine Tabelle eine formatierte Datenstruktur. Die Feldzusammensetzung ist für alle Tupel in einer Tabelle gleich. Auch wenn nicht alle Felder für alle Tupel erforderlich sind, ordnet die Datenbank alle Felder für jedes Tupel zu. Eine solche Struktur kann Vorgänge wie ein Verknüpfen einer Tabelle mit einer anderen erleichtern.
-
Eine nichtrelationale Datenbank speichert Informationen mit Tupeln, die aus Schlüssel-Wert-Paaren bestehen. Ihre Struktur ist nicht fest und unterschiedliche Tupel können unterschiedliche Felder haben. Jedes Tupel kann weitere Schlüssel-Wert-Paare je nach Bedarf für sich selbst haben, und somit ist sie nicht auf eine feste Struktur eingeschränkt. Aus diesem Grund besitzen nichtrelationale Datenbanken das Merkmal einer guten Skalierbarkeit. Aufgrund dieses Merkmals werden nichtrelationale Datenbanken schnell entwickelt.
-
Sowohl relationale als auch nichtrelationale Datenbanken können mehrdimensionale Daten speichern. Zu Beispielen für mehrdimensionale Daten zählen Messdaten von Sensoren, z. B. Temperaturwert und Windgeschwindigkeitswert, die zu unterschiedlichen Zeitpunkten gemessen werden. Wenn ein bestimmter Sensor und ein von dem bestimmten Sensor aufgezeichneter Zeitpunkt beim Abfragen von Datenbanken gleichzeitig abzufragen sind, bilden die Einheiten-Kennung des Sensors und der Zeitpunkt einen zweidimensionalen Datenwert. Wenn ein bestimmter Sensor und ein Zeitpunkt und eine Temperatur, die vom bestimmten Sensor aufgezeichnet wurden, gleichzeitig abzufragen sind, bilden die Einheiten-Kennung des Sensors, der Zeitpunkt und die Temperatur einen dreidimensionalen Datenwert.
-
Nach dem Stand der Technik gibt es Techniken zum Verarbeiten von mehrdimensionalen Daten, z. B. Techniken zum Indexieren, Speichern und Abfragen in Bezug auf mehrdimensionale Daten. Werden diese Techniken jedoch auf das Verarbeiten von mehrdimensionalen Daten angewandt, müssen zusätzliche Datenverarbeitungsressourcen für eine höhere Effizienz in Anspruch genommen werden. Aufgrund des schnellen Anstiegs der Anzahl an Datenbankdaten, die von diversen Anwendungen verarbeitet werden, wird es zunehmend wichtiger, den Gegensatz zu entschärfen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Angesichts des Standes der Technik besteht eines der Ziele der vorliegenden Erfindung im Bereitstellen eines verbesserten Verfahrens und einer verbesserten Vorrichtung zum Verarbeiten von Daten in verteilten Datenbanksystemen.
-
Unter einem Aspekt wird ein Verfahren zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem bereitgestellt, wobei das verteilte Datenbanksystem eine Mehrzahl von Datenverarbeitungsknoten aufweist, die zum Austausch von Daten über Computernetzwerke verbunden sind, wobei das Verfahren aufweist: Erstellen einer Mehrzahl von unterschiedlichen Datenreplikaten, wobei jedes der Datenreplikate wie folgt erstellt wird: Sortieren der Datenbankdaten gemäß zumindest einem Datenattribut; Erzeugen eines Zeilenschlüssels auf der Grundlage des zumindest einen Datenattributs; und Verwenden der sortierten Datenbankdaten mit dem Zeilenschlüssel als das Datenreplikat, Speichern unterschiedlicher Datenreplikate in verschiedenen Datenverarbeitungsknoten; und Erstellen eines Index für jedes der Datenreplikate gemäß dessen Zeilenschlüssel.
-
Unter einem weiteren Aspekt wird eine Vorrichtung zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem bereitgestellt, wobei das verteilte Datenbanksystem eine Mehrzahl von Datenverarbeitungsknoten aufweist, die zum Austausch von Daten über Computernetzwerke verbunden sind, wobei die Vorrichtung aufweist: ein Datenreplikat-Erstellungsmodul, das so konfiguriert ist, dass es eine Mehrzahl von unterschiedlichen Datenreplikaten erstellt, wobei jedes der Datenreplikate wie folgt erstellt wird: Sortieren der Datenbankdaten gemäß zumindest einem Datenattribut; Erzeugen eines Zeilenschlüssels auf der Grundlage des zumindest einen Datenattributs; und Verwenden der sortierten Datenbankdaten mit dem Zeilenschlüssel als das Datenreplikat, ein Replikatspeichermodul, das so konfiguriert ist, dass es unterschiedliche Datenreplikate in verschiedenen Datenverarbeitungsknoten speichert; und ein Indexerstellungsmodul, das so konfiguriert ist, dass es einen Index für jedes der Datenreplikate gemäß dessen Zeilenschlüssel erstellt.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Offenbarung des Obigen und weiterer Aufgaben, Merkmale und Vorteile geht aus der ausführlicheren Beschreibung einer beispielhaften Ausführungsform der vorliegenden Offenbarung in Verbindung mit den beiliegenden Zeichnungen besser hervor, in denen gleiche Bezugszeichen bei der vorliegenden Ausführungsform, die eine beispielhafte Ausführungsform offenbart, für gewöhnlich das gleiche Element darstellen.
-
1 zeigt ein Blockschaltbild eines beispielhaften Datenverarbeitungssystems 100, das so ausgelegt ist, dass es für das Umsetzen von Ausführungsformen der vorliegenden Erfindung verwendet wird;
-
2 zeigt veranschaulichend ein verteiltes Datenbanksystem gemäß einer Ausführungsform der vorliegenden Erfindung;
-
3 zeigt veranschaulichend zwei Beispiele für Datenbankdaten;
-
Die 4A bis 4C zeigen veranschaulichend Datenreplikate gemäß einer Ausführungsform der vorliegenden Erfindung;
-
5 zeigt veranschaulichend einen Index eines Datenreplikats gemäß einer Ausführungsform der vorliegenden Erfindung;
-
6 zeigt schematisch einen Ablaufplan eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung; und
-
7 zeigt schematisch ein Blockschaubild einer Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Im Folgenden werden bevorzugte Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die beiliegenden Zeichnungen ausführlicher beschrieben. Die beiliegenden Zeichnungen zeigen zwar diese bevorzugten Ausführungsformen der vorliegenden Offenbarung, es versteht sich jedoch, dass die vorliegende Offenbarung in diversen Formen umgesetzt werden kann, die jedoch auf diese hier veranschaulichten Ausführungsformen beschränkt sind. Diese Ausführungsformen werden hingegen bereitgestellt, um die vorliegende Offenbarung genauer und vollständiger, so dass der Umfang der vorliegenden Offenbarung dem Fachmann vollständig nähergebracht werden kann.
-
1 zeigt ein Blockschaltbild eines beispielhaften Datenverarbeitungssystems 100, das für das Umsetzen der Ausführungsformen der vorliegenden Erfindung anwendbar ist. Wie in 1 gezeigt, kann das Datenverarbeitungssystem 100 beinhalten: eine CPU (Central Processing Unit, Zentraleinheit) 101, einen RAM (Random Access Memory, Direktzugriffsspeicher) 102, einen ROM (Read Only Memory, Nur-Lese-Speicher) 103, einen Systembus 104, eine Festplattenlaufwerk-Steuereinheit 105, eine Tastatursteuereinheit 106, eine Steuereinheit 107 für serielle Schnittstellen, eine Steuereinheit 108 für parallele Schnittstellen, eine Anzeigesteuereinheit 109, ein Festplattenlaufwerk 110, eine Tastatur 111, serielle Peripherieeinheit 112, parallele Peripherieeinheit 113 und eine Anzeige 114. Von den obigen Einheiten sind die CPU 101, der RAM 102, der ROM 103, die Festplattenlaufwerk-Steuereinheit 105, die Tastatursteuereinheit 106, die Steuereinheit 107 für serielle Schnittstellen, die Steuereinheit 108 für parallele Schnittstellen und die Anzeigesteuereinheit 109 mit dem Systembus 104 verbunden. Das Festplattenlaufwerk 110 ist mit der Festplattenlaufwerk-Steuereinheit 105 verbunden. Die Tastatur 111 ist mit der Tastatursteuereinheit 106 verbunden. Die serielle Peripheriegerätschaft 112 ist mit der Steuereinheit 107 für serielle Schnittstellen verbunden. Die parallele Peripherieeinheit 113 ist mit der Steuereinheit 108 für parallele Schnittstellen verbunden. Und die Anzeige 114 ist mit der Anzeigesteuereinheit 109 verbunden. Es versteht sich, dass die in 1 gezeigte Struktur nur beispielhaft ist und die vorliegende Erfindung keineswegs einschränkt. In manchen Fällen können einige Einheiten je nach spezifischer Situation zum Computersystem 100 hinzugefügt oder aus diesem entfernt werden.
-
Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung in Form eines Systems, eines Verfahrens oder eines Computerprogrammprodukts umgesetzt sein. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer ausschließlich aus Hardware bestehenden Ausführungsform, einer ausschließlich aus Software bestehenden Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier allesamt allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das als ein oder mehrere computerlesbare Medien umgesetzt ist, die einen computerlesbaren Programmcode aufweisen.
-
Es kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann beispielsweise ein/e elektronische/s, magnetische/s, optische/s, elektromagnetische/s, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder eine geeignete Kombination des Vorstehenden sein, ohne jedoch darauf beschränkt zu sein. Spezifischere Beispiele (nichterschöpfende Liste) für das computerlesbare Speichermedium sind unter anderem: eine elektrische Verbindung mit einem oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM (Erasable Programmable Read Only Memory) oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM, Compact Disc-Read Only Memory), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination des Vorstehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch ein/e Anweisungsausführungssystem, -vorrichtung oder -einheit oder in Verbindung damit enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal beinhalten, das einen computerlesbaren Programmcode aufweist, beispielsweise im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen annehmen, beispielsweise elektromagnetisch, optisch oder eine geeignete Kombination davon, ohne jedoch darauf beschränkt zu sein. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm zur Verwendung durch ein/e Anweisungsausführungssystem, -vorrichtung oder -einheit oder in Verbindung damit übertragen, weiterleiten oder transportieren kann.
-
Der in einem computerlesbaren Medium enthaltene Programmcode kann mithilfe eines geeigneten Mediums übertragen werden, beispielsweise drahtlos, kabelgebunden, Lichtwellenleiterkabel, HF usw. oder eine Kombination des Vorstehenden, ohne jedoch darauf beschränkt zu sein.
-
Ein Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in irgendeiner Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, beispielsweise objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie die „C”-Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann zur Gänze auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder zur Gänze auf dem fernen Computer oder -Server ausgeführt werden. Bei letzterem Szenario kann der ferne Computer über einen beliebigen Netzwerktyp, beispielsweise ein lokales Netz (LAN, Local Area Network) oder ein Weitverkehrsnetz (WAN, Wide Area Network), mit dem Computer des Benutzers verbunden sein oder die Verbindung zu einem externen Computer kann hergestellt werden (z. B. über einen Internet-Diensteanbieter über Internet).
-
Aspekte der vorliegenden Erfindung sind im Folgenden unter Bezugnahme auf die Ablaufplandarstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaltbildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu herzustellen, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel für das Umsetzen der in dem einen oder den mehreren Ablaufplan- und/oder Blockschaltbildblöcken angegebenen Funktionen/Aktionen zu erstellen.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Weise zu arbeiten, so dass die im computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand herstellen, der Anweisungen beinhaltet, die die in den einen oder mehreren Ablaufplan- und/oder Blockschaltbildblöcken angegebene Funktion/Aktion umsetzen.
-
Die Computerprogrammanweisungen können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Geräte geladen werden, um zu bewirken, dass eine Reihe von Betriebsschritten im Computer, auf der anderen programmierbaren Vorrichtung oder auf anderen Einheiten durchgeführt wird, um ein computerausgeführtes Verfahren herzustellen, so dass die Anweisungen, die auf dem Computer oder auf der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zum Umsetzen der in dem einen oder den mehreren Ablaufplan- und/oder Blockschaltbildblöcken angegebenen Funktionen/Aktionen bereitstellen.
-
Die Ablaufpläne und die Blockschaltbilder in den Figuren zeigen die Architektur, die Funktionalität und den Betrieb möglicher Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block des Ablaufplans oder der Blockschaubilder ein Modul, ein Segment oder einen Teil eines Codes darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen für die Umsetzung der einen oder mehreren angegebenen logischen Funktionen aufweist. Es sei darüber hinaus angemerkt, dass die in den Blöcken ausgewiesenen Funktionen bei einigen alternativen Umsetzungen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten können. Beispielsweise können zwei aufeinanderfolgende Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach Funktionalität. Es sei ferner angemerkt, dass jeder Block der Blockschaltbilder und/oder der Ablaufplandarstellung und Kombinationen von Blöcken in den Blockschaltbildern und/oder in der Ablaufplandarstellung durch spezifische Systeme auf Hardware-Grundlage umgesetzt sein können, die die angegebenen Funktionen oder Aktionen oder Kombinationen von spezifischen Hardware- und Computeranweisungen durchführen.
-
Die Erfindung bezieht sich auf ein Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem. Ein Datenverarbeitungsknoten im verteilten Datenbanksystem kann durch das in 1 gezeigte Computersystem 100 umgesetzt sein. Ein Verarbeiten von Datenbankdaten und ein Anwenden einer Datenbank können ebenfalls auf dem in 1 gezeigten Computersystem durchgeführt werden.
-
Der Fachmann wird verstehen, dass Daten einer verteilten Datenbank physisch verstreut sind und in unterschiedlichen Knoten (oder „Stellen”) des verteilten Datenbanksystems gespeichert werden. Die Daten auf einzelnen Knoten, die zum Austausch von Daten über Computernetzwerke verbunden sind, unterliegen einer gemeinsamen Verwaltung des verteilten Datenbankverwaltungssystems. Aus diesem Grund ist die verteilte Datenbank logisch gesehen eine vereinte Gesamtheit, und Anwendungen können über Netzwerkverbindungen auf geografisch verteilte Datenbanken zugreifen.
-
Die verteilte Datenbank speichert mehrere Datenreplikate auf mehrere Knoten, so dass von jedem Datenelement zumindest eine Kopie auf anderen Knoten vorhanden ist. Wenn beispielsweise zwei Kopien für ein Datenelement D1, d. h. Datenelement D1_R1 und Datenelement D1_R2, vorhanden sind, befinden sich D1_R1 und D1_R2 auf unterschiedlichen Knoten. Es sei angemerkt, dass der Ausdruck „Replikat” im Kontext der vorliegenden Erfindung ein relativer Begriff ist. Beim obigen Beispiel beispielsweise sind D1 und D1_R2 auch Replikate von D1_R1, und D1 und D1_R1 sind auch Replikate von D1_R2.
-
Kurz gesagt, Daten in einer verteilten Datenbank sind redundant, wodurch sich der Parallelitätsgrad der Datennutzung erhöhen kann und auch die Datenverfügbarkeit im Falle eines Ausfalls (z. B. Knotenausfall oder Netzwerkausfall) verbessert werden kann.
-
Die allgemeine Idee der vorliegenden Erfindung besteht im Nutzen der Datenredundanz der verteilten Datenbank zum Verarbeiten von Datenbankdaten, um die Effizienz beim Abfragen von Datenbankdaten zu verbessern, ohne dabei weitere Datenverarbeitungsressourcen in Anspruch zu nehmen.
-
Es wird zuerst auf 2 Bezug genommen, die ein verteiltes Datenbanksystem 200 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulichend zeigt. Beispielsweise hat das in 2 gezeigte verteilte Datenbanksystem 200 drei Datenreplikate 220_1, 220_2, 220_3 von Datenbankdaten, die auf sechs Datenverarbeitungsknoten gespeichert sind, wobei das Datenreplikat 220_1 auf Datenverarbeitungsknoten 230_1 und 230_2 gespeichert ist, das Datenreplikat 220_2 auf Datenverarbeitungsknoten 230_3 und 230_4 gespeichert ist und das Datenreplikat 220_3 auf Datenverarbeitungsknoten 230_5 und 230_6 gespeichert ist.
-
Die Datenverarbeitungsknoten (im Folgenden kurz „Knoten” genannt) können mit dem Computersystem 100 umgesetzt werden, wie in 1 gezeigt. Knoten können zum Austausch von Daten über Computernetzwerke (nicht gezeigt) miteinander verbunden sein In 2 sind sechs Knoten gezeigt, was lediglich beispielhaft ist. In der Praxis können Hunderte von Knoten vorhanden sein und die Anzahl von Knoten zum Speichern jedes Datenreplikats kann ebenfalls höher als zwei sein.
-
Wie gezeigt, haben die Datenreplikate 220_1, 220_2 und 220_3 jeweils einen entsprechenden Index 210_2, 210_2 und 210_3. Gemäß einer Ausführungsform der vorliegenden Erfindung kann der Index 210_1, 210_2 und 210_3 auf anderen Knoten gespeichert werden, z. B. auf einem Masterknoten (nicht gezeigt) des verteilten Datenbanksystems.
-
Es sei angemerkt, dass in 2 nur drei Datenreplikate (im Folgenden kurz „Replikat/Replikate” genannt) gezeigt sind, die Anzahl der Datenreplikate kann bei einer tatsächlichen verteilten Datenbank hingegen jedoch weniger (z. B. zwei) oder mehr als drei sein.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung enthalten die Replikate 220_1, 220_2 und 220_3 allesamt die gleichen Datenelemente, sie sollten jedoch auf unterschiedliche Weise sortiert werden.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weisen die mehreren Datenreplikaten jeweils Indizes mit zugehörigem Sortierverhalten (auch als „Indexdaten” bezeichnet) 210_1, 210_2 und 210_3 auf. Die Indizes können am Masterknoten des verteilten Datenbanksystem-Master gespeichert werden (nicht gezeigt).
-
Merkmale der in 2 gezeigten Datenreplikate und Indizes sind unter Bezugnahme auf die 4A bis 4C und 5 ausführlicher beschrieben, und in Bezug auf 6 wird beschrieben, wie die in 2 gezeigten Datenreplikate und Indizes erstellt werden. Zuvor wird die Datenbank, die auf das verteilte Datenbanksystem 200 der Erfindung anwendbar ist, zuerst betrachtet.
-
Es wird auf 3 verwiesen, die veranschaulichend zwei Beispiele für Datenbankdaten zeigt. Die mit dem Bezugszeichen 300A ausgewiesenen Datenbankdaten sind ein Beispiel für relationale Datenbankdaten. Die Daten 300A zeichnen Temperatur-, Windgeschwindigkeits- und Feuchtigkeitswerte auf, die durch vier Sensoreinheiten 0001 bis 0004 während eines Zeitraums vom 01.01.2000 bis zum 31.12.2000 erfasst werden. „Einheiten-Kennung”, „Zeit”, „Temperatur”, „Windgeschwindigkeit” und „Feuchtigkeit” in der ersten Zeile sind Datenattribute (kurz als „Attribut/Attribute” bezeichnet). Die anderen Zeilen sind allesamt Datentupel. Jedes Feld eines Datentupels ist ein Attributwert. Im Tupel „0001, 31.12.2011, 8, 4, 7” ist das Feld „0001” ein Wert des Attributs „Einheiten-Kennung”, der eine Sensoreinheit darstellt, die durch die Einheiten-Kennung „0001” identifiziert ist.
-
Die mit dem Bezugszeichen 300B ausgewiesenen Datenbankdaten sind ein Beispiel für nichtrelationale Datenbankdaten (z. B. NoSQL-Datenbankdaten). Jede Zeile in den Daten 300B stellt ein Datentupel dar, und jedes Datentupel enthält ein Feld „Zeilenschlüssel” und mehrere Felder, die jeweils aus einem „<Schlüssel, Wert>”-Paar bestehen. Beispielsweise ist „0001, <Einheiten-Kennung, 0001>, <Zeit, 31.12.2011>, <Temperatur, 8>, <Windgeschwindigkeit, 4>, <Feuchtigkeit, 7>” ein Tupel. Das Feld „0001” im Tupel ist ein Zeilenschlüsselwert. Beispielsweise zeigt das Feld „<Einheiten_Kennung, 0001>” an, dass der Wert des Attributs „Einheiten_Kennung” „0001” ist.
-
Die in 3 gezeigten Daten 300A und 300B sind lediglich beispielhaft und werden verwendet, um die hinlänglich bekannte relationale Datenbank bzw. nichtrelationale Datenbank darzustellen. Die Datenbankdaten des in 2 gezeigten verteilten Datenbanksystems können die Struktur der Daten 300A oder auch die Struktur der Daten 300B verwenden. Der leichteren Beschreibung halber werden nur die Daten 300B als Beispiel herangezogen, um im Folgenden diverse Ausführungsformen der vorliegenden Erfindung zu veranschaulichen. Für den Fachmann, der die relationale Datenbank und die nichtrelationale Datenbank versteht, wäre es augenscheinlich nicht schwierig, die diversen Ausführungsformen, die in Bezug auf die beispielhaften nichtrelationalen Datenbankdaten 300B veranschaulicht sind, auf die durch die Daten 300A gezeigten relationalen Datenbankdaten anzuwenden.
-
Im Folgenden sind Details der Datenreplikate 220_1, 220_2 und 220_3 unter Bezugnahme auf die 4A bis 4C beschrieben.
-
4A zeigt veranschaulichend ein Datenreplikat 410, das gemäß einer Ausführungsform der Erfindung erstellt wurde.
-
Man geht hier davon aus, dass das Datenreplikat 410 als das in 2 gezeigte Datenreplikat 220_1 verwendet wird. Das Datenreplikat 220_1 wird auf den Knoten 230_1 und 230_2 gespeichert, so dass das Replikat 410 in Datensätze 411 und 412 geteilt wird, die jeweils zwei Teile des in den Knoten 230_1 und 230_2 gespeicherten Datenreplikats 220_1 darstellen.
-
Das Datenreplikat 410 gilt als von den in 3 gezeigten Datenbankdaten 300B abgeleitet. Anders ausgedrückt, es ist ein für die Datenbankdaten 300B erstelltes Datenreplikat.
-
Es sei zunächst angemerkt, dass bei dem in 4A gezeigten Datenreplikat 410 der Einfachheit halber eine Darstellung verwendet wird, die sich optisch von jener der Datenbankdaten 300B unterscheidet – dieser jedoch im Wesentlichen gleicht.
-
Beispielsweise gleicht die Darstellung von
Zeilenschlüssel (Einheiten-Kennung_Zeit) | Einheiten-Kennung | Zeit | Temperatur | Windgeschwindigkeit | Feuchtigkeit |
0001_01.01.2000 | 0001 | 01.01.2001 | 10 | 14 | |
im Datenreplikat
410 der folgenden Darstellung.
Zeilenschlüssel (Einheiten-Kennung_Zeit), {Schlüssel, Wert} |
0001, 01.01.2001, <Einheiten-Kennung, 0001>, <Zeit, 01.01.2001>, |
<Temperatur, 10>, <Windgeschwindigkeit, 14> |
-
Wie unter Bezugnahme auf 6 beschrieben, kann das Datenreplikat 410 für die Datenbankdaten 300B wie folgt erstellt werden.
-
Die Datenbankdaten 300B werden gemäß den Attributen „Einheiten-Kennung” und „Zeit” sortiert. Der Zeilenschlüssel „Einheiten-Kennung_Zeit” wird dann auf der Grundlage der Attribute „Einheiten-Kennung” und „Zeit” erzeugt. Die Datenbank 300B wird somit sortiert, und der erzeugte Zeilenschlüssel „Einheiten-Kennung_Zeit” wird als das Datenreplikat 410 verwendet.
-
Bei diesem Beispiel wird ein mehrfaches Sortieren der Datenbankdaten 300B gemäß den beiden Attributen „Einheiten-Kennung” und „Zeit” durchgeführt. Sie werden zunächst nach dem Attribut „Einheiten-Kennung” und danach nach dem Attribut „Zeit” sortiert. Die Verkettung der Attribute „Einheiten-Kennung” und „Zeit”, „Einheiten-Kennung_Zeit”, wird als Zeilenschlüssel anstatt des ursprünglichen Zeilenschlüssels „Einheiten-Kennung” der Datenbankdaten 300B verwendet. Beispielsweise ist die erste Spalte des Datenreplikats 410, „0001, 01.01.2001”, ein Zeilenschlüsselwert (Einheiten-Kennung_Zeit).
-
Da das Datenreplikat 410 durch mehrfaches Sortieren der Daten 300B erzeugt wird, werden die Datenelemente oder Tupel in den Datensätzen 411 und 412 auf den Knoten 230_1 und 230_2 gemäß der sortierten Reihenfolge so sequenziell wie möglich gespeichert. Beispielsweise werden Tupel im Datensatz 411, deren Wert „Einheiten-Kennung” „0001” lautet, kontinuierlich und nebeneinander im Speicher des Knotens 230_1 gespeichert.
-
4B zeigt schematisch ein weiteres Datenreplikat 420, das gemäß einer Ausführungsform der vorliegenden Erfindung erstellt wurde.
-
Man geht hier davon aus, dass das Datenreplikat 420 als das in 2 gezeigte Datenreplikat 220_2 verwendet wird. Das Datenreplikat 220_2 wird auf den Knoten 230_3 und 230_4 gespeichert, so dass das Replikat 420 in Datensätze 421 und 422 geteilt wird, die jeweils zwei Teile des in den Knoten 230_2 und 230_3 gespeicherten Datenreplikats 220_4 darstellen.
-
Das Datenreplikat 420 wird durch das gleiche Format wie das Datenreplikat 410 dargestellt, und es ist ein weiteres und unterschiedliches Datenreplikat, das für die Datenbankdaten 300B erstellt wurde. Das Verfahren zum Erstellen des Datenreplikats 420 ähnelt dem Erstellen des Datenreplikats 410.
-
Bei diesem Beispiel wird ein mehrfaches Sortieren der Datenbankdaten 300B gemäß den Attributen „Zeit” und „Einheiten-Kennung” durchgeführt. Sie werden zunächst nach dem Attribut „Zeit” und danach nach dem Attribut „Einheiten-Kennung” sortiert. Die Verkettung der Attribute „Zeit” und „Einheiten-Kennung”, „Zeit_Einheiten-Kennung”, wird als Zeilenschlüssel anstatt des ursprünglichen Zeilenschlüssels „Einheiten-Kennung” der Datenbankdaten 300B verwendet. Beispielsweise ist die erste Spalte des Datenreplikats 420, „01.01.2001, 0001, ein Zeilenschlüsselwert (Zeit Einheiten-Kennung).
-
4C zeigt schematisch ein weiteres Datenreplikat 430, das gemäß einer Ausführungsform der vorliegenden Erfindung erstellt wurde.
-
Man geht hier davon aus, dass das Datenreplikat 430 als das in 2 gezeigte Datenreplikat 220_3 verwendet wird. Das Datenreplikat 430 ist als Datensätze 431 und 432 gezeigt, die jeweils zwei Teile des in den Knoten 230_5 und 230_6 gespeicherten Datenreplikats 220_3 darstellen.
-
Bei diesem Beispiel wird das Sortieren im Rahmen des Erstellens des Datenreplikats 430 nur durch ein einzelnes Attribut „Temperatur” durchgeführt, und das Attribut wird als Zeilenschlüssel verwendet.
-
Die drei Datenreplikate 410, 420 und 430 der Datenbankdaten 300B und die Weise, wie sie erstellt wurden, sind oben in Bezug auf die 4A bis 4C beschrieben. Die drei Datenreplikate sind Beispiele des in 2 gezeigten Datenreplikats 220_1, 220_2 und 220_3. Wie in der vorstehenden Beschreibung des verteilten Datenbanksystems 200 gemäß einer Ausführungsform der Erfindung ausgeführt, haben die Datenreplikate 220_1, 220_2 und 220_3 jeweils einen entsprechenden Index 210_1, 210_2 und 210_3. Unter Bezugnahme auf 5 wird die Struktur eines solchen Index im Folgenden beispielhaft beschrieben.
-
5 zeigt schematisch einen Index eines Datenreplikats, das gemäß einer Ausführungsform der vorliegenden Erfindungen erstellt wurde. Das Bezugszeichen 510 in 1 bezeichnet lediglich einen Teil des Index, der am Datenreplikat 410 gemäß dem Zeilenschlüssel „Einheiten-Kennung_Zeit” erstellt wurde. Wie gezeigt, ist der Index 510 ein Index mit dreischichtiger B+-Baumstruktur. Das Bezugszeichen 511 bezeichnet den Stammknoten in der ersten Schicht, das Bezugszeichen 512 bezeichnet eine Mehrzahl von Zwischenknoten in der zweiten Schicht und das Bezugszeichen 513 bezeichnet eine Mehrzahl von Blattknoten in der dritten Schicht. Wie gezeigt, stellt jeder Zwischenknoten des Index 510 einen Bereich von Daten des Datenreplikats 410 dar. Beispielsweise stellt „0001_01.01.2000-0001_31.12.2011” alle Daten dar, deren Wert des Zeilenschlüssels in den Bereich 0001_01.01.2000 bis 0001 31.12.2011 fällt. Jeder Blattknoten des Index 510 stellt einen Datenblock auf der Platte dar, der schnell lokalisiert und ausgelesen werden kann. Beispielsweise stellt der Blattknoten 521 einen Datenblock auf der Platte im Datenverarbeitungsknoten 230_1 dar, der das Datenreplikat 410 speichert. Bei solchen Indizes mit B+-Baumstruktur können gewünschte Datenblöcke im Speicher in Antwort auf Anfragen für das Abfragen, Einfügen, Aktualisierung und Löschen von Daten schnell lokalisiert werden.
-
Es sei angemerkt, dass der Fachmann verstehen wird, dass die B+-Baumindexstruktur, wie in 5 gezeigt, nur ein Beispiel des Index gemäß Ausführungsformen der Erfindung und keine Einschränkung dieser ist. Augenscheinlich können bei der Umsetzung von Ausführungsformen der Erfindung andere, ähnliche Indexstrukturen verwendet werden.
-
Komponenten des verteilten Datenbanksystems 200 und ihre Umsetzungen gemäß einer Ausführungsform der vorliegenden Erfindung wurden oben beschrieben.
-
Es wird nun auf 6 Bezug genommen, die schematisch einen Ablaufplan eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
6 zeigt ein Verfahren zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem. Hier weist das verteilte Datenbanksystem mehrere Datenverarbeitungsknoten auf, die zum Austausch von Daten über Computernetzwerke verbunden sind.
-
Das Verarbeiten von Datenbankdaten gemäß einer Ausführungsform der Erfindung schließt hauptsächlich eine Konfigurationsphase und eine Abrufphase mit ein. Wie gezeigt, weist der Prozess des Verarbeitens von verteilten Datenbankdaten in der Konfigurationsphase bei der vorliegenden Ausführungsform die Schritte 610 bis 630 auf.
-
Man geht davon aus, dass ein Datenbanksystem-Administrator zunächst die Anzahl von Datenreplikaten und das Schema zum Konfigurieren der Datenreplikate auf Datenverarbeitungsknoten auf der Grundlage verfügbarer Datenverarbeitungsressourcen und Anforderungen für eine Anwendung ermittelt hat. Beispielsweise wird festgestellt, dass drei Datenreplikate erforderlich sind, und die drei Datenreplikate werden den Knoten 230_1 und 230_2, den Knoten 230_3 und 230_4 und den Knoten 230_5 und 230_6 zugeordnet.
-
In Schritt 610 werden Datenreplikate für die Datenbankdaten erstellt, wobei eine Mehrzahl von unterschiedlichen Datenreplikaten für die Datenbankdaten erstellt wird, wobei die Datenreplikate jeweils wie folgt erstellt werden:
Sortieren der Datenbankdaten gemäß zumindest einem Datenattribut;
Erzeugen eines Zeilenschlüssels auf der Grundlage des zumindest einen Datenattributs; und
Verwenden der sortierten Datenbankdaten mit dem Zeilenschlüssel als Datenreplikat.
-
Die Weise des Erstellens eines Datenreplikats für Datenbankdaten wurde in vorherigen Abschnitten unter Bezugnahme auf die 4A bis 4C beispielhaft veranschaulicht. Somit wird sie hier nicht wiederholt ausführlich beschrieben.
-
Gemäß einer Ausführungsform der Erfindung kann ein mehrfaches Sortieren der Datenbankdaten gemäß mehreren Datenattributen durchgeführt werden. In diesem Fall weist das Erzeugen eines Zeilenschlüssels auf der Grundlage des zumindest einen Datenattributs ein Verwenden der Verkettung der mehreren Datenattribute als Zeilenschlüssel auf.
-
Beispielsweise ist in 3 gezeigt, dass der Zeilenschlüssel der Datenbank der Datenbankdaten 300B „Einheiten-Kennung” ist. Durch Durchführen eines mehrfachen Sortierens der Daten 300B gemäß zwei Datenattributen „Einheiten-Kennung” und „Zeit” und Verwenden der Verkettung der beiden Attribute, „Einheiten-Kennung_Zeit”, als neuen Zeilenschlüssel, der den ursprünglichen Zeilenschlüssel „Einheiten-Kennung” ersetzen soll, wird das Datenreplikat 410 erzeugt.
-
In diesem Fall wird das mehrfache Sortieren gemäß zwei Attributen „Einheiten-Kennung” und „Zeit” durchgeführt. Die Erfindung ist jedoch nicht darauf beschränkt. Tatsächlich kann das mehrfache Sortieren auf gleiche Weise gemäß drei oder mehr Attributen durchgeführt werden.
-
Natürlich kann das mehrfache Sortieren der Datenbankdaten gemäß einem einzelnen Datenattribut durchgeführt werden; in diesem Fall ist der Zeilenschlüssel das Datenattribut.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung kann das mehrfache Sortieren vorzugsweise gemäß einem oder mehreren häufig abgefragten Datenattributen durchgeführt werden, um ein Datenreplikat zu erstellen. Wenn man die in 3 gezeigten Daten 300B „gemäß einer Verlaufsaufzeichnung von Anwendungen als Beispiel nimmt, sind „Einheiten-Kennung” und „Zeit” und „Temperatur” häufig abgefragte Attribute. Somit können die Attribute „Einheiten-Kennung” und „Zeit” und „Temperatur als Grundlage ausgewählt werden, auf der das mehrfache Sortieren der Daten 300B zum Erzeugen eines Datenreplikats durchgeführt wird.
-
Nach Schritt 610 geht der Prozess zu Schritt 620 über. In Schritt 620 werden unterschiedliche Datenreplikate in unterschiedliche Datenverarbeitungsknoten gespeichert.
-
Wie in 2 gezeigt, wird beispielsweise das Datenreplikat 410 in die Datenverarbeitungsknoten 230_1 und 230_2 gespeichert. Darüber hinaus wird das Datenreplikat 420 in die Datenverarbeitungsknoten 230_3 und 230_4 gespeichert und wird das Datenreplikat 430 in die Datenverarbeitungsknoten 230_5 und 230_6 gespeichert.
-
Nach Schritt 620 geht der Prozess zu Schritt 630 über.
-
In Schritt 630 wird ein Index durch einen Zeilenschlüssel für jedes Datenreplikat erstellt. Beispielsweise wird der in 5 gezeigte Index 510 für das Datenreplikat 410 gemäß dem Zeilenschlüssel „Einheiten-Kennung_Zeit” des Datenreplikats 410 erstellt. Darüber hinaus wird ein Index gemäß dem Zeilenschlüssel „Zeit Einheiten-Kennung” für das Datenreplikat 420 erstellt und wird ein Index gemäß dem Zeilenschlüssel „Temperatur für das Datenreplikat 430 erstellt. Bei dem in 2 gezeigten Szenario beispielsweise werden Indizes 210_1, 210_2 und 210_3 durch Ausführen von Schritt 630 für die Datenreplikate 220_1, 220_2 bzw. 220_3 erstellt.
-
Jeder der erstellten Indizes enthält eine Zuordnungsbeziehung zwischen Datenelementen in dem entsprechenden Datenreplikat und deren Positionen im Datenverarbeitungsknoten. Da Daten in unterschiedlichen Datenreplikaten auf unterschiedliche Weise sortiert werden, ist der entsprechende Index jedes Datenreplikats ebenfalls unterschiedlich. Gemäß einer Ausführungsform der Erfindung wird jeder der erstellten Indizes z. B. im Masterknoten des verteilten Datenbanksystems 200 gespeichert.
-
Gemäß einer Ausführungsform der Erfindung wird nach Erstellen eines Index für ein Datenreplikat auch eine Zugehörigkeitsbeziehung zwischen dem Index und dem Datenverarbeitungsknoten gespeichert, der dessen zugehöriges Datenreplikat speichert. Beispielsweise ist der Index 510 in 5 den Datenverarbeitungsknoten 230_1 und 230_2 zugehörig, die das Datenreplikat 410 speichern. Durch die gespeicherte Zugehörigkeitsbeziehung kann es von Nutzen sein, zu identifizieren, auf welchem bzw. welchen Datenverarbeitungsknoten sich entsprechendes Datenreplikat eines Index befindet.
-
Nach Schritt 630 ist die Konfigurationsphase vorbei, und das verteilte Datenbanksystem 200 tritt in einen Bereit-Zustand ein. Wie in 2 gezeigt, ist das auf den Datenverarbeitungsknoten 230_1 und 230_2 gespeicherte Datenreplikat 220_1 zu diesem Zeitpunkt das in Schritt 620 erstellte Datenreplikat 410. Das auf den Datenverarbeitungsknoten 230_3 und 230_4 gespeicherte Datenreplikat 220_2 ist das in Schritt 620 erstellte Datenreplikat 420. Das auf den Datenverarbeitungsknoten 230_5 und 230_6 gespeicherte Datenreplikat 220_3 ist das in Schritt 620 erstellte Datenreplikat 430. Und die in Schritt 630 erstellten Indizes 210_1, 210_2 und 210_3 werden ebenfalls gespeichert.
-
Im Bereit-Zustand können Abfragen von einer Anwendung angenommen werden. Gemäß einer Ausführungsform der Erfindung führt das verteilte Datenbanksystem 200 als Reaktion auf ein Empfangen einer Datenabfrageanfrage, wie durch den Entscheidungsblock 632 angezeigt, eine Abfrage an einem Datenreplikat durch, das der Datenabfrageanfrage entspricht, (650) und gibt das Abfrageergebnis an die Anwendung zurück, die die Datenabfrageanfrage eingeleitet hat (660).
-
Da das System Datenreplikate auf unterschiedliche Weise auf unterschiedlichen Knoten gespeichert hat, kann es je nach unterschiedlichen Abfragebedingungen in der Abfrageanfrage eine Abfrage an dem Datenreplikat durchführen, das der Datenabfrageanfrage entspricht, um die Abfragegeschwindigkeit zu verbessern.
-
Beispielsweise ist die Abfrage einer Abfrageanfrage wie folgt: Auswählen von Temperatur, wobei Einheiten-Kennung = 0001 UND 01.01.2009 > Zeit > 01.01.2007 (Abfrage-1)
-
Das Datenreplikat 410 entspricht der Abfragebedingung:
„Einheiten-Kennung = 0001 UND 01.01.2009 > Zeit > 01.01.2006”
in der Abfrage-1. Aus diesem Grund wird die Abfrage am Datenreplikat 410 durchgeführt.
-
Die Abfrage einer Abfrageanfrage ist wie folgt: Auswählen von Temperatur, wobei Einheiten-Kennung = *UND Zeit = 31.12.2011 (Abfrage-2)
-
Das Datenreplikat 420 entspricht der Abfragebedingung:
„Einheiten-Kennung = *UND Zeit = 31.12.2011”
in der Abfrage-2. Aus diesem Grund wird die Abfrage am Datenreplikat 420 durchgeführt.
-
Die Abfrage einer Abfrageanfrage ist wie folgt: Auswählen von Feuchtigkeit, wobei Temperatur > 10 (Abfrage-3)
-
Das Datenreplikat 430 entspricht der Abfragebedingung:
„Temperatur > 10”
in der Abfrage-3. Aus diesem Grund wird die Abfrage am Datenreplikat 430 durchgeführt.
-
Wie gezeigt, weist der Schritt des Durchführens einer Abfrage an einem Datenreplikat, das der Datenabfrageanfrage entspricht, gemäß einer Ausführungsform der Erfindung die folgenden Schritten 641 und 642 auf.
-
In Schritt 641 wird ein Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index jedes Datenreplikats und der Abfragebedingung der Datenabfrageanfrage berechnet.
-
Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index eines Datenreplikats und einer Abfragebedingung wird wie folgt definiert: Übereinstimmungsgrad = <Anzahl von Attributen, die in der Abfrageanfrage und in Index häufig enthalten sind>/<die Anzahl von Attributen, die im Zeilenschlüssel enthalten sind> wobei, wenn die Abfragebedingung einen Bereich von Werten eines bestimmten Attributs A enthält und der Zeilenschlüssel ebenfalls das Attribut A enthält, beide nur dann als gleich erachtet werden, wenn sich das Attribut A des Zeilenschlüssels am Ende des Zeilenschlüssels befindet.
-
Für die Abfrage-3 enthält die Abfragebedingung „Temperatur > 20” ein Attribut „Temperatur”. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel (Einheiten-Kennung_Zeit) des Index des Datenreplikats 410 und der Abfragebedingung ist 0. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel (Zeit Einheiten-Kennung) des Index des Datenreplikats 420 und der Abfragebedingung ist 0. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel (Temperatur) des Index des Datenreplikats 430 und der Abfragebedingung ist 3.
-
Für die Abfrage-1 ist die Abfragebedingung „Einheiten-Kennung = 0001 UND 01.01.2009 > Zeit > 01.01.2006. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index des Datenreplikats 410 und der Abfragebedingung ist 1. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index des Datenreplikats 420 und der Abfragebedingung ist 0,5. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index des Datenreplikats 430 und der Abfragebedingung ist 0.
-
Für die Abfrage-2 ist die Abfragebedingung „Einheiten-Kennung = *UND Zeit = 31.12.2011”. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index des Datenreplikats 410 und der Abfragebedingung ist 0,5. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index des Datenreplikats 420 und der Abfragebedingung ist 1. Der Übereinstimmungsgrad zwischen dem Zeilenschlüssel des Index des Datenreplikats 430 und der Abfragebedingung ist 0.
-
In Schritt 642 wird die Übereinstimmung des Datenreplikats mit der Datenabfrageanfrage gemäß dem berechneten Ergebnis ermittelt.
-
Gemäß einer Ausführungsform der Erfindung wird ein Datenreplikat, das dem Zeilenschlüssel des Index eines Datenreplikats mit dem größten Übereinstimmungsgrad mit der Datenabfrageanfrage entspricht, als das Datenreplikat ermittelt, das der Datenabfrageanfrage entspricht.
-
Beispielsweise wird eine Abfrage für die Abfrage-1 gemäß dem Ergebnis von Schritt 641 an dem Datenreplikat 410 durchgeführt. Beim in 2 gezeigten verteilten Datenbanksystem 200, das dem Durchführen der Abfrage am Datenreplikat 220_1 entspricht, und wird in diesem Fall die Abfragebedingung „Einheiten-Kennung = 0001 UND 01.01.2009 > Zeit > 01.01.2006 in die Abfragebedingung „01.01.2009 > Zeilenschlüssel UND Zeilenschlüssel > 0001_01.01.2006” umgewandelt. Unter Bezugnahme auf 5 wird die Abfragebedingung „0001, 01.01.2009 > Zeilenschlüssel UND Zeilenschlüssel > 0001 01.01.2006” mit dem Blattknoten 521 des Index 510 übereingestimmt, so dass die Position, an der der entsprechende Datenblock 531 gespeichert ist, schnell lokalisiert werden kann. Wenn der in 5 gezeigte Index nicht vorhanden wäre, könnte der Abfrageprozess länger dauern. Aus diesem Grund veranschaulicht dieses Beispiel, dass das Verwenden des Datenreplikats und Index, die gemäß Ausführungsformen der Erfindung erstellt wurden, die Abfrageeffizienz verbessern können. Die Wirkung wäre bei mehrdimensionalen Abfragen und mehrdimensionaler Bereichsabfragen besonders offensichtlich.
-
Auf ähnliche Weise wird eine Abfrage für die Abfrage-2 am Datenreplikat 420 durchgeführt und wird eine Abfrage für die Abfrage-3 am Datenreplikat 430 durchgeführt.
-
Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung kann die Abfrage für eine gewisse Abfrage bei Vorhandensein mehrerer Zeilenschlüssel von Indizes von Datenreplikaten mit dem größten Übereinstimmungsgrad mit einer Abfragebedingung an einem beliebigen der Datenreplikate durchgeführt werden, die den Zeilenschlüsseln entsprechen.
-
Im Bereit-Zustand kann ein Aktualisieren von Daten an der verteilten Datenbank durchgeführt werden. Gemäß einer Ausführungsform der vorliegenden Erfindung werden jedes Datenreplikat und der Index jedes Datenreplikats als Reaktion auf ein Empfangen einer Anfrage für das Aktualisieren von Daten aktualisiert. Das Aktualisieren eines Datenreplikats und Index kann gemäß Verfahren durchgeführt werden, die nach dem Stand der Technik für ein Aktualisieren von Daten in verteilten Datenbanken bereits bekannt sind, so dass nicht die Notwendigkeit besteht, hier ausführliche Beschreibungen zu wiederholen.
-
Diverse Ausführungsformen des Verfahrens zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem wurden oben beschrieben. Auf der Grundlage des gleichen Erfindungsgedanken stellt die Erfindung darüber hinaus eine Vorrichtung zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem bereit.
-
7 zeigt schematisch eine Vorrichtung 700 zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Das verteilte Datenbanksystem 200, auf das Ausführungsformen der Erfindung angewandt werden, weist eine Mehrzahl von Verarbeitungsknoten auf, die zum Austausch von Daten über Computernetzwerke verbunden sind. Wie in 7 gezeigt, weist die Vorrichtung 700 ein Datenreplikat-Erstellungsmodul 710, ein Replikatspeichermodul 720 und ein Indexerstellungsmodul 730 auf. Die Funktionalität und diverse Ausführungsformen der Module sind im Folgenden kurz beschrieben.
-
Das Datenreplikat-Erstellungsmodul 710 ist so konfiguriert, dass es eine Mehrzahl unterschiedlicher Datenreplikate erstellt, wobei jedes der Datenreplikate wie folgt erstellt wird:
Sortieren der Datenbankdaten gemäß zumindest einem Datenattribut;
Erzeugen eines Zeilenschlüssels auf der Grundlage des zumindest einen Datenattributs; und
Verwenden der sortierten Datenbankdaten mit dem Zeilenschlüssel als Datenreplikat.
-
Das Replikatspeichermodul 720 ist so konfiguriert, dass es unterschiedliche Datenreplikate in unterschiedlichen Datenverarbeitungsknoten speichert.
-
Das Indexerstellungsmodul 730 ist so konfiguriert, dass es einen Index für jedes der Datenreplikate gemäß dessen Zeilenschlüssel erstellt.
-
Gemäß einer Ausführungsform der Erfindung ist das Datenreplikat-Erstellungsmodul 710 so konfiguriert, dass es ein mehrfaches Sortieren an den Datenbankdaten gemäß mehreren Datenattributen durchführt und die Verkettung der mehreren Datenattribute als Zeilenschlüssel verwendet.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weist die Vorrichtung 700 darüber hinaus ein Modul (nicht gezeigt) auf, das so konfiguriert ist, dass es den Index speichert.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weist die Vorrichtung 700 darüber hinaus ein Modul auf (nicht gezeigt), das so konfiguriert ist, dass es die Zugehörigkeitsbeziehung zwischen dem Index und dem Verarbeitungsknoten speichert, der dessen zugehöriges Datenreplikat speichert.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weist die Einheit 700 darüber hinaus ein Abfragemodul 750 auf, das so konfiguriert ist, dass es eine Abfrage an einem Datenreplikat, das einer Datenabfrageanfrage entspricht, in Antwort auf das Empfangen der Datenabfrageanfrage durchführt.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weist die Einheit 700 darüber hinaus ein Übereinstimmungsmodul 740 auf, das so konfiguriert ist, dass es einen Übereinstimmungsgrad zwischen dem Zeilenschlüssel jedes Index eines Datenreplikats und der Abfragebedingung der Datenabfrageanfrage berechnet und die Übereinstimmung des Datenreplikats mit der Datenabfrageanfrage gemäß dem berechneten Ergebnis ermittelt.
-
Gemäß einer Ausführungsform der Erfindung ist das Übereinstimmungsmodul so konfiguriert, dass es ein Datenreplikat, das dem Zeilenschlüssel des Index eines Datenreplikats mit dem größten Übereinstimmungsgrad mit der Datenabfrageanfrage entspricht, als das Datenreplikat ermittelt, das der Datenabfrageanfrage entspricht.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weist die Vorrichtung 700 darüber hinaus ein Datenaktualisierungsmodul auf (nicht gezeigt), das so konfiguriert ist, dass es jedes Datenreplikats und den Index jedes Datenreplikats in Antwort auf das Empfangen einer Anfrage für das Aktualisieren von Daten aktualisiert.
-
Ausführungsformen der Vorrichtung zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem sind oben beschrieben. Da Ausführungsformen des Verfahrens zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem in vorherigen Absätzen beschrieben wurden, wird bei der Beschreibung der Vorrichtung auf doppelte Inhalte in der Beschreibung des Verfahrens zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem bei der Beschreibung der Vorrichtung verzichtet.
-
Ausführungsformen der vorliegenden Erfindung verwenden eine Redundanz eines verteilten Datenbanksystems, um unterschiedliche Datenreplikate an mehreren Datenverarbeitungsknoten bereitzustellen, was bei der Verbesserung der Abfrageleistung und insbesondere der Effizienz von mehrdimensionalen Datenabfragen hilfreich ist.
-
Ausführungsformen der Erfindung wurden beschrieben. Die obige Beschreibung ist lediglich beispielhaft und weder erschöpfend noch schränkt sie die offenbarten Ausführungsformen ein. Der Fachmann wird verstehen, dass diverse Modifikationen und Änderungen daran auf leichte Weise vorzunehmen sind. Die Wahl der Ausdrücke dient dazu, den Grundsatz, die praktische Anwendung oder die Verbesserung der Techniken auf dem Markt der Ausführungsformen bestmöglich zu erläutern und dem Fachmann verschiedene hier offenbarte Ausführungsformen bestmöglich näherzubringen.