DE202021004036U1 - Data Clean Room - Google Patents

Data Clean Room Download PDF

Info

Publication number
DE202021004036U1
DE202021004036U1 DE202021004036.6U DE202021004036U DE202021004036U1 DE 202021004036 U1 DE202021004036 U1 DE 202021004036U1 DE 202021004036 U DE202021004036 U DE 202021004036U DE 202021004036 U1 DE202021004036 U1 DE 202021004036U1
Authority
DE
Germany
Prior art keywords
data
account
party
secure
query request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202021004036.6U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snowflake Inc
Original Assignee
Snowflake Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Snowflake Inc filed Critical Snowflake Inc
Publication of DE202021004036U1 publication Critical patent/DE202021004036U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einem oder mehrere Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren Operationen durchführt oder durchführen, wobei die Operationen folgendes umfassen:
Bereitstellen von Daten einer ersten Partei in einem ersten Konto in einem netzwerkbasierten Datensystem;
Bereitstellen von Daten einer zweiten Partei in einem zweiten Konto im netzwerkbasierten Datensystem;
Ausführen, durch einen Prozessor, einer sicheren Funktion unter Verwendung der Daten der ersten Partei, um ein erstes Ergebnis zu erzeugen, einschließlich eines Erstellens von Verknüpfungen zu den Daten der ersten Partei und eines Anonymisierens von Identifikationsinformation in den Daten der ersten Partei;
Teilen der sicheren Funktion mit dem zweiten Konto;
Ausführen der sicheren Funktion unter Verwendung der Daten der zweiten Partei, um ein zweites Ergebnis zu erzeugen, und Beschränken des zweiten Kontos diesbezüglich, auf die Daten der ersten Partei zuzugreifen;
Erzeugen von Dummy-Übereinstimmungsinformation im zweiten Ergebnis für einen Fall keiner Übereinstimmung; und
Erzeugen einer Querverweistabelle mit dem ersten und dem zweiten Ergebnis, wobei die Querverweistabelle anonymisierte Übereinstimmungen des ersten und des zweiten Ergebnisses liefert, wobei die Querverweistabelle über das netzwerkbasierte Datensystem zum Durchführen einer Analyse von überlappenden Daten der ersten Partei und der zweiten Partei zugänglich ist.

Description

  • QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNG
  • Diese Anmeldung beansprucht den Vorteil der Priorität der US-Patentanmeldung mit der seriellen Nr. 16/944,929 , eingereicht am 31. Juli 2020, von welcher die Inhalte hierdurch durch Bezugnahme in ihrer Gesamtheit enthalten sind.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenlegung betrifft allgemein ein sicheres Analysieren von Daten über verschiedene Konten hinweg unter Verwendung von Data Clean Room bzw. eines Daten-Reinraums.
  • Um als Gebrauchsmuster und Gegenstand des Gebrauchsmusters geschützt zu werden, gibt es gemäß den Erfordernissen des Gebrauchsmustergesetzes nur Vorrichtungen, wie sie in den beigefügten Ansprüchen definiert sind. In einem Fall, in welchem in der Beschreibung auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich dazu, die Vorrichtung oder die Vorrichtungen darzustellen, für welche mit den beigefügten Ansprüchen Schutz gesucht wird.
  • HINTERGRUND
  • Derzeit wird die meiste digitale Werbung unter Verwendung von Cookies von Drittanbietern durchgeführt. Cookies sind kleine Datenstücke, die von einem Webserver erzeugt bzw. generiert und gesendet und vom Webbrowser des Benutzers auf dem Computer des Benutzers gespeichert werden und die verwendet werden, um Daten über Gewohnheiten von Kunden basierend auf ihrem Website-Browserverlauf zu sammeln. Aufgrund von Datenschutzbedenken wird die Verwendung von Cookies eingeschränkt.
  • Es kann sein, dass Unternehmen wünschen, Zielgruppen für Werbung oder Marketingbemühungen für bestimmte Zielgruppensegmente zu erstellen. Dafür möchten Unternehmen möglicherweise ihre Kundeninformation mit denen von anderen Unternehmen vergleichen, um zu sehen, ob sich ihre Kundenlisten für die Erstellung solcher Zielgruppen überschneiden. Daher möchten Unternehmen möglicherweise eine Datenanalyse, wie beispielsweise eine Überlappungsanalyse, von ihren Kunden oder anderen Daten durchführen. Um solche Arten von Datenanalysen durchzuführen, können Unternehmen „vertrauenswürdige“ dritte Parteien verwenden, die auf Daten von jedem der Unternehmen zugreifen und die Datenanalyse durchführen können. Dieser Ansatz einer dritten Partei bzw. Third-Party-Ansatz leidet jedoch unter erheblichen Nachteilen. Erstens geben Unternehmen die Kontrolle über ihre Kundendaten an diese Dritten ab, was zu unvorhergesehenen und schädlichen Folgen führen kann, da diese Daten sensible Information, wie beispielsweise persönliche Identitätsinformation, enthalten können. Zweitens wird die Analyse von den Dritten durchgeführt und nicht von den Unternehmen selbst. Somit müssen die Unternehmen zu den Dritten zurückgehen, um eine detailliertere Analyse oder eine andere Analyse durchzuführen. Dies kann den mit der Analyse assoziierten bzw. verbundenen Aufwand erhöhen sowie eine Zeitverzögerung hinzufügen. Ein Bereitstellen solcher Information für Dritte zu diesem Zweck kann auch im Widerspruch zu den sich ständig weiterentwickelnden Datenschutzbestimmungen und allgemeinen Industrierichtlinien stehen.
  • Figurenliste
  • Verschiedene der beigefügten Zeichnungen stellen lediglich beispielhafte Ausführungsformen der vorliegenden Offenbarung dar und sollten nicht als ihren Schutzumfang beschränkend angesehen werden.
    • 1 stellt eine beispielhafte Computer- bzw. Rechenumgebung gemäß einigen beispielhaften Ausführungsformen dar, in welcher ein netzwerkbasiertes Data-Warehouse-System Streams auf gemeinsam genutzten Datenbankobjekten implementieren kann.
    • 2 ist ein Blockdiagramm, das Komponenten eines Computing-Service-Managers gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 3 ist ein Blockdiagramm, das Komponenten einer Ausführungsplattform gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 4 ist ein Blockdiagramm, das Konten in einem Data-Warehouse-System gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 5 ist ein Blockdiagramm, das einen Daten-Reinraum bzw. Data-Clean-Room gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 6 ist ein Blockdiagramm, das einen doppelblinden Daten-Reinraum bzw. Data-Clean-Room gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 7 zeigt ein Ablaufdiagramm für die Einführung bzw. Einarbeitung bzw. das Onboarding von Daten in ein Data-Warehouse-System gemäß einigen beispielhaften Ausführungsformen.
    • 8A-8C ist ein Blockdiagramm, das eine sichere Abfrage unter Verwendung von Data-Clean-Room gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 9 stellt eine schematische Darstellung einer Maschine in der Form eines Computersystems dar, innerhalb von welchem eine Gruppe bzw. ein Satz von Anweisungen ausgeführt werden kann, um zu veranlassen, dass die Maschine eine oder mehrere der hierin diskutierten Verfahren gemäß einigen Ausführungsformen der vorliegenden Offenbarung durchführt.
  • DETAILLIERTE BESCHREIBUNG
  • Die Beschreibung, die folgt, enthält Systeme, Verfahren, Techniken, Anweisungssequenzen und Computing-Maschinen-Programmprodukte, die illustrative Ausführungsformen der Offenbarung verkörpern. In der folgenden Beschreibung werden zu Erklärungszwecken zahlreiche spezifische Details dargelegt, um ein Verstehen verschiedener Ausführungsformen des erfinderischen Gegenstands bereitzustellen. Es wird jedoch für Fachleute offensichtlich sein, dass Ausführungsformen des erfinderischen Gegenstands ohne diese spezifischen Details ausgeführt werden können. Im Allgemeinen werden wohlbekannte Anweisungsinstanzen, Protokolle, Strukturen und Techniken nicht unbedingt im Detail gezeigt.
  • Ausführungsformen der vorliegenden Offenbarung können einen Data-Clean-Room bereitstellen, der eine sichere Datenanalyse über mehrere Konten hinweg ohne die Verwendung von Dritten zulässt. Jedes Konto kann mit einem anderen Unternehmen oder einer anderen Partei assoziiert sein. Der Data-Clean-Room kann Sicherheitsfunktionen zum Schutz sensibler Information bereitstellen. Zum Beispiel kann der Data-Clean-Room einen Zugriff auf Daten in anderen Konten einschränken. Der Data-Clean-Room kann auch einschränken, welche Daten bei der Analyse verwendet werden können, und kann die Ausgabe einschränken. Zum Beispiel kann die Ausgabe basierend auf einer minimalen Schwelle von überlappenden Daten (z.B. Elemente pro ausgegebener Datenzeile) eingeschränkt sein. Daher kann jedes Konto (z.B. Unternehmen, Partei) eine Kontrolle über seine Daten in seinem eigenen Konto beibehalten, während es in der Lage ist, eine Datenanalyse unter Verwendung seiner eigenen Daten und von Daten aus anderen Konten durchzuführen. Jedes Konto kann Richtlinien einstellen, für welche Datentypen und welche Typen von Analysen es anderen Konten eine Durchführung zulassen möchte. Die Überlappungsdaten können anonymisiert werden, um zu verhindern, dass sensible Information offengelegt wird.
  • 1 stellt eine beispielhafte gemeinsam genutzte bzw. geteilte Datenverarbeitungsplattform 100, die eine sichere Nachrichtenübermittlung zwischen Bereitstellungen implementiert, gemäß einigen Ausführungsformen der vorliegenden Offenbarung dar. Um zu vermeiden, dass der erfinderische Gegenstand mit unnötigem Detail verdeckt wird, sind verschiedene funktionelle Komponenten, die nicht passend dafür sind, ein Verstehen des erfinderischen Gegenstands zu vermitteln, aus den Figuren weggelassen worden. Ein Fachmann wird jedoch ohne weiteres erkennen, dass verschiedene zusätzliche funktionelle Komponenten als Teil der gemeinsam genutzten bzw. geteilten Datenverarbeitungsplattform 100 enthalten sein können, um zusätzliche Funktionalität zu ermöglichen, die hierin nicht spezifisch beschrieben ist.
  • Wie es gezeigt ist, umfasst die gemeinsam genutzte Datenverarbeitungsplattform 100 das netzwerkbasierte Data-Warehouse-System 102, eine Cloud-Computing-Speicherplattform 104 (z.B. eine Speicherplattform, einen AWS®-Dienst, Microsoft Azure® oder Google Cloud Services®) und eine entfernte Computingvorrichtung 106. Das netzwerkbasierte Data-Warehouse-System 102 ist ein netzwerkbasiertes System, das zum Speichern von und Zugreifen auf Daten (z.B. internes Speichern von Daten, Zugreifen auf externe entfernt angeordnete Daten) auf eine integrierte Weise verwendet wird, und für ein Berichten und eine Analyse der integrierten Daten aus der einen oder den mehreren ungleichartigen Quellen (z.B. der Cloud-Computing-Speicherplattform 104). Die Cloud-Computing-Speicherplattform 104 umfasst eine Vielzahl von Computing-Maschinen und stellt dem netzwerkbasierten Data-Warehouse-System 102 On-Demand-Computersystemressourcen wie Datenspeicherung und Computing- bzw. Rechenleistung zur Verfügung. Während bei der in 1 dargestellten Ausführungsform ein Data-Warehouse gezeigt ist, können andere Ausführungsformen andere Typen von Datenbanken oder andere Datenverarbeitungssysteme enthalten.
  • Die entfernte Computing- bzw. Computervorrichtung 106 (z.B. eine Benutzervorrichtung wie ein Laptop-Computer) umfasst eine oder mehrere Computing-Maschinen (z.B. eine Benutzervorrichtung wie einen Laptop-Computer), die eine entfernte Softwarekomponente 108 (z.B. einen Cloud-Dienst, auf den vom Browser zugegriffen wird) ausführen, um Benutzern des netzwerkbasierten Data-Warehouse-Systems 102 zusätzliche Funktionalität bereitzustellen. Die entfernte Softwarekomponente 108 umfasst einen Satz maschinenlesbarer Anweisungen (z.B. einen Code), die dann, wenn sie durch die entfernte Computingvorrichtung 106 ausgeführt werden, veranlassen, dass die entfernte Computingvorrichtung 106 eine bestimmte Funktionalität bereitstellt. Die entfernte Softwarekomponente 108 kann an Eingabedaten arbeiten und erzeugt Ergebnisdaten basierend auf einem Verarbeiten, einem Analysieren oder einem anderweitigen Transformieren der Eingabedaten. Als Beispiel kann die entfernte Softwarekomponente 108 ein Datenanbieter oder ein Datenverbraucher sein, der Datenbank-Verfolgungsprozeduren, wie beispielsweise Streams auf gemeinsam genutzten bzw. geteilten Tabellen und Ansichten, ermöglicht, wie es nachstehend in weiterem Detail diskutiert wird.
  • Das netzwerkbasierte Data-Warehouse-System 102 umfasst ein Zugriffsmanagementsystem 110, einen Computing-Service-Manager 112, eine Ausführungsplattform 114 und eine Datenbank 116. Das Zugriffsmanagementsystem 110 ermöglicht administrativen Benutzern, einen Zugriff auf Ressourcen und Dienste zu managen, die durch das netzwerkbasierte Data-Warehouse-System 102 bereitgestellt werden. Administrative Benutzer können Benutzer, Rollen und Gruppen erstellen und managen und Berechtigungen verwenden, um einen Zugriff auf Ressourcen und Dienste zuzulassen oder zu verweigern. Das Zugriffsmanagementsystem 110 kann Teilungsdaten speichern, die einen geteilten Zugriff auf die Speicherressourcen der Cloud-Computing-Speicherplattform 104 für verschiedene Benutzer des netzwerkbasierten Data-Warehouse-Systems 102 sicher managen, wie es nachstehend in weiterem Detail diskutiert wird.
  • Der Computing-Service-Manager 112 koordiniert und managt Operationen des netzwerkbasierten Data-Warehouse-Systems 102. Der Computing-Service-Manager 112 führt auch eine Abfrageoptimierung und -kompilierung durch und ein Managen von Clustern von Computing-Diensten, die Computerressourcen (z.B. virtuelle Lager, virtuelle Maschinen, EC2-Cluster) bereitstellen. Der Computing-Service-Manager 112 kann irgendeine Anzahl von Clientkonten unterstützen, wie beispielsweise Endbenutzer, die Datenspeicherungs- und -wiedergewinnungsanforderungen bereitstellen, Systemadministratoren, die die hierin beschriebenen Systeme und Verfahren managen, und andere Komponenten/Vorrichtungen, die mit dem Computing-Service-Manager 112 interagieren.
  • Der Computing-Service-Manager 112 ist auch mit einer Datenbank 116 gekoppelt, die mit der Gesamtheit von auf der gemeinsam genutzte Datenverarbeitungsplattform 100 gespeicherten Daten assoziiert ist. Die Datenbank 116 speichert Daten, die zu verschiedenen Funktionen und Aspekten gehören, die mit dem netzwerkbasierten Data-Warehouse-System 102 und seinen Benutzern assoziiert sind.
  • Bei einigen Ausführungsformen enthält die Datenbank 116 eine Zusammenfassung von in entfernten Datenspeichersystemen gespeicherten Daten sowie von aus einem oder mehreren lokalen Caches verfügbaren Daten. Zusätzlich kann die Datenbank 116 Information diesbezüglich enthalten, wie Daten in den entfernten Datenspeichersystemen und den lokalen Caches organisiert sind. Die Datenbank 116 lässt zu, dass Systeme und Dienste bestimmen, ob auf ein Stück von Daten zugegriffen werden muss, ohne die tatsächlichen Daten aus einer Speichervorrichtung zu laden oder auf diese zuzugreifen. Der Computing-Service-Manager 112 ist weiterhin mit einer Ausführungsplattform 114 gekoppelt, die mehrere Computing- bzw. Computerressourcen (z.B. virtuelle Lager) bereitstellt, die verschiedene Datenspeicherungs- und Datenabruf- bzw. Datenwiedergewinnungsaufgaben ausführen, wie es nachstehend detaillierter diskutiert wird.
  • Die Ausführungsplattform 114 ist mit mehreren Datenspeichervorrichtungen 124-1 bis 124-n gekoppelt, die Teil einer Cloud-Computing-Speicherplattform 104 sind. Bei einigen Ausführungsformen sind die Datenspeichervorrichtungen 124-1 bis 124-n cloudbasierte Speichervorrichtungen, die an einem oder mehreren geografischen Standorten angeordnet sind. Zum Beispiel können die Datenspeichervorrichtungen 124-1 bis 124-n Teil einer Infrastruktur einer öffentlichen Cloud oder einer Infrastruktur einer privaten Cloud sein. Die Datenspeichervorrichtungen 124-1 bis 124-n können Festplattenlaufwerke (HDDs), Festkörperspeicher (SSDs), Speichercluster, Amazon S3-Speichersysteme oder irgendeine andere Datenspeichertechnologie sein. Zusätzlich kann die Cloud-Computing-Speicherplattform 104 verteilte Dateisysteme (wie beispielsweise Hadoop Distributed File Systems (HDFS)), Objektspeichersysteme und dergleichen enthalten.
  • Die Ausführungsplattform 114 umfasst eine Vielzahl von Computing- bzw. Rechenknoten (z.B. virtuelle Lager). Eine Gruppe von Prozessen auf einem Rechenknoten führt einen durch den Computing-Service-Manager 112 kompilierten Abfrageplan aus. Die Gruppe von Prozessen kann folgendes enthalten: einen ersten Prozess, um den Abfrageplan auszuführen; einen zweiten Prozess, um Mikropartitionsdateien unter Verwendung einer LRU(Least Recently Used (= am längsten nicht verwendet))-Strategie zu überwachen und zu löschen und um einen OOM(Out of Memory (= kein Speicher mehr))-Fehlerminderungsprozess zu implementieren; einen dritten Prozess, der Gesundheitsinformation aus Prozessprotokollen und Statusinformation extrahiert, um sie zum Computing-Service-Manager 112 zurückzusenden; einen vierten Prozess, um eine Kommunikation mit dem Computing-Service-Manager 112 nach einem Systemstart herzustellen; und einen fünften Prozess, um die gesamte Kommunikation mit einem Computercluster für einen gegebenen Job zu handhaben, der vom Computing-Service-Manager 112 bereitgestellt ist, und um Information zu dem Computing-Service-Manager 112 und anderen Computing- bzw. Rechen- bzw. Computerknoten der Ausführungsplattform 114 zurück zu kommunizieren.
  • Die Cloud-Computing-Speicherplattform 104 umfasst auch ein Zugriffsmanagementsystem 118 und einen Web-Proxy 120. Wie beim Zugriffsmanagementsystem 110 lässt das Zugriffsmanagementsystem 118 zu, dass Benutzer Benutzer, Rollen und Gruppen erstellen und managen und Berechtigungen verwenden, um einen Zugriff auf Cloud-Dienste und -Ressourcen zuzulassen und zu verweigern. Das Zugriffsmanagementsystem 110 des netzwerkbasierten Data-Warehouse-Systems 102 und das Zugriffsmanagementsystem 118 der Cloud-Computing-Speicherplattform 104 können Information kommunizieren und gemeinsam nutzen bzw. teilen, um ein Zugreifen auf Ressourcen und Dienste und ein Management davon zu ermöglichen, die von Benutzern von sowohl dem netzwerkbasierten Data-Warehouse-System 102 als auch der Cloud-Computing-Speicherplattform 104 gemeinsam genutzt werden. Der Web-Proxy 120 handhabt Aufgaben, die bei einem Annehmen und einem Verarbeiten gleichzeitiger API-Aufrufe beteiligt sind, einschließlich eines Verkehrsmanagements, einer Autorisierung und einer Zugriffssteuerung bzw. -kontrolle, einer Überwachung und eines API-Versionsmanagements. Der Web-Proxy 120 stellt einen HTTP-Proxy-Dienst zum Erstellen, Veröffentlichen, Beibehalten, Sichern und Überwachen von APIs (z.B. REST-APIs) bereit.
  • Bei einigen Ausführungsformen sind Kommunikationsverbindungen zwischen Elementen der gemeinsam genutzten Datenverarbeitungsplattform 100 über ein oder mehrere Datenkommunikationsnetzwerke implementiert. Diese Datenkommunikationsnetzwerke können irgendein Kommunikationsprotokoll und irgendeinen Typ von Kommunikationsmedium verwenden. Bei einigen Ausführungsformen sind die Datenkommunikationsnetzwerke eine Kombination von zwei oder mehr Datenkommunikationsnetzwerken (oder Unter- bzw. Teilnetzwerken), die miteinander gekoppelt sind. Bei alternativen Ausführungsformen sind diese Kommunikationsverbindungen unter Verwendung von irgendeinem Typ von Kommunikationsmedium und irgendeinem Kommunikationsprotokoll implementiert.
  • Wie es in 1 gezeigt ist, sind die Datenspeichervorrichtungen 124-1 bis 124-N von den mit der Ausführungsplattform 114 assoziierten Computerressourcen entkoppelt. Das bedeutet, dass neue virtuelle Lager in der Ausführungsplattform 114 erstellt und beendet werden können und zusätzliche Datenspeichervorrichtungen auf eine unabhängige Weise auf der Cloud-Computing-Speicherplattform 104 erstellt und beendet werden können. Diese Architektur unterstützt dynamische Änderungen am netzwerkbasierten Data-Warehouse-System 102 basierend auf den sich ändernden Datenspeicherungs-/-abrufanforderungen sowie den sich ändernden Anforderungen der Benutzer und Systeme, die auf die gemeinsam genutzte Datenverarbeitungsplattform 100 zugreifen. Die Unterstützung dynamischer Änderungen lässt zu, dass sich das netzwerkbasierte Data-Warehouse-System 102 in Reaktion auf sich ändernde Anforderungen an die Systeme und Komponenten innerhalb des netzwerkbasierten Data-Warehouse-Systems 102 schnell skaliert. Die Entkopplung der Computerressourcen von den Datenspeichervorrichtungen 124-1 bis 124-n unterstützt die Speicherung großer Datenmengen, ohne eine entsprechend große Menge an Computerressourcen zu erfordern. Gleichermaßen unterstützt diese Entkopplung von Ressourcen eine signifikante Erhöhung von zu einem bestimmten Zeitpunkt verwendeten Computerressourcen, ohne eine entsprechende Erhöhung von verfügbaren Datenspeicherressourcen zu erfordern. Zusätzlich ermöglicht die Entkopplung von Ressourcen unterschiedlichen Konten, ein Erstellen zusätzlicher Computerressourcen zu handhaben, um durch andere Benutzer gemeinsam genutzte Daten zu verarbeiten, ohne die Systeme der anderen Benutzer zu beeinflussen bzw. zu beeinträchtigen. Zum Beispiel kann ein Datenanbieter drei Computerressourcen haben und Daten mit einem Datenverbraucher teilen und kann der Datenverbraucher neue Computerressourcen erzeugen, um Abfragen gegen die geteilten bzw. gemeinsam genutzten Daten auszuführen, wobei die neuen Computerressourcen durch den Datenverbraucher gemanagt werden und sich nicht auf die Computerressourcen des Datenanbieters auswirken oder mit ihnen interagieren.
  • Der Computing-Service-Manager 112, die Datenbank 116, die Ausführungsplattform 114, die Cloud-Computing-Speicherplattform 104 und die entfernte Computingvorrichtung 106 sind in 1 als einzelne Komponenten gezeigt. Der Computing-Service-Manager 112, die Datenbank 116, die Ausführungsplattform 114, die Cloud-Computing-Speicherplattform 104 und die entfernte Computing-Umgebung können jedoch jeweils als verteiltes System implementiert sein (z.B. verteilt über mehrere Systeme/Plattformen an mehreren geografischen Standorten), verbunden durch APIs und Zugriffsinformation (z.B. Token, Anmeldedaten). Zusätzlich können der Computing-Service-Manager 112, die Datenbank 116, die Ausführungsplattform 114 und die Cloud-Computing-Speicherplattform 104 jeweils in Abhängigkeit von Änderungen an den empfangenen Anforderungen und den sich ändernden Anforderungen der gemeinsam genutzten Datenverarbeitungsplattform 100 (unabhängig voneinander) nach oben oder nach unten skaliert werden. Somit ist bei den beschriebenen Ausführungsformen das netzwerkbasierte Data-Warehouse-System 102 dynamisch und unterstützt regelmäßige Änderungen, um den aktuellen Datenverarbeitungsanforderungen gerecht zu werden.
  • Während einer typischen Operation verarbeitet das netzwerkbasierte Data-Warehouse-System 102 mehrere durch den Computing-Service-Manager 112 bestimmte Jobs (z.B. Abfragen). Diese Jobs werden durch den Computing-Service-Manager 112 geplant und gemanagt, um zu bestimmen, wann und wie der Job auszuführen ist. Zum Beispiel kann der Computing-Service-Manager 112 den Job in mehrere diskrete Aufgaben bzw. Aufträge aufteilen und kann bestimmen, welche Daten zum Ausführen von jeder der mehreren Aufgaben erforderlich sind. Der Computing-Service-Manager 112 kann jede der mehreren diskreten Aufgaben einem oder mehreren Knoten der Ausführungsplattform 114 zuordnen, um die Aufgabe zu verarbeiten. Der Computing-Service-Manager 112 kann bestimmen, welche Daten zum Verarbeiten einer Aufgabe nötig sind, und kann weiterhin bestimmen, welche Knoten innerhalb der Ausführungsplattform 114 für eine Verarbeitung der Aufgabe am besten geeignet sind. Es kann sein, dass einige Knoten bereits die für die Verarbeitung der Aufgabe erforderlichen Daten in einem Cache gespeichert bzw. zwischengespeichert haben (da die Knoten kürzlich die Daten von der Cloud-Computing-Speicherplattform 104 für einen früheren Job heruntergeladen haben) und daher ein guter Kandidat für die Verarbeitung der Aufgabe sein können. In der Datenbank 116 gespeicherte Metadaten unterstützen den Computing-Service-Manager 112 bei einem Bestimmen, welche Knoten in der Ausführungsplattform 114 bereits wenigstens einen Teilbereich der für die Verarbeitung der Aufgabe erforderlichen Daten zwischengespeichert haben. Ein oder mehrere Knoten in der Ausführungsplattform 114 verarbeiten die Aufgabe unter Verwendung von Daten, die durch die Knoten zwischengespeichert sind und, wenn es nötig ist, von Daten, die durch die Cloud-Computing-Speicherplattform 104 abgerufen bzw. wiedergewonnen sind. Es ist wünschenswert, so viele Daten wie möglich aus Caches innerhalb der Ausführungsplattform 114 abzurufen, da die Wiedergewinnungs- bzw. Abrufgeschwindigkeit typischerweise viel schneller als ein Wiedergewinnen bzw. Abrufen von Daten aus der Cloud-Computing-Speicherplattform 104 ist.
  • Wie es in 1 gezeigt ist, trennt die gemeinsam genutzte Datenverarbeitungsplattform 100 die Ausführungsplattform 114 von der Cloud-Computing-Speicherplattform 104. Bei dieser Anordnung arbeiten die Verarbeitungsressourcen und Cacheressourcen in der Ausführungsplattform 114 unabhängig von den Datenspeichervorrichtungen 124-1 bis 124-n in der Cloud-Computing-Speicherplattform 104. Somit sind die Computerressourcen und Cacheressourcen nicht auf spezifische Datenspeichervorrichtungen 124-1 bis 124-n beschränkt. Stattdessen können alle Computerressourcen und alle Cacheressourcen Daten von irgendeiner der Datenspeicherressourcen in der Cloud-Computing-Speicherplattform 104 abrufen und Daten dorthin speichern.
  • 2 ist ein Blockdiagramm, das Komponenten des Computing-Service-Managers 112 gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Wie es in 2 gezeigt ist, managt ein Anforderungsverarbeitungsdienst 202 empfangene Datenspeicheranforderungen und Datenwiedergewinnungs- bzw. Datenabrufanforderungen (z.B. an Datenbankdaten durchzuführende Jobs). Zum Beispiel kann der Anforderungsverarbeitungsdienst 202 die Daten bestimmen, die zur Verarbeitung einer empfangenen Abfrage (z.B. einer Datenspeicheranforderung oder einer Datenabrufanforderung) nötig sind. Die Daten können in einem Cache innerhalb der Ausführungsplattform 114 oder in einer Datenspeichervorrichtung in der Cloud-Computing-Speicherplattform 104 gespeichert werden. Ein Managementkonsolendienst 204 unterstützt einen Zugriff auf verschiedene Systeme und Prozesse durch Administratoren und andere Systemmanager. Zusätzlich kann der Managementkonsolendienst 204 eine Anforderung empfangen, einen Job auszuführen und die Arbeitsauslastung auf dem System zu überwachen. Die Stream-Teilungsmaschine 225 managt eine Änderungsnachverfolgung an Datenbankobjekten, wie beispielsweise eine Datenteilung (z.B. geteilte Tabelle) oder eine geteilte Ansicht, gemäß einigen beispielhaften Ausführungsformen und wie es nachstehend in weiterem Detail diskutiert wird.
  • Der Computing-Service-Manager 112 enthält auch einen Job-Compiler 206, einen Job-Optimierer 208 und einen Job-Ausführer 210. Der Job-Compiler 206 parst bzw. zerlegt bzw. analysiert einen Job in mehrere diskrete Aufgaben und erzeugt den Ausführungscode für jede der mehreren diskreten Aufgaben. Der Job-Optimierer 208 bestimmt das beste Verfahren zum Ausführen der mehreren diskreten Aufgaben basierend auf den Daten, die verarbeitet werden müssen. Der Job-Optimierer 208 handhabt auch verschiedene Datenbereinigungsoperationen und andere Datenoptimierungstechniken, um die Geschwindigkeit und Effizienz eines Ausführens des Jobs zu verbessern. Der Job-Ausführer 210 führt den Ausführungscode für aus einer Warteschlange empfangene oder durch den Computing-Service-Manager 112 bestimmte Jobs aus.
  • Ein Job-Planer und -Koordinator 212 sendet empfangene Jobs zu den geeigneten Diensten oder Systemen zur Kompilierung, Optimierung und Entsendung zur Ausführungsplattform 114. Zum Beispiel können Jobs priorisiert und in dieser priorisierten Reihenfolge verarbeitet werden. Bei einer Ausführungsform bestimmt der Job-Planer und -Koordinator 212 eine Priorität für interne Jobs, die vom Computing-Service-Manager 112 geplant sind, mit anderen Jobs „von außen“, wie beispielsweise Benutzerabfragen, die von anderen Systemen in der Datenbank geplant sein können, aber dieselben Verarbeitungsressourcen in der Ausführungsplattform 114 verwenden können. Bei einigen Ausführungsformen identifiziert der Job-Planer und -Koordinator 212 bestimmte Knoten in der Ausführungsplattform 114 oder ordnet sie zu, um bestimmte Aufgaben zu verarbeiten. Ein Manger eines virtuellen Lagers 214 managt die Operation bzw. den Betrieb mehrerer virtueller Lager, die in der Ausführungsplattform 114 implementiert sind. Wie es nachstehend diskutiert wird, enthält jedes virtuelle Lager mehrere Ausführungsknoten, die jeweils einen Cache und einen Prozessor enthalten (z.B. eine virtuelle Maschine, eine Containerausführungsumgebung auf Betriebssystemebene).
  • Zusätzlich enthält der Computing-Service-Manager 112 einen Konfigurations- und Metadaten-Manager 216, der die Information in Bezug auf die in den entfernten Datenspeichervorrichtungen und in den lokalen Caches (d.h. den Caches in der Ausführungsplattform 114) gespeicherten Daten managt. Der Konfigurations- und Metadaten-Manager 216 verwendet die Metadaten, um zu bestimmen, auf welche Datenmikropartitionen zugegriffen werden muss, um Daten für die Verarbeitung einer bestimmten Aufgabe oder eines bestimmten Jobs wiederzugewinnen bzw. abzurufen. Ein Überwachungs- und Arbeitslast-Analysator 218 beaufsichtigt durch den Computing-Service-Manager 112 durchgeführte Prozesse und managt die Verteilung von Aufgaben (z.B. Arbeitslast) quer über die virtuellen Lager und Ausführungsknoten in der Ausführungsplattform 114. Der Überwachungs- und Arbeitslast-Analysator 218 verteilt auch Aufgaben neu, wie es nötig ist, basierend auf sich ändernden Arbeitslasten über dem gesamten Data-Warehouse-System 102 und kann weiterhin Aufgaben basierend auf einer Abfragearbeitslast eines Benutzers (z.B. „von extern“) neu verteilen, die auch durch die Ausführungsplattform 114 verarbeitet werden kann. Der Konfigurations- und Metadaten-Manager 216 und der Überwachungs- und Arbeitslast-Analysator 218 sind mit einer Datenspeichervorrichtung 220 gekoppelt. Die Datenspeichervorrichtung 220 in 2 stellt irgendeine Datenspeichervorrichtung innerhalb des Data-Warehouse-Systems 102 dar. Zum Beispiel kann die Datenspeichervorrichtung 220 Caches in der Ausführungsplattform 114, Speichervorrichtungen in der Cloud-Computing-Speicherplattform 104 oder irgendeine andere Speichervorrichtung darstellen.
  • 3 ist ein Blockdiagramm, das Komponenten der Ausführungsplattform 114 gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Wie es in 3 gezeigt ist, enthält die Ausführungsplattform 114 mehrere virtuelle Lager, die elastische Cluster von Computing-Instanzen sind, wie beispielsweise virtuelle Maschinen. Beim dargestellten Beispiel enthalten die virtuellen Lager ein virtuelles Lager 1, ein virtuelles Lager 2 und ein virtuelles Lager n. Jedes virtuelle Lager (z.B. ein EC2-Cluster) enthält mehrere Ausführungsknoten (z.B. virtuelle Maschinen), die jeweils einen Datencache und einen Prozessor enthalten. Die virtuellen Lager können mehrere Aufgaben parallel ausführen, indem sie die mehreren Ausführungsknoten verwenden. Wie es hierin diskutiert ist, kann die Ausführungsplattform 114 neue virtuelle Lager hinzufügen und vorhandene virtuelle Lager fallenlassen, und zwar in Echtzeit basierend auf den aktuellen Verarbeitungsanforderungen der Systeme und Benutzer. Diese Flexibilität lässt zu, dass die Ausführungsplattform 114 schnell große Mengen an Computerressourcen nutzt, wenn es nötig ist, ohne dazu gezwungen zu sein, fortgesetzt für diese Computerressourcen zu bezahlen, wenn sie nicht mehr benötigt werden. Alle virtuellen Lager können auf Daten von irgendeiner Datenspeichervorrichtung (z.B. irgendeiner Speichervorrichtung in der Cloud-Computing-Speicherplattform 104) zugreifen.
  • Obwohl jedes in 3 gezeigte virtuelle Lager drei Ausführungsknoten enthält, kann ein bestimmtes virtuelles Lager irgendeine Anzahl von Ausführungsknoten enthalten. Weiterhin ist die Anzahl von Ausführungsknoten in einem virtuellen Lager dynamisch, so dass neue Ausführungsknoten erstellt werden, wenn zusätzlicher Bedarf vorhanden ist, und vorhandene bzw. existierende Ausführungsknoten gelöscht werden, wenn sie nicht mehr benötigt werden (z.B. auf eine Abfrage oder einen Jobabschluss hin).
  • Jedes virtuelle Lager ist in der Lage, auf irgendeine der in 1 gezeigten Datenspeichervorrichtungen 124-1 bis 124-n zuzugreifen. Somit sind die virtuellen Lager nicht notwendigerweise einer spezifischen Datenspeichervorrichtung 124-1 bis 124-n zugeordnet und können stattdessen auf Daten von irgendeiner der Datenspeichervorrichtungen 124-1 bis 124-n innerhalb der Cloud-Computing-Speicherplattform 104 zugreifen. Gleichermaßen kann jeder der in 3 gezeigten Ausführungsknoten auf Daten von irgendeiner der Datenspeichervorrichtungen 124-1 bis 124-n zugreifen. Zum Beispiel kann die Speichervorrichtung 124-1 eines ersten Benutzers (z.B. eines Anbieterkontobenutzers) mit einem Workerknoten in einem virtuellen Lager eines anderen Benutzers (z.B. eines Verbraucherkontobenutzers) geteilt werden, so dass der andere Benutzer eine Datenbank (z.B. eine Nurlese-Datenbank) erstellen und die Daten in der Speichervorrichtung 124-1 direkt verwenden kann, ohne die Daten kopieren zu müssen (z.B. sie zu einer neuen Diskette bzw. Platte zu kopieren, die durch den Verbraucherkontobenutzer gemanagt wird). Bei einigen Ausführungsformen kann ein bestimmtes virtuelles Lager oder ein bestimmter Ausführungsknoten vorübergehend einer spezifischen Datenspeichervorrichtung zugeordnet sein, aber das virtuelle Lager bzw. Warehouse oder der Ausführungsknoten kann später auf Daten von irgendeiner anderen Datenspeichervorrichtung zugreifen.
  • Beim Beispiel von 3 enthält das virtuelle Lager 1 drei Ausführungsknoten 302-1, 302-2 und 302-n. Der Ausführungsknoten 302-1 enthält einen Cache 304-1 und einen Prozessor 306-1. Der Ausführungsknoten 302-2 enthält einen Cache 304-2 und einen Prozessor 306-2. Der Ausführungsknoten 302-n enthält einen Cache 304-n und einen Prozessor 306-n. Jeder Ausführungsknoten 302-1, 302-2 und 302-n ist mit einer Verarbeitung von einer oder mehreren Datenspeicherungs- und/oder Datenabrufaufgaben assoziiert. Zum Beispiel kann ein virtuelles Lager Datenspeicherungs- und Datenabrufaufgaben handhaben, die mit einem internen Dienst assoziiert sind, wie beispielsweise einem Clusterbildungsdienst, einem Auffrischungsdienst für eine materialisierte Ansicht, einem Dateikompaktierungsdienst, einem Speicherprozedurdienst oder einem Datei-Upgradedienst. Bei anderen Implementierungen kann ein bestimmtes virtuelles Lager Datenspeicherungs- und Datenabrufaufgaben handhaben, die mit einem bestimmten Datenspeichersystem oder einer bestimmten Datenkategorie assoziiert sind.
  • Ähnlich wie beim oben diskutierten virtuellen Lager 1 enthält das virtuelle Lager 2 drei Ausführungsknoten 312-1, 312-2 und 312-n. Der Ausführungsknoten 312-1 enthält einen Cache 314-1 und einen Prozessor 316-1. Der Ausführungsknoten 312-2 enthält einen Cache 314-2 und einen Prozessor 316-2. Der Ausführungsknoten 312-n enthält einen Cache 314-n und einen Prozessor 316-n. Zusätzlich enthält das virtuelle Lager 3 drei Ausführungsknoten 322-1, 322-2 und 322-n. Der Ausführungsknoten 322-1 enthält einen Cache 324-1 und einen Prozessor 326-1. Der Ausführungsknoten 322-2 enthält einen Cache 324-2 und einen Prozessor 326-2. Der Ausführungsknoten 322-n enthält einen Cache 324-n und einen Prozessor 326-n.
  • Bei einigen Ausführungsformen sind die in 3 gezeigten Ausführungsknoten zustandslos in Bezug auf die Daten, die die Ausführungsknoten im Cache speichern bzw. zwischenspeichern. Zum Beispiel speichern diese Ausführungsknoten Zustandsinformation über den Ausführungsknoten oder die Daten, die von einem bestimmten Ausführungsknoten zwischengespeichert werden, nicht oder halten sie nicht auf andere Weise. Somit kann im Fall eines Fehlers bzw. Ausfalls eines Ausführungsknotens der fehlerhafte bzw. ausgefallene Knoten transparent durch einen anderen Knoten ersetzt werden. Da es keine Zustandsinformation gibt, die mit dem fehlerhaften Ausführungsknoten assoziiert ist, kann der neue (Ersatz-) Ausführungsknoten den ausgefallenen Knoten auf einfache Weise ersetzen, ohne sich Gedanken über eine Neuerstellung eines bestimmten Zustands machen zu müssen.
  • Obwohl die in 3 gezeigten Ausführungsknoten jeweils einen Datencache und einen Prozessor enthalten, können alternative Ausführungsformen Ausführungsknoten umfassen, die irgendeine Anzahl von Prozessoren und irgendeine Anzahl von Caches enthalten. Zusätzlich können die Caches bezüglich der Größe zwischen den unterschiedlichen Ausführungsknoten variieren. Die in 3 gezeigten Caches speichern im lokalen Ausführungsknoten (z.B. in einer lokalen Platte) Daten, die von einer oder mehreren Datenspeichervorrichtungen in der Cloud-Computing-Speicherplattform 104 wiedergewonnen bzw. abgerufen wurden (z.B. S3-Objekte, auf die durch den gegebenen Knoten kürzlich zugegriffen ist). Bei einigen beispielhaften Ausführungsformen speichert der Cache Dateivorsätze bzw. Datei-Header und einzelne Spalten von Dateien, da eine Abfrage nur Spalten herunterlädt, die für diese Abfrage nötig sind.
  • Um Cache-Treffer zu verbessern und sich überlappende redundante Daten zu vermeiden, die in den Knoten-Caches gespeichert sind, ordnet der Job-Optimierer 208 den Knoten Eingabedateisätze unter Verwendung eines konsistenten Hashing-Schemas zu, um über Tabellendateinamen der Daten, auf die zugegriffen wird (z.B. Daten in der Datenbank 116 oder der Datenbank 122), zu hashen bzw. klein zu schneiden. Nachfolgende oder gleichzeitige Abfragen, die auf dieselbe Tabellendatei zugreifen, werden daher gemäß einigen beispielhaften Ausführungsformen auf demselben Knoten ausgeführt.
  • Wie es diskutiert ist, können sich die Knoten und virtuellen Lager in Reaktion auf Umgebungsbedingungen (z.B. Katastrophenszenarien), Hardware-/Softwareprobleme (z.B. Fehlfunktionen) oder administrative Änderungen (z.B. ein Ändern von einem großen Cluster zu einem kleineren Cluster zur Kostensenkung) dynamisch ändern. Bei einigen beispielhaften Ausführungsformen werden, wenn sich der Satz bzw. die Gruppe von Knoten ändert, keine Daten sofort umstrukturiert. Stattdessen wird die Ersatzpolitik bzw. -strategie für am wenigsten kürzlich verwendet implementiert, um die verlorenen Cacheinhalte über mehrere Jobs hinweg möglicherweise zu ersetzen. Somit reduzieren oder eliminieren die Caches die Engpassprobleme, die bei Plattformen auftreten, die konsistent Daten aus entfernten Speichersystemen abrufen. Anstatt wiederholt auf Daten aus den entfernten Speichervorrichtungen zuzugreifen, greifen die hierin beschriebenen Systeme und Verfahren auf Daten aus den Caches in den Ausführungsknoten zu, was signifikant schneller ist und das oben diskutierte Engpassproblem vermeidet. Bei einigen Ausführungsformen sind die Caches unter Verwendung von Hochgeschwindigkeits-Speichervorrichtungen implementiert, die einen schnellen Zugriff auf die zwischengespeicherten Daten bereitstellen. Jeder Cache kann Daten von irgendeiner der Speichervorrichtungen in der Cloud-Computing-Speicherplattform 104 speichern.
  • Weiterhin können die Cacheressourcen und Computerressourcen zwischen unterschiedlichen Ausführungsknoten variieren. Zum Beispiel kann ein Ausführungsknoten signifikante Computerressourcen und minimale Cacheressourcen enthalten, was den Ausführungsknoten für Aufgaben nützlich macht, die signifikante Computerressourcen erfordern. Ein anderer Ausführungsknoten kann signifikante Cacheressourcen und minimale Computerressourcen enthalten, was diesen Ausführungsknoten für Aufgaben nützlich macht, die das Zwischenspeichern großer Datenmengen erfordern. Ein noch weiterer Ausführungsknoten kann Cacheressourcen enthalten, die schnellere Eingabe-Ausgabe-Operationen bereitstellen, die für Aufgaben nützlich sind, die ein schnelles Scannen großer Datenmengen erfordern. Bei einigen Ausführungsformen implementiert die Ausführungsplattform 114 eine Versatz-Handhabung, um die Arbeit unter den Cacheressourcen und Computerressourcen zu verteilen, die mit einer bestimmten Ausführung assoziiert sind, wobei die Verteilung weiterhin auf den erwarteten Aufgaben basieren kann, die durch die Ausführungsknoten ausgeführt werden sollen. Zum Beispiel kann ein Ausführungsknoten mehreren Verarbeitungsressourcen zugeordnet werden, wenn die durch den Ausführungsknoten durchgeführten Aufgaben prozessorintensiver werden. Gleichermaßen kann ein Ausführungsknoten mehreren Cacheressourcen zugeordnet werden, wenn die durch den Ausführungsknoten durchgeführten Aufgaben eine größere Cachekapazität erfordern. Weiterhin können einige Knoten aufgrund verschiedener Probleme (z.B. Virtualisierungsprobleme, Netzwerk-Overhead) viel langsamer ausführend sein als andere. Bei einigen beispielhaften Ausführungsformen werden die Ungleichgewichte auf der Abtast- bzw. Scan-Ebene unter Verwendung eines Dateidiebstahlschemas behoben. Insbesondere fordert, wann immer ein Knotenprozess ein Scannen seines Satzes von Eingabedateien abschließt, er zusätzliche Dateien von anderen Knoten an. Wenn der eine der anderen Knoten eine solche Anforderung empfängt, analysiert der Knoten seinen eigenen Satz (z.B. wie viele Dateien beim Empfang der Anforderung im Eingabedateisatz gelassen sind) und überträgt dann das Eigentumsrecht bzw. den Besitz von einer oder mehreren der verbleibenden Dateien für die Dauer des aktuellen Jobs (z.B. der Abfrage). Der anfordernde Knoten (z.B. der Dateidiebstahlknoten) empfängt dann die Daten (z.B. Header-Daten) und lädt die Dateien von der Cloud-Computing-Speicherplattform 104 (z.B. von der Datenspeichervorrichtung 124-1) herunter und lädt die Dateien nicht vom übertragenden Knoten herunter. Auf diese Weise können zurückbleibende bzw. nacheilende Knoten Dateien über einen Dateidiebstahl auf eine Weise übertragen, die die Belastung an den zurückbleibenden Knoten nicht verschlechtert.
  • Obwohl die virtuellen Lager 1, 2 und n mit derselben Ausführungsplattform 114 assoziiert sind, können die virtuellen Lager unter Verwendung von mehreren Computersystemen an mehreren geografischen Standorten implementiert werden. Zum Beispiel kann das virtuelle Lager 1 durch ein Computersystem an einem ersten geografischen Standort implementiert werden, während die virtuellen Lager 2 und n durch ein anderes Computersystem an einem zweiten geografischen Standort implementiert werden. Bei einigen Ausführungsformen sind diese unterschiedlichen Computersysteme cloudbasierte Computersysteme, die durch ein oder mehrere unterschiedliche Unternehmen unterhalten werden.
  • Zusätzlich ist jedes virtuelle Lager in 3 derart gezeigt, dass es mehrere Ausführungsknoten hat. Die mit jedem virtuellen Lager assoziierten mehreren Ausführungsknoten können unter Verwendung mehrerer Computersysteme an mehreren geografischen Standorten implementiert werden. Zum Beispiel implementiert eine Instanz des virtuellen Lagers 1 die Ausführungsknoten 302-1 und 302-2 auf einer Computerplattform an einem geografischen Standort und implementiert den Ausführungsknoten 302-n auf einer anderen Computerplattform an einem anderen geografischen Standort. Ein Auswählen bestimmter Computersysteme, um einen Ausführungsknoten zu implementieren, kann von verschiedenen Faktoren abhängen, wie beispielsweise dem Ausmaß von Ressourcen, die für einen bestimmten Ausführungsknoten nötig sind (z.B. Verarbeitungsressourcenanforderungen und Cacheanforderungen), den Ressourcen, die bei bestimmten Computersystemen verfügbar sind, Kommunikationsfähigkeiten von Netzwerken innerhalb eines geografischen Standorts oder zwischen geografischen Standorten und welche Computersysteme bereits andere Ausführungsknoten im virtuellen Lager implementieren.
  • Die Ausführungsplattform 114 ist auch fehlertolerant. Wenn zum Beispiel ein virtuelles Lager ausfällt, wird dieses virtuelle Lager schnell durch ein anderes virtuelles Lager an einem anderen geografischen Standort ersetzt.
  • Eine bestimmte Ausführungsplattform 114 kann irgendeine Anzahl von virtuellen Lagern enthalten. Zusätzlich ist die Anzahl von virtuellen Lagern in einer bestimmten Ausführungsplattform dynamisch, so dass neue virtuelle Lager erstellt werden, wenn zusätzliche Verarbeitungs- und/oder Cachespeicherungs- bzw. Zwischenspeicherungs-Ressourcen nötig sind. Gleichermaßen können existierende virtuelle Lager gelöscht werden, wenn die mit dem virtuellen Lager assoziierten Ressourcen nicht mehr nötig sind.
  • Bei einigen Ausführungsformen können die virtuellen Lager an denselben Daten in der Cloud-Computing-Speicherplattform 104 arbeiten, aber jedes virtuelle Lager hat seine eigenen Ausführungsknoten mit unabhängigen Verarbeitungs- und Cachespeicherungs- bzw. Zwischenspeicherungs-Ressourcen. Diese Konfiguration lässt zu, dass Anforderungen an unterschiedlichen virtuellen Lagern unabhängig und ohne Interferenz zwischen den Anforderungen verarbeitet werden. Diese unabhängige Verarbeitung, kombiniert mit der Fähigkeit, virtuelle Lager dynamisch hinzuzufügen und zu entfernen, unterstützt das Hinzufügen neuer Verarbeitungskapazität für neue Benutzer, ohne die von den existierenden Benutzern beobachtete Leistungsfähigkeit zu beeinflussen bzw. zu beeinträchtigen.
  • 4 zeigt ein Beispiel von zwei getrennten Konten in einem Data-Warehouse-System gemäß einigen beispielhaften Ausführungsformen. Hier kann ein Unternehmen A ein Konto A 402 mit einem netzwerkbasierten Data-Warehouse-System betreiben, wie es hierin beschrieben ist. Im Konto A 402 können Daten 404 des Unternehmens A gespeichert werden. Die Daten 404 des Unternehmens A können zum Beispiel Kundendaten 406 bezüglich Kunden des Unternehmens A enthalten. Die Kundendaten 406 können in einer Tabelle oder einem anderen Format gespeichert werden, die oder das Kundeninformation und andere damit zusammenhängende Information speichert. Die andere damit zusammenhängende Information kann identifizierende Information, wie beispielsweise Email, und andere bekannte Merkmale der Kunden, wie beispielsweise Geschlecht, geografischer Standort, Kaufgewohnheiten und dergleichen, enthalten. Wenn zum Beispiel das Unternehmen A ein Konsumgüterunternehmen ist, können Kaufmerkmale gespeichert werden, wie beispielsweise ob der Kunde ledig, verheiratet, Teil einer Vorstadt- oder Stadtfamilie ist, etc. Wenn das Unternehmen A ein Streamingdienst-Unternehmen ist, kann Information über die Sehgewohnheiten von Kunden gespeichert werden, wie beispielsweise, ob der Kunde Science-Fiction, Natur, Realität, Action etc. mag.
  • Ebenso kann ein Unternehmen B ein Konto B 412 bei dem netzwerkbasierten Data-Warehouse-System betreiben, wie es hierin beschrieben ist. Im Konto B 412 können Daten 414 des Unternehmens B gespeichert werden. Die Daten 414 des Unternehmens B können zum Beispiel Kundendaten in Bezug auf Kunden des Unternehmens B enthalten. Die Kundendaten 416 können in einer Tabelle oder einem anderen Format gespeichert werden, die oder das Kundeninformation und andere damit zusammenhängende Information speichert. Die andere damit zusammenhängende Information kann identifizierende Informationen, wie beispielsweise Email, und andere bekannte Merkmale der Kunden, wie beispielsweise Geschlecht, geografischer Standort, Kaufgewohnheiten etc., enthalten, wie es oben beschrieben ist.
  • Aus Sicherheitsgründen kann es sein, dass die Daten des Unternehmens A für das Unternehmen B nicht zugänglich sind, und umgekehrt. Es kann jedoch sein, dass das Unternehmen A und das Unternehmen B wenigstens einige ihrer Daten miteinander zu teilen wünschen, ohne sensible bzw. vertrauliche Information, wie beispielsweise die persönliche Identitätsinformation eines Kunden, offenzulegen. Zum Beispiel kann es sein, dass das Unternehmen A und das Unternehmen B Cross-Marketing- oder Werbemöglichkeiten erforschen wollen und sehen wollen, wie viele ihrer Kunden sich überschneiden, und basierend auf bestimmten Merkmalen der sich überschneidenden Kunden filtern, um Beziehungen und Muster zu identifizieren.
  • Zu diesem Zweck kann ein Data-Clean-Room durch das netzwerkbasierte Data-Warehouse-System bereitgestellt werden, wie es hierin beschrieben ist. 5 ist ein Blockdiagramm, das ein Verfahren zum Betreiben eines Data-Clean-Rooms gemäß einigen beispielhaften Ausführungsformen darstellt. Der Data-Clean-Room kann es den Unternehmen A und B ermöglichen, Überlappungsanalysen an ihren Unternehmensdaten durchzuführen, ohne sensible Daten zu teilen und ohne die Kontrolle über die Daten zu verlieren. Der Data-Clean-Room kann Verknüpfungen zwischen den Daten für jedes Konto erstellen und kann eine Gruppe von blinden Querverweistabellen enthalten.
  • Als Nächstes werden beispielhafte Operationen zum Erstellen des Data-Clean-Rooms beschrieben. Ein Konto B kann Kundendaten 502 für ein Unternehmen B enthalten und ein Konto A kann Kundendaten 504 für ein Unternehmen A enthalten. Bei diesem Beispiel kann das Konto B die Erstellung des Data-Clean-Rooms initiieren; jedoch können beide Konten eine Erstellung des Data-Clean-Rooms initiieren. Das Konto B kann eine sichere Funktion 506 erstellen. Die sichere Funktion 506 kann bestimmte Identifikationsinformation in den Kundendaten 502 des Kontos B nachschlagen. Die sichere Funktion 506 kann die Information durch Erstellen von Identifizierern für jeweilige Kundendaten (z.B. Erzeugen einer ersten Ergebnisgruppe) anonymisieren. Die sichere Funktion 506 kann eine sichere benutzerdefinierte Funktion (UDF) sein und kann unter Verwendung der Techniken implementiert werden, die in der US-Patentanmeldung Nr. 16/814,875 mit dem Titel „System and Method for Global Data Sharing“, eingereicht am 10. März 2020, beschrieben sind, die hierin durch Bezugnahme in ihrer Gesamtheit enthalten ist, einschließlich, aber nicht darauf beschränkt, derjenigen Teilbereiche, die hierin nachfolgend spezifisch erscheinen, wobei die Aufnahme durch Bezugnahme erfolgt, mit der folgenden Ausnahme: Für den Fall, dass irgendein Teilbereich der oben genannten Anmeldung nicht mit dieser Anmeldung übereinstimmt, ersetzt diese Anmeldung die oben genannte Anmeldung.
  • Die sichere Funktion 506 kann als SQL-UDF implementiert werden. Die sichere Funktion 506 kann definiert werden, um die zugrundeliegenden Daten zu schützen, die zur Verarbeitung der Funktion verwendet werden. Als solches kann die sichere Funktion 506 eine direkte und indirekte Offenlegung der zugrundeliegenden Daten einschränken.
  • Die sichere Funktion 506 kann dann mit dem Konto A unter Verwendung einer sicheren Teilung 508 geteilt werden. Die sichere Teilung 508 kann es dem Konto A ermöglichen, die sichere Funktion 506 auszuführen, während das Konto A diesbezüglich eingeschränkt wird, einen Zugriff auf die zugrundeliegenden Daten des Kontos B zu haben, das von der Funktion verwendet wird, und diesbezüglich, dass es den Code der Funktion sehen kann. Die sichere Teilung 508 kann das Konto A auch diesbezüglich einschränken, auf den Code der sicheren Funktion 506 zuzugreifen. Darüber hinaus kann die sichere Teilung 508 das Konto A diesbezüglich einschränken, irgendwelche Protokolle oder andere Information über die Verwendung der sicheren Funktion 506 durch das Konto B oder die vom Konto B bereitgestellten Parameter der sicheren Funktion 506 zu sehen, wenn sie aufgerufen wird.
  • Das Konto A kann die sichere Funktion 506 unter Verwendung seiner Kundendaten 504 ausführen (z.B. Erzeugen einer zweiten Ergebnisgruppe). Das Ergebnis der Ausführung der sicheren Funktion 506 kann zum Konto B kommuniziert werden. Zum Beispiel kann im Konto B eine Querverweistabelle 510 erstellt werden, die anonymisierte Kundeninformation 512 (z.B. anonymisierte Identifikationsinformation) enthalten kann. Ebenso kann im Konto A eine Querverweistabelle 514 erstellt werden, die anonymisierte Kundeninformation 516 zum Abgleichen überlappender Kunden für beide Unternehmen und Dummy-Identifizierer für nicht übereinstimmende Datensätze enthalten kann. Die Daten von den zwei Unternehmen können sicher zusammengeführt werden, so dass keines der Konten auf die zugrundeliegenden Daten oder andere identifizierbare Information zugreifen kann. Zum Beispiel können die Daten unter Verwendung der Techniken sicher zusammengeführt werden, die beschrieben sind in der US-Patentanmeldung Nr. 16/368,339 mit dem Titel „Secure Data Joins in a Multiple Tenant Database System“, eingereicht am 28. Mai 2019, die hierin durch Bezugnahme in ihrer Gesamtheit enthalten ist, einschließlich, aber nicht darauf beschränkt, von denjenigen Teilbereichen, die hierin nachfolgend spezifisch erscheinen, wobei die Aufnahme durch Bezugnahme erfolgt, mit der folgenden Ausnahme: Für den Fall, dass irgendein Teilbereich der oben genannten Anmeldung nicht mit dieser Anmeldung übereinstimmt, ersetzt diese Anmeldung die oben genannte Anmeldung.
  • Zum Beispiel kann die Querverweistabelle 510 (und anonymisierte Kundeninformation 512) folgende Felder enthalten: „mein_kd_id“, was der Kunden-ID in den Daten des Kontos B entsprechen kann; „mein_link_id“, was einem anonymisierten Link zur identifizierten Kundeninformation entsprechen kann; und „ihr_link_id“, was einem anonymisierten übereinstimmenden Kunden im Unternehmen A entsprechen kann. „ihr_link_id“ kann anonymisiert werden, so dass das Unternehmen B die Identität der übereinstimmenden Kunden nicht erkennen kann. Die Anonymisierung kann unter Verwendung von Hashing, Verschlüsselung, Tokenisierung oder anderen geeigneten Techniken durchgeführt werden.
  • Darüber hinaus können, um die Identität weiter zu anonymisieren, alle aufgelisteten Kunden des Unternehmens B in der Querverweistabelle 510 (und der anonymisierten Kundeninformation 512) einen eindeutigen übereinstimmenden Kunden aus dem Unternehmen B aufgelistet haben, ungeachtet dessen, ob es eine tatsächliche Übereinstimmung gab oder nicht. Ein Dummy „ihr_link_id“ kann für Kunden erstellt werden, die nicht übereinstimmten. Auf diese Weise kann keines der Unternehmen eine Identitätsinformation der übereinstimmenden Kunden ermitteln. Keines der Unternehmen kann erkennen, wo es eher eine tatsächliche Übereinstimmung als einen als Dummy zurückgegebenen Identifizierer (keine Übereinstimmung) gibt. Somit können die Querverweistabellen 510 anonymisierte Schlüsselwert-Paare enthalten. Ein zusammenfassender Bericht kann erstellt werden, der die Gesamtzahl von Übereinstimmungen mitteilt, aber andere Details der übereinstimmenden Kunden können nicht bereitgestellt werden, um die Identitäten der Kunden zu schützen.
  • Der Data-Clean-Room kann in eine oder beide Richtungen betrieben werden, was bedeutet, dass ein doppelblinder Clean-Room bzw. Reinraum zur Verfügung gestellt werden kann. 6 stellt ein Blockdiagramm dar, das ein Verfahren zum Betreiben eines doppelblinden Clean-Rooms bzw. Reinraums gemäß einigen beispielhaften Ausführungsformen darstellt. Der doppelblinde Clean-Room kann es dem Unternehmen A ermöglichen, eine Überlappungsanalyse unter Verwendung seiner Unternehmensdaten mit den Unternehmensdaten des Unternehmens B durchzuführen und umgekehrt, ohne sensible Daten zu teilen und ohne die Kontrolle über ihre eigenen Daten zu verlieren. Der doppelblinde Clean-Room kann Verknüpfungen zwischen den Daten für jedes Konto erstellen und kann eine Gruppe von doppelblinden Querverweistabellen enthalten.
  • Hier kann das Konto A seine Kundendaten 602 enthalten und kann das Konto B seine Kundendaten 604 enthalten. Das Konto A kann eine sichere Funktion 606 („Link_ID_Bekommen“) erstellen, wie es oben beschrieben ist. Die sichere Funktion 606 kann mit Konto B geteilt werden, indem eine sichere Teilung 608 verwendet wird, wie es oben beschrieben ist. Darüber hinaus kann eine Gespeicherte-Prozeduren-Funktion 610 Änderungen an Daten in jeweiligen Kundendaten erkennen und Links bzw. Verknüpfungen entsprechend aktualisieren und auffrischen.
  • Derselbe oder ein ähnlicher Prozess kann vom Konto B auf das Konto A mit der sicheren Funktion 612, der sicheren Teilung 614 und gespeicherten Prozeduren 616 angewendet werden. Folglich kann die Querverweistabelle 618 im Konto A Information über die Kundenüberlappung bzw. -überschneidung zwischen den zwei Unternehmen enthalten. Zum Beispiel enthält die Querverweistabelle 618 folgende Felder: „mein_kd_id“, was der Kunden-ID in den Daten des Kontos A entsprechen kann; „mein_link_id“, was einem anonymisierten Link zur identifizierten Kundeninformation des Unternehmens A entsprechen kann; und „ihr_link_id“, was einem anonymisierten übereinstimmenden Kunden im Unternehmen B entsprechen kann. Die Anonymisierung kann unter Verwendung von Hashing, Verschlüsselung, Tokenisierung oder ähnlichem durchgeführt werden.
  • Gleichermaßen kann die Querverweistabelle 620 im Konto B Information über die Kundenüberlappung bzw. -überschneidung zwischen den zwei Unternehmen enthalten. Zum Beispiel enthält die Querverweistabelle 620 folgende Felder: „mein_kd_id“, was der Kunden-ID in den Daten des Kontos B entsprechen kann; „mein_link_id“, was einem anonymisierten Link zur identifizierten Kundeninformation des Unternehmens B entsprechen kann; und „ihr_link_id“, was einem anonymisierten übereinstimmenden Kunden im Unternehmen A entsprechen kann. Die Anonymisierung kann unter Verwendung von Hashing, Verschlüsselung, Tokenisierung oder anderen geeigneten Techniken durchgeführt werden.
  • Bei den obigen Beispielen hatten sowohl das Unternehmen A als auch das Unternehmen B Konten beim Data-Warehouse-System. Die hier beschriebenen Techniken eines blinden Clean-Rooms können jedoch auch dann Anwendung finden, wenn eines oder beide der Unternehmen keine Konten beim Data-Warehouse-System haben. 7 stellt eine Technik zum Einführen von Daten in ein Data-Warehouse-System gemäß einigen beispielhaften Ausführungsformen dar. Hier kann das Unternehmen C kein Konto beim Data-Warehouse-System haben, kann aber nichtsdestoweniger noch wünschen, die hierin beschriebenen Data-Clean-Room-Techniken zu verwenden. Das Unternehmen C kann seine Unternehmensdaten in eine Ladedatei 702 (z.B. eine .csv-Datei) laden. Dann kann das Unternehmen C unter Verwendung eines Browsers 704 oder einer App oder von ähnlichem einen Datei-Hochlader 706 verwenden, um die Ladedatei 702 an einen sicheren Cloud-Speicherort 708 (der auch als „Enklaven-Bucket“ bezeichnet wird) hochzuladen. Aus dem Enklaven-Bucket 708 können die Daten in ein Enklavenkonto 710 bewegt werden. Die Daten können durch einen Stapel- bzw. Batch-Datenaufnahmebefehl, einen Kopierbefehl oder dergleichen bewegt werden. Eine kundenspezifische Web-GUI 712 kann auch verwendet werden, um Steuerungsinformation zum Enklavenkonto 710 zu senden. Die Steuerungsinformation kann zum Beispiel Zugriffsbeschränkungen für die Daten in der Ladedatei 702 festlegen. Zum Zwecke einer Erstellung und Nutzung eines Data-Clean-Rooms kann das Enklavenkonto 710 dann als reguläres Konto fungieren und arbeiten, wie es oben beschrieben ist.
  • Nachdem ein Data-Clean-Room erstellt ist, können die Parteien sichere Abfragen an den sicheren Daten ausführen, um detailliertere Information zu sammeln. Beim Beispiel eines sicheren Abgleichs von Kunden von zwei Unternehmen kann jedes Unternehmen eine Abfrageanforderung zum anderen Unternehmen senden, um die Anzahl an Übereinstimmungen basierend auf Auswahlbedingungen zu bestimmen.
  • 8A-8C ist ein Blockdiagramm, das ein Verfahren zum Verarbeiten einer sicheren Abfrage unter Verwendung eines Data-Clean-Rooms gemäß einigen beispielhaften Ausführungsformen darstellt. Das Beispiel in den 8A-8C baut auf dem in 6 erstellten beispielhaften Data-Clean-Room auf. Hier kann das Konto A seine Kundendaten 602 enthalten und kann das Konto B seine Kundendaten 604 enthalten. Wie es oben erklärt ist, können die Querverweistabellen 618 und 620 erstellt und jeweils in den Konten A und B enthalten sein. Zusätzlich können Verkaufsdaten 802 (die in 8C gezeigt sind), die Information in Bezug auf Kaufgewohnheiten der Kunden enthalten, im Konto A enthalten sein, und können Zuschaudaten 804, die Information über die Sehgewohnheiten der Kunden enthalten können, im Konto B enthalten sein.
  • Darüber hinaus kann das Konto B eine sichere Ansicht 806 verwenden, um zuzulassen, dass das Unternehmen A einen Zugriff auf Auswahldaten hat, auf die als sichere Abfrage nutzbare Daten 808 Bezug genommen wird. Das Konto B kann das Konto A auf verschiedene Arten über diese als sichere Abfrage nutzbare Daten 808 benachrichtigen. Das Konto B kann diese Information dem Konto A im Voraus veröffentlichen. Es kann die Struktur und Nachschauschlüssel der als sichere Abfrage nutzbaren Daten 808 mit dem Konto A teilen. Es kann auch einen privaten Datenaustausch unter Verwendung der Techniken verwenden, die beschrieben sind in der US-Patentanmeldung Nr. 16/746,673 mit dem Titel „Private Data Exchange“, eingereicht am 17. Januar 2020, die hierin durch Bezugnahme in ihrer Gesamtheit enthalten ist, einschließlich, aber nicht darauf beschränkt, von Teilbereichen, die hierin nachfolgend spezifisch erscheinen, wobei die Aufnahme durch Bezugnahme mit der folgenden Ausnahme erfolgt: Für den Fall, dass irgendein Teilbereich der oben genannten Anmeldung nicht mit dieser Anmeldung übereinstimmt, ersetzt diese Anmeldung die oben genannte Anmeldung.
  • Ein Benutzer im Konto A kann eine sichere Abfrage 810 im Data-Clean-Room ausführen. Die Abfrage kann eine Verarbeitung von Daten in beiden Konten A und B anfordern, kann aber den Benutzer diesbezüglich einschränken, einen Zugriff auf sensible Daten des Kontos B zu haben. Zum Beispiel kann der Benutzer eine Abfrage ausführen, die Information anfordert: Wie viele von meinen (Unternehmen A) Kunden haben eines der Programme des Unternehmens B angeschaut, gruppiert nach Programmen des Unternehmens B, und von meinen (Unternehmen A) Segmenten kauften auch mein Produkt „Erstklassige Papiertücher“, von welchen ich weiß, dass sie in den USA oder in Kanada leben, und welche gemäß dem Unternehmen B auch Animationsfans sind, wo es wenigstens zwei Kunden in jeder resultierenden Gruppe gibt?
  • Unter Verwendung der Kundendaten 602 des Unternehmens A, der Querverweistabelle 618 und der Verkaufsdaten 802 kann die Abfrage eine Zwischentabelle 812 („MeineDaten1“) erzeugen. Die Zwischentabelle 812 kann bei diesem Beispiel anonymisierte Kundeninformation des Unternehmens A für Kunden enthalten, die „Erstklassige Papiertücher“ gekauft haben und die in den USA oder in Kanada leben, die sicher mit übereinstimmenden anonymisierten Kunden des Unternehmens B verbunden sind (die als „Dummy“ übereinstimmende Konten enthalten können oder nicht, wie es oben beschrieben ist). Eine sichere Abfrageanforderung 814 kann auch erzeugt werden, um sie zum Unternehmen B zu senden. Die sichere Abfrageanforderung 814 kann das Unternehmen B auffordern, den verbleibenden Teilbereich der Abfrage auszuführen und die endgültigen Ergebnisse zurückzusenden. Zum Beispiel kann die sichere Abfrageanforderung 814 eine Anforderungs-ID, Filter für das Unternehmen B zur Anwendung („auswählen_c“ und „wo_c“) und ein Ausgabeformat für die Endergebnisse („Ergebnis_Tabelle“) enthalten. Die sichere Abfrageanforderung 814 kann in der Form einer Anforderungstabelle (wie es gezeigt ist) bereitgestellt werden oder kann eine andere Art von Aufruf zu einer Fernprozedur sein, wie beispielsweise eine SQL-Anweisung. Die Zwischentabelle 812 und die sichere Abfrageanforderung 814 können mit dem Konto B unter Verwendung einer sicheren Abfrageanforderungsteilung 816 geteilt werden.
  • Als Nächstes kann das Konto B den verbleibenden Teilbereich der ursprünglichen Abfrage abschließen. Beim Konto B kann eine Kopie der Zwischentabelle 818 gespeichert sein. Die sichere Abfrageanforderung 814 kann durch Funktionen eines Streams bei einer Anfrage 820 und einer Aufgabe bei einer neuen Anforderung 822 empfangen werden. Die sichere Abfrage kann dann von einer eingeschränkten Abfrageprozedurfunktion 824 ausgeführt werden. Diese Funktion kann Daten aus einer Vielfalt von Quellen verwenden, wie beispielsweise der Kopie der Zwischentabelle 818, der Querverweistabelle 620, den Überwachungsdaten 804 und den für eine sichere Abfrage nutzbaren Daten 808, um die Abfrage auszuführen. Bei diesem Beispiel kann die eingeschränkte Abfrageprozedurfunktion 824 in der Zwischentabelle 818 identifizierte Kunden von denjenigen filtern, die eines der Programme des Unternehmens B angeschaut haben und Animationsfans sind, und die Funktion kann die Ergebnisse nach dem Programm und Segmenten des Unternehmens A gruppieren, wie es in einem Abfragestatus 826 gezeigt ist. Die Ergebnisse können erzeugt und zu einer Zwischenergebnistabelle 828 ausgegeben werden. Als nächstes kann der letzte Teil der Abfrage durchgeführt werden: Ergebnisse mit weniger als zwei Kunden in jeder resultierenden Gruppe herausfiltern (z.B. eine minimale Schwelle). Bei dem in 8A-8C gezeigten Beispiel hatte die Gruppe für „Film B“ und ein bestimmtes Segment des Unternehmens A nur ein Ergebnis, so dass es entfernt wurde. Die endgültigen Ergebnisse können dann mit dem Konto A geteilt werden, indem eine sichere Abfrageergebnisteilungsfunktion 830 verwendet wird. Die Ergebnisse im Konto A können als Endergebnistabelle 832 („Erg1“) bereitgestellt werden, die die Übereinstimmungen der nach den zwei Programmen gruppierten Abfrage zeigt.
  • 9 stellt eine schematische Darstellung einer Maschine 900 in der Form eines Computersystems dar, innerhalb von welchem eine Gruppe von Anweisungen ausgeführt werden kann, zum Veranlassen, dass die Maschine 900 irgendeine oder mehrere der hierin diskutieren Methoden durchführt, gemäß einer beispielhaften Ausführungsform. Spezifisch zeigt 9 eine schematische Darstellung der Maschine 900 in der beispielhaften Form eines Computersystems, innerhalb von welchem Anweisungen 916 (z.B. Software, ein Programm, eine Anwendung, ein Applet, eine App oder ein anderer ausführbarer Code) zum Veranlassen, dass die Maschine 900 irgendeine oder mehrere der hierin diskutierten Methoden durchführt, ausgeführt werden können. Die Anweisungen 916 können zum Beispiel veranlassen, dass die Maschine 900 irgendeine oder mehrere Operationen von irgendeinem oder mehreren der hierin beschriebenen Verfahren ausführt. Als ein weiteres Beispiel können die Anweisungen 916 veranlassen, dass die Maschine 900 Teilbereiche der hierin beschriebenen Datenflüsse implementiert. Auf diese Weise transformieren die Anweisungen 916 eine allgemeine, nicht programmierte Maschine in eine bestimmte Maschine 900 (z.B. die entfernte Computing- bzw. Computervorrichtung 106, das Zugriffsmanagementsystem 110, den Computing-Service-Manager 112, die Ausführungsplattform 114, das Zugriffsmanagementsystem 118, den Web-Proxy 120, eine entfernte Computing- bzw. Computervorrichtung 106), die speziell konfiguriert ist, um irgendeine der beschriebenen und dargestellten Funktionen auf die hierin beschriebene Weise auszuführen.
  • Bei alternativen Ausführungsformen arbeitet die Maschine 900 als alleinstehende Vorrichtung oder sie kann mit anderen Maschinen gekoppelt (z.B. vernetzt) sein. Bei einer vernetzten Verwendung kann die Maschine 900 in der Funktion einer Server-Maschine oder einer Client-Maschine in einer Server-Client-Netzwerkumgebung oder als Peer-Maschine in einer Peer-zu-Peer-(oder verteilten)Netzwerkumgebung arbeiten. Die Maschine 900 kann, ist aber nicht beschränkt darauf, einen Servercomputer, einen Client-Computer, einen Personalcomputer (PC), einen Tablet-Computer, einen Laptop-Computer, ein Netbook, ein Smartphone, ein mobiles Gerät, einen Netzwerkrouter, einen Netzwerkschalter, eine Netzwerkbrücke oder irgendeine Maschine, die die Anweisungen 916 sequentiell oder auf andere Weise ausführen kann, die von der Maschine 900 vorzunehmende Aktionen spezifizieren, umfassen. Weiterhin soll, während nur eine einzige Maschine 900 dargestellt ist, der Ausdruck „Maschine“ auch derart genommen werden, dass er eine Sammlung von Maschinen 900 enthält, die einzeln oder gemeinsam die Anweisungen 916 ausführen, um irgendeine oder mehrere der hierin diskutierten Methoden durchzuführen.
  • Die Maschine 900 enthält Prozessoren 910, einen Speicher 930 und Eingabe-/Ausgabe-(I/O-)Komponenten 950, die konfiguriert sind, um miteinander zu kommunizieren, wie beispielsweise über einen Bus 902. Bei einer beispielhaften Ausführungsform können die Prozessoren 910 (z.B. eine zentrale Verarbeitungseinheit (CPU), ein Prozessor mit reduziertem Befehlssatz (RISC), ein Prozessor mit komplexem Befehlssatz (CISC), eine Grafikverarbeitungseinheit (GPU), ein digitaler Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), eine integrierte Funkfrequenz-Schaltung (RFIC), ein anderer Prozessor oder irgendeine geeignete Kombination davon) zum Beispiel einen Prozessor 912 und einen Prozessor 914 umfassen, die die Anweisungen 916 ausführen können. Es ist beabsichtigt, dass der Ausdruck „Prozessor“ Mehrkernprozessoren 910 enthält, die zwei oder mehr unabhängige Prozessoren (auf die manchmal auch als „Kerne“ Bezug genommen wird) umfassen können, die Anweisungen 916 gleichzeitig ausführen können. Obwohl 9 mehrere Prozessoren 910 zeigt, kann die Maschine 900 einen einzelnen Prozessor mit einem einzigen Kern, einen einzelnen Prozessor mit mehreren Kernen (z.B. einen Mehrkernprozessor), mehrere Prozessoren mit einem einzigen Kern, mehrere Prozessoren mit mehreren Kernen oder eine beliebige Kombination davon enthalten.
  • Der Speicher 930 kann einen Hauptspeicher 932, einen statischen Speicher 934 und eine Speichereinheit 936 enthalten, die alle für die Prozessoren 910 zugreifbar bzw. zugänglich sind, wie beispielsweise über den Bus 902. Der Hauptspeicher 932, der statische Speicher 934 und die Speichereinheit 936 speichern die Anweisungen 916, die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern. Die Anweisungen 916 können sich während ihrer Ausführung durch die Maschine 900 auch ganz oder teilweise innerhalb des Hauptspeichers 932, innerhalb des statischen Speichers 934, innerhalb der Speichereinheit 936, innerhalb von wenigstens einem der Prozessoren 910 (z.B. innerhalb des Cachespeichers des Prozessors) oder irgendeiner geeigneten Kombination davon befinden.
  • Die I/O-Komponenten 950 enthalten Komponenten, um eine Eingabe zu empfangen, eine Ausgabe zur Verfügung zu stellen, eine Ausgabe zu erzeugen, Information zu übertragen, Information auszutauschen, Messungen zu erfassen, und so weiter. Die spezifischen I/O-Komponenten 950, die in einer bestimmten Maschine 900 enthalten sind, werden vom Typ einer Maschine abhängen. Zum Beispiel werden portierbare bzw. tragbare Maschinen, wie beispielsweise Mobiltelefone, wahrscheinlich eine Berührungseingabevorrichtung oder andere solche Eingabemechanismen enthalten, während eine monitorlose Servermaschine wahrscheinlich keine solche Berührungseingabevorrichtung enthalten wird. Es wird eingesehen werden, dass die I/O-Komponenten 950 viele andere Komponenten enthalten können, die nicht in 9 gezeigt sind. Die I/O-Komponenten 950 sind lediglich zum Vereinfachen der folgenden Diskussion nach Funktionalität gruppiert und die Gruppierung ist in keiner Weise beschränkend. Bei verschiedenen beispielhaften Ausführungsformen können die I/O-Komponenten 950 Ausgabekomponenten 952 und Eingabekomponenten 954 enthalten. Die Ausgabekomponenten 952 können visuelle Komponenten (z.B. eine Anzeige wie einen Plasmabildschirm (PDP), eine Leuchtdioden-(LED-)Anzeige, eine Flüssigkristallanzeige (LCD), einen Projektor oder eine Kathodenstrahlröhre (CRT)), akustische Komponenten (z.B. Lautsprecher), andere Signalgeneratoren und so weiter enthalten. Die Eingabekomponenten 954 können alphanumerische Eingabekomponenten (z.B. eine Tastatur, einen Berührungsbildschirm, der konfiguriert ist, um eine alphanumerische Eingabe zu empfangen, eine fotooptische Tastatur oder andere alphanumerische Eingabekomponenten), punktbasierte Eingabekomponenten (z.B. eine Maus, 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.
  • Kommunikation kann unter Verwendung einer weiten Vielzahl von Technologien implementiert werden. Die I/O-Komponenten 950 können Kommunikationskomponenten 964 enthalten, die betreibbar sind, um die Maschine 900 mit einem Netzwerk 980 oder Vorrichtungen bzw. Geräten 970 über eine Kopplung 982 bzw. eine Kopplung 972 zu koppeln. Zum Beispiel können die Kommunikationskomponenten 964 eine Netzwerkschnittstellenkomponente oder eine andere geeignete Vorrichtung enthalten, um eine Schnittstelle mit dem Netzwerk 980 zu bilden. Bei weiteren Beispielen können die Kommunikationskomponenten 964 kabelgebundene bzw. verdrahtete Kommunikationskomponenten, drahtlose Kommunikationskomponenten, zellulare Kommunikationskomponenten und andere Kommunikationskomponenten enthalten, um Kommunikation über andere Modalitäten zur Verfügung zu stellen. Die Vorrichtungen bzw. Geräte 970 können eine andere Maschine oder irgendeine einer Vielzahl von peripheren Vorrichtungen bzw. Peripheriegeräten (z.B. ein Peripheriegerät, das über einen universellen seriellen Bus (USB) gekoppelt ist) sein. Zum Beispiel kann, wie es oben angemerkt ist, die Maschine 900 irgendetwas von der entfernten Computingvorrichtung 106, dem Zugriffsmanagementsystem 110, dem Computing-Service-Manager 112, der Ausführungsplattform 114, dem Zugriffsmanagementsystem 118, dem Web-Proxy 120 entsprechen und die Vorrichtungen 970 können irgendwelche anderen dieser Systeme und Vorrichtungen bzw. Geräte enthalten.
  • Die verschiedenen Speicher (z.B. 930, 932, 934 und/oder ein Speicher des Prozessors (der Prozessoren) 910 und/oder die Speichereinheit 936) können einen oder mehrere Sätze von Anweisungen 916 und Datenstrukturen (z.B. Software) speichern, die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpert oder durch diese genutzt werden. Diese Anweisungen 916 veranlassen dann, wenn sie von dem (den) Prozessor(en) 910 ausgeführt werden, verschiedene Operationen, um die offenbarten Ausführungsformen zu implementieren.
  • Wie sie hierin verwendet sind, bedeuten die Ausdrücke „Maschinenspeichermedium“, „Vorrichtungsspeichermedium“ und „Computerspeichermedium“ dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke beziehen sich auf eine einzelne oder mehrere Speichervorrichtungen und/oder Medien (z.B. eine zentrale oder verteilte Datenbank und/oder assoziierte Caches und Server), die ausführbare Anweisungen und/oder Daten speichern. Die Ausdrücke sollen demgemäß genommen werden, um Festkörperspeicher und optische und magnetische Medien, einschließlich eines Speichers intern oder extern von Prozessoren, zu enthalten, aber nicht um darauf beschränkt zu sein. Spezifische Beispiele für Maschinenspeichermedien, Computerspeichermedien und/oder Vorrichtungsspeichermedien enthalten einen nichtflüchtigen Speicher, einschließlich, anhand eines Beispiels, Halbleiterspeichervorrichtungen, wie z.B. eines löschbaren programmierbaren Nurlesespeichers (EPROM), eines elektrisch löschbaren programmierbaren Nurlesespeichers (EEPROM), von feldprogrammierbaren Gate-Arrays (FPGAs) und Flashspeichervorrichtungen; Magnetplatten wie beispielsweise interne Festplatten und entfernbare Scheiben bzw. Wechseldatenträger; magneto-optische Scheiben; und CD-ROM- und DVD-ROM-Scheiben. 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 nachstehend diskutierten Ausdruck „Signalmedium“ abgedeckt sind.
  • Bei verschiedenen beispielhaften Ausführungsformen kann ein oder können mehrere Teilbereiche des Netzwerks 980 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 das Netzwerk 980 oder ein Teilbereich des Netzwerks 980 ein drahtloses oder zellulares Netzwerk enthalten und die Kopplung 982 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 982 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), Hochgeschwindigkeits-Paketzugang (HSPA), weltweite Interoperabilität für Mikrowellenzugang (WiMAX), Langzeitentwicklungs-(LTE-)Standard, andere, die durch verschiedene Standardeinstellungsorganisationen definiert sind, andere Weitbereichs- bzw. Langstreckenprotokolle oder andere Datenübertragungstechnologie.
  • Die Anweisungen 916 können über das Netzwerk 980 unter Verwendung eines Übertragungsmedium über eine Netzwerkschnittstellenvorrichtung (z.B. eine in den Kommunikationskomponenten 964 enthaltene Netzwerkschnittstellenkomponente) übertragen bzw. gesendet oder empfangen werden und unter Nutzung von irgendeinem einer Anzahl von wohlbekannten Übertragungsprotokollen (z.B. Hypertext-Übertragungsprotokoll (HTTP)). Gleichermaßen können die Anweisungen 916 unter Verwendung eines Übertragungsmediums über die Kopplung 972 (z.B. Peer-zu-Peer-Kopplung) mit den Vorrichtungen bzw. Geräten 970 übertragen bzw. gesendet oder empfangen werden. Die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ sollen genommen werden, um irgendein immaterielles Medium zu enthalten, das die Anweisungen 916 zur Ausführung durch die Maschine 900 speichern, codieren oder tragen kann, und um digitale oder analoge Kommunikationssignale oder andere immaterielle Medien zu enthalten, um eine Kommunikation von solcher Software zu erleichtern bzw. zu ermöglichen. Somit sollen die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ 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 solche Weise eingestellt oder verändert hat, um Information im Signal zu codieren.
  • Die Ausdrücke „maschinenlesbares Medium“, „computerlesbares Medium“ und „vorrichtungslesbares Medium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke sind definiert, um sowohl Maschinenspeichermedien als auch Übertragungsmedien zu enthalten. Somit enthalten die Ausdrücke sowohl Speichervorrichtungen/-medien als auch Trägerwellen/modulierte Datensignale.
  • Die verschiedenen Operationen der hierin beschriebenen beispielhaften Verfahren können wenigstens teilweise durch einen oder mehrere Prozessoren durchgeführt werden, die temporär (z.B. durch Software) oder dauerhaft konfiguriert sind, um die relevanten Operationen durchzuführen. Gleichermaßen können die hierin beschriebenen Verfahren wenigstens teilweise prozessorimplementiert sein. Zum Beispiel können wenigstens einige Operationen der hierin beschriebenen Verfahren durch einen oder mehrere Prozessoren durchgeführt werden. Die Leistungsfähigkeit von bestimmten der Operationen kann auf den einen oder die mehreren Prozessoren verteilt werden, die sich nicht nur innerhalb einer einzelnen Maschine befinden, sondern auch quer über eine Anzahl von Maschinen genutzt werden. Bei einigen beispielhaften Ausführungsformen kann der Prozessor oder können die Prozessoren an einer einzigen Stelle angeordnet sein (z.B. in einer häuslichen Umgebung, einer Büroumgebung oder einer Serverfarm), während die Prozessoren bei anderen Ausführungsformen quer über eine Anzahl von Stellen bzw. Standorten verteilt sein können.
  • Obwohl die Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen beschrieben worden sind, wird es offensichtlich werden, dass verschiedene Modifikationen und Änderungen an diesen Ausführungsformen vorgenommen werden können, ohne von dem breiteren Schutzumfang des erfinderischen Gegenstands abzuweichen. Demgemäß sind die Spezifikation und die Zeichnungen eher in einem illustrativen als in einem beschränkenden Sinn anzusehen. Die beigefügten Zeichnungen, die einen Teil hiervon bilden, zeigen, zur Veranschaulichung und nicht zur Beschränkung, spezifische Ausführungsformen, bei welchen der Gegenstand ausgeführt werden kann. Die dargestellten Ausführungsformen sind in ausreichendem Detail beschrieben, um Fachleuten auf dem Gebiet zu ermöglichen, die hierin offenbarten Lehren auszuführen. Andere Ausführungsformen können verwendet und daraus abgeleitet werden, so dass strukturelle und logische Substitutionen und Änderungen vorgenommen werden können, ohne vom Schutzbereich dieser Offenbarung abzuweichen. Diese detaillierte Beschreibung ist daher nicht in einem beschränkenden Sinn zu nehmen, und der Schutzumfang von verschiedenen Ausführungsformen wird nur durch die beigefügten Ansprüche definiert, zusammen mit dem gesamten Bereich von Äquivalenten, auf welche solche Ansprüche eine Anspruchsberechtigung haben.
  • Auf solche Ausführungsformen des erfinderischen Gegenstands kann hierin einzeln und/oder kollektiv lediglich der Annehmlichkeit halber und ohne die Absicht, den Schutzumfang dieser Anmeldung auf eine einzelne Erfindung oder ein erfinderisches Konzept gewollt zu beschränken, durch den Ausdruck „Erfindung“ Bezug genommen werden, wenn tatsächlich mehr als eine offenbart ist. Somit sollte, obwohl hierin spezifische Ausführungsformen dargestellt und beschrieben worden sind, eingesehen werden, dass irgendeine Anordnung, für die kalkuliert ist, dass sie den gleichen Zweck erreicht, für die gezeigten spezifischen Ausführungsformen substituiert werden kann. Diese Offenbarung soll irgendwelche und alle Anpassungen oder Variationen von verschiedenen Ausführungsformen abdecken. Kombinationen der obigen Ausführungsformen und andere Ausführungsformen, die hierin nicht spezifisch beschrieben sind, werden Fachleuten auf dem Gebiet beim Durchsehen bzw. Überprüfen der obigen Beschreibung offensichtlich werden.
  • In diesem Dokument werden die Ausdrücke „ein“ oder „eine“ verwendet, wie es in Patentdokumenten üblich ist, um einen (eine) oder mehr als einen (eine) zu enthalten, unabhängig von irgendwelchen anderen Fällen oder Verwendungen von „wenigstens einer“ oder „einer oder mehrere“. In diesem Dokument wird der Ausdruck „oder“ verwendet, um sich auf ein nicht ausschließliches oder zu beziehen, so dass „A oder B“ „A, aber nicht B“, „B, aber nicht A“ und „A und B“ enthält, solange nichts anderes angegeben ist. In den beigefügten Ansprüchen werden die Ausdrücke „einschließlich“ und „in welchen“ als Äquivalente in einfachem Englisch der jeweiligen Ausdrücke „umfassend“ und „wobei“ verwendet. Ebenso sind in den folgenden Ansprüchen die Ausdrücke „enthaltend“ und „umfassend“ mit offenem Ende; das bedeutet, dass ein System, eine Vorrichtung, ein Artikel oder ein Verfahren, das, die oder der Elemente zusätzlich zu denjenigen enthält, die nach einem solchen Ausdruck in einem Anspruch aufgelistet sind, derart angesehen wird, dass es, sie oder er in den Schutzbereich dieses Anspruchs fällt.
  • Die folgenden nummerierten Beispiele sind Ausführungsformen:
    • Beispiel 1. Verfahren, umfassend: Bereitstellen von Daten einer ersten Partei in einem ersten Konto; Bereitstellen von Daten einer zweiten Partei in einem zweiten Konto; Ausführen, durch einen Prozessor, einer sicheren Funktion unter Verwendung der Daten der ersten Partei, um ein erstes Ergebnis zu erzeugen, einschließlich eines Erstellens von Links bzw. Verbindungen zu den Daten der ersten Partei und eines Anonymisierens von Identifikationsinformation in den Daten der ersten Partei; gemeinsames Nutzen bzw. Teilen der sicheren Funktion mit dem zweiten Konto; Ausführen der sicheren Funktion unter Verwendung der Daten der zweiten Partei, um ein zweites Ergebnis zu erzeugen, und Be- bzw. Einschränken des zweiten Kontos bezüglich eines Zugriffs auf die Daten der ersten Partei; und Erzeugen einer Querverweistabelle mit dem ersten und dem zweiten Ergebnis, wobei die Querverweistabelle anonymisierte Übereinstimmungen des ersten und des zweiten Ergebnisses bereitstellt.
    • Beispiel 2. Verfahren nach Beispiel 1, weiterhin umfassend: Be- bzw. Einschränken des zweiten Kontos bezüglich eines Zugriffs auf einen Code der sicheren Funktion.
    • Beispiel 3. Verfahren nach einem der Beispiele 1-2, weiterhin umfassend: Be- bzw. Einschränken des zweiten Kontos bezüglich Protokollen in Bezug auf eine Ausführung des ersten Teilbereichs der sicheren Funktion.
    • Beispiel 4. Verfahren nach einem der Beispiele 1-3, weiter umfassend: Erzeugen von Dummy-Übereinstimmungsinformation im zweiten Ergebnis für einen Fall ohne Übereinstimmung.
    • Beispiel 5. Verfahren nach einem der Beispiele 1-4, weiter umfassend: Erzeugen eines zusammenfassenden Berichts über die anonymisierten Übereinstimmungen.
    • Beispiel 6. Verfahren nach einem der Beispiele 1-5, weiter umfassend: Be- bzw. Einschränken eines Zugriffs auf die Anzahl von Übereinstimmungen, wenn die Anzahl von Übereinstimmungen unter einer minimalen Schwelle liegt.
    • Beispiel 7. Verfahren nach einem der Beispiele 1-6, wobei ein Bereitstellen der Daten der ersten Partei folgendes enthält: Hochladen einer Ladedatei zu einem sicheren Cloud-Speicherort; Speichern von Daten aus der Ladedatei in ein Enklavenkonto; und Einstellen bzw. Festlegen von Zugriffsbeschränkungen für die Daten aus der Ladedatei basierend auf Steuerungsinformation.
    • Beispiel 8. Verfahren nach einem der Beispiele 1-7, weiterhin umfassend: Empfangen einer Abfrageanforderung; basierend wenigstens auf den Daten der ersten Partei und der Querverweistabelle Ausführen eines ersten Teilbereichs der Abfrageanforderung; Erzeugen einer Zwischentabelle basierend auf einem Ausführen des ersten Teilbereichs der Abfrageanforderung; Erzeugen einer sicheren Abfrageanforderung, einschließlich Anweisungen in Bezug auf ein Ausführen eines zweiten Teilbereichs der Abfrageanforderung; und Teilen der sicheren Abfrageanforderung und der Zwischentabelle mit dem zweiten Konto.
    • Beispiel 9. Verfahren nach einem der Beispiele 1-8, weiterhin umfassend: beim zweiten Konto Ausführen der sicheren Abfrageanforderung und Verknüpfen von Ergebnissen der sicheren Abfrageanforderungen mit Information aus der Zwischentabelle, um endgültige Ergebnisse der Abfrageanforderung zu erzeugen.
    • Beispiel 10. System, umfassend: einen oder mehrere Prozessoren einer Maschine; und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die eines der beispielhaften Verfahren 1 bis 9 implementieren.
    • Beispiel 11. Maschinenlesbare Speichervorrichtung, die Anweisungen verkörpert, die dann, wenn sie durch eine Maschine ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die eines der beispielhaften Verfahren 1 bis 9 implementieren.
  • Bei einem weiteren Beispiel können Ausführungsformen einen Data-Clean-Room bzw. Daten-Reinraum bereitstellen, der eine sichere Datenanalyse über mehrere Konten hinweg ohne die Verwendung dritter Parteien zulässt. Jedes Konto kann mit einem anderen Unternehmen oder einer anderen Partei assoziiert sein. Der Data-Clean-Room kann Sicherheitsfunktionen zum Schutz sensibler Information bereitstellen. Zum Beispiel kann der Data-Clean-Room einen Zugriff auf Daten in anderen Konten einschränken. Der Data-Clean-Room kann auch einschränken, welche Daten bei der Analyse verwendet werden können, und kann die Ausgabe einschränken. Die Überlappungsdaten können anonymisiert werden, um zu verhindern, dass sensible Information offengelegt wird.
  • 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 16/944929 [0001]
    • US 16814875 [0047]
    • US 16/368339 [0050]
    • US 16746673 [0060]

Claims (24)

  1. Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einem oder mehrere Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren Operationen durchführt oder durchführen, wobei die Operationen folgendes umfassen: Bereitstellen von Daten einer ersten Partei in einem ersten Konto in einem netzwerkbasierten Datensystem; Bereitstellen von Daten einer zweiten Partei in einem zweiten Konto im netzwerkbasierten Datensystem; Ausführen, durch einen Prozessor, einer sicheren Funktion unter Verwendung der Daten der ersten Partei, um ein erstes Ergebnis zu erzeugen, einschließlich eines Erstellens von Verknüpfungen zu den Daten der ersten Partei und eines Anonymisierens von Identifikationsinformation in den Daten der ersten Partei; Teilen der sicheren Funktion mit dem zweiten Konto; Ausführen der sicheren Funktion unter Verwendung der Daten der zweiten Partei, um ein zweites Ergebnis zu erzeugen, und Beschränken des zweiten Kontos diesbezüglich, auf die Daten der ersten Partei zuzugreifen; Erzeugen von Dummy-Übereinstimmungsinformation im zweiten Ergebnis für einen Fall keiner Übereinstimmung; und Erzeugen einer Querverweistabelle mit dem ersten und dem zweiten Ergebnis, wobei die Querverweistabelle anonymisierte Übereinstimmungen des ersten und des zweiten Ergebnisses liefert, wobei die Querverweistabelle über das netzwerkbasierte Datensystem zum Durchführen einer Analyse von überlappenden Daten der ersten Partei und der zweiten Partei zugänglich ist.
  2. Computerprogramm nach Anspruch 1, wobei die Operationen weiterhin folgendes umfassen: Beschränken des zweiten Kontos diesbezüglich, auf einen Code der sicheren Funktion zuzugreifen.
  3. Computerprogramm nach Anspruch 2, wobei die Operationen weiterhin folgendes umfassen: Beschränken des zweiten Kontos von Protokollen in Bezug auf eine Ausführung eines ersten Teilbereichs der sicheren Funktion.
  4. Computerprogramm nach Anspruch 1, wobei die Operationen weiterhin folgendes umfassen: Erzeugen eines zusammenfassenden Berichts über die anonymisierten Übereinstimmungen.
  5. Computerprogramm nach Anspruch 4, wobei die Operationen weiterhin folgendes umfassen: Beschränken eines Zugriffs auf die Anzahl von anonymisierten Übereinstimmungen, wenn die Anzahl von anonymisierten Übereinstimmungen unter einer minimalen Schwelle liegt.
  6. Computerprogramm nach Anspruch 1, wobei das Bereitstellen der Daten der ersten Partei folgendes umfasst: Hochladen einer Ladedatei zu einem sicheren Cloud-Speicherort; Speichern von Daten aus der Ladedatei in ein Enklavenkonto; und Einstellen von Zugriffsbeschränkungen für die Daten aus der Ladedatei basierend auf Steuerungsinformation.
  7. Computerprogramm nach Anspruch 1, wobei die Operationen weiterhin folgendes umfassen: Empfangen einer Abfrageanforderung; basierend wenigstens auf den Daten der ersten Partei und der Querverweistabelle Ausführen eines ersten Teilbereichs der Abfrageanforderung; Erzeugen einer Zwischentabelle basierend auf einem Ausführen des ersten Teilbereichs der Abfrageanforderung; Erzeugen einer sicheren Abfrageanforderung, einschließlich Anweisungen in Bezug auf ein Ausführen eines zweiten Teilbereichs der Abfrageanforderung; und Teilen der sicheren Abfrageanforderung und der Zwischentabelle mit dem zweiten Konto.
  8. Computerprogramm nach Anspruch 7, wobei die Operationen weiterhin folgendes umfassen: beim zweiten Konto, Ausführen der sicheren Abfrageanforderung und Verbinden von Ergebnissen der sicheren Abfrageanforderungen mit Information aus der Zwischentabelle, um endgültige Ergebnisse der Abfrageanforderung zu erzeugen.
  9. Maschinenspeichermedium, das Anweisungen verkörpert, die dann, wenn sie durch eine Maschine ausgeführt werden, veranlassen, dass die Maschine Operationen durchzuführt, die folgendes umfassen: Bereitstellen von Daten einer ersten Partei in einem ersten Konto in einem netzwerkbasierten Datensystem; Bereitstellen von Daten einer zweiten Partei in einem zweiten Konto im netzwerkbasierten Datensystem; Ausführen einer sicheren Funktion unter Verwendung der Daten der ersten Partei, um ein erstes Ergebnis zu erzeugen, einschließlich eines Erstellens von Links bzw. Verbindungen zu den Daten der ersten Partei und eines Anonymisierens von Identifikationsinformation in den Daten der ersten Partei; Teilen der sicheren Funktion mit dem zweiten Konto; Ausführen der sicheren Funktion unter Verwendung der Daten der zweiten Partei, um ein zweites Ergebnis zu erzeugen, und Beschränken des zweiten Kontos diesbezüglich, auf die Daten der ersten Partei zuzugreifen; Erzeugen von Dummy-Übereinstimmungsinformation im zweiten Ergebnis für einen Fall keiner Übereinstimmung; und Erzeugen einer Querverweistabelle mit dem ersten und dem zweiten Ergebnis, wobei die Querverweistabelle anonymisierte Übereinstimmungen des ersten und des zweiten Ergebnisses bereitstellt, wobei die Querverweistabelle über das netzwerkbasierte Datensystem zum Durchführe einer Analyse von überlappenden Daten der ersten Partei und der zweiten Partei zugänglich ist.
  10. Maschinenspeichermedium nach Anspruch 9, weiterhin umfassend: Beschränken des zweiten Kontos diesbezüglich, auf einen Code der sicheren Funktion zuzugreifen.
  11. Maschinenspeichermedium nach Anspruch 10, weiterhin umfassend: Beschränken des zweiten Kontos von Protokollen in Bezug auf eine Ausführung eines ersten Teilbereichs der sicheren Funktion.
  12. Maschinenspeichermedium nach Anspruch 9, weiterhin umfassend: Erzeugen eines zusammenfassenden Berichts über die anonymisierten Übereinstimmungen.
  13. Maschinenspeichermedium nach Anspruch 12, weiterhin umfassend: Beschränken eines Zugriffs auf die Anzahl von anonymisierten Übereinstimmungen, wenn die Anzahl von anonymisierten Übereinstimmungen unter einer minimalen Schwelle liegt.
  14. Maschinenspeichermedium nach Anspruch 9, wobei das Bereitstellen der Daten der ersten Partei folgendes umfasst: Hochladen einer Ladedatei zu einem sicheren Cloud-Speicherort; Speichern von Daten aus der Ladedatei in ein Enklavenkonto; und Einstellen von Zugriffsbeschränkungen für die Daten aus der Ladedatei basierend auf Steuerungsinformation.
  15. Maschinenspeichermedium nach Anspruch 9, weiterhin umfassend: Empfangen einer Abfrageanforderung; basierend wenigstens auf den Daten der ersten Partei und der Querverweistabelle Ausführen eines ersten Teilbereichs der Abfrageanforderung; Erzeugen einer Zwischentabelle basierend auf einem Ausführen des ersten Teilbereichs der Abfrageanforderung; Erzeugen einer sicheren Abfrageanforderung, einschließlich Anweisungen in Bezug auf ein Ausführen eines zweiten Teilbereichs der Abfrageanforderung; und Teilen der sicheren Abfrageanforderung und der Zwischentabelle mit dem zweiten Konto.
  16. Maschinenspeichermedium nach Anspruch 15, weiterhin umfassend: beim zweiten Konto, Ausführen der sicheren Abfrageanforderung und Verbinden von Ergebnissen der sicheren Abfrageanforderungen mit Information aus der Zwischentabelle, um endgültige Ergebnisse der Abfrageanforderung zu erzeugen.
  17. System, umfassend: einen oder mehrere Prozessoren einer Maschine; und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die folgendes umfassen: Bereitstellen von Daten einer ersten Partei in einem ersten Konto in einem netzwerkbasierten Datensystem; Bereitstellen von Daten einer zweiten Partei in einem zweiten Konto im netzwerkbasierten Datensystem; Ausführen einer sicheren Funktion unter Verwendung der Daten der ersten Partei, um ein erstes Ergebnis zu erzeugen, einschließlich eines Erstellens von Links bzw. Verbindungen zu den Daten der ersten Partei und eines Anonymisierens von Identifikationsinformation in den Daten der ersten Partei; Teilen der sicheren Funktion mit dem zweiten Konto; Ausführen der sicheren Funktion unter Verwendung der Daten der zweiten Partei, um eine zweites Ergebnis zu erzeugen, und Beschränken des zweiten Kontos diesbezüglich, auf die Daten der ersten Partei zuzugreifen; Erzeugen von Dummy-Übereinstimmungsinformation im zweiten Ergebnis für einen Fall keiner Übereinstimmung; und Erzeugen einer Querverweistabelle mit dem ersten und dem zweiten Ergebnis, wobei die Querverweistabelle anonymisierte Übereinstimmungen des ersten und des zweiten Ergebnisses bereitstellt, wobei die Querverweistabelle über das netzwerkbasierte Datensystem zum Durchführen einer Analyse von überlappenden Daten der ersten Partei und der zweiten Partei zugänglich ist.
  18. System nach Anspruch 17, wobei die Operationen weiterhin folgendes umfassen: Beschränken des zweiten Kontos diesbezüglich, auf einen Code der sicheren Funktion zuzugreifen.
  19. System nach Anspruch 18, wobei die Operationen weiterhin folgendes umfassen: Beschränken des zweiten Kontos von Protokollen in Bezug auf eine Ausführung eines ersten Teilbereichs der sicheren Funktion.
  20. System nach Anspruch 17, wobei die Operationen weiterhin folgendes umfassen: Erzeugen eines zusammenfassenden Berichts über die anonymisierten Übereinstimmungen.
  21. System nach Anspruch 20, wobei die Operationen weiterhin folgendes umfassen: Beschränken eines Zugriffs auf die Anzahl von anonymisierten Übereinstimmungen, wenn die Anzahl von anonymisierten Übereinstimmungen unter einer minimalen Schwelle liegt.
  22. System nach Anspruch 17, wobei das Bereitstellen der Daten der ersten Partei folgendes umfasst: Hochladen einer Ladedatei zu einem sicheren Cloud-Speicherort; Speichern von Daten aus der Ladedatei in ein Enklavenkonto; und Einstellen von Zugriffsbeschränkungen für die Daten aus der Ladedatei basierend auf Steuerungsinformation.
  23. System nach Anspruch 17, weiterhin umfassend: Empfangen einer Abfrageanforderung; basierend wenigstens auf den Daten der ersten Partei und der Querverweistabelle Ausführen eines ersten Teilbereichs der Abfrageanforderung; Erzeugen einer Zwischentabelle basierend auf einem Ausführen des ersten Teilbereichs der Abfrageanforderung; Erzeugen einer sicheren Abfrageanforderung, einschließlich Anweisungen in Bezug auf ein Ausführen eines zweiten Teilbereichs der Abfrageanforderung; und Teilen der sicheren Abfrageanforderung und der Zwischentabelle mit dem zweiten Konto.
  24. System nach Anspruch 23, weiterhin umfassend: beim zweiten Konto, Ausführen der sicheren Abfrageanforderung und Verbinden von Ergebnissen der sicheren Abfrageanforderungen mit Information aus der Zwischentabelle, um endgültige Ergebnisse der Abfrageanforderung zu erzeugen.
DE202021004036.6U 2020-07-31 2021-06-30 Data Clean Room Active DE202021004036U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/944,929 2020-07-31
US16/944,929 US10970419B1 (en) 2020-07-31 2020-07-31 Data clean room

Publications (1)

Publication Number Publication Date
DE202021004036U1 true DE202021004036U1 (de) 2022-06-27

Family

ID=75275429

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202021004036.6U Active DE202021004036U1 (de) 2020-07-31 2021-06-30 Data Clean Room

Country Status (6)

Country Link
US (4) US10970419B1 (de)
EP (1) EP4010835A4 (de)
JP (1) JP7354447B2 (de)
CN (1) CN114303146A (de)
DE (1) DE202021004036U1 (de)
WO (1) WO2022026107A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301464B2 (en) 2020-01-14 2022-04-12 Videoamp, Inc. Electronic multi-tenant data management system
US10970419B1 (en) 2020-07-31 2021-04-06 Snowflake Inc. Data clean room
WO2022226545A1 (en) * 2021-04-23 2022-10-27 Videoamp, Inc. Electronic multi-tenant data management systems and clean rooms
AU2022399453A1 (en) 2021-12-01 2024-05-16 Videoamp, Inc. Symmetric data clean room
US20230401200A1 (en) 2022-06-13 2023-12-14 Snowflake Inc. Data clean room using defined access via native applications
CN114817338A (zh) * 2022-06-28 2022-07-29 杭州湖畔网络技术有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392391B2 (en) * 2001-11-01 2008-06-24 International Business Machines Corporation System and method for secure configuration of sensitive web services
JP2010237811A (ja) 2009-03-30 2010-10-21 Nec Corp 個人情報管理システム及び個人情報管理方法
US9442980B1 (en) * 2010-04-21 2016-09-13 Stan Trepetin Mathematical method for performing homomorphic operations
US10936744B1 (en) * 2010-04-21 2021-03-02 Stanley Trepetin Mathematical method for performing homomorphic operations
JP5647448B2 (ja) 2010-07-08 2014-12-24 株式会社竹中工務店 多層階建築物の柱改修方法
JP5735485B2 (ja) * 2010-08-06 2015-06-17 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 匿名化情報共有装置および匿名化情報共有方法
US11228566B1 (en) * 2011-03-08 2022-01-18 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
EP2803010B1 (de) * 2012-01-11 2021-05-19 Intel Corporation Dokumentennotardienst auf basis von dateiordnern und clouds
JP6184665B2 (ja) 2012-07-03 2017-08-23 株式会社日立システムズ サービス提供方法及びサービス提供システム
US9563663B2 (en) * 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9201924B1 (en) * 2012-11-26 2015-12-01 Google Inc. Processing partially supported queries
US20140365363A1 (en) * 2013-06-07 2014-12-11 Prairie Cloudware, Inc Secure integrative vault of consumer payment instruments for use in payment processing system and method
US9137127B2 (en) * 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9485244B2 (en) * 2015-03-02 2016-11-01 Citrix Systems, Inc. Executing an operation over file repositories located in different authentication domains using a representational state transfer (REST)-compliant client
US10523637B2 (en) * 2015-07-22 2019-12-31 Paypal, Inc. Anonymous account security exchange
US10783142B2 (en) * 2015-10-23 2020-09-22 Oracle International Corporation Efficient data retrieval in staged use of in-memory cursor duration temporary tables
WO2017187207A1 (en) * 2016-04-29 2017-11-02 Privitar Limited Computer-implemented privacy engineering system and method
WO2017205679A1 (en) * 2016-05-25 2017-11-30 Atomite, Inc. System and method of efficient and secure federated mining of anonymized data
US11625662B2 (en) * 2016-09-22 2023-04-11 Qvinci Software, Llc Methods and apparatus for the manipulating and providing of anonymized data collected from a plurality of sources
US10885032B2 (en) * 2016-11-29 2021-01-05 Sap Se Query execution pipelining with shared states for query operators
US10614248B2 (en) * 2017-01-31 2020-04-07 Ca, Inc. Privacy preserving cross-organizational data sharing with anonymization filters
JP2019053456A (ja) 2017-09-14 2019-04-04 グローリー株式会社 ポイント管理システム、管理装置及びポイント管理方法
US10769148B1 (en) * 2017-09-25 2020-09-08 Amazon Technologies, Inc. Relocating data sharing operations for query processing
US11321330B1 (en) * 2018-06-26 2022-05-03 Amazon Technologies, Inc. Combining nested data operations for distributed query processing
US11102214B2 (en) * 2018-08-27 2021-08-24 Amazon Technologies, Inc. Directory access sharing across web services accounts
US11232445B2 (en) * 2018-08-30 2022-01-25 Bank Of America Corporation Intelligent dynamic authentication and event processing system
US11216435B2 (en) * 2018-09-24 2022-01-04 Salesforce.Com, Inc. Techniques and architectures for managing privacy information and permissions queries across disparate database tables
US10515106B1 (en) * 2018-10-01 2019-12-24 Infosum Limited Systems and methods for processing a database query
US20190147451A1 (en) * 2018-11-27 2019-05-16 BehavioSec Inc Collaborate Fraud Prevention
US11106673B2 (en) * 2018-12-04 2021-08-31 Sap Se Query plan sharing
KR20200092101A (ko) * 2019-01-24 2020-08-03 삼성전자주식회사 전자 장치 및 그 동작방법
US20200258605A1 (en) * 2019-02-07 2020-08-13 Elaine Blechman Electronic health records management using wireless communication
US11188670B2 (en) * 2019-03-28 2021-11-30 Snowflake Inc. Secure data joins in a multiple tenant database system
US11194805B2 (en) * 2019-06-10 2021-12-07 International Business Machines Corporation Optimization of database execution planning
US20210026986A1 (en) * 2019-07-25 2021-01-28 Pearson Education, Inc. Multi-country data pipeline that protects personally identifying information
US11301464B2 (en) * 2020-01-14 2022-04-12 Videoamp, Inc. Electronic multi-tenant data management system
US11687670B2 (en) * 2020-07-08 2023-06-27 Sap Se Correlating experience data and operations data without compromising anonymity
US10970419B1 (en) 2020-07-31 2021-04-06 Snowflake Inc. Data clean room

Also Published As

Publication number Publication date
CN114303146A (zh) 2022-04-08
JP7354447B2 (ja) 2023-10-02
JP2023502528A (ja) 2023-01-24
EP4010835A1 (de) 2022-06-15
US11809600B2 (en) 2023-11-07
US20230169212A1 (en) 2023-06-01
US20220035949A1 (en) 2022-02-03
US10970419B1 (en) 2021-04-06
WO2022026107A1 (en) 2022-02-03
US20240020416A1 (en) 2024-01-18
EP4010835A4 (de) 2023-08-09

Similar Documents

Publication Publication Date Title
DE202021004036U1 (de) Data Clean Room
DE202020005734U1 (de) Beschneiden von Indizes zur Verbesserung einer Verarbeitung von Datenbankabfragen
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE202020005700U1 (de) Aufrufen externer Funktionen aus einem Datenlager
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE202020005687U1 (de) Gemeinsame Datennutzung bzw. Datenteilung und materilisierte Ansichten in Datenbanken
DE202020005703U1 (de) Auf verteilten Metadaten basierendes Cluster-Computing
DE202018006561U1 (de) Gemeinsames Nutzen bzw. Teilen von Daten in einem mandantenfähigen Datenbanksystem
US20200311294A1 (en) System and Method for Inter-sharing Data Among Data Users, Computing Device and Computer-Readable Storage Medium
DE202015009784U1 (de) Ressourcenmanagementsysteme
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE202023101653U1 (de) Organisations- und cloudübergreifende automatisierte Datenpipelines
US11347886B1 (en) Secure multi-party encrypted identifier data sharing
US11468195B1 (en) Multiple cloud and region data clean rooms
DE202020005682U1 (de) Automatisierte erneute Abfrageversuche in einer Datenbankumgebung
DE102013100054B4 (de) Verlagern von zusammengehörigen Ressourcenpartitionen
US11487778B1 (en) Managed event tables in a database system
DE202021004328U1 (de) Mit Daten-Cloud verbundene Anwendungen
DE202021004340U1 (de) Beschränkte Sichten zum Steuern des Zugriffs auf Informationen in einem Datenbanksystem
US11169997B1 (en) Centralized data access tool implementing resource governance
US20230418699A1 (en) Data clean rooms using defined access
US20230409968A1 (en) Multi-party machine learning using a database cleanroom
DE202021004327U1 (de) Autoskalierung externer Funktionsanforderungen
DE202023102700U1 (de) Datenaufnahmereplizierung und Notfallwiederherstellung
DE202021102315U1 (de) Flexibles Computing

Legal Events

Date Code Title Description
R207 Utility model specification