Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blog-Posting
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.
Hinzufügen von Data-Lake-Tabellen zu einem Datashare
Mit einem Datashare kann ein Datenproduzent Datenbankobjekte mit feiner Granularität, wie Schemas und Tabellen, auf sichere Weise mit Benutzern desselben Kontos oder mit unterschiedlichen Konten gemeinsam nutzen. AWS Der Produzent kann Objekte auch regionsübergreifend freigeben. In diesem Thema wird beschrieben, wie Objekte aus einem Data Lake, insbesondere aus dem Datenkatalog, zu einem AWS Glue Datashare hinzugefügt werden. Das Thema beschreibt zwei Anwendungsfälle:
-
Hinzufügen einer spätbindenden Ansicht zu einem Datashare, die auf eine Tabelle aus einem Data Lake verweist: Dies ist für Konsumenten praktisch, da die vorläufige Konfiguration, wie das Definieren von Berechtigungen für die externen Quelldaten (z. B. mit Lake Formation) wahrscheinlich bereits abgeschlossen ist. Ein zusätzlicher Vorteil besteht darin, dass eine zu einem Datashare hinzugefügte Ansicht Tabellen aus dem Data Lake mit nativen Redshift-Tabellen verbinden kann.
-
Direktes Hinzufügen einer Tabelle aus einem externen Schema zu einem Datashare: So werden Objekte aus dem Data Lake für Konsumenten ohne zusätzliche Ebenen oder Logik verfügbar. Konsumenten können die Tabelle abfragen oder sie mit Tabellen im Konsumenten verbinden.
Diese Fälle treten auf, nachdem Sie mit CREATE EXTERNAL SCHEMA auf eine Tabelle aus dem AWS Datenkatalog in Redshift verwiesen haben. Jede Tabelle aus dem AWS Datenkatalog kann die Quelle sein.
Anmerkung
Data-Lake-Tabellen, die Sie einem Datashare hinzufügen, können bei Lake Formation registrierte Tabellen und AWS Glue Datenkatalogtabellen enthalten.
Erstellen eines externen Schemas und einer externen Tabelle
In den folgenden Abschnitten erstellen Sie ein externes Schema und eine externe Tabelle, um sie dem Datashare hinzuzufügen. Dies sind vorläufige Schritte. Wenn Sie diese Schritte bereits ausgeführt haben, können Sie diesen Abschnitt überspringen.
-
Erstellen Sie auf dem Produzenten ein externes Schema, das auf die in Amazon S3 gespeicherten Data-Lake-Daten verweist. Das externe Schema verweist auf den AWS Glue-Datenkatalog. Die Rolle und die Region im Beispiel sind lediglich Beispiele:
CREATE EXTERNAL SCHEMA external_schema_name FROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role' REGION 'us-east-1'; -
Erstellen Sie eine Data-Lake-Tabelle im externen Schema.
CREATE EXTERNAL TABLE external_schema_name.sales( salesid INTEGER, sellerid INTEGER, buyerid INTEGER, saledate DATE, pricepaid DECIMAL(8,2)) ROW FORMAT delimited FIELDS TERMINATED BY '\t' STORED AS textfile LOCATION 's3://redshift-downloads/tickit/spectrum/sales/';Der Beispielcode enthält die den
LOCATION. Er muss das Formats3://{bucket_name}/{folder}/aufweisen, wobei der Ordner angegeben wird. Der Name des Ordners muss aus mindestens einem Zeichen bestehen. Sie können optional Unterordner einfügen. Weitere Beispiele für das Erstellen von Tabellen in einem Data Lake finden Sie unter Beispiele für CREATE EXTERNAL TABLE.Anmerkung
Die Freigabe wird nur für Tabellen unterstützt, bei denen die IAM-Rolle im Produzenten SELECT-Zugriff auf die jeweilige Tabelle hat.
Hinzufügen einer spätbindenden Ansicht, die eine Data-Lake-Tabelle auf ein Datashare verweist
Wenn Sie Tabellen erstellen, die auf einem externen Schema aus dem AWS Datenkatalog basieren, und Sie diese zu einer Datenfreigabe hinzufügen möchten, besteht die gängigste Methode darin, eine Redshift-Late-Binding-Ansicht hinzuzufügen, die auf die von Ihnen erstellte Tabelle verweist, die Daten aus dem Data Lake enthält. Das folgende Verfahren zeigt die Schritte:
-
Erstellen Sie eine spätbindende Ansicht, die auf die externe Tabelle verweist, die Sie zuvor erstellt haben:
CREATE VIEW lbv AS select * from external_schema_name.sales, other_schema.t1 WITH NO SCHEMA BINDING; -
Fügen Sie dem Datashare das Ansichtsschema hinzu. Dies ist das lokale Schema, das die spätbindende Ansicht enthält.
ALTER DATASHARE dsx_datashare ADD SCHEMA public; -
Fügen Sie dem Datashare das Schema hinzu, das die Tabelle enthält, auf die in der spätbindenden Ansicht verwiesen wird. Das Hinzufügen des Schemas ist für alle Basistabellen erforderlich, auf die in einer Ansicht verwiesen wird, die einem Datashare hinzugefügt wurde, unabhängig davon, ob das Schema lokale Datenbankobjekte oder Objekte aus einem Data Lake enthält. Beachten Sie, dass Sie dieses Schema hinzufügen müssen, bevor Sie die spätbindende Ansicht hinzufügen.
ALTER DATASHARE dsx_datashare ADD SCHEMA external_schema_name; ALTER DATASHARE dsx_datashare ADD SCHEMA other_schema; -
Fügen Sie die Ansicht mithilfe eines SQL-Befehls zum Datashare hinzu. Beachten Sie, dass der Tabellenname das Schemapräfix enthält.
ALTER DATASHARE my_datashare ADD TABLE public.lbv; -
Überprüfen Sie, ob die Ansicht und die Schemata dem Datashare erfolgreich hinzugefügt wurden:
SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare'; -
Der Konsumenten-Administrator erstellt eine Datenbank aus dem Datashare und gewährt Konsumenten-Benutzern Nutzungsrechte.
Nachdem Sie die Schritte abgeschlossen haben, können Konsumenten-Benutzer der Datenbank mit Zugriff auf die Datashare-Ansicht die Daten abfragen.
Direktes Hinzufügen einer Data-Lake-Tabelle zu einem Datashare
Das Hinzufügen einer Tabelle in einem externen Schema zu einem Datashare ist dem Hinzufügen einer Ansicht vergleichbar. Dies ist gut für Anwendungsfälle geeignet, in denen ein Konsument die Data-Lake-Tabelle im ursprünglichen Zustand abfragen möchte oder in denen ein Konsument sie mit Tabellen im Konsumenten-Data-Warehouse verbinden möchte. Die folgenden Schritte zeigen Ihnen, wie Sie mithilfe von SQL einem Datashare eine Data-Lake-Tabelle hinzufügen.
-
Erstellen Sie ein externes Schema und eine externe Tabelle wie im ersten Abschnitt dieses Themas beschrieben.
-
Suchen Sie nach vorhandenen Tabellen im externen Schema, um sicherzustellen, dass die von Ihnen erstellte Tabelle verfügbar ist:
SELECT * FROM svv_external_tables WHERE schemaname = 'external_schema_name'; -
Fügen Sie dem Datashare das externe Schema hinzu:
ALTER DATASHARE my_datashare ADD SCHEMA external_schema_name; -
Fügen Sie dem Datashare die externe Tabelle hinzu. Beachten Sie, dass der Tabellenname das Schemapräfix enthält:
ALTER DATASHARE my_datashare ADD TABLE external_schema_name.sales; -
Überprüfen Sie, ob die Tabelle dem Datashare erfolgreich hinzugefügt wurde:
SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';Eine detailliertere Anleitung finden Sie unter Teilen des Lesezugriffs auf Daten innerhalb eines Kontos. AWS
-
Im Konsumenten, d. h. der Datenbank, die die freigegebenen Daten empfängt, ordnet der Administrator das Datashare zu, um freigegebene Tabellen für Benutzer zur Abfrage verfügbar zu machen. Weitere Informationen zur Ausführung dieses Schritts finden Sie unter Verwalten von Datashares von anderen Konten als Konsument.
Nachdem die Administratoren die Schritte abgeschlossen haben, können Datenbankbenutzer im Konsumenten Abfragen verfassen, um Daten aus der freigegebenen Tabelle abzurufen und sie mit anderen Tabellen im Konsumenten zu verbinden.
Nutzungshinweise für das Hinzufügen von Data Lake-Objekten zu einem Datashare
Es gibt mehrere Punkte, die Sie beachten sollten, wenn Sie Tabellen und Ansichten aus einem Data Lake in einem Datashare verwenden:
-
Protokollierung mit AWS CloudTrail — Das Data Producer-Konto kann anhand von AWS CloudTrail Protokollen prüfen, wann auf Data Lake-Tabellen zugegriffen wird, die über ein Datashare gemeinsam genutzt werden:
-
Verwendung von Protokolldaten zur Steuerung des Datenzugriffs — In den CloudTrail Protokollen werden Details darüber aufgezeichnet, wer auf gemeinsam genutzte Tabellen zugreift, einschließlich Redshift-Datashare-Produzenten und -Konsumenten. Die Identifikatoren sind im Feld unter den
ExternalIdProtokollen verfügbar.AssumeRoleCloudTrail Der Datenbesitzer kann mithilfe von Aktionen zusätzliche Einschränkungen für den Datenzugriff in einer IAM-Richtlinie konfigurieren. Weitere Informationen zur Definition des Datenzugriffs mithilfe von Richtlinien finden Sie unter Zugriff auf AWS Konten, die Dritten gehören.
-
-
Sicherheit und Benutzerberechtigungen: Für bei Lake Formation registrierte Tabellen werden Amazon-S3-Ressourcen von Lake Formation gesichert und mit den von Lake Formation bereitgestellten Anmeldeinformationen zur Verfügung gestellt.
Überlegungen zur Abrechnung für das Hinzufügen von Data-Lake-Objekten zu einem Datashare
Im Folgenden wird beschrieben, wie die Kosten für das Speichern und Scannen von Data-Lake-Objekten in einem Datashare zugeordnet werden:
-
Wenn ein Konsument freigegebene Objekte aus einem Data Lake abfragt, werden die Kosten für das Scannen dem Consumer berechnet.
-
Wenn es sich beim Konsumenten um einen bereitgestellten Cluster handelt, scannt Redshift Amazon-S3-Daten mithilfe von Redshift Spectrum. Daher werden die Spectrum-Kosten dem Konsumentenkonto berechnet.
-
Wenn es sich beim Konsumenten um eine Arbeitsgruppe in Amazon Redshift Serverless handelt, fallen für Spectrum keine separaten Kosten an.
-
-
Die Amazon-S3-Kosten für Speicher und Betrieb, z. B. für das Auflisten von Buckets, werden dem Konto in Rechnung gestellt, dem die Amazon-S3-Buckets jeweils gehören.
Weitere Informationen zur Abrechnung für Amazon Redshift Serverless finden Sie unter Abrechnung für Amazon Redshift Serverless. Weitere Abrechnungs- und Preisinformationen finden Sie unter Amazon-Redshift-Preise