Gemeinsamer Schreibzugriff auf Daten (Vorschau) - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Gemeinsamer Schreibzugriff auf Daten (Vorschau)

Sie können Datenbankobjekte sowohl für Lese- als auch für Schreibvorgänge in verschiedenen Amazon Redshift-Clustern oder Amazon Redshift Serverless-Arbeitsgruppen innerhalb derselben AWS-Konto, konto- und regionsübergreifend gemeinsam nutzen. Die Verfahren in diesem Thema zeigen, wie Sie die gemeinsame Nutzung von Daten einrichten, einschließlich Schreibberechtigungen. Sie können Berechtigungen wie SELECT, INSERT und UPDATE für verschiedene Tabellen und USAGE und CREATE für Schemas gewähren. Die Daten sind live und für alle Warehouses verfügbar, sobald eine Schreibtransaktion festgeschrieben wurde. Administratoren von Produzentenkonten können festlegen, ob bestimmte Namespaces oder Regionen schreibgeschützt sind oder ob sie Zugriff auf die Daten read-and-write haben.

In den folgenden Abschnitten wird gezeigt, wie die gemeinsame Nutzung von Daten konfiguriert wird. Die Prozeduren setzen voraus, dass Sie in einer Datenbank in einem bereitgestellten Cluster oder einer Amazon-Redshift-Serverless-Arbeitsgruppe arbeiten.

Datenfreigabe im schreibgeschützten Modus im Vergleich zur Freigabe von Daten für Lese- und Schreibvorgänge

Bisher waren Objekte in Datashares unter allen Umständen schreibgeschützt. Das Schreiben in ein Objekt in einem Datashare ist ein neues Feature. Objekte in Datashares sind nur schreibfähig, wenn ein Produzent dem Datashare ausdrücklich Schreibberechtigungen wie INSERT oder CREATE für Objekte gewährt. Für die kontenübergreifende gemeinsame Nutzung muss ein Hersteller außerdem die gemeinsame Nutzung von Daten für Schreibvorgänge autorisieren, und der Verbraucher muss bestimmte Cluster und Arbeitsgruppen für Schreibvorgänge zuordnen. Einzelheiten finden Sie in den nachfolgenden Abschnitten dieses Themas.

Berechtigungen, die Sie für Datenfreigaben gewähren können (Vorschau)

Verschiedene Objekttypen und verschiedene Berechtigungen, die Sie ihnen in einem Datenaustauschkontext gewähren können.

Schemata:

  • USAGE

  • CREATE

Tabellen:

  • SELECT

  • INSERT

  • AKTUALISIERUNG

  • DELETE

  • TRUNCATE

  • DROP

  • REFERENCES

Funktionen:

  • EXECUTE

Datenbanken:

  • CREATE

Anforderungen und Einschränkungen für Datashares in Vorschau

  • Verbindungen — Sie müssen direkt mit einer Datashare-Datenbank verbunden sein oder den USE-Befehl ausführen, um in Datashares zu schreiben. Wir werden jedoch bald die Möglichkeit bieten, dies mit dreiteiliger Notation zu tun.

  • Verfügbarkeit — Sie müssen serverlose Arbeitsgruppen, ra3.4xl-Cluster oder ra3.16xl-Cluster verwenden, um diese Funktion nutzen zu können. Die Unterstützung für ra3.xlplus-Cluster ist geplant.

  • Erkennung von Metadaten — Wenn Sie ein Verbraucher sind, der über die Redshift-JDBC-, ODBC- oder Python-Treiber direkt mit einer Datashare-Datenbank verbunden ist, können Sie Katalogdaten auf folgende Weise anzeigen:

  • Daten-API — Sie können über die Daten-API keine Verbindung zu Datashare-Datenbanken herstellen. Unterstützung dafür wird in Kürze verfügbar sein.

  • Sichtbarkeit der Berechtigungen — Verbraucher können nicht sehen, welche Berechtigungen den Datashares gewährt wurden. Wir werden dies bald hinzufügen.

  • Verschlüsselung — Für die kontenübergreifende gemeinsame Nutzung von Daten müssen sowohl der Producer- als auch der Consumer-Cluster verschlüsselt sein.

  • Isolationsstufe — Die Isolationsstufe Ihrer Datenbank muss Snapshot-Isolation sein, damit andere serverlose Arbeitsgruppen und Cluster darauf schreiben können.

  • auto Operationen — Verbraucher, die in Datashare-Objekte schreiben, lösen keinen automatischen Analysevorgang aus. Aus diesem Grund muss der Produzent nach dem Einfügen von Daten in die Tabelle die Analyse manuell ausführen, um die Tabellenstatistiken zu aktualisieren. Andernfalls sind Abfragepläne möglicherweise nicht optimal.

  • Abfragen und Transaktionen mit mehreren Anweisungen — Abfragen mit mehreren Anweisungen außerhalb eines Transaktionsblocks werden derzeit nicht unterstützt. Wenn Sie also einen Abfrage-Editor wie dbeaver verwenden und mehrere Schreibabfragen haben, müssen Sie Ihre Abfragen daher in eine explizite BEGIN... END-Transaktionsanweisung einbinden.

Unterstützte SQL-Anweisungen

Diese Anweisungen werden für die öffentliche Vorschauversion der Datenfreigabe mit Schreibvorgängen unterstützt:

  • BEGIN | START TRANSACTION

  • END | COMMIT | ROLLBACK

  • COPY ohne COMPUPDATE

  • { CREATE | DROP } SCHEMA

  • { CREATE | DROP | SHOW } TABLE

  • CREATE TABLE table_name AS

  • DELETE

  • { GRANT | REVOKE } privilege_name ON OBJECT_TYPE object_name TO consumer_user

  • INSERT

  • SELECT

  • INSERT INTO SELECT

  • TRUNCATE

  • UPDATE

  • Spalten des Datentyps Super

Nicht unterstützte Anweisungstypen – Die folgenden Anweisungstypen werden nicht unterstützt:

  • Abfragen mit mehreren Anweisungen an Konsumenten-Warehouses, wenn zu Produzenten geschrieben wird.

  • Abfragen mit Parallelitätsskalierung, die von Konsumenten zu Produzenten geschrieben werden.

  • Auto-Copy-Aufträge, die von Konsumenten zu Produzenten geschrieben werden.

  • Streaming-Aufträge, die von Konsumenten zu Produzenten geschrieben werden.

  • Konsumenten, die Null-ETL-Integrationstabellen auf Produzenten-Clustern erstellen. Weitere Informationen zu Null-ETL-Integrationen finden Sie unter Arbeiten mit Null-ETL-Integrationen.

  • Schreiben in eine Tabelle mit überlappendem Sortierschlüssel.

Teilen von Daten innerhalb eines Kontos mit Schreibberechtigungen als Administrator des Produzentenkontos (Vorschau)

Bisher waren Objekte in Datashares unter allen Umständen schreibgeschützt. Das Schreiben in ein Objekt in einem Datashare ist ein neues Feature. Objekte in Datashares sind nur schreibfähig, wenn ein Produzent dem Datashare ausdrücklich Schreibberechtigungen wie INSERT oder CREATE für Objekte gewährt. Einzelheiten finden Sie in den nachfolgenden Abschnitten dieses Themas.

Wenn Sie nach der vorhandenen Dokumentation für schreibgeschützte Datashares suchen, finden Sie diese unter Cluster-übergreifende Freigabe von Daten in Amazon Redshift.

Um die gemeinsame Nutzung von Daten zu starten, erstellt der Administrator auf dem Produzenten ein Datashare und fügt diesem Objekte hinzu:

  1. Der Eigentümer oder Superuser der Produzenten-Datenbank erstellt ein Datashare. Ein Datashare ist ein logischer Container mit Datenbankobjekten, Berechtigungen und Konsumenten. (Konsumenten sind Cluster oder Amazon-Redshift-Serverless-Namespaces in Ihrem Konto und anderen Konten.) Jedes Datashare ist mit der Datenbank verknüpft, in der es erstellt wurde, und es können nur Objekte aus dieser Datenbank hinzugefügt werden. Der folgende Befehl erstellt ein Datashare:

    CREATE DATASHARE my_datashare [PUBLICACCESSIBLE = TRUE];

    Wenn PUBLICACCESSIBLE = TRUE gesetzt wird, können Konsumenten Ihren Datashare von öffentlich zugänglichen Clustern und bereitgestellten Arbeitsgruppen aus abfragen. Lassen Sie dies weg oder setzen Sie es explizit auf „false“, wenn Sie dies nicht zulassen möchten.

    Der Eigentümer des Datashares muss die USAGE-Berechtigung für die Schemata gewähren, die dem Datashare hinzugefügt werden sollen. Der Befehl GRANT ist neu. Er wird verwendet, um verschiedene Aktionen für das Schema zu gewähren, darunter CREATE und USAGE. Die Schemata enthalten gemeinsam genutzte Objekte:

    CREATE SCHEMA myshared_schema1; CREATE SCHEMA myshared_schema2; GRANT USAGE ON SCHEMA myshared_schema1 TO DATASHARE my_datashare; GRANT CREATE, USAGE ON SCHEMA myshared_schema2 TO DATASHARE my_datashare;

    Alternativ kann der Administrator weiterhin ALTER-Befehle ausführen, um dem Datashare ein Schema hinzuzufügen. Wenn ein Schema auf diese Weise hinzugefügt wird, werden nur USAGE-Berechtigungen gewährt.

    ALTER DATASHARE my_datashare ADD SCHEMA myshared_schema1;
  2. Nachdem der Administrator Schemata hinzugefügt hat, kann er Datashare-Berechtigungen für Objekte in dem Schema gewähren. Dies können Lese- und Schreibberechtigungen sein. Das GRANT ALL-Beispiel zeigt, wie alle Berechtigungen gewährt werden.

    GRANT SELECT, INSERT ON TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1 TO DATASHARE my_datashare; GRANT ALL ON TABLE myshared_schema1.table4 TO DATASHARE my_datashare;

    Sie können weiterhin Befehle wie ALTER DATASHARE ausführen, um Tabellen hinzuzufügen. Wenn Sie dies tun, werden nur SELECT-Berechtigungen für die hinzugefügten Objekte gewährt.

    ALTER DATASHARE my_datashare ADD TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1;
  3. Der Administrator gestattet einem bestimmten Namespace in dem Konto die Nutzung des Datashare. Sie finden die Namespace-ID als Teil des ARN auf der Cluster-Detailseite, auf der Detailseite des Amazon Redshift Serverless Namespace oder indem Sie den Befehl SELECT current_namespace; ausführen. Weitere Informationen finden Sie unter CURRENT_NAMESPACE.

    GRANT USAGE ON DATASHARE my_datashare TO NAMESPACE '86b5169f-012a-234b-9fbb-e2e24359e9a8';