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.
Schritt 3: Erstellen eines externen Schemas und einer externen Tabelle
Erstellen Sie externe Tabellen in einem externen Schema. Das externe Schema verweist auf eine Datenbank im externen Datenkatalog und stellt die IAM Rolle bereitARN, die Ihren Cluster autorisiert, in Ihrem Namen auf Amazon S3 zuzugreifen. Sie können eine externe Datenbank in einem Amazon Athena Athena-Datenkatalog oder einem Apache Hive-Metastore wie Amazon erstellen. AWS Glue Data Catalog EMR Für dieses Beispiel erstellen Sie die externe Datenbank in einem Amazon-Athena-Datenkatalog, wenn Sie das externe Schema Amazon Redshift erstellen. Weitere Informationen finden Sie unter Erstellen externer Schemata für Amazon Redshift Spectrum.
So erstellen Sie ein externes Schema und eine externe Tabelle:
-
Um ein externes Schema zu erstellen, ersetzen Sie die IAM Rolle ARN im folgenden Befehl durch die Rolle, die ARN Sie in Schritt 1 erstellt haben. Führen Sie dann den Befehl in Ihrem SQL Client aus.
create external schema myspectrum_schema from data catalog database 'myspectrum_db' iam_role 'arn:aws:iam::123456789012:role/myspectrum_role' create external database if not exists;
-
Führen Sie den folgenden CREATE EXTERNAL TABLE Befehl aus, um eine externe Tabelle zu erstellen.
Anmerkung
Ihr Cluster und der Amazon-S3-Bucket müssen sich in der gleichen AWS-Region befinden. Für diesen CREATE EXTERNAL TABLE Beispielbefehl befindet sich der Amazon S3 S3-Bucket mit den Beispieldaten im Osten der USA (Nord-Virginia) AWS-Region. Laden Sie die Datei
sales_ts.000
herunter, um die Quelldaten zu sehen. . Sie können dieses Beispiel so ändern, dass es in einem anderen ausgeführt wird AWS-Region. Erstellen Sie einen Amazon S3 S3-Bucket in Ihrem gewünschten Format AWS-Region. Kopieren Sie die Verkaufsdaten mit einem Amazon-S3-Kopierbefehl. Aktualisieren Sie dann die Option für den Speicherort im
CREATE EXTERNAL TABLE
-Beispielbefehl auf Ihren Bucket.aws s3 cp s3://redshift-downloads/tickit/spectrum/sales/ s3://
bucket-name
/tickit/spectrum/sales/ --copy-props none --recursiveDie Ausgabe des Amazon S3 S3-Kopierbefehls bestätigt, dass die Datei in den
bucket-name
in Ihrem gewünschten AWS-Region.copy: s3://redshift-downloads/tickit/spectrum/sales/sales_ts.000 to s3://
bucket-name
/tickit/spectrum/sales/sales_ts.000create external table myspectrum_schema.sales( salesid integer, listid integer, sellerid integer, buyerid integer, eventid integer, dateid smallint, qtysold smallint, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp) row format delimited fields terminated by '\t' stored as textfile location 's3://redshift-downloads/tickit/spectrum/sales/' table properties ('numRows'='172000');