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.
Erste Schritte mit der gemeinsamen Nutzung von Daten AWS CloudFormation in Amazon Redshift
Sie können die Einrichtung der gemeinsamen Nutzung von Daten automatisieren, indem Sie einen AWS CloudFormation Stack verwenden, der AWS Ressourcen bereitstellt. Der CloudFormation Stack richtet den Datenaustausch zwischen zwei Amazon Redshift Redshift-Clustern im selben AWS Konto ein. Sie können mit der Datenfreigabe beginnen, ohne dass Sie SQL-Anweisungen zur Bereitstellung Ihrer Ressourcen ausführen.
Der Stack erstellt ein Datashare auf dem von Ihnen angegebenen Cluster. Das Datashare enthält eine Tabelle und schreibgeschützte Beispieldaten. Diese Daten können von Ihrem anderen Amazon-Redshift-Cluster gelesen werden.
Wenn Sie mit der gemeinsamen Nutzung von Daten in einem AWS Konto beginnen möchten, indem Sie SQL-Anweisungen ausführen, um eine Datenfreigabe einzurichten und Berechtigungen zu gewähren, ohne sie zu verwenden CloudFormation, finden Sie unter. Gemeinsamer Lesezugriff auf Daten innerhalb eines AWS-Konto
Bevor Sie den Data CloudFormation Sharing-Stack ausführen können, müssen Sie mit einem Benutzer angemeldet sein, der berechtigt ist, eine IAM-Rolle und eine Lambda-Funktion zu erstellen. Sie benötigen auch zwei Amazon-Redshift-Cluster im selben Konto. Der Produzent dient zur Freigabe der Beispieldaten und der Konsument liest die Daten. Die Hauptanforderung für diese Cluster besteht darin, dass jeder Knoten verwendet RA3 . Zusätzliche Anforderungen finden Sie unter Überlegungen zur gemeinsamen Nutzung von Daten in Amazon Redshift.
Weitere Informationen zu den ersten Schritten beim Einrichten eines Amazon Redshift-Clusters finden Sie unter Erste Schritte mit von Amazon Redshift bereitgestellten Data Warehouses. Weitere Informationen zur Automatisierung der Einrichtung mit finden Sie unter Was ist CloudFormation? AWS CloudFormation
Wichtig
Bevor Sie Ihren CloudFormation Stack starten, stellen Sie sicher, dass Sie zwei Amazon Redshift Redshift-Cluster in demselben Konto haben und dass die Cluster RA3 Knoten verwenden. Stellen Sie sicher, dass jeder Cluster über eine Datenbank und einen Superuser verfügt. Weitere Informationen erhalten Sie unter CREATE DATABASE und superuser.
So starten Sie Ihren CloudFormation Stack für die gemeinsame Nutzung von Amazon Redshift Redshift-Daten:
-
Klicken Sie auf CFN-Stack starten
, wodurch Sie zu dem CloudFormation Service im gelangen. AWS Management Console Melden Sie sich an, wenn Sie dazu aufgefordert werden.
Der Stack-Erstellungsprozess beginnt und verweist auf eine CloudFormation Vorlagendatei, die in Amazon S3 gespeichert ist. Eine CloudFormation Vorlage ist eine Textdatei im JSON-Format, die AWS Ressourcen deklariert, aus denen ein Stapel besteht. Weitere Informationen zu CloudFormation Vorlagen finden Sie unter Grundlagen von Vorlagen lernen.
-
Klicken Sie auf Next (Weiter) und geben Sie die Stack-Details ein.
-
Geben Sie unter Parameter für jeden Cluster Folgendes ein:
-
Der Namen Ihres Amazon-Redshift-Clusters, zum Beispiel
ra3-consumer-cluster
-
Der Name Ihrer Datenbank, zum Beispiel
dev
-
Der Name eines Benutzers Ihrer Datenbank, zum Beispiel
consumeruser
Wir empfehlen die Verwendung von Testclustern, da der Stack mehrere Datenbankobjekte erstellt.
Wählen Sie Next (Weiter).
-
-
Die Stack-Optionen werden angezeigt.
Klicken Sie auf Next (Weiter), um die Standardeinstellungen zu übernehmen.
-
Wählen Sie unter Funktionen Folgendes aus: Ich nehme zur Kenntnis, dass AWS CloudFormation IAM-Ressourcen erstellen könnte.
-
Wählen Sie Create stack (Stack erstellen) aus.
CloudFormation dauert etwa 10 Minuten, um den Amazon Redshift Redshift-Stack mithilfe der Vorlage zu erstellen, wobei ein Datashare namens erstellt wird. myproducer_share
Der Stack erstellt das Datashare in der Datenbank, die in den Stack-Details angegeben ist. Nur Objekte aus dieser Datenbank können freigegeben werden.
Falls während der Erstellung des Stacks ein Fehler auftritt, unternehmen Sie folgende Schritte:
-
Stellen Sie sicher, dass Sie den richtigen Cluster-Namen, den Datenbanknamen und den Namen des Datenbankbenutzers für jeden Redshift-Cluster eingegeben haben.
-
Stellen Sie sicher, dass Ihr Cluster über Knoten verfügt. RA3
-
Stellen Sie sicher, dass Sie mit einem Benutzer angemeldet sind, der die Berechtigung für eine IAM-Rolle und eine Lambda-Funktion hat. Weitere Informationen zum Erstellen von IAM-Rollen finden Sie unter Erstellen von IAM-Rollen. Weitere Informationen zu den Richtlinien für die Erstellung der Λ-Funktion finden Sie unter Funktionsentwicklung.
Abfragen des von Ihnen erstellten Datashares
Stellen Sie für das folgende Verfahren sicher, dass Sie über die erforderlichen Berechtigungen zum Ausführen von Abfragen in jedem beschriebenen Cluster verfügen.
So fragen Sie Ihr Datashare ab:
-
Stellen Sie mithilfe eines Clienttools wie dem Amazon Redshift Query Editor v2 eine Connect zum Producer-Cluster in der Datenbank her, die Sie bei der Erstellung Ihres CloudFormation Stacks eingegeben haben.
-
Starten Sie eine Abfrage nach Datashares.
SHOW DATASHARES;
+------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+ | share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace | +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+ | myproducer_share | 100 | sample_data_dev | myconsumer_db | INBOUND | NULL | true | NULL |
producer-acct
|your-producer-namespace
| +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+Der vorhergehende Befehl gibt den Namen des Datashares zurück, das vom Stack erstellt wurde, namens
myproducer_share
. Es gibt auch den Namen der Datenbank zurück, die mit der Datashare verknüpft ist,myconsumer_db
.Kopieren Sie die Namespace-Kennung des Produzenten; sie wird in einem späteren Schritt benötigt.
-
Beschreiben Sie Objekte im Datashare.
DESC DATASHARE myproducer_share;
+------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ | producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ |
producer-acct
|your-producer-namespace
| OUTBOUND | myproducer_share | schema | myproducer_schema | true | |producer-acct
|your-producer-namespace
| OUTBOUND | myproducer_share | table | myproducer_schema.tickit_sales | NULL | |producer-acct
|your-producer-namespace
| OUTBOUND | myproducer_share | view | myproducer_schema.ticket_sales_view | NULL | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+Wenn Sie das Datashare beschreiben, werden Eigenschaften für Tabellen und Ansichten zurückgegeben. Der Stack fügt beispielsweise Tabellen und Ansichten mit Beispieldaten zur Produzentendatenbank hinzu, zum Beispiel
tickit_sales
undtickit_sales_view
. Weitere Informationen zur TICKIT-Beispieldatenbank finden Sie unter Beispieldatenbank.Sie müssen keine Berechtigungen für das Datashare delegieren, um Abfragen auszuführen. Der Stack gewährt die erforderlichen Berechtigungen.
-
Verbinden Sie sich mit Ihrem Client-Tool mit dem Konsumenten-Cluster. Beschreiben Sie das Datashare und geben Sie den Namespace des Produzenten an.
DESC DATASHARE myproducer_share OF NAMESPACE '<namespace id>'; --specify the unique identifier for the producer namespace
+------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ | producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ |
producer-acct
|your-producer-namespace
| INBOUND | myproducer_share | schema | myproducer_schema | NULL | |producer-acct
|your-producer-namespace
| INBOUND | myproducer_share | table | myproducer_schema.tickit_sales | NULL | |producer-acct
|your-producer-namespace
| INBOUND | myproducer_share | view | myproducer_schema.ticket_sales_view | NULL | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ -
Sie können Tabellen im Datashare abfragen, indem Sie die Datenbank und das Schema des Datashares angeben. Weitere Informationen finden Sie unter Beispiele für datenbankübergreifende Abfragen. Die folgenden Abfragen geben Daten zu Verkäufen und Verkäufern aus der SALES-Tabelle in der TICKIT-Beispieldatenbank zurück. Weitere Informationen finden Sie unter Beispieldatenbank.
SELECT * FROM myconsumer_db.myproducer_schema.tickit_sales_view;
+---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission | saletime | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | 1 | 1 | 36861 | 21191 | 7872 | 1875 | 4 | 728 | 109.2 | 2008-02-18 02:36:48 | | 2 | 4 | 8117 | 11498 | 4337 | 1983 | 2 | 76 | 11.4 | 2008-06-06 05:00:16 | | 3 | 5 | 1616 | 17433 | 8647 | 1983 | 2 | 350 | 52.5 | 2008-06-06 08:26:17 | | 4 | 5 | 1616 | 19715 | 8647 | 1986 | 1 | 175 | 26.25 | 2008-06-09 08:38:52 | | 5 | 6 | 47402 | 14115 | 8240 | 2069 | 2 | 154 | 23.1 | 2008-08-31 09:17:02 | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
Anmerkung
Die Abfrage wird mit der Ansicht im freigegebenen Schema ausgeführt. Sie können keine direkte Verbindung zu Datenbanken herstellen, die aus Datashares erstellt wurden. Sie sind schreibgeschützt.
-
Wenn Sie eine Abfrage ausführen möchten, die Aggregationen enthält, verwenden Sie das folgende Beispiel.
SELECT * FROM myconsumer_db.myproducer_schema.tickit_sales ORDER BY 1,2 LIMIT 5;
+---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission | saletime | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | 1 | 1 | 36861 | 21191 | 7872 | 1875 | 4 | 728 | 109.2 | 2008-02-18 02:36:48 | | 2 | 4 | 8117 | 11498 | 4337 | 1983 | 2 | 76 | 11.4 | 2008-06-06 05:00:16 | | 3 | 5 | 1616 | 17433 | 8647 | 1983 | 2 | 350 | 52.5 | 2008-06-06 08:26:17 | | 4 | 5 | 1616 | 19715 | 8647 | 1986 | 1 | 175 | 26.25 | 2008-06-09 08:38:52 | | 5 | 6 | 47402 | 14115 | 8240 | 2069 | 2 | 154 | 23.1 | 2008-08-31 09:17:02 | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
Die Abfrage gibt Verkaufs- und Verkäuferdaten aus den Beispieldaten für TICKIT zurück.
Weitere Beispiele für Datashare-Abfragen finden Sie unter Gemeinsamer Lesezugriff auf Daten innerhalb eines AWS-Konto.