DE202021102320U1 - System zum Implementieren einer Unterdatenbankreplikation - Google Patents

System zum Implementieren einer Unterdatenbankreplikation Download PDF

Info

Publication number
DE202021102320U1
DE202021102320U1 DE202021102320.1U DE202021102320U DE202021102320U1 DE 202021102320 U1 DE202021102320 U1 DE 202021102320U1 DE 202021102320 U DE202021102320 U DE 202021102320U DE 202021102320 U1 DE202021102320 U1 DE 202021102320U1
Authority
DE
Germany
Prior art keywords
identifier
provider
replication
update
authorization
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.)
Active
Application number
DE202021102320.1U
Other languages
English (en)
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.)
Snowflake Inc
Original Assignee
Snowflake Inc
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 Snowflake Inc filed Critical Snowflake Inc
Priority to DE202021102320.1U priority Critical patent/DE202021102320U1/de
Publication of DE202021102320U1 publication Critical patent/DE202021102320U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Computerprogramm zum Implementieren eines Replizierens von Untertabellen, das Anweisungen umfasst, die dann, wenn das Programm durch einen Computer ausgeführt wird, veranlassen, dass der Computer folgende Operationen ausführt:
Erfassen, durch einen Prozessor, eines ersten Updates an einer Berechtigungstabelle, wobei die Berechtigungstabelle eine Vielzahl von Berechtigungstabellenzeilen umfasst,
wobei die Berechtigungstabellenzeilen mit einer Vielzahl von Klienten-Identifizierern, einer Vielzahl von Kundenkonto-Identifizierern und einer Vielzahl von Anbieterkonto-Identifizierern assoziiert sind,
wobei das erste Update mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert ist, wobei das erste Update einen ersten Klienten-Identifizierer der Klienten-Identifizierer, einen ersten Kundenkonto-Identifizierer der Kundenkonto-Identifizierer oder einen ersten Anbieterkonto-Identifizierer der Anbieterkonto-Identifizierer enthält;
Durchführen eines Filterns einer Datentabelle basierend auf dem ersten Update, wobei die Datentabelle eine Vielzahl von Datentabellenzeilen umfasst, die mit dem Klienten-Identifizierer assoziiert sind und Dateninhalt enthalten;
Erfassen eines zweiten Updates an der Berechtigungstabelle; und
Durchführen eines inkrementellen Replizierens der Datentabelle durch Veranlassen eines Replizierens eines vollständigen Speicherinhalts bei einer für eine Vielzahl von mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle assoziierten Anbieterkonten auszuführenden nächsten Auffrischung.

Description

  • Querverweis auf zugehörige Anmeldungen
  • Dies beansprucht eine Priorität der provisorischen US-Patentanmeldung mit der seriellen Nr. 63/032,163 , eingereicht am 29. Mai 2020, deren Inhalte hierin durch Bezugnahme in ihrer Gesamtheit enthalten sind.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Systeme und Vorrichtungen für Datenbanken und betrifft genauer eine Unterdatenbankreplikation.
  • Um als Gebrauchsmuster geschützt und Gegenstand davon zu sein, gibt es gemäß den Erfordernissen des Gebrauchsmustergesetzes nur Vorrichtungen, wie sie in den beigefügten Ansprüchen definiert sind, aber keine Verfahren. In einem Fall, in welchem in der Beschreibung Bezug auf Verfahren genommen wird, dienen diese Bezugnahmen lediglich dazu, die Vorrichtung oder die Vorrichtungen darzustellen, für welche mit den enthaltenen Ansprüchen Schutz gesucht wird.
  • HINTERGRUND
  • Datenbanken werden weithin zur Speicherung von und zum Zugriff auf Daten bei Computeranwendungen verwendet. Datenbanken können Tabellen mit Zeilen und Spalten enthalten, die Daten enthalten oder auf diese Bezug nehmen, die unter Verwendung von Anfragen bzw. Abfragen gelesen, modifiziert oder gelöscht werden können.
  • In einigen Fällen kann es von Vorteil sein, Datenbankdaten an mehreren Stellen oder auf mehreren Speichervorrichtungen zu replizieren. Ein Replizieren von Daten kann gegenüber Systemfehlern schützen, die Daten über ein Cloud-Netzwerk unzugänglich machen können oder veranlassen können, dass Daten verloren oder permanent unlesbar sind. Jedoch kann eine Datenreplikation quer über ein Netzwerk, das verschiedene Bereiche umfasst, eine Latenz sowie Kosten verursachen.
  • Figurenliste
  • In den Zeichnungen, die nicht notwendigerweise im Maßstab gezeichnet sind, können gleiche Bezugszeichen ähnliche Komponenten in unterschiedlichen Ansichten beschreiben. Um die Diskussion von irgendeinem bestimmten Element oder irgendeiner bestimmten Handlung einfach zu identifizieren, bezieht oder beziehen sich die signifikanteste Ziffer oder die signifikantesten Ziffern in einem Bezugszeichen auf die Nummer der Figur, in welcher dieses Element zum ersten Mal eingeführt ist. Einige Ausführungsformen sind anhand eines Beispiels und nicht einer Beschränkung in den Figuren der beigefügten Zeichnungen dargestellt, in welchen:
    • 1 eine schematische Darstellung einer vernetzten Umgebung, in welcher die vorliegende Offenbarung genutzt werden kann, gemäß einigen Beispielen ist.
    • 2 eine schematische Darstellung der Replikationssteuerung, die eine Replikation von Unterdatenbanken unter Verwendung von Schemafilterung und Tabellenfilterung implementiert, gemäß einigen Beispielen darstellt.
    • 3 eine schematische Darstellung der Replikationssteuerung, die ein Teilen bzw. gemeinsames Nutzen von Daten von der Datenbank zu Clients innerhalb desselben Bereichs implementiert, gemäß einigen Beispielen ist.
    • 4 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Tabellen implementiert, gemäß einigen Beispielen darstellt.
    • 5 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Untertabellen implementiert, gemäß einigen Beispielen darstellt.
    • 6 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Untertabellen unter Verwendung von während der Laufzeit angewendeten Berechtigungen implementiert, gemäß einigen Beispielen darstellt.
    • 7 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Untertabellen unter Verwendung von während der Laufzeit angewendeten Berechtigungen implementiert, gemäß einigen Beispielen darstellt.
    • 8 einen Prozess 800 eines Implementierens einer Replikation von Unterdatenbanken gemäß einer Ausführungsform darstellt.
    • 9 die Details der Operation 804 aus 8 gemäß einer Ausführungsform darstellt.
    • 10 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Untertabellen unter Verwendung einer Berechtigungsspalte innerhalb der Tabelle implementiert, gemäß einigen Beispielen darstellt.
    • 11 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Untertabellen unter Verwendung einer Berechtigungsspalte innerhalb der Tabelle implementiert, gemäß einigen Beispielen darstellt.
    • 12 eine schematische Darstellung der Replikationssteuerung, die ein Replizieren von Untertabellen unter Verwendung einer Berechtigungsspalte innerhalb der Tabelle implementiert, gemäß einigen Beispielen darstellt.
    • 13 einen Prozess 1300 eines Implementierens einer Replikation von Unterdatenbanken gemäß einer Ausführungsform darstellt.
    • 14 die Details der Operation 1308 aus 13 gemäß einer Ausführungsform darstellt.
    • 15 eine schematische Darstellung einer Maschine in der Form eines Computersystems, innerhalb von welchem eine Gruppe von Anweisungen ausgeführt werden kann, zum Veranlassen, dass die Maschine irgendeine oder mehrere der hierin diskutierten Methoden durchführt, gemäß einigen beispielhaften Ausführungsformen ist.
    • 16 ein Blockdiagramm, das eine Softwarearchitektur zeigt, innerhalb von welcher die vorliegende Offenbarung implementiert sein kann, gemäß einer beispielhaften Ausführungsform ist.
  • DETAILLIERTE BESCHREIBUNG
  • Datenbanken können enorme Datensummen auf organisierte Weise für Anbieter und Klienten bzw. Clients quer über eine vernetzte Umgebung speichern. Zum Beispiel kann ein Anbieter Daten für eine Anzahl von Clients in einer selben Datenbank speichern. Wenn die Clients in unterschiedlichen geografischen Regionen sind, kann es sein, dass die Datenbank repliziert werden muss, um den Clients einen Zugang zu den Daten zur Verfügung zu stellen. Ein Replizieren von gesamten Datenbanken quer über die vernetzte Umgebung kann aufgrund der Größe von Datenbanken teuer sein und viel Latenzzeit verursachen. Demgemäß gibt es eine Notwendigkeit, die relevanten Teilbereiche der Datenbank zu unterschiedlichen Bereichen zu replizieren.
  • Unter anderem verbessern bei der vorliegenden Offenbarung beschriebene Ausführungsformen die Funktionalität des Datenbank-Servicesystems 100 durch Implementieren einer Replikation von Unterdatenbanken zu unterschiedlichen Zielbereichen im Netzwerk. Unter Verwendung der Replikation von Unterdatenbanken reduziert das Datenbank-Servicesystem 100 die Replikationskosten und die Replikations-latenzzeit durch Filtern von nicht entscheidenden Objekten.
  • 1 ist eine schematische Darstellung einer vernetzten Umgebung, in welcher die vorliegende Offenbarung genutzt werden kann, gemäß einigen Beispielen. Das Datenbank-Servicesystem 100 in 1 ist eine Verarbeitungsplattform, die für Datenbankdienste sorgt. Bei einer Ausführungsform kann das Datenbank-Servicesystem 100 eine Datenbankreplikation oder eine Unterdatenbankreplikation implementieren. Eine Unterdatenbankreplikation enthält zum Beispiel eine Schemareplikation, eine Tabellenreplikation, eine Untertabellenreplikation, etc.
  • Das Datenbank-Servicesystem 100 enthält einen Datenbank-Servicemanager 108, der für mehrere Anwender über ein Netzwerk 110 (z.B. Internet) zugänglich ist. Die Anwender können auf den Datenbank-Servicemanager 108 unter Verwendung von jeweils einer Client-Vorrichtung 102, einer Client-Vorrichtung 106 und einer Client-Vorrichtung 104 zugreifen. Der Datenbank-Servicemanager 108 kann irgendeine Anzahl von Anwendern unterstützen, die einen Zugang zu Daten oder Diensten des Datenbank-Servicesystems 100 erwünschen. Die Anwender der Client-Vorrichtungen 102, 104, 106 können zum Beispiel Endanwender, die eine Datenspeicherung und Wiedergewinnungsanfragen und -anforderungen zur Verfügung stellen, Systemadministratoren, die die hierin beschriebenen Systeme und Verfahren managen, Softwareanwendungen, die mit einer Datenbank interagieren, und andere Komponenten/Vorrichtungen bzw. Geräte, die mit dem Datenbank-Servicemanager 108 interagieren, enthalten.
  • Der Datenbank-Servicemanager 108 kann verschiedene Dienste und Funktionen zur Verfügung stellen, die den Betrieb bzw. die Operation der Systeme und Komponenten innerhalb des Datenbank-Servicesystems 100 unterstützen. Der Datenbank-Servicemanager 108 hat einen Zugriff auf gespeicherte Metadaten, die mit den Daten assoziiert sind, die überall im Datenbank-Servicesystem 100 gespeichert sind. Bei einigen Ausführungsformen enthalten Metadaten eine Zusammenfassung von Daten, die in entfernten Datenspeichersystemen (z.B. der Datenbank 112, der Datenbank 116, der Datenbank 114, etc.) gespeichert sind, sowie Daten, die von einem lokalen Cache verfügbar sind. Zusätzlich können Metadaten Information diesbezüglich enthalten, wie Daten in den entfernten Datenspeichersystemen und den lokalen Caches organisiert sind.
  • Der Datenbank-Servicemanager 108 ist weiterhin in Kommunikation mit einer Vielzahl von Datenspeichervorrichtungen einschließlich der Datenbank 112, der Datenbank 116 und der Datenbank 114, um verschiedene Datenspeicherungs- und Datenwiedergewinnungsoperationen durchzuführen. Obwohl in 1 drei Datenbanken 112, 114 und 116 gezeigt sind, kann das Datenbank-Servicesystem 100 irgendeine Anzahl von Datenspeichervorrichtungen enthalten. Bei einigen Ausführungsformen sind die Datenbanken 112, 114 und 116 cloudbasierte Speichervorrichtungen, die in einer oder mehreren geografischen Regionen angeordnet sind. Zum Beispiel können die Datenbanken 112, 114 und 116 Teil einer öffentlichen Cloud-Infrastruktur oder einer privaten Cloud-Infrastruktur oder irgendeiner anderen Art von verteiltem Speichersystem sein. Die Datenbanken 112, 114 und 116 können Festplattenlaufwerke (HDDs), Festkörperlaufwerke (SSDs), Speichercluster oder irgendeine andere Datenspeichertechnologie enthalten. Zusätzlich können, während es nicht gezeigt ist, die Datenbanken 112, 114 und 116 in einer Speicherplattform umfasst sein, die weiterhin ein verteiltes Dateisystem (wie beispielsweise Hadoop Distributed File System (HDFS)), Objektspeichersysteme und ähnliches enthalten kann.
  • Während der Datenbank-Servicemanager 108 und die Datenbanken 112, 114, 116 in 1 als einzelne Komponenten gezeigt sind, kann jeder bzw. jede des Datenbank-Servicemanagers 108 und der Datenbanken 112, 114, 116 als ein verteiltes System implementiert sein (z.B. verteilt quer über mehrere Systeme/Plattformen an mehreren geografischen Stellen) oder sie können in ein oder mehrere Systeme kombiniert sein.
  • Wie es in 1 gezeigt ist, enthält der Datenbank-Servicemanager 108 gemäß einigen Ausführungsformen eine Replikationssteuerung 118, die ein Replizieren einer Datenbank oder ein Replizieren einer Unterdatenbank im Datenbank-Servicesystem 100 implementiert.
  • Ein Replizieren einer Datenbank enthält ein Replizieren der gesamten primären Datenbank (z.B. der Datenbank 112) zu einer sekundären Datenbank (z.B. der Datenbank 116). Bei einem Replizieren der Datenbank ist die Datenbank die atomare Einheit eines Replizierens, so dass sie in ihrer Gesamtheit oder überhaupt nicht repliziert werden kann. Die Hauptnachteile eines Replizierens einer Datenbank enthalten hohe Kosten und eine Latenzzeit, verbunden mit einem Replizieren einer großen Datenbank in ihrer Gesamtheit. Weiterhin ist Anwendern nicht die Gelegenheit zur Verfügung gestellt, ihre Kosten und Latenzzeit durch Auswählen oder Ausschließen von Objekten in der Datenbank für ein Replizieren zu reduzieren. Zum Beispiel wünschen einige Anwender, Objekte von ihrer Datenbank von einem Replizieren auszuschließen. Bei einer Implementierung kann die Replikationssteuerung 118 die Datenbank umstrukturieren, um so repliziert zu werden, dass die erwünschten Einheiten eines Replizierens mit individuellen Datenbankabgrenzungen eines Anwenders übereinstimmen.
  • Schemafilterung und Tabellenfilterung
  • Um den Anwendern weitere Flexibilität zur Verfügung zu stellen, kann die Replikationssteuerung 118 ein Replizieren einer Unterdatenbank implementieren. 2 stellt eine schematische Darstellung 200 der Replikationssteuerung 118, die ein Replizieren einer Unterdatenbank unter Verwendung von Schemafilterung und Tabellenfilterung implementiert, gemäß einigen Beispielen dar.
  • Innerhalb jeder Datenbank gibt es eine Anzahl von Schichten einschließlich Schemas und Tabellen. Ein Schema ist ein logischer Container in der Datenbank und eine Tabelle ist ein anderer Container innerhalb des Schemas, der Zeilen und Spalten hat. Schemas und Tabellen können als Objekte dargestellt werden, um eine Filterung auf Schemaebene und auf Tabellenebene zuzulassen.
  • Bei dieser Ausführungsform empfängt die Replikationssteuerung 118 von jedem Anwender einen Einbeziehungsliste oder eine Ausschließungsliste oder irgendeine Kombination davon. Die Einbeziehungsliste kann eine Liste von zu replizierenden Objekten aus der Datenbank und die mit jedem Objekt in der Liste assoziierte Zieldatenbank umfassen. Die Objekte können in einem Schema, einer Tabelle oder irgendeiner Kombination davon sein. Die Ausschließungsliste kann eine Liste von von einem Replizieren zu einer Zieldatenbank auszuschließenden Objekten aus der Datenbank sein.
  • Wie es in 2 gezeigt ist, hat der Anwender, der ein Anbieter ist, Konten P1, P2, P3 jeweils in Regionen A, B und C. Die Replikationssteuerung 118 empfängt eine Einbeziehungsliste von der Client-Vorrichtung 102 des Anwenders, die ein Schema S2 und eine Tabelle T1 für ein Replizieren zur Zieldatenbank im Konto P2 in der Region B identifiziert, und ein Schema S4 und Tabellen T3 und T4 für ein Replizieren zur Zieldatenbank im Konto P4 in der Region C identifiziert. Bei diesem Beispiel kann die Replikationssteuerung 118 auch eine Ausschließungsliste von der Client-Vorrichtung 102 des Anwenders empfangen, die eine Tabelle T2, die in einem Schema S2 enthalten ist, zur Ausschließung von einem Replizieren zur Zieldatenbank im Konto P2 in der Region B identifiziert.
  • Alternativ dazu kann die Replikationssteuerung 118 eine Ausschließungsliste von der Client-Vorrichtung 102 des Anwenders empfangen, die Schemas S1, S2, S4 und Tabellen T2, T3 und T4 identifiziert, um von einer Zieldatenbank in einem Konto P2 in einer Region B ausgeschlossen zu sein, und Schemas S1, S2, S3 und Tabellen T1, T2 identifiziert, um von einer Zieldatenbank in einem Konto P3 in einer Region C ausgeschlossen zu sein.
  • Die Replikationssteuerung 118 veranlasst dann entsprechend das Replizieren der Objekte von der primären Datenbank im Konto P1 in der Region A basierend auf der Einbeziehungs- oder der Ausschließungsliste zur sekundären Datenbank im Konto P2 und P3.
  • Bei einer Ausführungsform erzeugt die Replikationssteuerung 118 eine Replikationsstrategie basierend auf den Einbeziehungs- oder Ausschließungslisten. Zum Beispiel kann die Replikationssteuerung 118 eine Datenbank-Replikationsstrategie anwenden, um ein Replizieren von Schemas und Tabellen durch einen Namen unter Verwendung der Ausschließungslisten zu beschränken. Alternativ dazu kann die Replikationssteuerung 118 eine Datenbank-Replikationsstrategie anwenden, um ein Replizieren von Schemas und Tabellen durch einen Namen unter Verwendung der Einbeziehungslisten zuzulassen. Bei einer Implementierung kann die Replikationsstrategie eine neues Datenbankobjekt erster Klasse sein, das der Kunde verwenden kann, um die zu Zielkonten zu replizierenden Schemas und Tabellen zu definieren. Die primäre Datenbank kann auch mehrere Strategien und mehrere sekundäre Datenbanken haben.
  • Gemeinsames Nutzen Bzw. Teilen von Daten
  • 3 ist eine schematische Darstellung 300 der Replikationssteuerung 118, die ein gemeinsames Nutzen bzw. Teilen von Daten von der Datenbank zu Kunden bzw. Clients innerhalb derselben Region implementiert, gemäß einigen Beispielen.
  • Einige Anwender im Datenbank-Servicesystem 100 sind Anbieter (z.B. Anbieteranwender), die Daten beibehalten und mit ihren Kunden bzw. Clients teilen (die auch Anwender des Datenbank-Servicesystems 100 sind). Wie es in 3 gezeigt ist, können die Daten in einer einzelnen Tabelle (z.B. Datentabelle) gespeichert sein, die eine Spalte für Kundenidentifikation-(ID) (z.B. Client_Id) enthält. Die Tabelle kann auch Spalten für Name, Datum, Zeit enthalten. Die Daten für alle Clients (z.B. Client_Id 1, 2, 3) des Anbieteranwenders können in der Tabelle gespeichert sein.
  • Nimmt man Bezug auf 3, ist der Anbieteranwender auch mit einer Berechtigungstabelle versehen, um das Teilen der Daten zu seinen Kunden bzw. Clients zu managen. Die Berechtigungstabelle enthält Spalten für eine Kunden-ID (z.B. Client_Id) und einen Kundenkontonamen (z.B. Kundenkonto), assoziiert mit dem Datenbank-Servicesystem 100. Aus der Berechtigungstabelle in 3 haben die Client-IDs 1 und 3 (z.B. Client_Id 1 und 3) auch jeweils Konten bei dem Datenbank-Servicesystem 100 als Kundenkonten C1, C3.
  • Da Kundenkonten C1 und C3 in derselben Region wie das Anbieterkonto sind, muss die Replikationssteuerung 118 Daten nicht replizieren. Die Replikationssteuerung 118 verbindet die Datentabelle mit der Berechtigungstabelle an der Kunden-ID unter Verwendung von Secure View (sichere Ansicht), um zu veranlassen, dass die relevanten Daten von der Datentabelle mit jedem der Kundenkonten geteilt werden. Die Replikationssteuerung 118 kann Anfragen von den Kundenkonten C1 und C3 für ihre Daten von der Datentabelle empfangen. In Reaktion darauf kann, wie es in 3 gezeigt ist, die Replikationssteuerung 118 die Zeilen, die mit der Kunden-ID 1 (z.B. Client_Id 1) assoziiert sind, auswählen und mit dem Kundenkonto C1 teilen. Gleichermaßen kann die Replikationssteuerung 118 die Zeilen, die mit der Kunden-ID 3 (z.B. Client_Id 3) assoziiert sind, auswählen und mit dem Kundenkonto C3 teilen. Demgemäß kann die Replikationssteuerung 118 personalisierte Teilungen erzeugen, wo eine Untergruppe der Tabellenzeilen mit jedem Kundenkonto geteilt werden kann. Bei einem Beispiel identifiziert die Replikationssteuerung 118 das aktuelle Kundenkonto, das gerade anfragt, und wählt die mit dem identifizierten Kundenkonto assoziierten Zeilen aus und teilt sie.
  • Replizieren auf Tabellenebene
  • Wenn die Kundenkonten in von der Datentabelle (z.B. der primären Tabelle) unterschiedlichen Regionen angeordnet sind, kann die Replikationssteuerung 118 die gesamte Tabelle zu Anbieterkonten in unterschiedlichen Regionen replizieren und die personalisierten Teilungen in 3 in jeder der unterschiedlichen Regionen implementieren. 4 stellt eine schematische Darstellung 400 der Replikationssteuerung 118, die ein Replizieren einer Tabelle implementiert, gemäß einigen Beispielen dar.
  • In 4 hat der Anbieteranwender ein Anbieterkonto P1 in der zentralen Region, wo die Datentabelle (z.B. die primäre Tabelle) gespeichert ist. Der Anbieteranwender speichert Daten für Klienten bzw. Kunden mit Kunden-IDs (z.B. Client_Id) 1, 2, 3, 4 in der Datentabelle. Wie es in der Berechtigungstabelle gezeigt ist, hat Client_Id 1 ein Kundenkonto C1, hat Client_Id 2 zwei Kundenkonten C2-W, C2-E, hat Client_Id 3 ein Kundenkonto C3 und hat Client_Id 4 ein Kundenkonto C4. Die Berechtigungstabelle in 4 enthält auch eine Spalte, die die Kunden-IDs (Client_Id) mit den Anbieterkonten quer über unterschiedliche Regionen (z.B. Anbieterkonto P1, P2, P3) assoziiert.
  • Da wenigstens ein Kundenkonto (z.B. C1, C2-E, C2-W, C3, C4) in der westlichen Region und in der östlichen Region ist, repliziert die Replikationssteuerung 118 die gesamte Datentabelle zu dem Anbieterkonto P2 in der westlichen Region und dem Anbieterkonto P3 in der östlichen Region. Wenn die Datentabelle einmal im Anbieterkonto P2 ist, kann die Replikationssteuerung 118 die Untergruppe der Tabellenzeilen in der sekundären Tabelle im Anbieterkonto P2 mit jedem Kundenkonto C2-W und C3 in der westlichen Region teilen (z.B. personalisierte Teilungen). Gleichermaßen kann, wenn die Datentabelle einmal im Anbieterkonto P3 ist, die Replikationssteuerung 118 die Untergruppe der Tabellenzeilen in der sekundären Tabelle im Anbieterkonto P3 mit jedem Kundenkonto C2-E und C1 in der östlichen Region teilen.
  • Da das Kundenkonto C4 in derselben Zentralregion wie der Anbieteranwender und die (primäre) Datentabelle ist, kann die Replikationssteuerung 118 auf Anfrageanforderungen vom Kundenkonto C4 durch Teilen der Datenzeilen, die mit Client_Id 4 assoziiert sind, mit dem Kundenkonto C4 reagieren.
  • Der Nachteil des Replizierens der Tabelle in 4 besteht darin, dass Zeilen in der primären Datentabelle, die nicht in einer Region benötigt werden, in diese Region repliziert werden, da die Replikationssteuerung 118 gesamte Tabellen zwischen Regionen repliziert. Dies kann höhere Kosten und eine höhere Latenzzeit mit sich bringen.
  • 5 stellt eine schematische Darstellung 500 der Replikationssteuerung 118, die ein Replizieren einer Untertabelle implementiert, gemäß einigen Beispielen dar. Bei dieser Ausführungsform repliziert die Replikationssteuerung 118 die Untergruppe von Tabellenzeilen, für die es nötig ist, dass sie geteilt werden, in einer gegebenen Region zum Anbieterkonto in dieser Region. Zum Beispiel wählt die Replikationssteuerung 118 die Untergruppe von Tabellenzeilen (Client_Id 2, 3), für die es nötig ist, dass sie zu Kunden (z.B. C3 und C2-W) geteilt werden, aus und repliziert sie zum Anbieterkonto P2 in der westlichen Region. Gleichermaßen wählt die Replikationssteuerung 118 die Untergruppe von Tabellenzeilen (Client_Id 1, 2), für die es nötig ist, dass sie zu Kunden (z.B. C1 und C2-E) geteilt werden, aus und repliziert sei zum Anbieterkonto P3 in der östlichen Region. Demgemäß verbessert das Replizieren der Untertabelle in 5 im Vergleich mit dem Replizieren der Tabelle in 4 die Kosten und die Latenzzeit.
  • Ein Auswählen der Zeilen aus der Datentabelle, um repliziert zu werden, ist herausfordernd, weil Daten in der primären Datentabelle als benachbarte Speichereinheiten verwirklicht sein können, die Mikropartitionen genannt werden. Die Tabelle kann eine Sammlung von Mikropartitionen sein. Jede Mikropartition ist eine Datei, die zwischen 50 MB und 500 MB von unkomprimierten Daten enthält. Die Größe der Mikropartition kann gleich oder kleiner als 16 Megabyte (MB) sein. Gruppen von Zeilen in der Tabelle können in individuelle Mikropartitionen abgebildet werden, die in Spalten organisiert sind.
  • Weiterhin können unter Verwendung einer Datenmanipulationssprache (DML) Änderungen an den Daten in der Datentabelle durchgeführt werden. Bei einigen Implementierungen können Änderungen anhand von irgendeiner DML-Anweisung durchgeführt werden. Beispiele für ein Manipulieren von Daten können ein Auswählen, ein Updaten, ein Ändern, ein Verknüpfen und ein Einfügen von Daten in Tabellen enthalten, sind aber nicht darauf beschränkt. Wenn neue Daten eingefügt werden, erzeugt der Datenbank-Servicemanager 108 eine neue Mikropartition. Wenn Daten upgedatet werden, markiert der Datenbank-Servicemanager 108 die Mikropartition, die Daten speichert, zur Löschung und erzeugt eine neue Mikropartition für die upgedateten Daten.
  • Unter der Voraussetzung, dass bei einer Ausführungsform viele Zeilen in einer Tabelle in diese Mikropartitionen gepackt sind, öffnet die Replikationssteuerung 118, um ein Filtern auf Zeilenebene durchzuführen, jede Mikropartition, um nachzusehen bzw. zu überprüfen, ob die Zeilen darin für die unterschiedlichen Regionen zu replizieren sind. Dieses Filtern auf Zeilenebene lässt eine Genauigkeit zu, führt aber zu einer Verlangsamung beim Replizieren.
  • Anbieteranwender materialisieren Zeilen in separate Objekte
  • Bei einer weiteren Ausführungsform können die Zeilen in separate Objekte (z.B. separate Tabellen) materialisiert werden, so dass neue Mikropartitionen für die Zeilen erzeugt werden, für die es nötig ist, dass sie repliziert werden. Bei einer Implementierung materialisiert der Anbieteranwender die Zeilen aus der Datentabelle, um in eine separate Tabelle repliziert zu werden. Spezifisch kann der Anbieteranwender eine neue Tabelle erzeugen und darin die Zeilen aus der (primären) Datentabelle spezifizieren, um repliziert zu werden. Die Zeilen in der neuen Tabelle werden als eine neue Mikropartition materialisiert und der Anbieteranwender fordert an, dass die Replikationssteuerung 118 die neue Tabelle repliziert. Da nur die relevanten Zeilen für eine Region repliziert werden, sind die Replikationskosten und die Replikations-Latenzzeit niedriger. Jedoch gibt es höhere Speicherkosten, weil eine Verdoppelung bzw. Duplizierung der zu replizierenden Daten nötig ist, es gibt höhere Kosten für Extrahieren, Transformieren, Laden (ETL) und eine höhere ETL-Latenzzeit, weil Transformationen für jede Zeile von Daten nötig sind, um in einer neuen Tabelle gespeichert und dann repliziert zu werden, und der Aufwand, der vom Anbieterkunden erforderlich ist, ist hoch.
  • Replikationssteuerung materialisiert Zeilen in materialisierte Ansichten
  • Bei einer weiteren Implementierung kann die Replikationssteuerung 118, um den Aufwand, der für den Anbieteranwender erforderlich ist, abzumildern, die Zeilen aus der Datentabelle, um repliziert zu werden, in materialisierte Ansichten materialisieren.
  • Eine materialisierte Ansicht ist ein Datenbankobjekt, das End- oder Zwischenergebnisse einer Datenbankabfrage enthält. Die materialisierte Ansicht kann eine lokal im Cache gespeicherte Kopie von Datenbankdaten, eine Untergruppe von Zeilen oder Spalten einer Tabelle, das Ergebnis einer Verbindung, das Ergebnis einer Aggregatfunktion, und so weiter enthalten. Materialisierte Ansichten können durch einen Klienten bzw. Client oder einen Systemadministrator definiert werden und können irgendeine geeignete Funktion enthalten. Materialisierte Ansichten werden allgemein erzeugt, um bei der Ausführung von spezifischen allgemeinen Anfragen zu helfen.
  • Eine materialisierte Ansicht, wie sie in der vorliegenden Anmeldung offenbart ist, ist eine deklarative Spezifikation eines beständigen Abfrageergebnisses, das automatisch beibehalten und transparent verwendet wird. Bei einem Beispiel enthält eine materialisierte Ansicht eine lokale Kopie von Daten, die entfernt angeordnet sind, oder kann eine Untergruppe von Zeilen und/oder Spalten (worauf als eine „Partition“ oder „Mikropartition“ Bezug genommen werden kann) einer Quellen-Datentabelle oder ein Verbindungsergebnis enthalten oder kann alternativ eine Zusammenfassung unter Verwendung einer Aggregatfunktion enthalten. Materialisierte Ansichten werden anhand einer Materialisierung erzeugt, wo die Ergebnisse einer Abfrage bzw. Anfrage ähnlich einem Merken bzw. einer Speicherung des Werts einer Funktion bei funktionellen Sprachen in einem Cache gespeichert werden. Materialisierte Ansichten verbessern eine Leistungsfähigkeit von teuren Abfragen durch Materialisieren und Wiederverwenden von allgemeinen bzw. gemeinsamen Zwischen-Abfrageergebnissen bei einer Arbeitsbelastung. Materialisierte Ansichten werden verwendet, um eine Leistungsfähigkeit von Abfragen zulasten von Wartungskosten und erhöhten Speichererfordernissen zu verbessern.
  • Bei einem Beispiel kann eine materialisierte Ansicht eine Zusammenfassung der Zeilen aus der Datentabelle enthalten, die relevant für den Anbieteranwender sind oder die mit einer Anfrage von dem Anbieteranwender assoziiert sind. Wenn die Replikationssteuerung 118 ein Update an der Datentabelle entdeckt, kann die Replikationssteuerung 118 die materialisierte Ansicht entsprechend updaten. Zum Beispiel frischt die Replikationssteuerung 118 dann, wenn das Update an der Datentabelle enthält, dass eine neue Mikropartition in die Quellentabelle eingefügt ist, die materialisierte Ansicht durch Einfügen der neuen Mikropartition in die materialisierte Ansicht auf. Weiterhin kann die Replikationssteuerung 118 dann, wenn das Update an der Datentabelle ein Löschen einer Mikropartition enthält, die materialisierte Ansicht durch Entfernen der gelöschten Mikropartition von der materialisierten Ansicht kompaktieren bzw. verdichten. Die Datentabelle kann somit repliziert werden, wie sie ist. Zum Beispiel kann die Replikationssteuerung 118 Maßnahmen bzw. Strategien basierend auf dem Replikationszielkonto einrichten und implementieren. Da nur die relevanten Zeilen für eine Region repliziert werden, sind die Replikationskosten und die Replikations-Latenzzeit niedrig, aber Speicherkosten bleiben hoch, und es gibt hinzugefügte Kosten in Bezug auf die materialisierte Ansicht.
  • Replikationssteuerung repliziert Untergruppe von Zeilen (Replizieren von Untertabellen)
  • Eher als die Zeilen in separate neue Mikropartitionen zu materialisieren, kann die Replikationssteuerung 118 bei einer weiteren Ausführungsform die Untergruppe von Zeilen basierend auf dem Replikationszielkonto replizieren, ohne die Untergruppe von Zeilen zu duplizieren, wie es in 5 dargestellt ist.
  • Filtern auf Zeilenebene basierend auf einer von einem Anbieteranwender spezifizierten Spalte
  • Bei einer Ausführungsform empfängt die Replikationssteuerung 118, um die Untergruppe von Zeilen zu replizieren, vom Anbieterkunden eine Identifikation der Spalte in einer Datentabelle, die zu filtern ist, und das anzuwendende Filterverhalten. Zum Beispiel kann der Anbieterkunde P1 in 5 anzeigen, dass die Kunden-ID-Spalte für Zeilen von Client_Id 1 zu filtern ist und die Zeilen von Client_Id 1 im Anbieterkonto P3 in der östlichen Region für den Kunden C1 zu replizieren sind.
  • Wie es oben diskutiert ist, kann die Replikationssteuerung 118 ein Filtern auf Zeilenebene durch Öffnen von jeder Mikropartition durchführen, um nachzusehen, ob die Zeilen darin für die unterschiedlichen Regionen zu replizieren sind. Dieses Filtern auf Zeilenebene lässt eine Genauigkeit zu, führt aber dazu, dass die Leistungsfähigkeit des Replizierens langsam ist.
  • Filtern auf Dateienebene basierend auf einer von einem Anbieteranwender spezifizierten Spalte
  • Die Metadaten für jede Datei (Mikropartition) können die minimalen und die maximalen Werte in jeder Spalte der Datei anzeigen. Somit zeigen die Metadaten für jede Mikropartition die minimale und maximale Kunden-ID (Client_Id) an. Zum Beispiel zeigt eine Mikropartition mit einer minimalen und maximalen Client_Id 1 und 3 eine Möglichkeit von Zeilen an, die mit Client_Id 2 assoziiert sind. Ohne ein Öffnen dieser Mikropartition kann die Replikationssteuerung 118 diese Mikropartition für Client_Id 1, 2 und 3 replizieren. Durch Vermeiden eines Öffnens der Mikropartitionen ist die Leistungsfähigkeit des Replizierens schneller, aber auch weniger genau. Spezifisch kann die Replikationssteuerung 118, die ein Filtern auf Dateienebene implementiert, dabei sein, unnötige Zeilen zu einigen Regionen zu replizieren.
  • Um die Genauigkeit zu verbessern, kann die Replikationssteuerung 118 die Tabellen basierend auf einer Spalte clustern, die die Verteilungsstrategie definiert, um Mikropartitionen zu erzeugen, die in dieser Spalte besser sortiert sind. Jedoch gibt es hinzugefügte Kosten, die mit dem Clustern assoziiert sind.
  • Speichern einer von einem Anbieteranwender spezifizierten Führungsstrategie
  • Wie es oben diskutiert ist, kann der Anbieteranwender zusätzlich zu einem Anzeigen der Zeilen in der Datentabelle, um repliziert zu werden, auch die Führungsstrategie anzeigen. Zum Beispiel kann der Anbieterkunde P1 in 5 anzeigen, dass die Kunden-ID-Spalte für Zeilen von Client_Id 1 im Anbieterkonto P3 in der östlichen Region für den Kunden C1 zu filtern ist. Wie es in 5 gezeigt ist, kann die Berechtigungstabelle eine separate Tabelle sein, wo der Anbieteranwender die Führungsstrategie spezifizieren kann. Bei einer weiteren Ausführungsform kann die Berechtigungstabelle auch als Metadaten gespeichert sein, um einen schnelleren Zugriffspfad zur Führungsstrategie zur Verfügung zu stellen. Zum Beispiel kann die Berechtigungstabelle ein neues Objekt erster Klasse für ein personalisiertes Teilen zum Definieren der Zeilen sein, zu welchen die Kunden C1, C2, C3 berechtigt sind.
  • Um das Replizieren einer Untertabelle zu implementieren kann die Replikationssteuerung 118 Berechtigungen verwenden, die während einer Laufzeit angewendet sind, oder eine Berechtigungsspalte innerhalb der (primären) Datentabelle verwenden, die durch den Anbieteranwender unterhalten wird und durch die Replikationssteuerung 118 automatisiert wird, oder eine Kombination davon.
  • Replizieren einer Untertabelle: Während einer Laufzeit angewendete Berechtigungen
  • 6 stellt eine schematische Darstellung 600 der Replikationssteuerung 118, die ein Replizieren einer Untertabelle unter Verwendung von während einer Laufzeit angewendeten Berechtigungen implementiert, gemäß einigen Beispielen dar.
  • In 6 hat der Anbieteranwender eine Anbieterkonto P1 in der zentralen Region mit einer Datentabelle 604 mit Zeilen von Daten für seine Klienten 1, 2, 3, 4 (z.B. Client_Id 1, 2, 3, 4). Der Anbieteranwender zeigt in der Berechtigungstabelle 602 an, dass Client_Id 1 mit einem Kundenkonto C1 und einem Anbieterkonto P3 in der östlichen Region assoziiert ist. Demgemäß zeigt diese Änderung in der Berechtigungstabelle 602 an, dass der Anbieteranwender von der zentralen Region zur östlichen Region für das Anwenderkonto C1 replizieren möchte.
  • Bei einem Beispiel ist ein Update des Anbieteranwenders an der Berechtigungstabelle 602, um anzuzeigen, dass der Client_Id 1 mit dem Kundenkonto C1 im Anbieterkonto P3 assoziiert ist, eine Änderung in der Berechtigungstabelle 602, die durch die Replikationssteuerung 118 entdeckt wird und veranlasst, dass die Replikationssteuerung 118 das mit der Änderung assoziierte Replizieren initiiert.
  • Bei einem weiteren Beispiel kann die Replikationssteuerung 118 eine Anfrage vom Anbieterkonto P3 für das Kundenkonto C1 empfangen. Bei diesem Beispiel kann der Anbieteranwender das Anbieterkonto P3 für ein Kundenkonto C1 spezifizieren.
  • Unter Verwendung der Anfrage kann die Replikationssteuerung 118 die Mikropartition in der Datentabelle unter Verwendung der minimalen und maximalen Client_Id in den Mikropartition-Metadaten (auf Dateienebene) filtern, um die zum Anbieterkonto P3 zu replizierenden Mikropartitionen zu lokalisieren. Die Replikationssteuerung 118 repliziert die lokalisierten Mikropartitionen zum Anbieterkonto P3.
  • Wenn der Anbieteranwender die Berechtigungstabelle updated, muss die Replikationssteuerung 118 ein weiteres Replizieren der Untertabelle durchführen. 7 stellt eine schematische Darstellung 700 der Replikationssteuerung 118, die ein Replizieren einer Untertabelle unter Verwendung von während einer Laufzeit angewendeten Berechtigungen implementiert, gemäß einigen Beispielen dar.
  • In 7 zeigt der Anbieteranwender in der Berechtigungstabelle 602 an, dass Client_Id 2 mit dem Kundenkonto C2-E und dem Anbieterkonto in der östlichen Region assoziiert ist. Dies zeigt an, dass ein neuer Kunde wünscht, dass er Daten zur östlichen Region repliziert hat.
  • Die Replikationssteuerung 118 kann ein inkrementelles Replizieren durchführen, das zwei Mechanismen verwendet: basierend auf einer Version und vollständige Bestandsaufnahme bzw. Aufstellung.
  • Beim versionsbasierten Replizieren kann die Replikationssteuerung 118, wenn eine Änderung an der Datentabelle durchgeführt wird, die Änderung an der Datentabelle entdecken und das Replizieren basierend auf dieser neuen Version der Datentabelle durchführen. Zum Beispiel kann ein Durchführen eines versionsbasierten Replizierens ein Identifizieren der Zeilen in der Datentabelle enthalten, die durch die Änderung beeinflusst sind, und ein Replizieren dieser Zeilen in der Datentabelle zu den Zielkonten (z.B. Anbieterkonten).
  • Bei einem Replizieren gemäß einer vollständigen Aufstellung kann die Replikationssteuerung 118, wenn eine Änderung an einer Berechtigungstabelle durchgeführt wird, all die Zeilen in der Datentabelle auswählen, die mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle assoziiert sind, die durch die Änderung beeinflusst sind.
  • Ein versionsbasiertes Replizieren ist schneller als eine vollständige Aufstellung. Bei einer Ausführungsform veranlasst die Replikationssteuerung 118, wenn die Berechtigungstabelle 602 sich ändert, eine vollständige Aufstellung bei der nächsten Auffrischung, um für jedes Zielkonto (z.B. Anbieterkonto) ausgeführt zu werden. Während die Anstrengung bzw. der Aufwand, die bzw. der für den Anbieteranwender erforderlich ist, niedrig ist, sind die Replikationskosten und die Replikations-Latenzzeit, die mit einem Replizieren einer Untertabelle unter Verwendung von Berechtigungen, angewendet während einer Laufzeit, assoziiert sind, hoch.
  • Prozess zum Implementieren eines Replizierens einer Untertabelle: Während einer Laufzeit angewendete Berechtigungen
  • Obwohl die beschriebenen Ablaufdiagramme Operationen als einen sequentiellen Prozess zeigen können, können viele der Operationen parallel oder gleichzeitig durchgeführt werden. Zusätzlich kann die Reihenfolge der Operationen neu angeordnet werden. Ein Prozess ist beendet, wenn seine Operationen beendet sind. Ein Prozess kann einem Verfahren, einer Prozedur, einem Algorithmus, etc. entsprechen. Die Operationen von Verfahren können im Gesamten oder zum Teil durchgeführt werden, können in Verbindung mit einigen oder allen der Operationen bei anderen Verfahren durchgeführt werden, und können durch irgendeine Anzahl von unterschiedlichen Systemen durchgeführt werden, wie beispielsweise den hierin beschriebenen Systemen, oder irgendeinen Teilbereich davon, wie beispielsweise einen Prozessor, der in irgendeinem der Systeme enthalten ist. Zum Beispiel können die Prozesse durch die Replikationssteuerung 118 durchgeführt werden, oder einen Prozessor, der in der Replikationssteuerung 118 enthalten ist, oder einen Prozessor im Datenbank-Servicemanager 108, oder eine Kombination davon.
  • 8 stellt einen Prozess 800 zum Implementieren eines Replizierens einer Unterdatenbank gemäß einer Ausführungsform dar. Bei einer Operation 802 entdeckt ein Prozessor in der Replikationssteuerung 118 ein erstes Update an einer Berechtigungstabelle 602. Wie es in 6 und 7 gezeigt ist, kann die Berechtigungstabelle 602 Berechtigungstabellenzeilen enthalten, die mit Klienten-Identifizierern, Kundenkonto-Identifizierern und Anbieterkonto-Identifizierern assoziiert sind. Die Berechtigungstabelle 602 kann Berechtigungstabellenspalten enthalten, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern. Wie es in 6 und 7 dargestellt ist, identifizieren die Anbieterkonto-Identifizierer Anbieterkonten in einer Vielzahl von geografischen Regionen. Das erste Update kann mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert sein. Das erste Update kann zum Beispiel einen ersten Klienten-Identifizierer der Klienten-Identifizierer, einen ersten Kundenkonto-Identifizierer der Kundenkonto-Identifizierer oder einen ersten Anbieterkonto-Identifizierer der Anbieterkonto-Identifizierer enthalten.
  • Bei einer Operation 804 führt der Prozessor ein Filtern einer Datentabelle 604 basierend auf dem ersten Update durch. Wie es in 6 und 7 gezeigt ist, kann die Datentabelle 604 Datentabellenzeilen umfassen, die mit den Klienten-Identifizierern assoziiert sind und Dateninhalt (z.B. Ereignis, Datum, Nutzlast bzw. Zahlungsbelastung, etc.) enthalten. Bei einer Ausführungsform empfängt der Prozessor eine Replikationsanfrage vom ersten Anbieterkonto, das einen ersten Kundenkonto-Identifizierer enthält.
  • Bei einer Operation 806 entdeckt der Prozessor ein zweites Update an der Berechtigungstabelle 602. Beispiele des ersten Updates und des zweiten Updates an der Berechtigungstabelle 602 enthalten eine Hinzufügen einer neuen Berechtigungstabellenzeile zu der Berechtigungstabelle, ein Löschen von einer der Berechtigungstabellenzeilen oder ein Ändern von Information, die in einer der Berechtigungstabellenzeilen enthalten ist. Bei einem Beispiel enthält ein Ändern von Information, die in einer der Berechtigungstabellenzeilen enthalten ist, ein Ändern der Klienten-Identifizierer, der Kundenkonto-Identifizierer oder der Anbieterkonto-Identifizierer.
  • Bei einer Operation 808 führt der Prozessor ein inkrementelles Replizieren der Datentabelle 604 durch, indem er ein Replizieren einer vollständigen Aufstellung bei einer nächsten Auffrischung veranlasst, um für Anbieterkonten ausgeführt zu werden, die mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle 602 assoziiert sind.
  • Bei einem Beispiel führt der Prozessor ein Filtern der Datentabelle 604 bei der Operation 804 durch ein Durchführen eines Filterns auf Dateienebene durch. 9 stellt die Details der Operation aus der 8 gemäß einer Ausführungsform dar.
  • Bei einer Operation 902 identifiziert der Prozessor Mikropartitionen in einer Vielzahl von Mikropartitionen in der Datentabelle 604, die Metadaten hat, die mit dem ersten Klienten-Identifizierer assoziiert sind. Jede der Mikropartitionen in der Datentabelle 604 kann eine oder mehrere der Vielzahl von Datentabellenzeilen umfassen.
  • Bei einem Beispiel umfassen die Mikropartitionen in der Datentabelle 604 Metadaten, die einem minimalen Klienten-Identifizierer und einen maximalen Klienten-Identifizierer enthalten. Bei diesem Beispiel sind die Metadaten mit dem ersten Klienten-Identifizierer assoziiert, wenn der erste Klienten-Identifizierer innerhalb eines Bereichs ist, der durch den minimalen Klienten-Identifizierer und den maximalen Klienten-Identifizierer eingerichtet ist.
  • Bei einer Operation 904 repliziert der Prozessor die identifizierten Mikropartitionen zu einem ersten Anbieterkonto, das mit dem ersten Anbieterkonto-Identifizierer assoziiert ist.
  • Replizieren einer Untertabelle: Berechtigungsspalte innerhalb einer Tabelle
  • Um zu veranlassen, dass ein versionsbasiertes Replizieren durchgeführt wird, ist wenigstens eine Änderung an der primären Datentabelle 604 nötig. Zum Beispiel kann eine Tabellen-DML ausgelöst werden, um zu veranlassen, dass die Replikationssteuerung 118 ein versionsbasiertes Replizieren durchführt. 10 stellt eine schematische Darstellung 1000 der Replikationssteuerung 118, die ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte 1002 innerhalb der Tabelle implementiert, gemäß einigen Beispielen dar.
  • In 10 umfasst die (primäre) Datentabelle eine Berechtigungsspalte 1002 (z.B. Zielkontenspalte), die das Anbieterkonto anzeigt, das mit der Zeile in der Tabelle assoziiert ist. Bei einer Ausführungsform updatet der Anbieteranwender die Spalte in der Datentabelle 1004, wann immer die Berechtigungstabelle 602 sich ändert. Das Update an der Berechtigungsspalte 1002 in der Datentabelle veranlasst, dass die Replikationssteuerung 118 ein versionsbasiertes Replizieren durchführt. Zum Beispiel kann die Replikationssteuerung 118 die Version der Datentabelle 1004 updaten und neue Mikropartitionen erzeugen, um die Änderung in der Berechtigungstabelle 602 zu berücksichtigen. Bei dieser Ausführungsform enthält ein Durchführen eines versionsbasierten Replizierens durch die Replikationssteuerung 118 ein Replizieren von Zeilen in der Datentabelle 1004 zu den Zielkonten (z.B. Anbieterkonten) unter Verwendung der Berechtigungsspalte 1002.
  • 11 stellt eine schematische Darstellung 1100 der Replikationssteuerung 118, die ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte innerhalb der Tabelle implementiert, gemäß einigen Beispielen dar.
  • In 11 updated der Anbieteranwender die Berechtigungstabelle 602, um anzuzeigen, dass Client_Id 2 mit dem Kundenkonto C2-E und dem Anbieterkonto P3 in der östlichen Region assoziiert ist. Bei dieser Ausführungsform updated der Anbieteranwender auch die Berechtigungsspalte 1002 in der Datentabelle 1004, um zu berücksichtigen, dass die Zeile mit Client_Id 2 auch mit dem Anbieterkonto P3 assoziiert ist.
  • Wie in 10 veranlasst das Update an der Berechtigungsspalte 1002 in der Datentabelle 1004, dass die Replikationssteuerung 118 ein versionsbasiertes Replizieren durchführt. Bei dieser Ausführungsform enthält die Replikationssteuerung 118, die ein versionsbasiertes Replizieren durchführt, ein Replizieren von Zeilen in der Datentabelle 1004 zu den Zielkonten (z.B. Anbieterkonten) unter Verwendung der Berechtigungsspalte 1002. Wie es in sowohl 10 als auch 11 gezeigt ist, erniedrigt ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte 1002 innerhalb der Tabelle die Replikationskosten und die Replikations-Latenzzeit, aber es gibt höhere ETL-Kosten und eine höhere ETL-Latenzzeit und der Aufwand, der von dem Anbieteranwender erforderlich ist, ist viel höher.
  • Replizieren einer Untertabelle: Virtuelle Berechtigungsspalte innerhalb der Tabelle
  • Um den Aufwand abzumildern, der für Anbieteranwender erforderlich ist, kann die Replikationssteuerung 118 bei einer Ausführungsform eine virtuelle Berechtigungsspalte innerhalb der Datentabelle unterhalten. 12 stellt eine schematische Darstellung 1200 der Replikationssteuerung 118, die ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte innerhalb der Tabelle implementiert, gemäß einigen Beispielen dar.
  • In 12 umfasst die (primäre) Datentabelle eine virtuelle Berechtigungsspalte 1202 (z.B. eine Zielkontospalte), die das Anbieterkonto anzeigt, das mit der Zeile in der Datentabelle 1004 assoziiert ist. Die virtuelle Berechtigungstabelle 1202 wird durch die Replikationssteuerung 118 unterhalten.
  • Wie es in 12 gezeigt ist, updated der Anbieteranwender die Berechtigungstabelle 602, um anzuzeigen, dass Client_Id 1 mit einem Kundenkonto C1 und einem Anbieterkonto P3 in der östlichen Region assoziiert ist, und Client_Id 2 mit einem Kundenkonto C2-E und einem Anbieterkonto P3 in der östlichen Region assoziiert ist. Wenn der Anbieteranwender die Berechtigungstabelle 602 updated, füllt die Replikationssteuerung 118 die virtuelle Berechtigungsspalte 1202 in der Datentabelle 1004 mit Daten. Bei dieser Ausführungsform updated die Replikationssteuerung 118 die virtuelle Berechtigungsspalte 1202 für die Zeilen von Client_Id 1 und 2, um das Anbieterkonto P3 anzuzeigen. In Reaktion auf dieses Update an der virtuellen Berechtigungsspalte 1202 in der Datentabelle 1004 kann die Replikationssteuerung 118 ein versionsbasiertes Replizieren durchführen. Bei dieser Ausführungsform enthält ein Durchführen eines versionsbasierten Replizierens durch die Replikationssteuerung 118 ein Replizieren von Zeilen in der Datentabelle 1004 zu den Zielkonten (z.B. Anbieterkonten) unter Verwendung der virtuellen Berechtigungsspalte 1202.
  • Während die ETL-Kosten und die ETL-Latenzzeit hoch bleiben, erniedrigt ein Verwenden der virtuellen Berechtigungsspalte 1202 innerhalb der Datentabelle 1004, wie es in 12 gezeigt ist, die Replikationskosten und die Replikations-Latenzzeit. Weiterhin wird, da die Replikationssteuerung 118 die virtuelle Berechtigungsspalte 1202 unterhält, die Höhe des Aufwands, der vom Anbieteranwender erfordert ist, reduziert.
  • Prozess zum Implementieren eines Replizierens einer Untertabelle: Berechtigungsspalte innerhalb einer Tabelle oder virtuelle Berechtigungsspalte innerhalb einer Tabelle
  • 13 stellt einen Prozess 1300 zum Implementieren eines Replizierens einer Unterdatenbank gemäß einer Ausführungsform dar. Bei einer Operation 1302 entdeckt der Prozessor der Replikationssteuerung 118 ein Update an einer Berechtigungstabelle 602. Wie es in 10, 11 und 12 gezeigt ist, kann die Berechtigungstabelle 602 Berechtigungstabellenzeilen enthalten, die mit Klienten-Identifizierern, Kundenkonto-Identifizierern und Anbieterkonto-Identifizierern assoziiert sind. Die Berechtigungstabelle 602 kann Berechtigungstabellenspalten enthalten, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern. Wie es in 10, 11 und 12 gezeigt ist, identifizieren die Anbieterkonto-Identifizierer Anbieterkonten in einer Vielzahl von geografischen Regionen. Das Update an der Berechtigungstabelle 602 kann mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert sein. das Update an der Berechtigungstabelle 602 kann zum Beispiel einen ersten Klienten-Identifizierer der Klienten-Identifizierer, einen ersten Kundenkonto-Identifizierer der Kundenkonto-Identifizierer oder einen ersten Anbieterkonto-Identifizierer der Anbieterkonto-Identifizierer enthalten.
  • Beispiele des Updates an der Berechtigungstabelle 602 bei der Operation 1302 enthalten ein Hinzufügen einer neuen Berechtigungstabellenzeile zu der Berechtigungstabelle, ein Löschen von einer der Berechtigungstabellenzeilen oder ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information. Bei einem Beispiel enthält ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information ein Ändern der Klienten-Identifizierer, der Kundenkonto-Identifizierer oder der Anbieterkonto-Identifizierer.
  • Bei einer Operation 1304 führt der Prozessor ein Filtern einer Datentabelle 1004 basierend auf dem Update an der Berechtigungstabelle 602 durch. Wie es in den 10, 11 und 12 dargestellt ist, kann die Datentabelle 1004 Datentabellenzeilen umfassen, die mit den Klienten-Identifizierern assoziiert sind, und sie enthält eine Berechtigungsspalte 1002 (oder eine virtuelle Berechtigungsspalte 1202) und Dateninhalt (z.B. Ereignis, Datum, Nutzlast bzw. Zahlungsbelastung, etc.). Wie es den 10, 11 und 12 gezeigt ist, können die Berechtigungsspalten 1002 (oder die virtuellen Berechtigungsspalten 1202) die Anbieterkonto-Identifizierer enthalten. Bei einer Ausführungsform empfängt der Prozessor eine Replikationsanfrage vom ersten Anbieterkonto, das einen ersten Kundenkonto-Identifizierer enthält. Bei einem Beispiel kann der Prozessor bei der Operation 1304 ein Filtern auf Dateienebene durchführen, wie es detailliert in 9 dargestellt ist.
  • Bei einer Operation 1306 entdeckt der Prozessor ein Update an einer Berechtigungsspalte 1002 (oder einer virtuellen Berechtigungsspalte 1202). Zum Beispiel ist die Berechtigungsspalte 1202 in 10 und 11 durch einen Anbieteranwender über eine Klienten- bzw. Client-Vorrichtung mit Daten gefüllt oder upgedated. Der Prozessor, der ein Update an der virtuellen Berechtigungsspalte 1202 entdeckt, kann weiterhin ein Bestimmen umfassen, dass das Update an der Berechtigungstabelle 602 eine Änderung bei einem der Anbieterkonten-Identifizierer in der Berechtigungstabelle 602 enthält, und ein Füllen der virtuellen Berechtigungsspalte 1202 mit Daten basierend auf der Änderung bei dem einen der Anbieterkonten-Identifizierer in der Berechtigungstabelle 602.
  • Bei einer Operation 1308 führt der Prozessor ein inkrementelles Replizieren der Datentabelle 1004 durch Veranlassen durch, dass ein versionsbasiertes Replizieren ausgeführt wird. 14 stellt die Details des Prozesses eines versionsbasierten Replizierens bei der Operation 1308 aus 13 gemäß einer Ausführungsform dar. Bei einer Operation 1402 updated der Prozessor einen Versions-Identifizierer, der mit der Datentabelle 1004 assoziiert ist. Bei einer Operation 1404 fügt der Prozessor eine Vielzahl von Mikropartitionen in der Datentabelle 1004 hinzu, die das Update an der Berechtigungsspalte 1002 (oder einer virtuellen Berechtigungsspalte 1202) berücksichtigt. Bei einer Operation 1406 repliziert der Prozessor die Datentabellenzeilen zu einer Vielzahl von Anbieterkonten, die mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle 602 assoziiert sind, unter Verwendung der Berechtigungsspalte 1002 (oder einer virtuellen Berechtigungsspalte 1202).
  • MASCHINENARCHITEKTUR
  • 15 ist eine schematische Darstellung der Maschine 1500, innerhalb von welcher Anweisungen 1510 (z.B. Software, ein Programm, eine Anwendung, ein Applet, eine App oder ein anderer ausführbarere Code) zum Veranlassen, dass die Maschine 1500 irgendeine oder mehrere der hierin diskutierten Methoden durchführt, ausgeführt werden können. Zum Beispiel können die Anweisungen 1510 veranlassen, dass die Maschine 1500 irgendeine oder mehrere der hierin beschriebenen Methoden ausführt. Die Anweisungen 1510 transformieren die allgemeine, nichtprogrammierte Maschine 1500 in eine bestimmte Maschine 1500, die programmiert ist, um die beschriebenen und dargestellten Funktionen auf die beschriebene Weise auszuführen. Die Maschine 1500 kann als eine alleinstehende Vorrichtung arbeiten oder kann mit anderen Maschinen gekoppelt (z.B. vernetzt) sein. Bei einer vernetzten Verwendung kann die Maschine 1500 in der Kapazität einer Servermaschine oder einer Client-Maschine in einer Server-Client-Netzwerkumgebung arbeiten oder als eine Peer-Maschine in einer Peer-zu-Peer-(oder verteilten)Netzwerkumgebung. Die Maschine 1500 kann folgendes umfassen, ist aber nicht darauf beschränkt: einen Servercomputer, einen Client-Computer, einen Personalcomputer (PC), einen Tablet-Computer, einen Laptop-Computer, ein Netbook, einen Digitalempfänger (STB), einen persönlichen digitalen Assistenten (PDA), ein Unterhaltungsmediensystem, ein zellulares Telefon, ein Smartphone, ein mobiles Gerät, ein tragbares Gerät (z.B. Smartwatch), eine Smart-Heimvorrichtung (z.B. intelligente Geräte), andere Smart-Geräte, eine Web-Anwendung, einen Netzwerk-Router, einen Netzwerk-Schalter, eine Netzwerk-Brücke, oder irgendeine Maschine, die die Anweisungen 1510 ausführen kann, sequentiell oder auf andere Weise, die durch die Maschine 1500 vorzunehmende Aktionen spezifizieren. Weiterhin soll, während nur eine einzige Maschine 1500 dargestellt ist, der Ausdruck „Maschine“ auch genommen werden, um eine Sammlung von Maschinen zu enthalten, die die Anweisungen 1510 einzeln oder gemeinsam ausführen, um irgendeine oder mehrere der hierin diskutierten Methoden durchzuführen. Die Maschine 1500 kann zum Beispiel die Client-Vorrichtung 102 oder irgendeine einer Anzahl von Server-Vorrichtungen, die einen Teil des Datenbank-Servicemanagers 108 bilden, umfassen. Bei einigen Beispielen kann die Maschine 1500 auch sowohl Client- als auch Server-System umfassen, wobei bestimmte Operationen eines bestimmten Verfahrens oder Algorithmus auf der Server-Seite durchgeführt werden und wobei bestimmte Operationen des bestimmten Verfahrens oder Algorithmus auf der Client-Seite durchgeführt werden.
  • Die Maschine 1500 kann Prozessoren 1504, einen Speicher 1506 und Eingabe/Ausgabe-I/O-Komponenten 638 enthalten, die konfiguriert sein können, um miteinander über einen Bus 1538 zu kommunizieren. Bei einem Bespiel können die Prozessoren 1504 (z.B. eine zentrale Verarbeitungseinheit (CPU), ein Computerprozessor mit reduziertem Befehlssatz (RISC), ein Computerprozessor mit komplexem Befehlssatz (CISC), ein Grafikprozessor (GPU), ein digitaler Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), eine integrierte Funkfrequenzschaltung (RFIC), ein anderer Prozessor oder irgendeine Kombination davon) zum Beispiel wenigstens einen Prozessor 1508 enthalten, der die Anweisungen 1510 ausführt. Es ist beabsichtigt, dass der Ausdruck „Prozessor“ Mehrkernprozessoren enthält, die zwei oder mehr unabhängige Prozessoren (die manchmal „Kerne“ genannt werden) umfassen können, die gleichzeitig Anweisungen bzw. Befehle ausführen können. Obwohl 15 mehrere Prozessoren 1504 zeigt, kann die Maschine 1500 einen einzelnen Prozessor mit einem einzigen Kern, mehrere Prozessoren mit mehreren Kernen oder irgendeine Kombination davon enthalten.
  • Der Speicher 1506 enthält einen Hauptspeicher 1512, einen statischen Speicher 1514 und eine Speichereinheit 1516, die für die Prozessoren 1504 beide über den Bus 1538 zugreifbar sind. Der Hauptspeicher 1506, der statische Speicher 1514 und die Speichereinheit 1516 speichern die Anweisungen 1510, die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern. Die Anweisungen 1510 können auch, vollständig oder teilweise, innerhalb des Hauptspeichers 1512, innerhalb des statischen Speichers 1514, innerhalb eines maschinenlesbaren Medium 1518 innerhalb der Speichereinheit 1516, innerhalb von wenigstens einem der Prozessoren 1504 (z.B. innerhalb des Cachespeichers des Prozessors), oder irgendeiner geeigneten Kombination davon, während einer Ausführung davon durch die Maschine 1500, sitzen.
  • Die I/O-Komponenten 1502 können eine weite Vielfalt von Komponenten enthalten, um eine Eingabe zu empfangen, um eine Ausgabe zur Verfügung zu stellen, um eine Ausgabe zu erzeugen, um Information zu übertragen, um Information auszutauschen, um Messungen aufzunehmen, und so weiter. Die spezifischen I/O-Komponenten 1502, die in einer bestimmten Maschine enthalten sind, werden vom Typ der Maschine abhängen. Zum Beispiel können portierbare bzw. tragbare Maschinen, wie beispielsweise Mobiltelefone, eine Berührungs-Eingabevorrichtung oder andere solche Eingabemechanismen enthalten, während eine monitorlose Server-Maschine wahrscheinlich keine solche Berührungs-Eingabevorrichtung enthalten wird. Es wird eingesehen werden, dass die I/O-Komponenten 1502 viele andere Komponenten enthalten können, die in 15 nicht gezeigt sind. Bei verschiedenen Beispielen können die I/O-Komponenten 1502 Anwender-Ausgabekomponenten 1524 und Anwender-Eingabekomponenten 1526 enthalten. Die Anwender-Ausgabekomponenten 1524 können visuelle Komponenten (z.B. eine Anzeige, wie beispielsweise einen Plasmabildschirm (PDP), eine Anzeige mit lichtemittierenden Dioden bzw. Leuchtdioden (LED), eine Flüssigkristallanzeige (LCD), einen Projektor oder eine Kathodenstrahlröhre (CRT)), akustische Komponenten (z.B. Lautsprecher), haptische Komponenten (z.B. einen Vibrationsmotor, Widerstandsmechanismen), andere Signalgeneratoren und so weiter enthalten. Die Anwender-Eingabekomponenten 1526 können alphanumerische Eingabekomponenten (z.B. einen Tastatur, einen Berührungsbildschirm, der konfiguriert ist, um ein alphanumerische Eingabe zu empfangen, eine fotooptische Tastatur oder andere alphanumerische Eingabekomponenten), punktbasierte Eingabekomponenten (z.B. eine Maus, ein Touchpad, eine Rollkugel, ein Joystick, ein Bewegungssensor oder ein anderes Zeigeinstrument), taktile Eingabekomponenten (z.B. eine physikalische Taste, einen Berührungsbildschirm, der eine Stelle und eine Kraft von Berührungen oder Berührungsgesten zur Verfügung stellt, oder andere taktile Eingabekomponenten), Audio-Eingabekomponenten (z.B. ein Mikrofon) und ähnliches enthalten.
  • Bei weiteren Beispielen können die I/O-Komponenten 1502 biometrische Komponenten 1528, Bewegungskomponenten 1530, Umgebungskomponenten 1502 oder Positionskomponenten 1534 unter einem weiten Feld von anderen Komponenten enthalten. Zum Beispiel enthalten die biometrischen Komponenten 1528 Komponenten, um Ausdrücke bzw. Äußerungen (z.B. Äußerungen per Hand, Gesichtsausdrücke, vokale Äußerungen, Körpergesten oder Augenverfolgung) zu entdecken, Biosignale (z.B. Blutdruck, Herzfrequenz, Körpertemperatur, Perspiration oder Gehirnströme) zu messen, eine Person (z.B. Stimmenidentifikation, Netzhautidentifikation, Gesichtsidentifikation, Fingerabdruckidentifikation oder elektroenzephalogrammbasierte Identifikation) zu identifizieren, und ähnliches. Die Bewegungskomponenten 1530 enthalten Beschleunigungssensorkomponenten (z.B. Akzelerometer), Gravitationssensorkomponenten, Rotationssensorkomponenten (z.B. Gyroskop).
  • Die Umgebungskomponenten 1532 enthalten zum Beispiel eine oder mehrere Kameras (mit Standbild/Fotografie- und Video-Fähigkeiten), Belichtungssensorkomponenten (z.B. Fotometer), Temperatursensorkomponenten (z.B. ein oder mehrere Thermometer, das oder die ein Umgebungstemperatur erfassen), Feuchtigkeitssensorkomponenten, Drucksensorkomponenten (z.B. Barometer), Akustiksensorkomponenten (z.B. ein oder mehrere Mikrofone, die Hintergrundrauschen erfassen), Näherungssensorkomponenten (z.B. Infrarotsensoren, die Objekte in der Nähe erfassen), Gassensoren (z.B. Gaserfassungssensoren zur Erfassung von Konzentrationen von gefährlichen Gasen zur Sicherheit, oder um Schmutzstoffe in der Atmosphäre zu messen), oder andere Komponenten, die Anzeichen, Messungen oder Signale entsprechend einer umgebenden physikalischen Umgebung zur Verfügung stellen können.
  • Die Positionskomponenten 1534 enthalten Lokalisierungssensorkomponenten (z.B. eine GPS-Empfängerkomponente), Höhenlagensensorkomponenten (z.B. Höhenmesser oder Barometer, die einen Luftdruck erfassen, von welchem eine Höhenlage abgeleitet werden kann), Orientierungssensorkomponenten (z.B. Magnetometer) und ähnliches.
  • Kommunikation kann unter Verwendung einer weiten Vielfalt von Technologien implementiert werden. Die I/O-Komponenten 1502 enthalten weiterhin Kommunikationskomponenten 1536, die betreibbar sind, um die Maschine 1500 mit einem Netzwerk 1520 oder Vorrichtungen 1522 über eine jeweilige Kopplung oder Verbindungen zu koppeln. Zum Beispiel können die Kommunikationskomponenten 1536 eine Netzwerkschnittstellenkomponente oder eine andere geeignete Vorrichtung enthalten, um eine Schnittstelle mit dem Netzwerk 1520 zu bilden. Bei weiteren Beispielen können die Kommunikationskomponenten 1536 verdrahtete Kommunikationskomponenten, drahtlose Kommunikationskomponenten, zellulare Kommunikationskomponenten, Nahfeldkommunikations-(NFC-)Komponenten, Bluetooth®-Komponenten (z.B. Bluetooth® niedrigerer Energie), WiFi®-Komponenten und andere Kommunikationskomponenten enthalten, um eine Kommunikation über andere Modalitäten zur Verfügung zu stellen. Die Vorrichtungen 1522 können eine andere Maschine oder irgendeine einer weiten Vielfalt von peripheren Vorrichtungen (z.B. eine über USB gekoppelte periphere Vorrichtung) sein.
  • Darüber hinaus können die Kommunikationskomponenten 1536 Identifizierer erfassen oder Komponenten enthalten, die betreibbar sind, um Identifizierer zu erfassen. Zum Beispiel können die Kommunikationskomponenten 1536 Funkfrequenzidentifikations-(FRID-)Tag-Leserkomponenten, NFC-Smart-Tag-Erfassungskomponenten, optische Leserkomponenten (z.B. einen optischen Sensor, um eindimensionale Strichcodes, wie beispielsweise einen Universal-Produktcode-(UPC-)Strichcode, mehrdimensionale Strichcodes, wie beispielsweise Schnell-Antwort-(QR-)Code, Aztec-Code, Datenmatrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D-Strichcode und andere optische Codes) oder akustische Erfassungskomponenten (z.B. Mikrofone, um gekennzeichnete bzw. mit Tag versehene Audiosignale zu identifizieren) enthalten. Zusätzlich kann eine Vielfalt von Information über die Kommunikationskomponenten 1536 abgeleitet werden, wie beispielsweise eine Lokalisierung über die Internetprotokoll-(IP-)Geolokalisierung, eine Lokalisierung über Wi-Fi®-Signal-Triangulation, eine Lokalisierung über ein Erfassen eines NFC-Beacon-Signals, das einen bestimmten Standort anzeigen kann, und so weiter.
  • Die verschiedenen Speicher (z.B. Hauptspeicher 1512, statischer Speicher 1514 und Speicher der Prozessoren 1504) und die Speichereinheit 1516 können einen oder mehrere Anweisungs- bzw. Befehlssätze und Datenstrukturen (z.B. Software), die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern oder durch diese verwendet werden, speichern. Diese Anweisungen (z.B. die Anweisungen 1510) veranlassen, wenn sie durch die Prozessoren 1504 ausgeführt werden, verschiedene Operationen, um die offenbarten Beispiele zu implementieren.
  • Die Anweisungen 1510 können über das Netzwerk 1520 unter Verwendung eines Übertragungsmediums über eine Netzwerkschnittstellenvorrichtung (z.B. eine in den Kommunikationskomponenten 1536 enthaltene Netzwerkschnittstellenkomponente) und unter Verwendung von irgendeinem von mehreren wohlbekannten Übertragungsprotokollen (z.B. Hypertext-Übertragungsprotokoll (HTTP)) gesendet oder empfangen werden. Gleichermaßen können die Anweisungen unter Verwendung eines Übertragungsmediums über eine Kopplung (z.B. eine Peer-zu-Peer-Kopplung) mit den Vorrichtungen gesendet oder empfangen werden.
  • SOFTWAREARCHITEKTUR
  • 16 ist ein Blockdiagramm 1600, das eine Softwarearchitektur 1604 darstellt, die auf irgendeiner oder mehreren der hierin beschriebenen Vorrichtungen installiert werden kann. Die Softwarearchitektur 1604 wird durch Hardware unterstützt, wie beispielsweise eine Maschine 1602, die Prozessoren 1620, einen Speicher 1626 und I/O-Komponenten 1638 enthält. Bei diesem Beispiel kann die Softwarearchitektur 1604 als ein Stapel von Schichten entworfen sein, wo jede Schicht eine bestimmte Funktionalität zur Verfügung stellt. Die Softwarearchitektur 1604 enthält Schichten, wie beispielsweise ein Betriebssystem 1612, Bibliotheken 1610, Frameworks 1608 und Anwendungen 1606. Betriebsmäßig rufen die Anwendungen 1606 API-Aufrufe 1650 durch den Softwarestapel auf und empfangen Nachrichten 1652 in Antwort auf die API-Aufrufe 1650.
  • Das Betriebssystem 1612 managt Hardwareressourcen und stellt allgemeine Dienste zur Verfügung. Das Betriebssystem 1612 enthält zum Beispiel ein Kernel 1614, Dienste 1616 und Treiber 1622. Der Kernel 1614 agiert als eine Abstraktionsschicht zwischen der Hardware und den anderen Softwareschichten. Zum Beispiel stellt der Kernel 1614 unter anderen Funktionalitäten ein Speichermanagement, ein Prozessormanagement (z.B. Zeitplanung), ein Komponentenmanagement, eine Vernetzung und Sicherheitseinstellungen zur Verfügung. Die Dienste 1616 können andere allgemeine Dienste für die anderen Softwareschichten zur Verfügung stellen. Die Treiber 1622 sind verantwortlich für ein Steuern der zugrundeliegenden Hardware oder eine Schnittstellenbildung mit dieser. Zum Beispiel können die Treiber 1622 Anzeigetreiber, Kameratreiber, Treiber für BLUETOOTH® oder BLUETOOTH® mit niedriger Energie, Flashspeichertreiber, Treiber für serielle Kommunikation (z.B. USB-Treiber), Wl-Fl®-Treiber, Audiotreiber. Leistungsmanagementtreiber und so weiter enthalten.
  • Die Bibliotheken 1610 stellen eine allgemeine bzw. gemeinsame Infrastruktur auf niedriger Ebene zur Verfügung, die durch die Anwendung 1606 verwendet wird. Die Bibliotheken 1610 können Systembibliotheken 1618 (z.B. C-Standardbibliothek) enthalten, die Funktionen, wie beispielsweise Speicherzuteilungsfunktionen, Kettenmanipulationsfunktionen, mathematische Funktionen und ähnliches, zur Verfügung stellen. Zusätzlich können die Bibliotheken 1610 API-Bibliotheken 1624 enthalten, wie beispielsweise Medienbibliotheken (z.B. Bibliotheken, um eine Präsentation und eine Manipulation von verschiedenen Medienformaten, wie beispielsweise Bewegtbildexpertengruppe-4 (MPEG4), Advanced Video Coding (H.264 oder AVC), Bewegtbildexpertengruppenschicht-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) Audio Codec, Joint Photographic Experts Group (JPEG oder JPG) oder Portable Network Graphics (PNG)), Grafikbibliotheken (z.B. ein OpenGL Framework, das verwendet wird, um in einem grafischen Inhalt auf einer Anzeige in zwei Dimensionen (2D) und drei Dimensionen (3D) auszuführen), Datenbankbibliotheken (z.B. SQLite, um verschiedene Bezugsdatenbankfunktionen zur Verfügung zu stellen), Web-Bibliotheken (z.B. WebKit, um eine Webbrowser-Funktionalität zur Verfügung zu stellen), und ähnliches. Die Bibliotheken 1610 können auch eine weite Vielfalt von anderen Bibliotheken 1628 enthalten, um den Anwendungen 1606 viele andere APIs zur Verfügung zu stellen.
  • Die Frameworks 1608 stellen eine allgemeine Infrastruktur auf hoher Ebene zur Verfügung, die durch die Anwendung 1606 verwendet wird. Zum Beispiel stellen die Frameworks 1608 verschiedene grafische Anwenderschnittstellen-(GUI-)Funktionen, ein Ressourcenmanagement auf hoher Ebene und Lokalisierungsdienste auf hoher Ebene zur Verfügung. Die Frameworks 1608 können ein breites Spektrum von anderen APIs zur Verfügung stellen, die durch die Anwendungen 1606 verwendet werden, wovon einige spezifisch für ein bestimmtes Betriebssystem oder eine Plattform sein können.
  • Bei einem Beispiel kann die Anwendung 1606 eine Heimanwendung 1636, eine Kontaktanwendung 1630, eine Browser-Anwendung 1632, eine Buchleseranwendung 1634, eine Lokalisierungsanwendung 1642, eine Medienanwendung 1644, eine Benachrichtigungsanwendung 1646, eine Spieleanwendung 1648 und ein breites Sortiment von anderen Anwendungen, wie beispielsweise eine Anwendung einer dritten Partei 1640, enthalten. Die Anwendungen 1606 sind Programme, die Funktionen ausführen, die in den Programmen definiert sind. Verschiedene Programmiersprachen können verwendet werden, um eine oder mehrere der Anwendungen 1606 zu erzeugen, strukturiert in einer Vielfalt von Arten, wie beispielsweise objektorientierten Programmiersprachen (z.B. Objective-C, Java oder C++) oder verfahrensorientierte Programmiersprachen (z.B. C oder Assemblersprache). Bei einem spezifischen Beispiel kann die Anwendung einer dritten Partei 1640 (z.B. eine Anwendung, die unter Verwendung des ANDRIOD™- oder IOS™-Softwareentwicklungskits (SDK) durch eine Einheit entwickelt ist, die eine andere als der Lieferant der bestimmten Plattform ist) mobile Software sein, die auf einem mobilen Betriebssystem läuft, wie beispielsweise IOS™, ANDRIOD™, WINDOWS® Phone oder einem anderen mobilen Betriebssystem bzw. Mobilfunk-Betriebssystem. Bei diesem Beispiel kann die Anwendung der dritten Partei 1640 die API-Aufrufe 1650 aufrufen, die durch das Betriebssystem 1612 zur Verfügung gestellt sind, um eine hierin beschriebene Funktionalität zu ermöglichen.
  • GLOSSAR
  • „Trägersignal“ bezieht sich auf irgendein immaterielles Medium, das Anweisungen zur Ausführung durch die Maschine speichern, codieren oder tragen kann, und enthält digitale oder analoge Kommunikationssignale oder andere immaterielle Medien, um eine Kommunikation von solchen Anweisung zu ermöglichen. Anweisungen können über ein Netzwerk unter Verwendung eines Übertragungsmediums über eine Netzwerkschnittstellenvorrichtung gesendet oder empfangen werden.
  • „Client-Vorrichtung“ bezieht sich auf irgendeine Maschine, die eine Schnittstelle zu einem Kommunikationsnetzwerk bildet, um Ressourcen von einem oder mehreren Serversystemen oder anderen Client-Vorrichtungen zu erhalten. Eine Client-Vorrichtung kann ein Mobilfunktelefon, ein Desktopcomputer, ein Laptop, portierbare digitale Assistenten (PDAs), Smartphones, Tablets, Ultrabooks, Netbooks, Laptops, Mehrprozessorsysteme, mikroprozessorbasierte oder programmierbare Unterhaltungselektronik, Spielekonsolen, Digitalempfänger oder irgendeine andere Kommunikationsvorrichtung, die ein Anwender verwenden kann, um auf ein Netzwerk zuzugreifen, sein, ist aber nicht darauf beschränkt.
  • „Kommunikationsnetzwerk“ bezieht sich auf einen oder mehrere Teilbereiche eines Netzwerks, das ein ad-hoc-Netzwerk, ein Intranet, ein Extranet, ein virtuelles privates Netzwerk (VPN), ein lokales Netz (LAN), ein drahtloses LAN (WLAN), ein Weitverkehrsnetz (WAN), ein drahtloses WAN (WWAN), ein Stadtgebietsnetz (MAN), das Internet, ein Teilbereich des Internets, ein Teilbereich des öffentlichen geschalteten Telefonnetzes (PSTN), ein altes analoges Telefondienst-(POTS-)Netz, ein zellulares Telefonnetz, ein drahtloses Netz, ein Wi-Fi®-Netz, ein anderer Typ von Netzwerk oder eine Kombination von zwei oder mehreren solchen Netzwerken sein. Zum Beispiel kann ein Netzwerk oder ein Teilbereich eines Netzwerks ein drahtloses oder zellulares Netzwerk enthalten und die Kopplung kann eine Verbindung mit einem Codemultiplexverfahren (CDMA), eine Verbindung mit globalem System für mobile Kommunikationen (GSM) oder andere Typen einer zellularen oder drahtlosen Kopplung sein. Bei diesem Beispiel kann die Kopplung irgendeinen einer Vielfalt von Typen einer Datenübertragungstechnologie implementieren, wie beispielsweise eine Einzelträgerfunk-Übertragungstechnologie (1xRTT), eine Technologie mit optimierten Entwicklungsdaten (EVDO (Evolution Data Optimized)), eine Technologie eines allgemeinen Paketfunkdienstes (GPRS (General Packet Radio Service)), eine Technologie mit erhöhten Datenraten für GSM-Entwicklung (EDGE (Enhanced Data Rates for GSM Evolution)), Partnerschaftsprojekt der dritten Generation (3GPP) einschließlich 3G, drahtlose Netzwerke der vierten Generation (4G), universelle mobile Telekommunikationssysteme (UMTS), Hochgeschwindlgkeits-Paketzugang (HSPA), weltweite Interoperabilität für Mikrowellenzugang (WiMAX), Langzeitentwicklungs-(LTE- )Standard, andere, die durch verschiedene Standardeinstellungsorganisationen definiert sind, andere Weitbereichsprotokolle oder andere Datenübertragungstechnologie.
  • „Komponente” bezieht sich auf eine Vorrichtung, eine physikalische Einheit oder eine Logik mit Grenzen, die durch eine Funktion oder Unterprogrammaufrufe, Verzweigungspunkte, APIs oder andere Technologien definiert sind, die für eine Partitionierung oder eine Modularisierung von bestimmten Verarbeitungs- oder Steuerfunktionen sorgen. Komponenten können über ihre Schnittstellen mit anderen Komponenten kombiniert werden, um einen Maschinenprozess auszuführen. Eine Komponente kann eine gepackte funktionelle Hardwareeinheit sein, die zur Verwendung mit anderen Komponenten entworfen ist, und ein Teil eines Programms, der normalerweise ein bestimmte Funktion eine zugehörigen Funktion durchführt. Komponenten können entweder Softwarekomponenten (z.B. einen Code, der auf einem maschinenlesbaren Medium verkörpert ist) oder Hardwarekomponenten bilden. Eine „Hardwarekomponente“ ist eine materielle bzw. konkrete Einheit, die bestimmte Operationen durchführen kann, und kann auf eine bestimmte physikalische Weise konfiguriert oder angeordnet sein. Bei verschiedenen beispielhaften Ausführungsformen können ein oder mehrere Computersysteme (z.B. ein alleinstehendes Computersystem, ein Client-Computersystem oder ein Server-Computersystem) oder eine oder mehrere Hardwarekomponenten eines Computersystems (z.B. ein Prozessor oder eine Gruppe von Prozessoren ) durch Software (z.B. eine Anwendung oder einen Anwendungsteilbereich) als eine Hardwarekomponente konfiguriert sein, die arbeitet, um bestimmte Operationen durchzuführen, wie sie hierin beschrieben sind. Eine Hardwarekomponente kann auch mechanisch, elektronisch oder durch irgendeine geeignete Kombination davon implementiert werden. Zum Beispiel kann eine Hardwarekomponente eine bestimmte Schaltung oder Logik enthalten, die permanent konfiguriert ist, um bestimmte Operationen durchzuführen. Eine Hardwarekomponente kann ein spezieller Prozessor sein, wie beispielsweise ein feldprogrammierbares Gate-Array (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC). Eine Hardwarekomponente kann auch eine programmierbare Logik oder Schaltung enthalten, die temporär durch Software konfiguriert ist, um bestimmte Operationen durchzuführen. Zum Beispiel kann eine Hardwarekomponente Software enthalten, die durch einen allgemeinen Prozessor oder einen anderen programmierbaren Prozessor ausgeführt wird. Wenn sie einmal durch solche Software konfiguriert sind, werden die Hardwarekomponenten spezifische Maschinen (oder spezifische Komponenten der Maschine), die eindeutig zugeschnitten sind, um die konfigurierten Funktionen durchzuführen, und nicht mehr allgemeine Prozessoren sind. Es wird eingesehen werden, dass die Entscheidung, eine Hardware mechanisch zu implementieren, bei einer bestimmten und permanent konfigurierten Schaltung oder bei einer temporär konfigurierten Schaltung (z.B. durch Software konfiguriert) durch Kosten- und Zeitabwägungen gesteuert sein kann. Demgemäß sollte die Phrase „Hardwarekomponente“ (oder „hardwareimplementierte Komponente“) derart verstanden werden, dass sie eine materielle Einheit umfasst, die eine Einheit ist, die physikalisch aufgebaut ist, permanent konfiguriert ist (z.B. festverdrahtet) oder temporär konfiguriert ist (z.B. programmiert ist), um auf eine bestimmte Weise zu arbeiten oder um bestimmte Operationen durchzuführen, die hierin beschrieben sind. Betrachtet man Ausführungsformen, bei welchen Hardwarekomponenten temporär konfiguriert (z.B. programmiert) sind, muss nicht jede der Hardwarekomponenten in jedem Fall frühzeitig konfiguriert oder realisiert sein. Zum Beispiel dort, wo eine Hardwarekomponente einen allgemeinen Prozessor umfasst, der durch Software konfiguriert ist, um ein spezieller Prozessor zu werden, kann der allgemeine Prozessor als jeweils unterschiedliche spezielle Prozessoren (z.B. unterschiedliche Hardwarekomponenten umfassend) zu unterschiedlichen Zeiten konfiguriert sein. Demgemäß konfiguriert Software einen oder mehrere bestimmte Prozessoren, zum Beispiel, um eine bestimmte Hardwarekomponente zu einem Zeitmoment zu bilden und um eine andere Hardwarekomponente bei einem anderen Zeitmoment zu bilden. Hardwarekomponenten können anderen Hardwarekomponenten Information zur Verfügung stellen und von diesen empfangen. Demgemäß können die beschriebenen Hardwarekomponenten derart angesehen werden, dass sie kommunikativ gekoppelt sind. Wo mehrere Hardwarekomponenten gleichzeitig existieren, können Kommunikationen durch eine Signalübertragung (z.B. über geeignete Schaltungen und Busse) zwischen oder unter zwei oder mehreren der Hardwarekomponenten erreicht werden. Bei Ausführungsformen, bei welchen mehrere Hardwarekomponenten zu unterschiedlichen Zeiten konfiguriert oder realisiert sind, können Kommunikationen zwischen solchen Hardwarekomponenten zum Beispiel durch die Speicherung und Wiedergewinnung von Information in Speicherstrukturen erreicht werden, auf welche die mehreren Hardwarekomponenten Zugriff haben. Zum Beispiel kann eine Hardwarekomponente eine Operation durchführen und die Ausgabe von dieser Operation in einer Speichervorrichtung speichern, mit welcher sie kommunikativ gekoppelt ist. Eine weitere Hardwarekomponente kann dann zu einer späteren Zeit auf die Speichervorrichtung zugreifen, um die gespeicherte Ausgabe wiederzugewinnen und zu verarbeiten. Hardwarekomponenten können auch Kommunikationen mit Eingabe- oder Ausgabevorrichtungen initiieren und können auf einer Ressource (z.B. einer Sammlung von Information) arbeiten. Die verschiedenen Operationen von beispielhaften Verfahren, die hierin beschrieben sind, können wenigstens teilweise durch einen oder mehrere Prozessoren durchgeführt werden, die (z.B. durch Software) temporär konfiguriert sind oder permanent konfiguriert sind, um die relevanten Operationen durchzuführen. Gleichgültig, ob sie temporär oder permanent konfiguriert sind, können solche Prozessoren prozessorimplementierte Komponenten bilden, die arbeiten, um eine oder mehrere Operationen oder Funktionen durchzuführen, die hierin beschrieben sind. Wie es hierin verwendet ist, bezieht sich „prozessorimplementierte Komponente“ auf eine Hardwarekomponente, die unter Verwendung von einem oder mehreren Prozessoren implementiert ist. Gleichermaßen können die hierin beschriebenen Verfahren wenigstens teilweise prozessorimplementiert sein, wobei ein oder mehrere bestimmte Prozessoren ein Beispiel einer Hardware sind. Zum Beispiel können wenigstens einige der Operationen eines Verfahrens durch einen oder mehrere Prozessoren oder eine oder mehrere prozessorimplementierte Komponenten durchgeführt werden. Darüber hinaus können der eine oder die mehreren Prozessoren auch arbeiten, um eine Leistungsfähigkeit der relevanten Operationen in einer „Cloud-Computer“-Umgebung oder als eine „Software als ein Service“ (SaaS) zu unterstützen. Zum Beispiel können wenigstens einige der Operationen durch eine Gruppe von Computern (als Beispiele von Maschinen, die Prozessoren enthalten) durchgeführt werden, wobei diese Operationen über ein Netzwerk (z.B. das Internet) und über eine oder mehrere geeignete Schnittstellen (z.B. eine API) zugreifbar sind. Die Leistungsfähigkeit von bestimmten der Operationen kann unter den Prozessoren verteilt werden, die nicht innerhalb einer einigen Maschine sitzen, aber quer über eine Anzahl von Maschinen genutzt werden. Bei einigen beispielhaften Ausführungsformen können die Prozessoren oder prozessorimplementierten Komponenten an einem einzigen geografischen Standort (z.B. innerhalb einer Umgebung zuhause, einer Büroumgebung oder einer Serverfarm) angeordnet sein. Bei anderen beispielhaften Ausführungsformen können die Prozessoren oder prozessorimplementierten Komponenten quer über eine Anzahl von geografischen Standorten verteilt sein.
  • „Computerlesbares Speichermedium“ bezieht sich auf sowohl Maschinenspeichermedien als auch Übertragungsmedien. Somit enthalten die Ausdrücke sowohl Speichervorrichtungen/Medien als auch Trägerwellen/modulierte Datensignale. Die Ausdrücke „maschinenlesbares Medium“, „computerlesbares Medium“ und „vorrichtungslesbares Medium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein.
  • „Maschinenspeichermedium“ bezieht sich auf eine einzelne oder mehrere Speichervorrichtungen und -medien (z.B. zentralisierte oder verteilte Datenbank, und assoziierte Caches und Server), die ausführbare Anweisungen, Routinen bzw. Programme und Daten speichern. Demgemäß soll der Ausdruck derart genommen werden, dass er Festkörperspeicher und optische und magnetische Medien, einschließlich Speicher intern oder extern zu Prozessoren, enthält, aber nicht darauf beschränkt ist. Spezifische Beispiele von Maschinenspeichermedien, Computerspeichermedien und Vorrichtungsspeichermedien enthalten einen nichtflüchtigen Speicher, einschließlich, anhand eines Beispiels, Halbleiterspeichervorrichtungen, z.B. einen löschbaren programmierbaren Nurlesespeicher (EPROM), einen elektrisch löschbaren programmierbaren Nurlesespeicher (EEPROM), FPGA und Flashspeichervorrichtungen; Magnetplatten, wie beispielsweise interne Festplatten und entfernbare Platten; magneto-optische Platten; und CD-ROM und DVD-ROM-Scheiben. Die Ausdrücke „Maschinenspeichermedium“, „Vorrichtungsspeichermedium“, „Computerspeichermedium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke „Maschinenspeichermedien“, „Computerspeichermedien“ und „Vorrichtungsspeichermedien“ schließen spezifisch Trägerwellen, modulierte Datensignale und andere solche Medien aus, von welchen wenigstens einige unter dem Ausdruck „Signalmedium“ abgedeckt sind.
  • „Nichtflüchtiges computerlesbares Speichermedium“ bezieht sich auf eine materielles bzw. greifbares bzw. konkretes Medium, das die Anweisungen zur Ausführung durch eine Maschine speichern, codieren oder tragen kann.
  • „Signalmedium“ bezieht sich auf irgendein immaterielles Medium, das die Anweisungen zur Ausführung durch eine Maschine speichern, codieren oder tragen kann und digitale oder analoge Kommunikationssignale oder andere immaterielle Medien enthält, um eine Kommunikation von Software oder Daten zu ermöglichen. Der Ausdruck „Signalmedium“ soll genommen werden, um irgendeine Form eines modulierten Datensignals, einer Trägerwelle und so weiter zu enthalten. Der Ausdruck „moduliertes Datensignal“ bedeutet ein Signal, das eine oder mehrere seiner Charakteristiken auf eine solche Weise eingestellt oder geändert hat, um Information im Signal zu codieren. Die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein.
  • Bei einem weiteren Beispiel startet ein Replizieren einer Untertabelle mit dem Prozessor, der ein erstes Update an einer Berechtigungstabelle entdeckt bzw. erfasst. Der Prozessor filtert von einer Datentabelle basierend auf dem ersten Update. Der Prozessor erfasst dann ein zweites Update an der Berechtigungstabelle und führt ein inkrementelles Replizieren der Datentabelle durch Veranlassen eines Replizierens des vollständigen Speicherinhalts bei einer für mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle assoziierten Anbieterkonten auszuführenden nächsten Auffrischung durch. Andere Ausführungsformen sind hierin auch beschrieben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/032163 [0001]

Claims (30)

  1. Computerprogramm zum Implementieren eines Replizierens von Untertabellen, das Anweisungen umfasst, die dann, wenn das Programm durch einen Computer ausgeführt wird, veranlassen, dass der Computer folgende Operationen ausführt: Erfassen, durch einen Prozessor, eines ersten Updates an einer Berechtigungstabelle, wobei die Berechtigungstabelle eine Vielzahl von Berechtigungstabellenzeilen umfasst, wobei die Berechtigungstabellenzeilen mit einer Vielzahl von Klienten-Identifizierern, einer Vielzahl von Kundenkonto-Identifizierern und einer Vielzahl von Anbieterkonto-Identifizierern assoziiert sind, wobei das erste Update mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert ist, wobei das erste Update einen ersten Klienten-Identifizierer der Klienten-Identifizierer, einen ersten Kundenkonto-Identifizierer der Kundenkonto-Identifizierer oder einen ersten Anbieterkonto-Identifizierer der Anbieterkonto-Identifizierer enthält; Durchführen eines Filterns einer Datentabelle basierend auf dem ersten Update, wobei die Datentabelle eine Vielzahl von Datentabellenzeilen umfasst, die mit dem Klienten-Identifizierer assoziiert sind und Dateninhalt enthalten; Erfassen eines zweiten Updates an der Berechtigungstabelle; und Durchführen eines inkrementellen Replizierens der Datentabelle durch Veranlassen eines Replizierens eines vollständigen Speicherinhalts bei einer für eine Vielzahl von mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle assoziierten Anbieterkonten auszuführenden nächsten Auffrischung.
  2. Computerprogramm nach Anspruch 1, wobei ein Durchführen eines Filterns weiterhin folgendes umfasst: Durchführen eines Filterns auf Dateienebene durch Identifizieren von Mikropartitionen in der Datentabelle mit Metadaten, die mit dem ersten Klienten-Identifizierer assoziiert sind, wobei jede der Mikropartitionen in der Datentabelle eine oder mehrere der Vielzahl von Datentabellenzeilen umfasst, und Replizieren der identifizierten Mikropartitionen zu einem ersten Anbieterkonto, das mit dem ersten Anbieterkonto-Identifizierer assoziiert ist.
  3. Computerprogramm nach Anspruch 2, wobei jede der Vielzahl von Mikropartitionen in der Datentabelle Metadaten umfasst, die einen minimalen Klienten-Identifizierer und einen maximalen Klienten-Identifizierer enthalten.
  4. Computerprogramm nach Anspruch 3, wobei die Metadaten mit dem ersten Klienten-Identifizierer assoziiert sind, wenn der erste Klienten-Identifizierer innerhalb eines Bereichs ist, der durch den minimalen Klienten-Identifizierer und den maximalen Klienten-Identifizierer gebildet ist.
  5. Computerprogramm nach Anspruch 1, wobei die Vielzahl von Anbieterkonto-Identifizierern Anbieterkonten in einer Vielzahl von geografischen Regionen identifiziert.
  6. Computerprogramm nach Anspruch 1, wobei die Berechtigungstabelle weiterhin eine Vielzahl von Berechtigungstabellenspalten umfasst, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern.
  7. Computerprogramm nach Anspruch 1, weiterhin umfassend: Empfangen einer Replikationsanfrage vom ersten Anbieterkonto, wobei die Replikationsanfrage einen ersten Kundenkonto-Identifizierer enthält.
  8. Computerprogramm nach Anspruch 1, wobei das erste Update und das zweite Update an der Berechtigungstabelle ein Hinzufügen einer neuen Berechtigungstabellenzeile zur Berechtigungstabelle, ein Löschen von einer der Berechtigungstabellenzeilen oder ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information enthält.
  9. Computerprogramm nach Anspruch 8, wobei ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information ein Ändern der Klienten-Identifizierer, der Kundenkonto-Identifizierer oder der Anbieterkonto-Identifizierer enthält.
  10. System, das eine Replizieren von Untertabellen implementiert, umfassend: einen Prozessor; und einen Speicher mit darin gespeicherten Anweisungen, die dann, wenn sie durch den Prozessor ausgeführt werden, veranlassen, dass das System Operationen durchführt, die folgendes umfassen: Erfassen eines ersten Updates an einer Berechtigungstabelle, wobei die Berechtigungstabelle eine Vielzahl von Berechtigungstabellenzeilen umfasst, wobei die Berechtigungstabellenzeilen mit einer Vielzahl von Klienten-Identifizierern, einer Vielzahl von Kundenkonto-Identifizierern und einer Vielzahl von Anbieterkonto-Identifizierern assoziiert sind, wobei das erste Update mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert ist, wobei das erste Update einen ersten Klienten-Identifizierer der Klienten-Identifizierer, einen ersten Kundenkonto-Identifizierer der Kundenkonto-Identifizierer oder einen ersten Anbieterkonto-Identifizierer der Anbieterkonto-Identifizierer enthält; Durchführen eines Filterns einer Datentabelle basierend auf dem ersten Update, wobei die Datentabelle eine Vielzahl von Datentabellenzeilen umfasst, die mit dem Klienten-Identifizierer assoziiert sind und Dateninhalt enthalten; Erfassen eines zweiten Updates an der Berechtigungstabelle; und Durchführen eines inkrementellen Replizierens der Datentabelle durch Veranlassen eines Replizierens eines vollständigen Speicherinhalts bei einer für eine Vielzahl von mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle assoziierten Anbieterkonten auszuführenden nächsten Auffrischung.
  11. System nach Anspruch 10, wobei ein Durchführen eines Filterns weiterhin ein Durchführen eines Filterns auf Dateienebene umfasst, durch Identifizieren von Mikropartitionen in einer Vielzahl von Mikropartitionen in der Datentabelle mit Metadaten, die mit dem ersten Klienten-Identifizierer assoziiert sind, wobei jede der Mikropartitionen in der Datentabelle eine oder mehrere der Vielzahl von Datentabellenzeilen umfasst, und Replizieren der identifizierten Mikropartitionen zu einem ersten Anbieterkonto, das mit dem ersten Anbieterkonto-Identifizierer assoziiert ist.
  12. System nach Anspruch 11, wobei jede der Vielzahl von Mikropartitionen in der Datentabelle Metadaten umfasst, die einen minimalen Klienten-Identifizierer und einen maximalen Klienten-Identifizierer enthalten.
  13. System nach Anspruch 12, wobei die Metadaten mit dem ersten Klienten-Identifizierer assoziiert sind, wenn der erste Klienten-Identifizierer innerhalb eines Bereichs ist, der durch den minimalen Klienten-Identifizierer und den maximalen Klienten-Identifizierer gebildet ist.
  14. System nach Anspruch 10, wobei die Vielzahl von Anbieterkonto-Identifizierern Anbieterkonten in einer Vielzahl von geografischen Regionen identifiziert.
  15. System nach Anspruch 10, wobei die Berechtigungstabelle weiterhin eine Vielzahl von Berechtigungstabellenspalten umfasst, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern.
  16. System nach Anspruch 10, weiterhin umfassend: Empfangen einer Replikationsanfrage vom ersten Anbieterkonto, wobei die Replikationsanfrage einen ersten Kundenkonto-Identifizierer enthält.
  17. System nach Anspruch 10, wobei das erste Update und das zweite Update an der Berechtigungstabelle ein Hinzufügen einer neuen Berechtigungstabellenzeile zur Berechtigungstabelle, ein Löschen von einer der Berechtigungstabellenzeilen oder ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information enthält.
  18. System nach Anspruch 17, wobei ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information ein Ändern der Klienten-Identifizierer, der Kundenkonto-Identifizierer oder der Anbieterkonto-Identifizierer enthält.
  19. Nichtflüchtiges computerlesbares Speichermedium, das Anweisungen enthält, die dann, wenn sie durch einen Computer verarbeitet werden, den Computer derart konfigurieren, dass er Operationen durchführt, die folgendes umfassen: Erfassen eines ersten Updates an einer Berechtigungstabelle, wobei die Berechtigungstabelle eine Vielzahl von Berechtigungstabellenzeilen umfasst, wobei die Berechtigungstabellenzeilen mit einer Vielzahl von Klienten-Identifizierern, einer Vielzahl von Kundenkonto-Identifizierern und einer Vielzahl von Anbieterkonto-Identifizierern assoziiert sind, wobei das erste Update mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert ist, wobei das erste Update einen ersten Klienten-Identifizierer der Klienten-Identifizierer, einen ersten Kundenkonto-Identifizierer der Kundenkonto-Identifizierer oder einen ersten Anbieterkonto-Identifizierer der Anbieterkonto-Identifizierer enthält; Durchführen eines Filterns einer Datentabelle basierend auf dem ersten Update, wobei die Datentabelle eine Vielzahl von Datentabellenzeilen umfasst, die mit dem Klienten-Identifizierer assoziiert sind und Dateninhalt enthalten; Erfassen eines zweiten Updates an der Berechtigungstabelle; und Durchführen eines inkrementellen Replizierens der Datentabelle durch Veranlassen eines Replizierens eines vollständigen Speicherinhalts bei einer für eine Vielzahl von mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle assoziierten Anbieterkonten auszuführenden nächsten Auffrischung.
  20. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 19, wobei ein Durchführen eines Filterns weiterhin ein Durchführen eines Filterns auf Dateienebene umfasst.
  21. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 20, wobei ein Durchführen eines Filterns auf Dateienebene weiterhin folgendes umfasst: Identifizieren von Mikropartitionen in einer Vielzahl von Mikropartitionen in der Datentabelle mit Metadaten, die mit dem ersten Klienten-Identifizierer assoziiert sind.
  22. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 21, wobei ein Durchführen eines Filterns auf Dateienebene weiterhin folgendes umfasst: Replizieren der identifizierten Mikropartitionen zu einem ersten Anbieterkonto, das mit dem ersten Anbieterkonto-Identifizierer assoziiert ist.
  23. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 22, wobei jede der Mikropartitionen in der Datentabelle eine oder mehrere der Vielzahl von Datentabellenzeilen umfasst.
  24. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 23, wobei jede der Vielzahl von Mikropartitionen in der Datentabelle Metadaten umfasst, die einen minimalen Klienten-Identifizierer und einen maximalen Klienten-Identifizierer enthalten.
  25. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 24, wobei die Metadaten mit dem ersten Klienten-Identifizierer assoziiert sind, wenn der erste Klienten-Identifizierer innerhalb eines Bereichs ist, der durch den minimalen Klienten-Identifizierer und den maximalen Klienten-Identifizierer gebildet ist.
  26. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 19, wobei die Vielzahl von Anbieterkonto-Identifizierern Anbieterkonten in einer Vielzahl von geografischen Regionen identifiziert.
  27. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 19, wobei die Berechtigungstabelle weiterhin eine Vielzahl von Berechtigungstabellenspalten umfasst, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern.
  28. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 19, wobei die Operationen weiterhin folgendes umfassen: Empfangen einer Replikationsanfrage vom ersten Anbieterkonto, wobei die Replikationsanfrage einen ersten Kundenkonto-Identifizierer enthält.
  29. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 19, wobei das erste Update und das zweite Update an der Berechtigungstabelle ein Hinzufügen einer neuen Berechtigungstabellenzeile zur Berechtigungstabelle, ein Löschen von einer der Berechtigungstabellenzeilen oder ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information enthält.
  30. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 29, wobei ein Ändern von in einer der Berechtigungstabellenzeilen enthaltener Information ein Ändern der Klienten-Identifizierer, der Kundenkonto-Identifizierer oder der Anbieterkonto-Identifizierer enthält.
DE202021102320.1U 2021-04-29 2021-04-29 System zum Implementieren einer Unterdatenbankreplikation Active DE202021102320U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE202021102320.1U DE202021102320U1 (de) 2021-04-29 2021-04-29 System zum Implementieren einer Unterdatenbankreplikation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE202021102320.1U DE202021102320U1 (de) 2021-04-29 2021-04-29 System zum Implementieren einer Unterdatenbankreplikation

Publications (1)

Publication Number Publication Date
DE202021102320U1 true DE202021102320U1 (de) 2021-09-13

Family

ID=77919872

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202021102320.1U Active DE202021102320U1 (de) 2021-04-29 2021-04-29 System zum Implementieren einer Unterdatenbankreplikation

Country Status (1)

Country Link
DE (1) DE202021102320U1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11640412B2 (en) 2020-05-29 2023-05-02 Snowflake Inc. Materialized view sub-database replication
US11841877B2 (en) 2020-05-29 2023-12-12 Snowflake Inc. System for regional database replication

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11640412B2 (en) 2020-05-29 2023-05-02 Snowflake Inc. Materialized view sub-database replication
US11841877B2 (en) 2020-05-29 2023-12-12 Snowflake Inc. System for regional database replication

Similar Documents

Publication Publication Date Title
US8555018B1 (en) Techniques for storing data
US11468103B2 (en) Relational modeler and renderer for non-relational data
DE102014101392B4 (de) Konfigurieren eines Geräts ausgehend von der Nähe zu anderen Geräten
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
US8990157B2 (en) Replication support for structured data
CN109997126A (zh) 事件驱动提取、变换、加载(etl)处理
CN106897954A (zh) 智慧城市时空信息云平台
US10394805B2 (en) Database management for mobile devices
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
CN106547766A (zh) 一种数据访问方法和装置
CN104781812A (zh) 策略驱动的数据放置和信息生命周期管理
US11841877B2 (en) System for regional database replication
DE202021102320U1 (de) System zum Implementieren einer Unterdatenbankreplikation
US20230244695A1 (en) Materialized view sub-database replication
CN105069151A (zh) HBase二级索引构建装置和方法
CN109739828B (zh) 一种数据处理方法、设备及计算机可读存储介质
DE102019007354A1 (de) Narrationssystem für interaktive dashboards
DE102017213160A1 (de) Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung
DE202021004295U1 (de) Gleichzeitige Transaktionsverarbeitung in einem Datenbanksystem
US11514057B2 (en) System for implementing an object sharing framework
DE112022000878T5 (de) Datensatzmultiplexer für datenverarbeitungssystem
DE112020004801T5 (de) Intelligenter datenpool
Kvet et al. Study on effective temporal data retrieval leveraging complex indexed architecture
WO2016206395A1 (zh) 周报信息处理方法及装置
CN115543428A (zh) 一种基于策略模板的模拟数据生成方法和装置

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: SNOWFLAKE INC., BOZEMAN, US

Free format text: FORMER OWNER: SNOWFLAKE INC., SAN MATEO, CA, US

R150 Utility model maintained after payment of first maintenance fee after three years