DE202021102320U1 - System zum Implementieren einer Unterdatenbankreplikation - Google Patents
System zum Implementieren einer Unterdatenbankreplikation Download PDFInfo
- 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
Links
- 230000010076 replication Effects 0.000 title claims abstract description 182
- 238000013475 authorization Methods 0.000 claims abstract description 91
- 238000001914 filtration Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims abstract 10
- 238000005192 partition Methods 0.000 claims description 51
- 230000003362 replicative effect Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 230000007717 exclusion Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 6
- 230000004807 localization Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 239000007789 gas Substances 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, 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.
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 - 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 Prozess800 eines Implementierens einer Replikation von Unterdatenbanken gemäß einer Ausführungsform darstellt. -
9 die Details der Operation804 aus8 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 Prozess1300 eines Implementierens einer Replikation von Unterdatenbanken gemäß einer Ausführungsform darstellt. -
14 die Details der Operation1308 aus13 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-Servicesystem100 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-Servicesystem100 in1 ist eine Verarbeitungsplattform, die für Datenbankdienste sorgt. Bei einer Ausführungsform kann das Datenbank-Servicesystem100 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-Servicemanager108 , der für mehrere Anwender über ein Netzwerk110 (z.B. Internet) zugänglich ist. Die Anwender können auf den Datenbank-Servicemanager108 unter Verwendung von jeweils einer Client-Vorrichtung102 , einer Client-Vorrichtung106 und einer Client-Vorrichtung104 zugreifen. Der Datenbank-Servicemanager108 kann irgendeine Anzahl von Anwendern unterstützen, die einen Zugang zu Daten oder Diensten des Datenbank-Servicesystems100 erwünschen. Die Anwender der Client-Vorrichtungen102 ,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-Servicemanager108 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-Servicesystems100 unterstützen. Der Datenbank-Servicemanager108 hat einen Zugriff auf gespeicherte Metadaten, die mit den Daten assoziiert sind, die überall im Datenbank-Servicesystem100 gespeichert sind. Bei einigen Ausführungsformen enthalten Metadaten eine Zusammenfassung von Daten, die in entfernten Datenspeichersystemen (z.B. der Datenbank112 , der Datenbank116 , der Datenbank114 , 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 Datenbank112 , der Datenbank116 und der Datenbank114 , um verschiedene Datenspeicherungs- und Datenwiedergewinnungsoperationen durchzuführen. Obwohl in1 drei Datenbanken112 ,114 und116 gezeigt sind, kann das Datenbank-Servicesystem100 irgendeine Anzahl von Datenspeichervorrichtungen enthalten. Bei einigen Ausführungsformen sind die Datenbanken112 ,114 und116 cloudbasierte Speichervorrichtungen, die in einer oder mehreren geografischen Regionen angeordnet sind. Zum Beispiel können die Datenbanken112 ,114 und116 Teil einer öffentlichen Cloud-Infrastruktur oder einer privaten Cloud-Infrastruktur oder irgendeiner anderen Art von verteiltem Speichersystem sein. Die Datenbanken112 ,114 und116 können Festplattenlaufwerke (HDDs), Festkörperlaufwerke (SSDs), Speichercluster oder irgendeine andere Datenspeichertechnologie enthalten. Zusätzlich können, während es nicht gezeigt ist, die Datenbanken112 ,114 und116 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 Datenbanken112 ,114 ,116 in1 als einzelne Komponenten gezeigt sind, kann jeder bzw. jede des Datenbank-Servicemanagers108 und der Datenbanken112 ,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-Servicemanager108 gemäß einigen Ausführungsformen eine Replikationssteuerung118 , die ein Replizieren einer Datenbank oder ein Replizieren einer Unterdatenbank im Datenbank-Servicesystem100 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 Datenbank116 ). 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 Replikationssteuerung118 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 Darstellung200 der Replikationssteuerung118 , 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 Replikationssteuerung118 empfängt eine Einbeziehungsliste von der Client-Vorrichtung102 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 KontoP4 in der Region C identifiziert. Bei diesem Beispiel kann die Replikationssteuerung118 auch eine Ausschließungsliste von der Client-Vorrichtung102 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-Vorrichtung102 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 Replikationssteuerung118 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 Replikationssteuerung118 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 Darstellung300 der Replikationssteuerung118 , 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-Servicesystems100 sind). Wie es in3 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-Servicesystem100 . Aus der Berechtigungstabelle in3 haben die Client-IDs 1 und 3 (z.B. Client_Id 1 und 3) auch jeweils Konten bei dem Datenbank-Servicesystem100 als Kundenkonten C1, C3. - Da Kundenkonten C1 und C3 in derselben Region wie das Anbieterkonto sind, muss die Replikationssteuerung
118 Daten nicht replizieren. Die Replikationssteuerung118 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 Replikationssteuerung118 kann Anfragen von den Kundenkonten C1 und C3 für ihre Daten von der Datentabelle empfangen. In Reaktion darauf kann, wie es in3 gezeigt ist, die Replikationssteuerung118 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 Replikationssteuerung118 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 Replikationssteuerung118 personalisierte Teilungen erzeugen, wo eine Untergruppe der Tabellenzeilen mit jedem Kundenkonto geteilt werden kann. Bei einem Beispiel identifiziert die Replikationssteuerung118 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 in3 in jeder der unterschiedlichen Regionen implementieren.4 stellt eine schematische Darstellung400 der Replikationssteuerung118 , 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 in4 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 Replikationssteuerung118 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 Replikationssteuerung118 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 Replikationssteuerung118 gesamte Tabellen zwischen Regionen repliziert. Dies kann höhere Kosten und eine höhere Latenzzeit mit sich bringen. -
5 stellt eine schematische Darstellung500 der Replikationssteuerung118 , die ein Replizieren einer Untertabelle implementiert, gemäß einigen Beispielen dar. Bei dieser Ausführungsform repliziert die Replikationssteuerung118 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 Replikationssteuerung118 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 Replikationssteuerung118 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 in5 im Vergleich mit dem Replizieren der Tabelle in4 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-Servicemanager108 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 Replikationssteuerung118 die materialisierte Ansicht entsprechend updaten. Zum Beispiel frischt die Replikationssteuerung118 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 Replikationssteuerung118 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 Replikationssteuerung118 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 in5 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 in5 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 Replikationssteuerung118 , 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 in5 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 Replikationssteuerung118 automatisiert wird, oder eine Kombination davon. - Replizieren einer Untertabelle: Während einer Laufzeit angewendete Berechtigungen
-
6 stellt eine schematische Darstellung600 der Replikationssteuerung118 , 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 Datentabelle604 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 Berechtigungstabelle602 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 Berechtigungstabelle602 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 Berechtigungstabelle602 , die durch die Replikationssteuerung118 entdeckt wird und veranlasst, dass die Replikationssteuerung118 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 Replikationssteuerung118 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 Darstellung700 der Replikationssteuerung118 , 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 Berechtigungstabelle602 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 Berechtigungstabelle602 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 Replikationssteuerung118 enthalten ist, oder einen Prozessor im Datenbank-Servicemanager108 , oder eine Kombination davon. -
8 stellt einen Prozess800 zum Implementieren eines Replizierens einer Unterdatenbank gemäß einer Ausführungsform dar. Bei einer Operation802 entdeckt ein Prozessor in der Replikationssteuerung118 ein erstes Update an einer Berechtigungstabelle602 . Wie es in6 und7 gezeigt ist, kann die Berechtigungstabelle602 Berechtigungstabellenzeilen enthalten, die mit Klienten-Identifizierern, Kundenkonto-Identifizierern und Anbieterkonto-Identifizierern assoziiert sind. Die Berechtigungstabelle602 kann Berechtigungstabellenspalten enthalten, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern. Wie es in6 und7 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 Datentabelle604 basierend auf dem ersten Update durch. Wie es in6 und7 gezeigt ist, kann die Datentabelle604 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 Berechtigungstabelle602 . Beispiele des ersten Updates und des zweiten Updates an der Berechtigungstabelle602 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 Datentabelle604 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 Berechtigungstabelle602 assoziiert sind. - Bei einem Beispiel führt der Prozessor ein Filtern der Datentabelle
604 bei der Operation804 durch ein Durchführen eines Filterns auf Dateienebene durch.9 stellt die Details der Operation aus der8 gemäß einer Ausführungsform dar. - Bei einer Operation
902 identifiziert der Prozessor Mikropartitionen in einer Vielzahl von Mikropartitionen in der Datentabelle604 , die Metadaten hat, die mit dem ersten Klienten-Identifizierer assoziiert sind. Jede der Mikropartitionen in der Datentabelle604 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 Replikationssteuerung118 ein versionsbasiertes Replizieren durchführt.10 stellt eine schematische Darstellung1000 der Replikationssteuerung118 , die ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte1002 innerhalb der Tabelle implementiert, gemäß einigen Beispielen dar. - In
10 umfasst die (primäre) Datentabelle eine Berechtigungsspalte1002 (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 Datentabelle1004 , wann immer die Berechtigungstabelle602 sich ändert. Das Update an der Berechtigungsspalte1002 in der Datentabelle veranlasst, dass die Replikationssteuerung118 ein versionsbasiertes Replizieren durchführt. Zum Beispiel kann die Replikationssteuerung118 die Version der Datentabelle1004 updaten und neue Mikropartitionen erzeugen, um die Änderung in der Berechtigungstabelle602 zu berücksichtigen. Bei dieser Ausführungsform enthält ein Durchführen eines versionsbasierten Replizierens durch die Replikationssteuerung118 ein Replizieren von Zeilen in der Datentabelle1004 zu den Zielkonten (z.B. Anbieterkonten) unter Verwendung der Berechtigungsspalte1002 . -
11 stellt eine schematische Darstellung1100 der Replikationssteuerung118 , die ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte innerhalb der Tabelle implementiert, gemäß einigen Beispielen dar. - In
11 updated der Anbieteranwender die Berechtigungstabelle602 , 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 Berechtigungsspalte1002 in der Datentabelle1004 , 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 Berechtigungsspalte1002 in der Datentabelle1004 , dass die Replikationssteuerung118 ein versionsbasiertes Replizieren durchführt. Bei dieser Ausführungsform enthält die Replikationssteuerung118 , die ein versionsbasiertes Replizieren durchführt, ein Replizieren von Zeilen in der Datentabelle1004 zu den Zielkonten (z.B. Anbieterkonten) unter Verwendung der Berechtigungsspalte1002 . Wie es in sowohl10 als auch11 gezeigt ist, erniedrigt ein Replizieren einer Untertabelle unter Verwendung einer Berechtigungsspalte1002 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 Darstellung1200 der Replikationssteuerung118 , 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 Berechtigungsspalte1202 (z.B. eine Zielkontospalte), die das Anbieterkonto anzeigt, das mit der Zeile in der Datentabelle1004 assoziiert ist. Die virtuelle Berechtigungstabelle1202 wird durch die Replikationssteuerung118 unterhalten. - Wie es in
12 gezeigt ist, updated der Anbieteranwender die Berechtigungstabelle602 , 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 Berechtigungstabelle602 updated, füllt die Replikationssteuerung118 die virtuelle Berechtigungsspalte1202 in der Datentabelle1004 mit Daten. Bei dieser Ausführungsform updated die Replikationssteuerung118 die virtuelle Berechtigungsspalte1202 für die Zeilen von Client_Id 1 und 2, um das Anbieterkonto P3 anzuzeigen. In Reaktion auf dieses Update an der virtuellen Berechtigungsspalte1202 in der Datentabelle1004 kann die Replikationssteuerung118 ein versionsbasiertes Replizieren durchführen. Bei dieser Ausführungsform enthält ein Durchführen eines versionsbasierten Replizierens durch die Replikationssteuerung118 ein Replizieren von Zeilen in der Datentabelle1004 zu den Zielkonten (z.B. Anbieterkonten) unter Verwendung der virtuellen Berechtigungsspalte1202 . - Während die ETL-Kosten und die ETL-Latenzzeit hoch bleiben, erniedrigt ein Verwenden der virtuellen Berechtigungsspalte
1202 innerhalb der Datentabelle1004 , wie es in12 gezeigt ist, die Replikationskosten und die Replikations-Latenzzeit. Weiterhin wird, da die Replikationssteuerung118 die virtuelle Berechtigungsspalte1202 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 Prozess1300 zum Implementieren eines Replizierens einer Unterdatenbank gemäß einer Ausführungsform dar. Bei einer Operation1302 entdeckt der Prozessor der Replikationssteuerung118 ein Update an einer Berechtigungstabelle602 . Wie es in10 ,11 und12 gezeigt ist, kann die Berechtigungstabelle602 Berechtigungstabellenzeilen enthalten, die mit Klienten-Identifizierern, Kundenkonto-Identifizierern und Anbieterkonto-Identifizierern assoziiert sind. Die Berechtigungstabelle602 kann Berechtigungstabellenspalten enthalten, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern. Wie es in10 ,11 und12 gezeigt ist, identifizieren die Anbieterkonto-Identifizierer Anbieterkonten in einer Vielzahl von geografischen Regionen. Das Update an der Berechtigungstabelle602 kann mit einer ersten Berechtigungstabellenzeile der Berechtigungstabellenzeilen assoziiert sein. das Update an der Berechtigungstabelle602 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 Operation1302 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 Datentabelle1004 basierend auf dem Update an der Berechtigungstabelle602 durch. Wie es in den10 ,11 und12 dargestellt ist, kann die Datentabelle1004 Datentabellenzeilen umfassen, die mit den Klienten-Identifizierern assoziiert sind, und sie enthält eine Berechtigungsspalte1002 (oder eine virtuelle Berechtigungsspalte1202 ) und Dateninhalt (z.B. Ereignis, Datum, Nutzlast bzw. Zahlungsbelastung, etc.). Wie es den10 ,11 und12 gezeigt ist, können die Berechtigungsspalten1002 (oder die virtuellen Berechtigungsspalten1202 ) 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 Operation1304 ein Filtern auf Dateienebene durchführen, wie es detailliert in9 dargestellt ist. - Bei einer Operation
1306 entdeckt der Prozessor ein Update an einer Berechtigungsspalte1002 (oder einer virtuellen Berechtigungsspalte1202 ). Zum Beispiel ist die Berechtigungsspalte1202 in10 und11 durch einen Anbieteranwender über eine Klienten- bzw. Client-Vorrichtung mit Daten gefüllt oder upgedated. Der Prozessor, der ein Update an der virtuellen Berechtigungsspalte1202 entdeckt, kann weiterhin ein Bestimmen umfassen, dass das Update an der Berechtigungstabelle602 eine Änderung bei einem der Anbieterkonten-Identifizierer in der Berechtigungstabelle602 enthält, und ein Füllen der virtuellen Berechtigungsspalte1202 mit Daten basierend auf der Änderung bei dem einen der Anbieterkonten-Identifizierer in der Berechtigungstabelle602 . - Bei einer Operation
1308 führt der Prozessor ein inkrementelles Replizieren der Datentabelle1004 durch Veranlassen durch, dass ein versionsbasiertes Replizieren ausgeführt wird.14 stellt die Details des Prozesses eines versionsbasierten Replizierens bei der Operation1308 aus13 gemäß einer Ausführungsform dar. Bei einer Operation1402 updated der Prozessor einen Versions-Identifizierer, der mit der Datentabelle1004 assoziiert ist. Bei einer Operation1404 fügt der Prozessor eine Vielzahl von Mikropartitionen in der Datentabelle1004 hinzu, die das Update an der Berechtigungsspalte1002 (oder einer virtuellen Berechtigungsspalte1202 ) berücksichtigt. Bei einer Operation1406 repliziert der Prozessor die Datentabellenzeilen zu einer Vielzahl von Anbieterkonten, die mit den Anbieterkonto-Identifizierern in der Berechtigungstabelle602 assoziiert sind, unter Verwendung der Berechtigungsspalte1002 (oder einer virtuellen Berechtigungsspalte1202 ). - MASCHINENARCHITEKTUR
-
15 ist eine schematische Darstellung der Maschine1500 , innerhalb von welcher Anweisungen1510 (z.B. Software, ein Programm, eine Anwendung, ein Applet, eine App oder ein anderer ausführbarere Code) zum Veranlassen, dass die Maschine1500 irgendeine oder mehrere der hierin diskutierten Methoden durchführt, ausgeführt werden können. Zum Beispiel können die Anweisungen1510 veranlassen, dass die Maschine1500 irgendeine oder mehrere der hierin beschriebenen Methoden ausführt. Die Anweisungen1510 transformieren die allgemeine, nichtprogrammierte Maschine1500 in eine bestimmte Maschine1500 , die programmiert ist, um die beschriebenen und dargestellten Funktionen auf die beschriebene Weise auszuführen. Die Maschine1500 kann als eine alleinstehende Vorrichtung arbeiten oder kann mit anderen Maschinen gekoppelt (z.B. vernetzt) sein. Bei einer vernetzten Verwendung kann die Maschine1500 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 Maschine1500 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 Anweisungen1510 ausführen kann, sequentiell oder auf andere Weise, die durch die Maschine1500 vorzunehmende Aktionen spezifizieren. Weiterhin soll, während nur eine einzige Maschine1500 dargestellt ist, der Ausdruck „Maschine“ auch genommen werden, um eine Sammlung von Maschinen zu enthalten, die die Anweisungen1510 einzeln oder gemeinsam ausführen, um irgendeine oder mehrere der hierin diskutierten Methoden durchzuführen. Die Maschine1500 kann zum Beispiel die Client-Vorrichtung102 oder irgendeine einer Anzahl von Server-Vorrichtungen, die einen Teil des Datenbank-Servicemanagers108 bilden, umfassen. Bei einigen Beispielen kann die Maschine1500 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 Prozessoren1504 , einen Speicher1506 und Eingabe/Ausgabe-I/O-Komponenten 638 enthalten, die konfiguriert sein können, um miteinander über einen Bus1538 zu kommunizieren. Bei einem Bespiel können die Prozessoren1504 (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 Prozessor1508 enthalten, der die Anweisungen1510 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. Obwohl15 mehrere Prozessoren1504 zeigt, kann die Maschine1500 einen einzelnen Prozessor mit einem einzigen Kern, mehrere Prozessoren mit mehreren Kernen oder irgendeine Kombination davon enthalten. - Der Speicher
1506 enthält einen Hauptspeicher1512 , einen statischen Speicher1514 und eine Speichereinheit1516 , die für die Prozessoren1504 beide über den Bus1538 zugreifbar sind. Der Hauptspeicher1506 , der statische Speicher1514 und die Speichereinheit1516 speichern die Anweisungen1510 , die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern. Die Anweisungen1510 können auch, vollständig oder teilweise, innerhalb des Hauptspeichers1512 , innerhalb des statischen Speichers1514 , innerhalb eines maschinenlesbaren Medium1518 innerhalb der Speichereinheit1516 , innerhalb von wenigstens einem der Prozessoren1504 (z.B. innerhalb des Cachespeichers des Prozessors), oder irgendeiner geeigneten Kombination davon, während einer Ausführung davon durch die Maschine1500 , 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-Ausgabekomponenten1524 und Anwender-Eingabekomponenten1526 enthalten. Die Anwender-Ausgabekomponenten1524 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-Eingabekomponenten1526 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 , Bewegungskomponenten1530 , Umgebungskomponenten1502 oder Positionskomponenten1534 unter einem weiten Feld von anderen Komponenten enthalten. Zum Beispiel enthalten die biometrischen Komponenten1528 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 Bewegungskomponenten1530 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 Maschine1500 mit einem Netzwerk1520 oder Vorrichtungen1522 über eine jeweilige Kopplung oder Verbindungen zu koppeln. Zum Beispiel können die Kommunikationskomponenten1536 eine Netzwerkschnittstellenkomponente oder eine andere geeignete Vorrichtung enthalten, um eine Schnittstelle mit dem Netzwerk1520 zu bilden. Bei weiteren Beispielen können die Kommunikationskomponenten1536 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 Vorrichtungen1522 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 Kommunikationskomponenten1536 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 Kommunikationskomponenten1536 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 Speicher1514 und Speicher der Prozessoren1504 ) und die Speichereinheit1516 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 Anweisungen1510 ) veranlassen, wenn sie durch die Prozessoren1504 ausgeführt werden, verschiedene Operationen, um die offenbarten Beispiele zu implementieren. - Die Anweisungen
1510 können über das Netzwerk1520 unter Verwendung eines Übertragungsmediums über eine Netzwerkschnittstellenvorrichtung (z.B. eine in den Kommunikationskomponenten1536 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 Blockdiagramm1600 , das eine Softwarearchitektur1604 darstellt, die auf irgendeiner oder mehreren der hierin beschriebenen Vorrichtungen installiert werden kann. Die Softwarearchitektur1604 wird durch Hardware unterstützt, wie beispielsweise eine Maschine1602 , die Prozessoren1620 , einen Speicher1626 und I/O-Komponenten 1638 enthält. Bei diesem Beispiel kann die Softwarearchitektur1604 als ein Stapel von Schichten entworfen sein, wo jede Schicht eine bestimmte Funktionalität zur Verfügung stellt. Die Softwarearchitektur1604 enthält Schichten, wie beispielsweise ein Betriebssystem1612 , Bibliotheken1610 , Frameworks1608 und Anwendungen1606 . Betriebsmäßig rufen die Anwendungen1606 API-Aufrufe1650 durch den Softwarestapel auf und empfangen Nachrichten1652 in Antwort auf die API-Aufrufe1650 . - Das Betriebssystem
1612 managt Hardwareressourcen und stellt allgemeine Dienste zur Verfügung. Das Betriebssystem1612 enthält zum Beispiel ein Kernel1614 , Dienste1616 und Treiber1622 . Der Kernel1614 agiert als eine Abstraktionsschicht zwischen der Hardware und den anderen Softwareschichten. Zum Beispiel stellt der Kernel1614 unter anderen Funktionalitäten ein Speichermanagement, ein Prozessormanagement (z.B. Zeitplanung), ein Komponentenmanagement, eine Vernetzung und Sicherheitseinstellungen zur Verfügung. Die Dienste1616 können andere allgemeine Dienste für die anderen Softwareschichten zur Verfügung stellen. Die Treiber1622 sind verantwortlich für ein Steuern der zugrundeliegenden Hardware oder eine Schnittstellenbildung mit dieser. Zum Beispiel können die Treiber1622 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 Anwendung1606 verwendet wird. Die Bibliotheken1610 können Systembibliotheken1618 (z.B. C-Standardbibliothek) enthalten, die Funktionen, wie beispielsweise Speicherzuteilungsfunktionen, Kettenmanipulationsfunktionen, mathematische Funktionen und ähnliches, zur Verfügung stellen. Zusätzlich können die Bibliotheken1610 API-Bibliotheken1624 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 Bibliotheken1610 können auch eine weite Vielfalt von anderen Bibliotheken1628 enthalten, um den Anwendungen1606 viele andere APIs zur Verfügung zu stellen. - Die Frameworks
1608 stellen eine allgemeine Infrastruktur auf hoher Ebene zur Verfügung, die durch die Anwendung1606 verwendet wird. Zum Beispiel stellen die Frameworks1608 verschiedene grafische Anwenderschnittstellen-(GUI-)Funktionen, ein Ressourcenmanagement auf hoher Ebene und Lokalisierungsdienste auf hoher Ebene zur Verfügung. Die Frameworks1608 können ein breites Spektrum von anderen APIs zur Verfügung stellen, die durch die Anwendungen1606 verwendet werden, wovon einige spezifisch für ein bestimmtes Betriebssystem oder eine Plattform sein können. - Bei einem Beispiel kann die Anwendung
1606 eine Heimanwendung1636 , eine Kontaktanwendung1630 , eine Browser-Anwendung1632 , eine Buchleseranwendung1634 , eine Lokalisierungsanwendung1642 , eine Medienanwendung1644 , eine Benachrichtigungsanwendung1646 , eine Spieleanwendung1648 und ein breites Sortiment von anderen Anwendungen, wie beispielsweise eine Anwendung einer dritten Partei1640 , enthalten. Die Anwendungen1606 sind Programme, die Funktionen ausführen, die in den Programmen definiert sind. Verschiedene Programmiersprachen können verwendet werden, um eine oder mehrere der Anwendungen1606 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 Partei1640 (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 Partei1640 die API-Aufrufe1650 aufrufen, die durch das Betriebssystem1612 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)
- 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.
- 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. - 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. - 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. - Computerprogramm nach
Anspruch 1 , wobei die Vielzahl von Anbieterkonto-Identifizierern Anbieterkonten in einer Vielzahl von geografischen Regionen identifiziert. - Computerprogramm nach
Anspruch 1 , wobei die Berechtigungstabelle weiterhin eine Vielzahl von Berechtigungstabellenspalten umfasst, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern. - Computerprogramm nach
Anspruch 1 , weiterhin umfassend: Empfangen einer Replikationsanfrage vom ersten Anbieterkonto, wobei die Replikationsanfrage einen ersten Kundenkonto-Identifizierer enthält. - 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. - 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. - 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.
- 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. - 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. - 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. - System nach
Anspruch 10 , wobei die Vielzahl von Anbieterkonto-Identifizierern Anbieterkonten in einer Vielzahl von geografischen Regionen identifiziert. - System nach
Anspruch 10 , wobei die Berechtigungstabelle weiterhin eine Vielzahl von Berechtigungstabellenspalten umfasst, die die Kundenkonto-Identifizierer und die Anbieterkonto-Identifizierer speichern. - System nach
Anspruch 10 , weiterhin umfassend: Empfangen einer Replikationsanfrage vom ersten Anbieterkonto, wobei die Replikationsanfrage einen ersten Kundenkonto-Identifizierer enthält. - 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. - 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. - 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.
- Nichtflüchtiges computerlesbares Speichermedium nach
Anspruch 19 , wobei ein Durchführen eines Filterns weiterhin ein Durchführen eines Filterns auf Dateienebene umfasst. - 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. - 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. - Nichtflüchtiges computerlesbares Speichermedium nach
Anspruch 22 , wobei jede der Mikropartitionen in der Datentabelle eine oder mehrere der Vielzahl von Datentabellenzeilen umfasst. - 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. - 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. - Nichtflüchtiges computerlesbares Speichermedium nach
Anspruch 19 , wobei die Vielzahl von Anbieterkonto-Identifizierern Anbieterkonten in einer Vielzahl von geografischen Regionen identifiziert. - 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. - 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. - 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. - 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.
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)
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 |
-
2021
- 2021-04-29 DE DE202021102320.1U patent/DE202021102320U1/de active Active
Cited By (3)
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 |
US12093284B2 (en) | 2020-05-29 | 2024-09-17 | Snowflake Inc. | Materialized view sub-database replication |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8555018B1 (en) | Techniques for storing data | |
US11468103B2 (en) | Relational modeler and renderer for non-relational data | |
US10394805B2 (en) | Database management for mobile devices | |
DE202020005715U1 (de) | Dynamische Maskierung geteilter Datenobjekte | |
CN106897954A (zh) | 智慧城市时空信息云平台 | |
DE202015009166U1 (de) | System zur Bereitstellung individualisierter, mobiler Asset-Anwendungen | |
US11841877B2 (en) | System for regional database replication | |
CN106547766A (zh) | 一种数据访问方法和装置 | |
CN104781812A (zh) | 策略驱动的数据放置和信息生命周期管理 | |
DE202021102320U1 (de) | System zum Implementieren einer Unterdatenbankreplikation | |
CN109739828B (zh) | 一种数据处理方法、设备及计算机可读存储介质 | |
US12093284B2 (en) | Materialized view sub-database replication | |
US10262055B2 (en) | Selection of data storage settings for an application | |
DE102019007354A1 (de) | Narrationssystem für interaktive dashboards | |
DE202021004295U1 (de) | Gleichzeitige Transaktionsverarbeitung in einem Datenbanksystem | |
US20230062496A1 (en) | Tag-based data governance auditing system | |
DE112020004801T5 (de) | Intelligenter datenpool | |
DE112022000878T5 (de) | Datensatzmultiplexer für datenverarbeitungssystem | |
Kvet et al. | Study on effective temporal data retrieval leveraging complex indexed architecture | |
WO2016206395A1 (zh) | 周报信息处理方法及装置 | |
CN118193482A (zh) | 一种空间数据存储管理装置 | |
DE112022000886T5 (de) | Datenverarbeitungssystem mit manipulation logischer datensatzgruppen | |
DE112021003273T5 (de) | Direktes datenladen von durch middleware generierten datensätzen | |
CN113221177A (zh) | 分布式系统中数据访问方法、装置及系统 | |
Feng et al. | Digital teaching management system based on deep learning of internet of things |
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 |