Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Wie erstelle und frage ich eine externe Tabelle in Amazon Redshift Spectrum ab?
Ich möchte eine externe Tabelle mit Amazon Redshift Spectrum erstellen und abfragen.
Lösung
Um Daten von Amazon Simple Storage Service (Amazon S3) abzufragen, musst du keine Daten in Amazon Redshift-Tabellen laden. Wenn Redshift Spectrum Abfragen verarbeitet, verbleiben die Daten im S3-Bucket.
Wichtig: Stelle sicher, dass sich der Amazon Redshift-Cluster und der S3-Bucket in derselben AWS-Region befinden.
Gehe wie folgt vor, um eine externe Tabelle mit Redshift Spectrum zu erstellen:
-
Füge die folgenden IAM-Richtlinien an, um Amazon Redshift die erforderlichen Berechtigungen für den Zugriff auf deinen Datenkatalog zu gewähren:
Wenn du den AWS-Glue-Datenkatalog verwendest, füge der Rolle die IAM-Richtlinien AmazonS3ReadOnlyAccess und AWSGlueConsoleFullAccess an.
Wenn du den Amazon Athena-Datenkatalog verwendest, füge der Rolle die IAM-Richtlinie AmazonAthenaFullAccess an. -
Lade die Datendateien herunter und lade sie in einen S3-Bucket in deiner Region hoch. Das folgende Beispiel verwendet die TICKIT-Beispieldatendateien für S3:
s3://<bucket_name>/tickit/spectrum/event/' and 's3://bucket_name/tickit/spectrum/sales/
Hinweis: Ersetze bucket name durch den Namen deines S3-Buckets.
-
Erstelle eine externe Tabelle. Das folgende Beispiel erstellt eine externe Tabelle für die EVENT-Daten:
create external table spectrum.event( eventid integer, venueid smallint, catid smallint, dateid smallint, eventname varchar(200), starttime timestamp ) row format delimited fields terminated by '|' stored as textfile location 's3://bucket_name/tickit/spectrum/event/';
Hinweis: Ersetze bucket name durch den Namen deines S3-Buckets. Um mithilfe von AWS Glue eine externe Tabelle zu erstellen, musst du dem Datenkatalog unbedingt Tabellendefinitionen hinzufügen.
Um Amazon Athena zum Erstellen einer externen Tabelle zu verwenden, füge Tabellendefinitionen hinzu.
Beispiel für Tabellendefinitionen mit Athena:CREATE EXTERNAL TABLE spectrum.event ( eventid int, venueid smallint, catid smallint, dateid smallint, eventname varchar(max), starttime timestamp) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT
-
Um alle externen Tabellen anzuzeigen, auf die das externe Schema verweist, führe die folgende Abfrage für SVV_EXTERNAL_TABLES aus:
select schemaname , tablename , location from svv_external_tables where schemaname = 'spectrum'; schemaname | tablename | location ----------------+---------------------------------+----------------------------------------------------------------------- spectrum | event | s3://bucket-name/file-location
Hinweis: Ersetze bucket name durch den Namen deines S3-Buckets und file location durch deinen Dateispeicherort.
-
Frage die externen Tabellen als externe Redshift Spectrum-Tabellen ab. Verwende die SELECT-Anweisung:
select top 3 spectrum.sales.eventid, sum(spectrum.sales.pricepaid) from spectrum.sales, spectrum.event where spectrum.sales.eventid = spectrum.event.eventid and spectrum.sales.pricepaid > 30 group by spectrum.sales.eventid order by 2 desc; eventid | sum ---------+---------- 289 | 51846.00 7895 | 51049.00 1602 | 50301.00
Die vorherige Beispielabfrage verknüpft die externe SALES-Tabelle mit einer externen EVENT-Tabelle.
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren