

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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 Amazon Redshift Spectrum
<a name="c-getting-started-using-spectrum"></a>

In diesem Tutorial erfahren Sie, wie Sie mit Amazon Redshift Spectrum Daten direkt aus Dateien auf Amazon S3 abfragen. Wenn Sie bereits einen Cluster und einen SQL-Client haben, können Sie dieses Tutorial mit minimaler Einrichtung abschließen. 

**Anmerkung**  
Redshift Spectrum-Abfragen sind mit zusätzlichen Gebühren verbunden. Die Kosten für die Beispielabfragen in diesem Tutorial sind äußerst gering. Weitere Informationen zu Preisen finden Sie unter [Amazon Redshift Spectrum – Preise](https://aws.amazon.com/redshift/pricing/#redshift-spectrum-pricing).

## Voraussetzungen
<a name="c-getting-started-using-spectrum-prerequisites"></a>

Zu Verwendung von Redshift Spectrum benötigen Sie einen Amazon-Redshift-Cluster und einen SQL-Client, der mit Ihrem Cluster verbunden ist, damit Sie SQL-Befehle ausführen können. Der Cluster und die Datendateien in Amazon S3 müssen sich in derselben AWS-Region befinden. 

Informationen zum Erstellen von Amazon-Redshift-Clustern finden Sie im Handbuch *Erste Schritte mit Amazon Redshift* unter [Erste Schritte mit von Amazon Redshift bereitgestellten Data Warehouses](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html). Informationen zu Möglichkeiten, eine Verbindung mit einem Cluster herzustellen, finden Sie unter [Verbinden mit von Amazon Redshift bereitgestellten Data Warehouses](https://docs.aws.amazon.com/redshift/latest/gsg/database-tasks.html) im Handbuch *Erste Schritte mit Amazon Redshift*.

In einigen der folgenden Beispiele befinden sich die Beispieldaten in der Region USA Ost (Nord-Virginia) (`us-east-1`), sodass Sie einen Cluster benötigen, der sich auch in `us-east-1` befindet. Oder Sie können Amazon S3 verwenden, um Datenobjekte aus den folgenden Buckets und Ordnern in Ihren Bucket zu kopieren, in AWS-Region dem sich Ihr Cluster befindet: 
+ `s3://redshift-downloads/tickit/spectrum/customers/*`
+ `s3://redshift-downloads/tickit/spectrum/sales_partition/*`
+ `s3://redshift-downloads/tickit/spectrum/sales/*`
+ `s3://redshift-downloads/tickit/spectrum/salesevent/*`

Führen Sie einen Amazon-S3-Befehl ähnlich dem folgenden aus, um Beispieldaten, die sich in der Region USA Ost (Nord-Virginia) befinden, in Ihre AWS-Region zu kopieren. Erstellen Sie vor dem Ausführen des Befehls Ihren Bucket und die Ordner in Ihrem Bucket so, dass sie Ihrem Amazon-S3-Befehl entsprechen. Die Ausgabe des Amazon S3 S3-Befehls copy bestätigt, dass die Dateien *bucket-name* in das von Ihnen gewünschte Verzeichnis kopiert wurden AWS-Region.

```
aws s3 cp s3://redshift-downloads/tickit/spectrum/ s3://bucket-name/tickit/spectrum/ --copy-props none --recursive
```

## Erste Schritte mit Redshift Spectrum mithilfe von AWS CloudFormation
<a name="c-getting-started-using-spectrum-cfn"></a>

Als Alternative zu den folgenden Schritten können Sie auf die Redshift DataLake AWS CloudFormation Spectrum-Vorlage zugreifen, um einen Stack mit einem Amazon S3 S3-Bucket zu erstellen, den Sie abfragen können. Weitere Informationen finden Sie unter [Starten Sie Ihren AWS CloudFormation Stack und fragen Sie dann Ihre Daten in Amazon S3 ab](#c-getting-started-using-spectrum-query-s3-data-cfn).

## Erste Schritte mit Amazon Redshift Spectrum – Schritt für Schritt
<a name="c-getting-started-using-spectrum-steps"></a>

Gehen Sie wie folgt vor, um mit der Verwendung von Amazon Redshift Spectrum zu beginnen:
+ [Schritt 1. Erstellen Sie eine IAM-Rolle für Amazon Redshift](#c-getting-started-using-spectrum-create-role) 
+ [Schritt 2: Zuordnen der IAM-Rolle zu Ihrem Cluster](#c-getting-started-using-spectrum-add-role) 
+ [Schritt 3: Erstellen eines externen Schemas und einer externen Tabelle](#c-getting-started-using-spectrum-create-external-table) 
+ [Schritt 4: Abfragen Ihrer Daten in Amazon S3](#c-getting-started-using-spectrum-query-s3-data) 

## Schritt 1. Erstellen Sie eine IAM-Rolle für Amazon Redshift
<a name="c-getting-started-using-spectrum-create-role"></a>

Ihr Cluster benötigt eine Autorisierung für den Zugriff auf Ihren externen Datenkatalog in AWS Glue oder Amazon Athena und Ihre Datendateien in Amazon S3. Diese Berechtigung wird durch die Referenzierung einer AWS Identity and Access Management -Rolle (IAM) gewährt, die mit Ihrem Cluster verbunden ist. Weitere Informationen zur Verwendung von Rollen mit Amazon Redshift finden Sie unter [Autorisierung von COPY- und UNLOAD-Vorgängen mit IAM-Rollen](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html).

**Anmerkung**  
In bestimmten Fällen können Sie Ihren Athena-Datenkatalog zu einem AWS Glue Datenkatalog migrieren. Sie können dies tun, wenn sich Ihr Cluster in einer AWS Region befindet, die unterstützt AWS Glue wird, und Sie externe Redshift Spectrum-Tabellen im Athena-Datenkatalog haben. Um den AWS Glue Datenkatalog mit Redshift Spectrum zu verwenden, müssen Sie möglicherweise Ihre IAM-Richtlinien ändern. Weitere Informationen finden Sie unter [Upgrade auf den AWS Glue -Datenkatalog](https://docs.aws.amazon.com/athena/latest/ug/glue-athena.html#glue-upgrade) im *Athena-Benutzerhandbuch*.

Wenn Sie eine Rolle für Amazon Redshift erstellen, wählen Sie einen der folgenden Ansätze aus:
+ Wenn Sie Redshift Spectrum entweder mit einem Athena-Datenkatalog oder AWS Glue einem Datenkatalog verwenden, folgen Sie den unter beschriebenen Schritten. [So erstellen Sie eine IAM-Rolle für Amazon Redshift](#spectrum-get-started-create-role) 
+ Wenn Sie Redshift Spectrum mit einem verwenden AWS Glue Data Catalog , für aktiviert ist AWS Lake Formation, gehen Sie wie folgt vor:
  +  [So erstellen Sie eine IAM-Rolle für Amazon Redshift mit einem aktivierten AWS Glue Data Catalog AWS Lake Formation](#spectrum-get-started-create-role-lake-formation) 
  +  [So gewähren Sie SELECT-Berechtigungen für eine Tabelle, um diese in der Lake-Formation-Datenbank abzufragen](#spectrum-get-started-grant-lake-formation-table) <a name="spectrum-get-started-create-role"></a>

**So erstellen Sie eine IAM-Rolle für Amazon Redshift**

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/home?#home).

1. Wählen Sie im Navigationsbereich **Roles** aus.

1. Wählen Sie **Create role** (Rolle erstellen) aus.

1. Wählen Sie **AWS -Service** als vertrauenswürdige Entität und dann **Redshift** als Anwendungsfall aus.

1. Wählen **Sie unter Anwendungsfall für andere AWS-Services** die Option **Redshift — Anpassbar** und wählen Sie dann **Weiter** aus.

1. Die Seite **Add permissions policy** (Berechtigungsrichtlinie hinzufügen) wird angezeigt. Wählen Sie `AmazonS3ReadOnlyAccess` und`AWSGlueConsoleFullAccess`, wenn Sie den AWS Glue Datenkatalog verwenden. Oder wählen Sie `AmazonAthenaFullAccess` aus, wenn Sie den Athena-Datenkatalog verwenden. Wählen Sie **Weiter** aus.
**Anmerkung**  
Über die Richtlinie `AmazonS3ReadOnlyAccess` gewähren Sie dem Cluster Leseberechtigungen für alle Amazon-S3-Buckets. Um nur Zugriff auf den AWS Beispieldaten-Bucket zu gewähren, erstellen Sie eine neue Richtlinie und fügen Sie die folgenden Berechtigungen hinzu.  

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Resource": "arn:aws:s3:::redshift-downloads/*"
           }
       ]
   }
   ```

1. Geben Sie in **Role name (Rollenname)** einen Namen für die Rolle ein, z. B. **myspectrum\$1role**.

1. Prüfen Sie die Rolleninformationen, und klicken Sie dann auf **Create role**.

1. Wählen Sie im Navigationsbereich **Roles**. Wählen Sie den Namen der neuen Rolle aus, um die Zusammenfassung anzuzeigen, und kopieren Sie den **Role ARN** in die Zwischenablage. Dieser Wert ist der Amazon-Ressourcenname (ARN) für die Rolle, die Sie soeben erstellt haben. Sie verwenden diesen Wert, wenn Sie externe Daten zur Referenzierung Ihrer Datendateien auf Amazon S3 erstellen.<a name="spectrum-get-started-create-role-lake-formation"></a>

**So erstellen Sie eine IAM-Rolle für Amazon Redshift mit einem aktivierten AWS Glue Data Catalog AWS Lake Formation**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Policies** aus.

   Wenn Sie zum ersten Mal **Policies (Richtlinien)** auswählen, erscheint die Seite **Welcome to Managed Policies (Willkommen bei verwalteten Richtlinien)**. Wählen Sie **Get Started**.

1. Wählen Sie **Create Policy (Richtlinie erstellen)** aus. 

1. Wählen Sie die Option zum Erstellen der Richtlinie auf der Registerkarte **JSON**. 

1. Fügen Sie das folgende JSON-Richtliniendokument ein, das Zugriff auf den Datenkatalog gewährt, jedoch Administratorberechtigungen für Lake Formation verweigert.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "RedshiftPolicyForLF",
               "Effect": "Allow",
               "Action": [
                   "glue:*",
                   "lakeformation:GetDataAccess"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Wählen Sie, wenn Sie fertig sind, **Review (Überprüfen)** aus. Die Richtlinienvalidierung meldet mögliche Syntaxfehler.

1. Geben Sie auf der Seite **Review Policy (Richtlinie überprüfen)** im Feld **Name (Name)** **myspectrum\$1policy** für die zu erstellende Richtlinie ein. Geben Sie eine **Beschreibung** ein (Optional) . Überprüfen Sie unter **Summary** die Richtlinienzusammenfassung, um die Berechtigungen einzusehen, die von Ihrer Richtlinie gewährt werden. Wählen Sie dann **Create policy** aus, um Ihre Eingaben zu speichern.

   Nachdem Sie eine Richtlinie erstellt haben, können Sie Ihren Benutzern Zugriff erteilen.

Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
+ Benutzer und Gruppen in: AWS IAM Identity Center

  Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter [Erstellen eines Berechtigungssatzes](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) im *AWS IAM Identity Center -Benutzerhandbuch*.
+ Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:

  Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter [Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) im *IAM-Benutzerhandbuch*.
+ IAM-Benutzer:
  + Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter [Eine Rolle für einen IAM-Benutzer erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) im *IAM-Benutzerhandbuch*.
  + (Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter [Hinzufügen von Berechtigungen zu einem Benutzer (Konsole)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.<a name="spectrum-get-started-grant-lake-formation-table"></a>

**So gewähren Sie SELECT-Berechtigungen für eine Tabelle, um diese in der Lake-Formation-Datenbank abzufragen**

1. Öffnen Sie die Lake Formation Formation-Konsole unter [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Wählen Sie im Navigationsbereich **Data-Lake-Berechtigungen** und dann **Gewähren**.

1. Folgen Sie den Anweisungen unter [Gewähren von Tabellenberechtigungen mithilfe der benannten Ressourcenmethode](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-table-permissions.html) im *AWS Lake Formation -Entwicklerhandbuch*. Geben Sie die folgenden Informationen ein:
   + Wählen Sie für **IAM role (IAM-Rolle)** die IAM-Rolle aus, die Sie erstellt haben (`myspectrum_role`). Wenn Sie den Amazon Redshift Query Editor ausführen, verwendet dieser die IAM-Rolle, um die erforderlichen Berechtigungen für die Daten zu erhalten. 
**Anmerkung**  
Um die SELECT-Berechtigung für die Tabelle in einem abzufragenden Lake-Formation-aktivierten Datenkatalog zu erteilen, gehen Sie wie folgt vor:  
Registrieren Sie den Datenpfad in Lake Formation. 
Gewähren Sie Benutzern die Berechtigung für diesen Pfad in Lake Formation. 
Erstellte Tabellen finden Sie in dem in Lake Formation registrierten Pfad. 

1. Wählen Sie **Grant (Erteilen)**.

**Wichtig**  
Es hat sich bewährt, über Lake-Formation-Berechtigungen nur Zugriff auf die zugrundeliegenden Amazon-S3-Objekte zu gewähren. Um unbefugten Zugriff zu verhindern, entfernen Sie alle Berechtigungen, die für Amazon-S3-Objekte außerhalb von Lake Formation gewährt wurden. Wenn Sie zuvor auf Amazon-S3-Objekte zugegriffen haben, bevor Sie Lake Formation eingerichtet haben, entfernen Sie alle IAM-Richtlinien oder Bucket-Berechtigungen, die zuvor eingerichtet waren. Weitere Informationen finden Sie unter [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html) und [Lake Formation Permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html). 

## Schritt 2: Zuordnen der IAM-Rolle zu Ihrem Cluster
<a name="c-getting-started-using-spectrum-add-role"></a>

Jetzt besitzen Sie eine IAM-Rolle, die Amazon Redshift zum Zugriff auf den externen Datenkatalog und auf Amazon S3 in Ihrem Namen berechtigt. An dieser Stelle müssen Sie diese Rolle Ihrem Amazon-Redshift-Cluster zuordnen.

**So ordnen Sie eine IAM-Rolle einem Cluster zu:**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon Redshift Redshift-Konsole unter [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. Wählen Sie im Navigationsmenü **Clusters** (Cluster) und dann den Namen des Clusters aus, den Sie aktualisieren möchten. 

1. Wählen Sie für **Actions (Aktionen)** **Manage IAM roles (IAM-Rollen verwalten)** aus. Die Seite **IAM roles (IAM-Rollen)** wird angezeigt. 

1. Wählen Sie **Enter ARN** (ARN eingeben) aus und geben Sie dann einen ARN oder eine IAM-Rolle ein. Oder wählen Sie eine IAM-Rolle aus der Liste aus. Wählen Sie dann **Add IAM role (IAM-Rolle hinzufügen)** aus, um sie zur Liste der **Attached IAM-Rollen (Zugewiesenen IAM-Rollen)** hinzuzufügen. 

1. Wählen Sie **Done (Beenden)** aus, um die IAM-Rolle dem Cluster zuzuordnen. Der Cluster wird modifiziert, um die Änderung abzuschließen. 

## Schritt 3: Erstellen eines externen Schemas und einer externen Tabelle
<a name="c-getting-started-using-spectrum-create-external-table"></a>

Erstellen Sie externe Tabellen in einem externen Schema. Das externe Schema verweist auf eine Datenbank im externen Datenkatalog und stellt den IAM-Rollen-ARN bereit, der Ihrem Cluster erlaubt, 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 EMR erstellen. AWS Glue Data Catalog 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 [Externe Schemata in Amazon Redshift Spectrum](c-spectrum-external-schemas.md). <a name="spectrum-get-started-create-external-table"></a>

**So erstellen Sie ein externes Schema und eine externe Tabelle:**

1. Um ein externes Schema zu erstellen, ersetzen Sie den ARN der IAM-Rolle im folgenden Befehl durch den Rollen-ARN, den Sie in [Schritt 1](#c-getting-started-using-spectrum-create-role) 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;
   ```

1. Führen Sie zur Erstellung einer externen Tabelle den folgenden CREATE EXTERNAL TABLE-Befehl aus.
**Anmerkung**  
Ihr Cluster und der Amazon-S3-Bucket müssen sich in der gleichen AWS-Region befinden. Für diesen Beispielbefehl CREATE EXTERNAL TABLE 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`](https://s3.amazonaws.com/redshift-downloads/tickit/spectrum/sales/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 --recursive
   ```
Die Ausgabe des Amazon S3 S3-Befehls copy bestätigt, dass die Datei *bucket-name* in das von Ihnen gewünschte Verzeichnis kopiert wurde AWS-Region.  

   ```
   copy: s3://redshift-downloads/tickit/spectrum/sales/sales_ts.000 to s3://bucket-name/tickit/spectrum/sales/sales_ts.000
   ```

   ```
   create 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');
   ```

## Schritt 4: Abfragen Ihrer Daten in Amazon S3
<a name="c-getting-started-using-spectrum-query-s3-data"></a>

Nach der Erstellung Ihrer externen Tabellen können Sie sie mit den gleichen SELECT-Anweisungen abfragen, mit denen Sie auch andere Amazon-Redshift-Tabellen abfragen. Diese SELECT-Anweisungsabfragen beinhalten die Verbindung von Tabellen, die Aggregierung von Daten und die Filterung auf Prädikaten. <a name="spectrum-get-started-query-s3-data"></a>

**So fragen Sie Ihre Daten in Amazon S3 ab**

1. Abruf der Anzahl der Zeilen in der Tabelle MYSPECTRUM\$1SCHEMA.SALES. 

   ```
   select count(*) from myspectrum_schema.sales;
   ```

   ```
   count 
   ------
   172462
   ```

1. Es wird empfohlen, dass Sie Ihre größeren Faktentabellen in Amazon S3 und Ihre kleineren Dimensionstabellen in Amazon Redshift speichern. Wenn Sie die Beispieldaten in [Laden von Daten](https://docs.aws.amazon.com/redshift/latest/gsg/cm-dev-t-load-sample-data.html) geladen haben, befindet sich in Ihrer Datenbank eine Tabelle mit dem Namen EVENT. Wenn dies nicht der Fall ist, erstellen Sie mit dem folgenden Befehl die Tabelle EVENT.

   ```
   create table event(
   eventid integer not null distkey,
   venueid smallint not null,
   catid smallint not null,
   dateid smallint not null sortkey,
   eventname varchar(200),
   starttime timestamp);
   ```

1. Laden Sie die Tabelle „EVENT“, indem Sie den IAM-Rollen-ARN in dem folgenden COPY-Befehl durch den Rollen-ARN ersetzen, den Sie in erstellt haben [Schritt 1. Erstellen Sie eine IAM-Rolle für Amazon Redshift](#c-getting-started-using-spectrum-create-role). Sie können optional die [Quelldaten für `allevents_pipe.txt`](https://s3.amazonaws.com/redshift-downloads/tickit/allevents_pipe.txt) aus einem Amazon S3 S3-Bucket in herunterladen und anzeigen AWS-Region `us-east-1`.

   ```
   copy event from 's3://redshift-downloads/tickit/allevents_pipe.txt' 
   iam_role 'arn:aws:iam::123456789012:role/myspectrum_role'
   delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' region 'us-east-1';
   ```

   Das folgende Beispiel verbindet die externe Amazon-S3-Tabelle MYSPECTRUM\$1SCHEMA.SALES mit der lokalen Amazon-Redshift-Tabelle EVENT, um den Gesamtumsatz für die 10 führenden Veranstaltungen zu ermitteln.

   ```
   select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event
   where myspectrum_schema.sales.eventid = event.eventid
   and myspectrum_schema.sales.pricepaid > 30
   group by myspectrum_schema.sales.eventid
   order by 2 desc;
   ```

   ```
   eventid | sum     
   --------+---------
       289 | 51846.00
      7895 | 51049.00
      1602 | 50301.00
       851 | 49956.00
      7315 | 49823.00
      6471 | 47997.00
      2118 | 47863.00
       984 | 46780.00
      7851 | 46661.00
      5638 | 46280.00
   ```

1. Zeigen Sie den Abfrageplan für die vorherige Abfrage an. Beachten Sie, dass die Schritte `S3 Seq Scan`, `S3 HashAggregate` und `S3 Query Scan` für die Daten auf Amazon S3 ausgeführt wurden.

   ```
   explain
   select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) 
   from myspectrum_schema.sales, event
   where myspectrum_schema.sales.eventid = event.eventid
   and myspectrum_schema.sales.pricepaid > 30
   group by myspectrum_schema.sales.eventid
   order by 2 desc;
   ```

   ```
   QUERY PLAN                                                                                                                                                                                
   -----------------------------------------------------------------------------
   XN Limit  (cost=1001055770628.63..1001055770628.65 rows=10 width=31)                                                                                                                      
     ->  XN Merge  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                               
           Merge Key: sum(sales.derived_col2)                                                                                                                                                
           ->  XN Network  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                       
                 Send to leader                                                                                                                                                              
                 ->  XN Sort  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                    
                       Sort Key: sum(sales.derived_col2)                                                                                                                                     
                       ->  XN HashAggregate  (cost=1055770620.49..1055770620.99 rows=200 width=31)                                                                                           
                             ->  XN Hash Join DS_BCAST_INNER  (cost=3119.97..1055769620.49 rows=200000 width=31)                                                                             
                                   Hash Cond: ("outer".derived_col1 = "inner".eventid)                                                                                                       
                                   ->  XN S3 Query Scan sales  (cost=3010.00..5010.50 rows=200000 width=31)                                                                                  
                                         ->  S3 HashAggregate  (cost=3010.00..3010.50 rows=200000 width=16)                                                                                  
                                               ->  S3 Seq Scan myspectrum_schema.sales location:"s3://redshift-downloads/tickit/spectrum/sales" format:TEXT  (cost=0.00..2150.00 rows=172000 width=16)
                                                     Filter: (pricepaid > 30.00)                                                                                                             
                                   ->  XN Hash  (cost=87.98..87.98 rows=8798 width=4)                                                                                                        
                                         ->  XN Seq Scan on event  (cost=0.00..87.98 rows=8798 width=4)
   ```

## Starten Sie Ihren AWS CloudFormation Stack und fragen Sie dann Ihre Daten in Amazon S3 ab
<a name="c-getting-started-using-spectrum-query-s3-data-cfn"></a>

Nachdem Sie einen Amazon Redshift Redshift-Cluster erstellt und eine Verbindung zum Cluster hergestellt haben, können Sie Ihre Redshift DataLake AWS CloudFormation Spectrum-Vorlage installieren und dann Ihre Daten abfragen.

CloudFormation installiert die Redshift Spectrum Getting DataLake Started-Vorlage und erstellt einen Stack, der Folgendes umfasst: 
+ Eine Rolle namens `myspectrum_role`, die mit Ihrem Redshift-Cluster verknüpft ist
+ Ein externes Schema mit dem Namen `myspectrum_schema`
+ Eine externe Tabelle mit dem Namen `sales` in einem Amazon S3 Bucket
+ Eine Redshift-Tabelle mit dem Namen `event` und geladenen Daten

**So starten Sie Ihren Redshift Spectrum Getting Started Stack DataLake CloudFormation**

1. Klicken Sie auf [https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataLake&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataLake.yml](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataLake&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataLake.yml) (CFN-Stack starten). Die CloudFormation Konsole wird mit der ausgewählten Vorlage DataLake .yml geöffnet.

   Sie können auch die Redshift Spectrum Getting Started DataLake CloudFormation [CFN-Vorlage](https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataLake.yml) herunterladen und anpassen, dann die CloudFormation Konsole ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) öffnen und einen Stack mit der benutzerdefinierten Vorlage erstellen. 

1. Wählen Sie **Weiter** aus.

1. Geben Sie unter **Parameters** (Parameter) den Namen des Amazon-Redshift-Clusters, den Datenbanknamen und Ihren Namen als Datenbankbenutzer ein.

1. Wählen Sie **Next (Weiter)**.

   Die Stack-Optionen werden angezeigt.

1. Klicken Sie auf **Next** (Weiter), um die Standardeinstellungen zu übernehmen.

1. Prüfen Sie die Informationen und wählen Sie unter **Funktionen** die Option **Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt** werden.

1. Wählen Sie **Create stack (Stack erstellen)** aus.

Falls während der Erstellung des Stacks ein Fehler auftritt, lesen Sie die folgenden Informationen:
+ Auf der Registerkarte CloudFormation **Ereignisse** finden Sie Informationen, die Ihnen bei der Behebung des Fehlers helfen können.
+ Löschen Sie den DataLake CloudFormation Stapel, bevor Sie den Vorgang erneut versuchen.
+ Vergewissern Sie sich, dass Sie mit Ihrer Amazon-Redshift-Datenbank verbunden sind.
+ Stellen Sie sicher, dass Sie die richtigen Informationen für den Namen des Amazon-Redshift-Clusters, den Datenbanknamen und den Namen des Datenbankbenutzers eingegeben haben.

### Abfragen Ihrer Daten in Amazon S3
<a name="c-getting-started-spectrum-cfn-query-s3-data"></a>

Sie fragen externe Tabellen mit den gleichen SELECT-Anweisungen ab, mit denen Sie auch andere Amazon-Redshift-Tabellen abfragen. Diese SELECT-Anweisungsabfragen beinhalten die Verbindung von Tabellen, die Aggregierung von Daten und die Filterung auf Prädikaten. 

Die folgende Abfrage gibt die Anzahl von Zeilen in der externen Tabelle `myspectrum_schema.sales` aus. 

```
select count(*) from myspectrum_schema.sales;
```

```
count 
------
172462
```

### Verbinden einer externen mit einer lokalen Tabelle
<a name="c-getting-started-spectrum-cfn-table-join"></a>

Das folgende Beispiel verbindet die externe Tabelle `myspectrum_schema.sales` mit der lokalen Tabelle `event`, um den Gesamtumsatz für die 10 führenden Veranstaltungen zu ermitteln.

```
select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event
where myspectrum_schema.sales.eventid = event.eventid
and myspectrum_schema.sales.pricepaid > 30
group by myspectrum_schema.sales.eventid
order by 2 desc;
```

```
eventid | sum     
--------+---------
    289 | 51846.00
   7895 | 51049.00
   1602 | 50301.00
    851 | 49956.00
   7315 | 49823.00
   6471 | 47997.00
   2118 | 47863.00
    984 | 46780.00
   7851 | 46661.00
   5638 | 46280.00
```

### Aufrufen des Abfrageplans
<a name="c-getting-started-spectrum-cfn-query-plan"></a>

Zeigen Sie den Abfrageplan für die vorherige Abfrage an. Beachten Sie, dass die Schritte `S3 Seq Scan`, `S3 HashAggregate` und `S3 Query Scan` für die Daten auf Amazon S3 ausgeführt wurden.

```
explain
select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) 
from myspectrum_schema.sales, event
where myspectrum_schema.sales.eventid = event.eventid
and myspectrum_schema.sales.pricepaid > 30
group by myspectrum_schema.sales.eventid
order by 2 desc;
```

```
QUERY PLAN                                                                                                                                                                                
-----------------------------------------------------------------------------
XN Limit  (cost=1001055770628.63..1001055770628.65 rows=10 width=31)                                                                                                                      
  ->  XN Merge  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                               
        Merge Key: sum(sales.derived_col2)                                                                                                                                                
        ->  XN Network  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                       
              Send to leader                                                                                                                                                              
              ->  XN Sort  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                    
                    Sort Key: sum(sales.derived_col2)                                                                                                                                     
                    ->  XN HashAggregate  (cost=1055770620.49..1055770620.99 rows=200 width=31)                                                                                           
                          ->  XN Hash Join DS_BCAST_INNER  (cost=3119.97..1055769620.49 rows=200000 width=31)                                                                             
                                Hash Cond: ("outer".derived_col1 = "inner".eventid)                                                                                                       
                                ->  XN S3 Query Scan sales  (cost=3010.00..5010.50 rows=200000 width=31)                                                                                  
                                      ->  S3 HashAggregate  (cost=3010.00..3010.50 rows=200000 width=16)                                                                                  
                                            ->  S3 Seq Scan spectrum.sales location:"s3://redshift-downloads/tickit/spectrum/sales" format:TEXT  (cost=0.00..2150.00 rows=172000 width=16)
                                                  Filter: (pricepaid > 30.00)                                                                                                             
                                ->  XN Hash  (cost=87.98..87.98 rows=8798 width=4)                                                                                                        
                                      ->  XN Seq Scan on event  (cost=0.00..87.98 rows=8798 width=4)
```