

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.

# Analysen
<a name="analytics-pattern-list"></a>

**Topics**
+ [Analysieren Sie Amazon Redshift Redshift-Daten in Microsoft SQL Server Analysis Services](analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services.md)
+ [Analysieren und visualisieren Sie verschachtelte JSON-Daten mit Amazon Athena und Amazon Quick Sight](analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.md)
+ [Automatisieren Sie die Datenaufnahme aus Amazon AWS Data Exchange S3](automate-data-ingestion-from-aws-data-exchange-into-amazon-s3.md)
+ [Automatisieren Sie die Durchsetzung von Verschlüsselungen in AWS Glue mithilfe einer CloudFormation AWS-Vorlage](automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.md)
+ [Erstellen Sie mit dem AWS DataOps Development Kit eine Datenpipeline, um Google Analytics-Daten aufzunehmen, zu transformieren und zu analysieren](build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.md)
+ [Erstellen Sie mithilfe von Amazon Kinesis Video Streams und AWS Fargate eine Videoverarbeitungspipeline](build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate.md)
+ [Erstellen Sie eine ETL-Servicepipeline, um Daten mithilfe von AWS Glue inkrementell von Amazon S3 nach Amazon Redshift zu laden](build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue.md)
+ [Bauen Sie mit Amazon ein Datennetz für Unternehmen auf DataZone AWS CDK, und AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Value at Risk (VaR) mithilfe von AWS-Services berechnen](calculate-value-at-risk-var-by-using-aws-services.md)
+ [Konfigurieren Sie den kontoübergreifenden Zugriff auf einen gemeinsamen AWS Glue Glue-Datenkatalog mit Amazon Athena](configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.md)
+ [Konvertieren Sie die temporale Funktion Teradata NORMALIZE in Amazon Redshift SQL](convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.md)
+ [Konvertieren Sie die Teradata RESET WHEN-Funktion in Amazon Redshift SQL](convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.md)
+ [Bereitstellen und verwalten Sie einen serverlosen Data Lake in der AWS-Cloud, indem Sie Infrastruktur als Code verwenden](deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code.md)
+ [Erzwingen Sie die Kennzeichnung von Amazon EMR-Clustern beim Start](enforce-tagging-of-amazon-emr-clusters-at-launch.md)
+ [Stellen Sie sicher, dass die Amazon EMR-Protokollierung bei Amazon S3 beim Start aktiviert ist](ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch.md)
+ [Generieren Sie Testdaten mit einem AWS Glue Glue-Job und Python](generate-test-data-using-an-aws-glue-job-and-python.md)
+ [Mit AWS IoT Greengrass IoT-Daten kostengünstig direkt in Amazon S3 aufnehmen](cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.md)
+ [Starten Sie einen Spark-Job in einem transienten EMR-Cluster mithilfe einer Lambda-Funktion](launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function.md)
+ [Migrieren Sie Apache Cassandra-Workloads mithilfe von AWS Glue zu Amazon Keyspaces](migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.md)
+ [Migrieren Sie Oracle Business Intelligence 12c von lokalen Servern zur AWS-Cloud](migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.md)
+ [Migrieren Sie einen ELK-Stack zu Elastic Cloud auf AWS](migrate-an-elk-stack-to-elastic-cloud-on-aws.md)
+ [Migrieren Sie Daten mithilfe AWS Cloud von Starburst auf](migrate-data-to-the-aws-cloud-by-using-starburst.md)
+ [Optimieren Sie die ETL-Erfassung der Eingabedateigröße auf AWS](optimize-the-etl-ingestion-of-input-file-size-on-aws.md)
+ [Orchestrieren Sie eine ETL-Pipeline mit Validierung, Transformation und Partitionierung mit AWS Step Functions](orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.md)
+ [Führen Sie erweiterte Analysen mit Amazon Redshift ML durch](perform-advanced-analytics-using-amazon-redshift-ml.md)
+ [Abfragen von Amazon DynamoDB-Tabellen mit SQL mithilfe von Amazon Athena](query-amazon-dynamodb-tables-sql-amazon-athena.md)
+ [Mit Athena auf Amazon DynamoDB-Tabellen zugreifen, diese abfragen und verbinden](access-query-and-join-amazon-dynamodb-tables-using-athena.md)
+ [Richten Sie eine sprachspezifische Sortierung für Amazon Redshift Redshift-Abfrageergebnisse mithilfe einer skalaren Python-UDF ein](set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf.md)
+ [Abonnieren Sie eine Lambda-Funktion für Ereignisbenachrichtigungen von S3-Buckets in verschiedenen AWS-Regionen](subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.md)
+ [Drei AWS Glue ETL-Auftragstypen für die Konvertierung von Daten in Apache Parquet](three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet.md)
+ [Visualisieren Sie Amazon Redshift Redshift-Prüfprotokolle mit Amazon Athena und Amazon QuickSight](visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight.md)
+ [Visualisieren Sie IAM-Anmeldedatenberichte für alle AWS-Konten mit Amazon Quick Sight](visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.md)
+ [Mehr Muster](analytics-more-patterns-pattern-list.md)

# Analysieren Sie Amazon Redshift Redshift-Daten in Microsoft SQL Server Analysis Services
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services"></a>

*Sunil Vora, Amazon Web Services*

## Zusammenfassung
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-summary"></a>

Dieses Muster beschreibt, wie Amazon Redshift Redshift-Daten in Microsoft SQL Server Analysis Services mithilfe des Intellisoft OLE DB-Anbieters oder CData ADO.NET-Anbieters für den Datenbankzugriff verbunden und analysiert werden.

Amazon Redshift ist ein vollständig verwalteter Data-Warehouse-Service in Petabytegröße in der Cloud. SQL Server Analysis Services ist ein OLAP-Tool (Online Analytical Processing), mit dem Sie Daten aus Data Marts und Data Warehouses wie Amazon Redshift analysieren können. Sie können SQL Server Analysis Services verwenden, um OLAP-Cubes aus Ihren Daten für eine schnelle, erweiterte Datenanalyse zu erstellen.  

## Voraussetzungen und Einschränkungen
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-prereqs"></a>

**Annahmen**
+ Dieses Muster beschreibt, wie SQL Server Analysis Services und Intellisoft OLE DB Provider oder CData ADO.NET Provider für Amazon Redshift auf einer Amazon Elastic Compute Cloud (Amazon) -Instance eingerichtet werden. EC2 Alternativ können Sie beide auf einem Host in Ihrem Unternehmensrechenzentrum installieren.

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein Amazon Redshift Redshift-Cluster mit Anmeldeinformationen

## Architektur
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-architecture"></a>

**Quelltechnologie-Stack**
+ Ein Amazon Redshift Redshift-Cluster

**Zieltechnologie-Stack**
+ Microsoft SQL Server-Analysedienste

**Quell- und Zielarchitektur**

![\[Analysieren von Amazon Redshift Redshift-Daten in Microsoft SQL Server Analysis Services\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e444fec0-e00f-4cc6-acc6-4ffc61b654a0/images/6f29dab5-1ea7-452f-9b07-d1d23ae469a2.png)


## Tools
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-tools"></a>
+ [Microsoft Visual Studio 2019 (Community-Ausgabe)](https://visualstudio.microsoft.com/vs/)
+ [Intellisoft OLE DB Provider für Amazon Redshift (Testversion)](https://www.pgoledb.com/index.php?option=com_filecabinet&view=files&id=1&Itemid=68) oder [ CData ADO.NET Provider für](https://www.cdata.com/kb/tech/redshift-ado-ssas.rst) Amazon Redshift (Testversion)

## Epen
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-epics"></a>

### Analysieren Sie Tabellen
<a name="analyze-tables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie die zu importierenden Tabellen und Daten. | Identifizieren Sie die zu importierenden Amazon Redshift Redshift-Tabellen und deren Größen. | DBA | 

### EC2 Instanz einrichten und Tools installieren
<a name="set-up-ec2-instance-and-install-tools"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie eine EC2 Instanz ein. | Erstellen Sie in Ihrem AWS-Konto eine EC2 Instance in einem privaten oder öffentlichen Subnetz. | Systemadministrator | 
| Installieren Sie Tools für den Datenbankzugriff. | Laden Sie den [Intellisoft OLE DB Provider für Amazon Redshift (oder [CData ADO.NET Provider](https://www.cdata.com/kb/tech/redshift-ado-ssas.rst) für Amazon Redshift](https://www.pgoledb.com/index.php?option=com_filecabinet&view=files&id=1&Itemid=68)) herunter und installieren Sie ihn.  | Systemadministrator | 
| Installieren Sie Visual Studio. | Laden Sie [Visual Studio 2019 (Community Edition)](https://visualstudio.microsoft.com/vs/) herunter und installieren Sie es.  | Systemadministrator | 
| Installieren Sie Erweiterungen. | Installieren Sie die **Microsoft Analysis Services Projects-Erweiterung** in Visual Studio. | Systemadministrator | 
| Ein Projekt zu erstellen. | Erstellen Sie ein neues tabellarisches Modellprojekt in Visual Studio, um Ihre Amazon Redshift Redshift-Daten zu speichern. Wählen Sie in Visual Studio die Option **Tabular Project von Analysis Services, wenn Sie Ihr Projekt** erstellen. | DBA | 

### Erstellen Sie eine Datenquelle und importieren Sie Tabellen
<a name="create-data-source-and-import-tables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon Redshift Redshift-Datenquelle. | Erstellen Sie eine Amazon Redshift-Datenquelle, indem Sie den Intellisoft OLE DB-Anbieter für Amazon Redshift (oder den CData ADO.NET-Anbieter für Amazon Redshift) und Ihre Amazon Redshift Redshift-Anmeldeinformationen verwenden. | Amazon Redshift, DBA | 
| Tabellen importieren. | Wählen Sie Tabellen und Ansichten aus Amazon Redshift aus und importieren Sie sie in Ihr SQL Server Analysis Services-Projekt. | Amazon Redshift, DBA | 

### Nach der Migration aufräumen
<a name="clean-up-after-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie die EC2 Instanz. | Löschen Sie die EC2 Instanz, die Sie zuvor gestartet haben. | Systemadministrator | 

## Zugehörige Ressourcen
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-resources"></a>
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/) (AWS-Dokumentation)
+ [Installieren Sie SQL Server Analysis Services](https://docs.microsoft.com/en-us/analysis-services/instances/install-windows/install-analysis-services?view=asallproducts-allversions) (Microsoft-Dokumentation)
+ [Tabular Model Designer](https://docs.microsoft.com/en-us/analysis-services/tabular-models/tabular-model-designer-ssas?view=asallproducts-allversions) (Microsoft-Dokumentation)
+ [Überblick über OLAP-Cubes für erweiterte Analysen](https://docs.microsoft.com/en-us/system-center/scsm/olap-cubes-overview?view=sc-sm-2019) (Microsoft-Dokumentation)
+ [Microsoft Visual Studio 2019 (Community-Ausgabe)](https://visualstudio.microsoft.com/vs/)
+ [Intellisoft OLE DB Provider für Amazon Redshift (Testversion)](https://www.pgoledb.com/index.php?option=com_filecabinet&view=files&id=1&Itemid=68) 
+ [CData ADO.NET-Anbieter für Amazon Redshift (Testversion)](https://www.cdata.com/kb/tech/redshift-ado-ssas.rst)

# Analysieren und visualisieren Sie verschachtelte JSON-Daten mit Amazon Athena und Amazon Quick Sight
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight"></a>

*Anoop Singh, Amazon Web Services*

## Zusammenfassung
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-summary"></a>

Dieses Muster erklärt, wie eine verschachtelte Datenstruktur im JSON-Format mithilfe von Amazon Athena in eine tabellarische Ansicht übersetzt und die Daten anschließend in Amazon Quick Sight visualisiert werden.

Sie können Daten im JSON-Format für API-gestützte Datenfeeds von Betriebssystemen verwenden, um Datenprodukte zu erstellen. Diese Daten können Ihnen auch dabei helfen, Ihre Kunden und deren Interaktionen mit Ihren Produkten besser zu verstehen, sodass Sie Benutzererlebnisse maßgeschneidert und Ergebnisse vorhersagen können.

## Voraussetzungen und Einschränkungen
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Eine JSON-Datei, die eine verschachtelte Datenstruktur darstellt (dieses Muster bietet eine Beispieldatei)

**Einschränkungen:**
+ JSON-Funktionen lassen sich gut in bestehende SQL-orientierte Funktionen in Athena integrieren. Sie sind jedoch nicht ANSI SQL-kompatibel, und es wird erwartet, dass die JSON-Datei jeden Datensatz in einer separaten Zeile enthält. Möglicherweise müssen Sie die `ignore.malformed.json` Eigenschaft in Athena verwenden, um anzugeben, ob falsch formatierte JSON-Datensätze in Nullzeichen umgewandelt werden sollen oder ob Fehler generiert werden sollen. Weitere Informationen finden Sie in der Athena-Dokumentation unter [Bewährte Methoden zum Lesen von JSON-Daten](https://docs.aws.amazon.com/athena/latest/ug/parsing-JSON.html).
+ Dieses Muster berücksichtigt nur einfache und kleine Mengen von Daten im JSON-Format. Wenn Sie diese Konzepte in großem Umfang verwenden möchten, sollten Sie die Datenpartitionierung in Betracht ziehen und Ihre Daten in größeren Dateien konsolidieren.

## Architektur
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-architecture"></a>

Das folgende Diagramm zeigt die Architektur und den Arbeitsablauf für dieses Muster. Die verschachtelten Datenstrukturen werden in Amazon Simple Storage Service (Amazon S3) im JSON-Format gespeichert. In Athena werden die JSON-Daten einer Athena-Datenstruktur zugeordnet. Anschließend erstellen Sie eine Ansicht, um die Daten zu analysieren und die Datenstruktur in Quick Sight zu visualisieren.

![\[Analyse und Visualisierung verschachtelter JSON-Daten auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e9ad39a1-e0a4-4429-bdc0-594b68707761/images/474e8747-626f-468c-9c27-c007af79bf2d.png)


## Tools
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-tools"></a>

**AWS-Services**
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt. Dieses Muster verwendet Amazon S3 zum Speichern der JSON-Datei.
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon S3 analysieren können. Dieses Muster verwendet Athena, um die JSON-Daten abzufragen und zu transformieren. Mit einigen Aktionen in der AWS-Managementkonsole können Sie Athena auf Ihre Daten in Amazon S3 verweisen und Standard-SQL verwenden, um einmalige Abfragen auszuführen. Athena ist serverlos, sodass keine Infrastruktur eingerichtet oder verwaltet werden muss, und Sie zahlen nur für die Abfragen, die Sie ausführen. Athena skaliert automatisch und führt Abfragen parallel aus, sodass die Ergebnisse auch bei großen Datensätzen und komplexen Abfragen schnell sind.     
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten auf einem einzigen Dashboard visualisieren, analysieren und Berichte erstellen können. Mit Quick Sight können Sie auf einfache Weise interaktive Dashboards erstellen und veröffentlichen, die Erkenntnisse aus maschinellem Lernen (ML) enthalten. Sie können von jedem Gerät aus auf diese Dashboards zugreifen und sie in Ihre Anwendungen, Portale und Websites einbetten.

**Beispiel-Code**

Die folgende JSON-Datei bietet eine verschachtelte Datenstruktur, die Sie in diesem Muster verwenden können.

```
{
  "symbol": "AAPL",
  "financials": [
    {
      "reportDate": "2017-03-31",
      "grossProfit": 20591000000,
      "costOfRevenue": 32305000000,
      "operatingRevenue": 52896000000,
      "totalRevenue": 52896000000,
      "operatingIncome": 14097000000,
      "netIncome": 11029000000,
      "researchAndDevelopment": 2776000000,
      "operatingExpense": 6494000000,
      "currentAssets": 101990000000,
      "totalAssets": 334532000000,
      "totalLiabilities": 200450000000,
      "currentCash": 15157000000,
      "currentDebt": 13991000000,
      "totalCash": 67101000000,
      "totalDebt": 98522000000,
      "shareholderEquity": 134082000000,
      "cashChange": -1214000000,
      "cashFlow": 12523000000,
      "operatingGainsLosses": null
    }
  ]
}
```

## Epen
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-epics"></a>

### Richten Sie einen S3-Bucket ein
<a name="set-up-an-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Um einen Bucket zum Speichern der JSON-Datei zu erstellen, melden Sie sich bei der an AWS-Managementkonsole, öffnen Sie die [Amazon S3 S3-Konsole](https://console.aws.amazon.com/s3/) und wählen Sie dann **Bucket erstellen**. Weitere Informationen finden Sie unter [Bucket erstellen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) in der Amazon S3 S3-Dokumentation.  | Systemadministrator | 
| Fügen Sie die verschachtelten JSON-Daten hinzu. | Laden Sie Ihre JSON-Datei in den S3-Bucket hoch. Eine JSON-Beispieldatei finden Sie im vorherigen Abschnitt. Anweisungen finden Sie unter [Objekte hochladen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) in der Amazon S3 S3-Dokumentation. | Systemadministrator | 

### Analysieren Sie Daten in Athena
<a name="analyze-data-in-ate"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Tabelle für die Zuordnung der JSON-Daten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html)Weitere Informationen zum Erstellen von Tabellen finden Sie in der [Athena-Dokumentation](https://docs.aws.amazon.com/athena/latest/ug/creating-tables.html). | Developer | 
| Erstellen Sie eine Ansicht für die Datenanalyse. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html)Weitere Informationen zum Erstellen von Ansichten finden Sie in der [Athena-Dokumentation](https://docs.aws.amazon.com/athena/latest/ug/create-view.html). | Developer | 
| Analysieren und validieren Sie die Daten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html) | Developer | 

### Visualisieren Sie Daten in Quick Sight
<a name="visualize-data-in-qsight"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Athena als Datenquelle in Quick Sight ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html) | Systemadministrator | 
| Visualisieren Sie Daten in Quick Sight. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html) | Datenanalyst | 

## Zugehörige Ressourcen
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-resources"></a>
+ [Amazon Athena Athena-Dokumentation](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)
+ [Anleitungen zu Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/example-analysis.html)
+ [Arbeiten mit verschachteltem JSON](https://aws.amazon.com/blogs/big-data/create-tables-in-amazon-athena-from-nested-json-and-mappings-using-jsonserde/) (Blogbeitrag)

# Automatisieren Sie die Datenaufnahme aus Amazon AWS Data Exchange S3
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3"></a>

*Adnan Alvee und Manikanta Gona, Amazon Web Services*

## Zusammenfassung
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-summary"></a>

Dieses Muster bietet eine CloudFormation Vorlage, mit der Sie automatisch Daten aus Ihrem Data Lake AWS Data Exchange in Amazon Simple Storage Service (Amazon S3) aufnehmen können. 

AWS Data Exchange ist ein Service, der es einfach macht, dateibasierte Datensätze in der AWS-Cloud sicher auszutauschen. AWS Data Exchange Datensätze sind abonnementbasiert. Als Abonnent können Sie auch auf Änderungen von Datensätzen zugreifen, wenn Anbieter neue Daten veröffentlichen. 

Die CloudFormation Vorlage erstellt ein Ereignis in Amazon CloudWatch Events und eine AWS Lambda Funktion. Die Veranstaltung sucht nach Aktualisierungen des Datensatzes, den Sie abonniert haben. Wenn es ein Update gibt, CloudWatch initiiert eine Lambda-Funktion, die die Daten in den von Ihnen angegebenen S3-Bucket kopiert. Wenn die Daten erfolgreich kopiert wurden, sendet Lambda Ihnen eine Amazon Simple Notification Service (Amazon SNS) -Benachrichtigung.

## Voraussetzungen und Einschränkungen
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-prereqs"></a>

**Voraussetzungen**
+ Eine aktive AWS-Konto
+ Abonnement eines Datensatzes in AWS Data Exchange

**Einschränkungen**
+ Die CloudFormation Vorlage muss für jeden abonnierten Datensatz in AWS Data Exchange separat bereitgestellt werden.

## Architektur
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-architecture"></a>

**Zieltechnologie-Stack**
+ AWS Lambda
+ Amazon S3
+ AWS Data Exchange
+ Amazon CloudWatch
+ Amazon SNS

**Zielarchitektur**

![\[CloudWatch initiiert eine Lambda-Funktion, um Daten in den S3-Bucket zu kopieren und eine Amazon SNS SNS-Benachrichtigung zu senden.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/059816dc-5a71-4942-9c7f-ac977072eebc/images/ec021620-47c1-4fb5-95a9-3b8985accc56.png)


**Automatisierung und Skalierung**

Sie können die CloudFormation Vorlage mehrfach für die Datensätze verwenden, die Sie in den Data Lake aufnehmen möchten.

## Tools
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-tools"></a>
+ [AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/what-is.html)macht es AWS Kunden einfach, dateibasierte Datensätze in der sicher auszutauschen. AWS Cloud Als Abonnent können Sie Hunderte von Produkten von qualifizierten Datenanbietern finden und abonnieren. Anschließend können Sie den Datensatz schnell herunterladen oder auf Amazon S3 kopieren, um ihn in einer Vielzahl von AWS Analyse- und Machine-Learning-Diensten zu verwenden. Jeder mit einem AWS-Konto kann AWS Data Exchange Abonnent werden.
+ Mit [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) können Sie Code ausführen, ohne dass Sie Server bereitstellen und verwalten müssen. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. Sie zahlen nur für die Rechenzeit, die Sie verbrauchen. Es fallen keine Gebühren an, wenn Ihr Code nicht ausgeführt wird. Mit Lambda können Sie Code für praktisch jede Art von Anwendung oder Backend-Service ohne Verwaltungsaufwand ausführen. Lambda führt Ihren Code auf einer hochverfügbaren Recheninfrastruktur aus und verwaltet alle Rechenressourcen, einschließlich Server- und Betriebssystemwartung, Kapazitätsbereitstellung und automatische Skalierung, Codeüberwachung und Protokollierung.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) bietet Speicherplatz für das Internet. Mit Amazon S3 können Sie jederzeit beliebige Mengen von Daten von überall aus im Internet speichern und aufrufen.
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) bietet einen Stream von Systemereignissen, die Änderungen an AWS Ressourcen beschreiben, nahezu in Echtzeit. Mithilfe einfacher Regeln, die Sie schnell einrichten können, können Sie Ereignisse zuordnen und sie an eine oder mehrere Zielfunktionen oder Streams weiterleiten. CloudWatch Events erkennt betriebliche Änderungen, sobald sie eintreten. Es reagiert auf diese betrieblichen Änderungen und ergreift bei Bedarf Korrekturmaßnahmen, indem es Nachrichten sendet, um auf die Umgebung zu reagieren, Funktionen aktiviert, Änderungen vornimmt und Statusinformationen erfasst. **Sie können CloudWatch Ereignisse auch verwenden, um mithilfe von **Cron** - oder Rate-Ausdrücken automatisierte Aktionen zu planen, die zu bestimmten Zeiten von selbst initiiert werden.**
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ermöglicht es Anwendungen, Endbenutzern und Geräten, sofort Benachrichtigungen aus der Cloud zu senden und zu empfangen. Amazon SNS bietet Themen (Kommunikationskanäle) für Push-basiertes Messaging mit hohem Durchsatz. many-to-many Mithilfe von Amazon SNS SNS-Themen können Herausgeber Nachrichten zur parallel Verarbeitung an eine große Anzahl von Abonnenten verteilen, einschließlich Amazon Simple Queue Service (Amazon SQS) -Warteschlangen, Lambda-Funktionen und Webhooks. HTTP/S Sie können Amazon SNS auch verwenden, um Benachrichtigungen per Push, SMS und E-Mail an Endbenutzer zu senden.

## Epen
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-epics"></a>

### Abonnieren Sie einen Datensatz
<a name="subscribe-to-a-data-set"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Abonnieren Sie einen Datensatz. | Abonnieren Sie in der AWS Data Exchange Konsole einen Datensatz. Anweisungen finden Sie AWS Data Exchange in der AWS Dokumentation unter [Abonnieren von Datenprodukten](https://docs.aws.amazon.com/data-exchange/latest/userguide/subscribe-to-data-sets.html). | Allgemeines AWS | 
| Notieren Sie sich die Attribute des Datensatzes. | Notieren Sie AWS-Region sich die ID und die Revisions-ID für den Datensatz. Sie benötigen dies für die CloudFormation Vorlage im nächsten Schritt. | Allgemeines AWS | 

### Stellen Sie die CloudFormation Vorlage bereit
<a name="deploy-the-cfn-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket und einen Ordner. | Wenn Sie bereits über einen Data Lake in Amazon S3 verfügen, erstellen Sie einen Ordner, in dem die Daten gespeichert werden, aus AWS Data Exchange denen Sie aufnehmen möchten. Wenn Sie die Vorlage zu Testzwecken bereitstellen, erstellen Sie einen neuen S3-Bucket und notieren Sie sich den Bucket-Namen und das Ordnerpräfix für den nächsten Schritt. | Allgemeines AWS | 
| Stellen Sie die CloudFormation Vorlage bereit. | Stellen Sie die CloudFormation Vorlage bereit, die als Anlage zu diesem Muster bereitgestellt wird. Anweisungen finden Sie in der [CloudFormation Dokumentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).Konfigurieren Sie die folgenden Parameter so AWS-Konto, dass sie Ihren Datensatz- und S3-Bucket-Einstellungen entsprechen: **Datensatz AWS-Region****, Datensatz-ID**, **Revisions-ID**, **S3-Bucket-Name** (zum Beispiel`DOC-EXAMPLE-BUCKET`), **Ordnerpräfix** (zum Beispiel`myfolder/`) und **E-Mail für SNS-Benachrichtigung**. Sie können den Parameter **Dataset Name** auf einen beliebigen Namen festlegen. Wenn Sie die Vorlage bereitstellen, führt sie eine Lambda-Funktion aus, um automatisch den ersten im Datensatz verfügbaren Datensatz aufzunehmen. Die nachfolgende Aufnahme erfolgt dann automatisch, sobald neue Daten in den Datensatz aufgenommen werden. | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-resources"></a>
+ [Abonnieren von Datenprodukten auf AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/subscribe-to-data-sets.html) (AWS Data Exchange Dokumentation)

## Anlagen
<a name="attachments-059816dc-5a71-4942-9c7f-ac977072eebc"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/059816dc-5a71-4942-9c7f-ac977072eebc/attachments/attachment.zip)

# Automatisieren Sie die Durchsetzung von Verschlüsselungen in AWS Glue mithilfe einer CloudFormation AWS-Vorlage
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template"></a>

*Diogo Guedes, Amazon Web Services*

## Zusammenfassung
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie mithilfe einer CloudFormation AWS-Vorlage die Durchsetzung von Verschlüsselungen in AWS Glue einrichten und automatisieren. Die Vorlage erstellt alle erforderlichen Konfigurationen und Ressourcen für die Durchsetzung der Verschlüsselung. Zu diesen Ressourcen gehören eine Erstkonfiguration, eine durch eine EventBridge Amazon-Regel erstellte präventive Kontrolle und eine AWS-Lambda-Funktion.

## Voraussetzungen und Einschränkungen
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Berechtigungen zur Bereitstellung der CloudFormation Vorlage und ihrer Ressourcen

**Einschränkungen**

Diese Sicherheitskontrolle ist regional. Sie müssen die Sicherheitskontrolle in jeder AWS-Region bereitstellen, in der Sie die Durchsetzung der Verschlüsselung in AWS Glue einrichten möchten.

## Architektur
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon CloudWatch Logs (von AWS Lambda)
+  EventBridge Amazon-Regel
+  CloudFormation AWS-Stapel
+ AWS CloudTrail
+ Von AWS Identity and Access Management (IAM) verwaltete Rolle und Richtlinie
+ AWS Key Management Service (AWS KMS)
+ AWS-KMS-Alias
+ AWS Lambda-Funktion
+ AWS Systems Manager Parameter Store

**Zielarchitektur**

Das folgende Diagramm zeigt, wie die Durchsetzung von Verschlüsselungen in AWS Glue automatisiert werden kann.

![\[Das Diagramm zeigt, wie die Durchsetzung von Verschlüsselungen in AWS Glue mithilfe einer CloudFormation Vorlage automatisiert wird.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/d50d0659-5592-44d0-8fcb-7a2983712640/images/272a7fb2-ecbc-41f7-a556-d555e4e39a59.png)


Das Diagramm zeigt den folgenden Workflow:

1. Eine [CloudFormation Vorlage](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml) erstellt alle Ressourcen, einschließlich der Erstkonfiguration und der Erkennungskontrolle für die Durchsetzung der Verschlüsselung in AWS Glue.

1. Eine EventBridge Regel erkennt eine Statusänderung in der Verschlüsselungskonfiguration.

1. Eine Lambda-Funktion wird zur Auswertung und Protokollierung über Logs CloudWatch aufgerufen. Bei der Erkennung von Nichtkonformitäten wird der Parameter Store mit einem Amazon-Ressourcennamen (ARN) für einen AWS-KMS-Schlüssel wiederhergestellt. Der Service wird bei aktivierter Verschlüsselung auf den Status „konform“ zurückgesetzt.

**Automatisierung und Skalierung**

Wenn Sie [AWS Organizations](https://aws.amazon.com/organizations/) verwenden, können Sie [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) verwenden, CloudFormation StackSets um diese Vorlage in mehreren Konten bereitzustellen, für die Sie die Durchsetzung der Verschlüsselung in AWS Glue aktivieren möchten.

## Tools
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-tools"></a>
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) hilft Ihnen dabei, die Metriken Ihrer AWS-Ressourcen und der Anwendungen, die Sie auf AWS ausführen, in Echtzeit zu überwachen.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel Lambda-Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen AWS-Konten.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten.
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) unterstützt Sie dabei, Betriebs- und Risikoprüfungen, Governance und Compliance Ihres AWS-Kontos zu ermöglichen.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter Service zum Extrahieren, Transformieren und Laden (ETL). Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) unterstützt Sie bei der Erstellung und Kontrolle kryptografischer Schlüssel, um Ihre Daten zu schützen.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) unterstützt Sie bei der Verwaltung Ihrer Anwendungen und Infrastruktur, die in der AWS-Cloud ausgeführt werden. Es vereinfacht das Anwendungs- und Ressourcenmanagement, verkürzt die Zeit für die Erkennung und Lösung betrieblicher Probleme und hilft Ihnen, Ihre AWS-Ressourcen sicher und skalierbar zu verwalten.

**Code**

Der Code für dieses Muster ist im GitHub [aws-custom-guardrail-event-gesteuerten](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml) Repository verfügbar.

## Best Practices
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-best-practices"></a>

AWS Glue unterstützt die Datenverschlüsselung im Ruhezustand für die [Erstellung von Jobs in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) und die [Entwicklung von Skripten mithilfe von Entwicklungsendpunkten](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint.html).

Bedenken Sie die folgenden bewährten Methoden:
+ Konfigurieren Sie ETL-Jobs und Entwicklungsendpunkte so, dass sie AWS-KMS-Schlüssel verwenden, um verschlüsselte Daten im Ruhezustand zu schreiben.
+ Verschlüsseln Sie die im [AWS Glue Glue-Datenkatalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) gespeicherten Metadaten mithilfe von Schlüsseln, die Sie über AWS KMS verwalten.
+ Verwenden Sie AWS-KMS-Schlüssel, um Job-Lesezeichen und die von [Crawlern](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) und ETL-Jobs generierten Protokolle zu verschlüsseln.

## Epen
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-epics"></a>

### Starten Sie die Vorlage CloudFormation
<a name="launch-the-cloudformation-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die CloudFormation Vorlage bereit. | Laden Sie die `aws-custom-guardrail-event-driven.yaml` Vorlage aus dem GitHub [Repository](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml) herunter und [stellen Sie sie dann bereit](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html). Der `CREATE_COMPLETE` Status gibt an, dass Ihre Vorlage erfolgreich bereitgestellt wurde.Die Vorlage benötigt keine Eingabeparameter. | Cloud-Architekt | 

### Überprüfen Sie die Verschlüsselungseinstellungen in AWS Glue
<a name="verify-the-encryption-settings-in-aws-glue"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die AWS-KMS-Schlüsselkonfigurationen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html) | Cloud-Architekt | 

### Testen Sie die Durchsetzung der Verschlüsselung
<a name="test-the-encryption-enforcement"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Verschlüsselungseinstellung in CloudFormation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html) | Cloud-Architekt | 
| Versetzen Sie die bereitgestellte Infrastruktur in einen nicht konformen Zustand. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html)Die Guardrail erkennt den Status „Nicht konform“ in AWS Glue, nachdem Sie die Kontrollkästchen deaktiviert haben, und erzwingt dann die Einhaltung der Vorschriften, indem sie die Fehlkonfiguration der Verschlüsselung automatisch behebt. Daher sollten die Kontrollkästchen für die Verschlüsselung nach dem Aktualisieren der Seite erneut aktiviert werden. | Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-resources"></a>
+ [Einen Stack auf der CloudFormation AWS-Konsole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) erstellen ( CloudFormation AWS-Dokumentation)
+ [Erstellen einer CloudWatch Ereignisregel, die bei einem AWS-API-Aufruf mithilfe von AWS ausgelöst](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) wird CloudTrail ( CloudWatch Amazon-Dokumentation)
+ [Verschlüsselung in AWS Glue einrichten (AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/set-up-encryption.html) Glue-Dokumentation)

# Erstellen Sie mit dem AWS DataOps Development Kit eine Datenpipeline, um Google Analytics-Daten aufzunehmen, zu transformieren und zu analysieren
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit"></a>

*Anton Kukushkin und Rudy Puig, Amazon Web Services*

## Zusammenfassung
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-summary"></a>

Dieses Muster beschreibt, wie Sie eine Datenpipeline zum Erfassen, Transformieren und Analysieren von Google Analytics-Daten mithilfe des AWS DataOps Development Kit (AWS DDK) und anderer Tools aufbauen. AWS-Services Das AWS DDK ist ein Open-Source-Entwicklungsframework, das Sie beim Aufbau von Datenworkflows und moderner Datenarchitektur unterstützt. AWS Eines der Hauptziele des AWS DDK besteht darin, Ihnen Zeit und Mühe zu ersparen, die normalerweise für arbeitsintensive Daten-Pipeline-Aufgaben aufgewendet werden, wie z. B. die Orchestrierung von Pipelines, den Aufbau der Infrastruktur und die Schaffung der dahinter stehenden Infrastruktur. DevOps Sie können diese arbeitsintensiven Aufgaben an AWS DDK auslagern, sodass Sie sich auf das Schreiben von Code und andere wichtige Aktivitäten konzentrieren können.

## Voraussetzungen und Einschränkungen
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Ein AppFlow Amazon-Connector für Google Analytics, [konfiguriert](https://docs.aws.amazon.com/appflow/latest/userguide/google-analytics.html)
+ [Python](https://www.python.org/downloads/) und [Pip](https://pip.pypa.io/en/stable/cli/pip_download/) (Pythons Paketmanager)
+ Git, installiert und [konfiguriert](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup)
+ AWS Command Line Interface (AWS CLI), [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ AWS Cloud Development Kit (AWS CDK), [installiert](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)

**Versionen der Produkte**
+ Python 3.7 oder höher
+ pip 9.0.3 oder höher

## Architektur
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-architecture"></a>

**Technologie-Stack**
+ Amazon AppFlow
+ Amazon Athena
+ Amazon CloudWatch
+ Amazon EventBridge
+ Amazon Simple Storage Service (Amazon-S3)
+ Amazon-Simple-Queue-Service (Amazon SQS)
+ AWS DataOps Entwicklungskit (AWS DDK)
+ AWS Lambda

**Zielarchitektur**

Das folgende Diagramm zeigt den ereignisgesteuerten Prozess, der Google Analytics-Daten aufnimmt, transformiert und analysiert.

![\[Erfassung, Transformation und Analyse von Google Analytics-Daten mit AWS-Services.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/edf40222-2867-4d4a-9153-ab29785b6662/images/8c38b472-153b-4497-982c-8efb97d2f7a5.png)


Das Diagramm zeigt den folgenden Workflow:

1. Eine Amazon-Regel CloudWatch für geplante Ereignisse ruft Amazon AppFlow auf.

1. Amazon AppFlow nimmt Google Analytics-Daten in einen S3-Bucket auf.

1. Nachdem die Daten vom S3-Bucket aufgenommen wurden, EventBridge werden Ereignisbenachrichtigungen generiert, von einer CloudWatch Event-Regel erfasst und dann in eine Amazon SQS SQS-Warteschlange gestellt.

1. Eine Lambda-Funktion verarbeitet Ereignisse aus der Amazon SQS SQS-Warteschlange, liest die entsprechenden S3-Objekte, wandelt die Objekte in das Apache Parquet-Format um, schreibt die transformierten Objekte in den S3-Bucket und erstellt oder aktualisiert dann die Tabellendefinition. AWS Glue Data Catalog 

1. Eine Athena-Abfrage wird für die Tabelle ausgeführt.

## Tools
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-tools"></a>

**AWS Werkzeuge**
+ [Amazon AppFlow](https://docs.aws.amazon.com/appflow/latest/userguide/what-is-appflow.html) ist ein vollständig verwalteter Integrationsservice, der Ihnen den sicheren Datenaustausch zwischen SaaS-Anwendungen (Software as a Service) ermöglicht.
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon S3 analysieren können.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) hilft Ihnen dabei, die Kennzahlen Ihrer AWS Ressourcen und der Anwendungen, auf denen Sie laufen, AWS in Echtzeit zu überwachen.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)ist ein Framework für die Definition der Cloud-Infrastruktur im Code und deren Bereitstellung. CloudFormation
+ [AWS DataOps Development Kit (AWS DDK)](https://github.com/awslabs/aws-ddk) ist ein Open-Source-Entwicklungsframework, das Sie beim Aufbau von Datenworkflows und moderner Datenarchitektur unterstützt. AWS

**Code**

Der Code für dieses Muster ist in den GitHub [AWS DataOps Repositorys Development Kit (AWS DDK)](https://github.com/awslabs/aws-ddk) und [Analysieren von Google Analytics-Daten mit Amazon AppFlow, Amazon Athena und AWS DataOps Development Kit](https://github.com/aws-samples/aws-ddk-examples/tree/main/google-analytics-data-using-appflow/python) verfügbar.

## Epen
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-epics"></a>

### Bereite die Umgebung vor
<a name="prepare-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie den Quellcode. | Führen Sie den folgenden Befehl aus, um den Quellcode zu klonen:<pre>git clone https://github.com/aws-samples/aws-ddk-examples.git</pre> | DevOps Ingenieur | 
| Erstellen Sie eine virtuelle Umgebung. | Navigieren Sie zum Quellcodeverzeichnis und führen Sie dann den folgenden Befehl aus, um eine virtuelle Umgebung zu erstellen:<pre>cd google-analytics-data-using-appflow/python && python3 -m venv .venv</pre> | DevOps Ingenieur | 
| Installieren Sie die Abhängigkeiten. | Führen Sie den folgenden Befehl aus, um die virtuelle Umgebung zu aktivieren und die Abhängigkeiten zu installieren:<pre>source .venv/bin/activate && pip install -r requirements.txt</pre> | DevOps Ingenieur | 

### Stellen Sie die Anwendung bereit, die Ihre Datenpipeline verwendet
<a name="deploy-the-application-that-uses-your-data-pipeline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bootstrap für die Umgebung | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.html) | DevOps Ingenieur | 
| Stellen Sie die Daten bereit. | Führen Sie den `cdk deploy --profile [AWS_PROFILE]` Befehl aus, um die Datenpipeline bereitzustellen. | DevOps Ingenieur | 

### Testen der Bereitstellung
<a name="test-the-deployment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie den Stack-Status. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.html) | DevOps Ingenieur | 

## Fehlerbehebung
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Die Bereitstellung schlägt während der Erstellung einer `AWS::AppFlow::Flow` Ressource fehl und Sie erhalten die folgende Fehlermeldung: `Connector Profile with name ga-connection does not exist` | Bestätigen Sie, dass Sie einen AppFlow Amazon-Connector für Google Analytics erstellt und ihm einen Namen gegeben haben`ga-connection`.Anweisungen finden Sie unter [Google Analytics](https://docs.aws.amazon.com/appflow/latest/userguide/google-analytics.html) in der AppFlow Amazon-Dokumentation. | 

## Zugehörige Ressourcen
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-resources"></a>
+ [AWS DataOps Entwicklungskit (AWS DDK) (GitHub)](https://github.com/awslabs/aws-ddk)
+ [AWS DDK-Beispiele](https://github.com/aws-samples/aws-ddk-examples) () GitHub

## Zusätzliche Informationen
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-additional"></a>

AWS DDK-Daten-Pipelines bestehen aus einer oder mehreren Stufen. In den folgenden Codebeispielen verwenden Sie, `AppFlowIngestionStage` um Daten aus Google Analytics aufzunehmen, `SqsToLambdaStage` die Datentransformation durchzuführen und `AthenaSQLStage` die Athena-Abfrage auszuführen.

Zunächst werden die Phasen Datentransformation und Datenaufnahme erstellt, wie das folgende Codebeispiel zeigt:

```
        appflow_stage = AppFlowIngestionStage(
            self,
            id="appflow-stage",
            flow_name=flow.flow_name,
        )
        sqs_lambda_stage = SqsToLambdaStage(
            self,
            id="lambda-stage",
            lambda_function_props={
                "code": Code.from_asset("./ddk_app/lambda_handlers"),
                "handler": "handler.lambda_handler",
                "layers": [
                    LayerVersion.from_layer_version_arn(
                        self,
                        id="layer",
                        layer_version_arn=f"arn:aws:lambda:{self.region}:336392948345:layer:AWSDataWrangler-Python39:1",
                    )
                ],
                "runtime": Runtime.PYTHON_3_9,
            },
        )
        # Grant lambda function S3 read & write permissions
        bucket.grant_read_write(sqs_lambda_stage.function)
        # Grant Glue database & table permissions
        sqs_lambda_stage.function.add_to_role_policy(
            self._get_glue_db_iam_policy(database_name=database.database_name)
        )
        athena_stage = AthenaSQLStage(
            self,
            id="athena-sql",
            query_string=[
                (
                    "SELECT year, month, day, device, count(user_count) as cnt "
                    f"FROM {database.database_name}.ga_sample "
                    "GROUP BY year, month, day, device "
                    "ORDER BY cnt DESC "
                    "LIMIT 10; "
                )
            ],
            output_location=Location(
                bucket_name=bucket.bucket_name, object_key="query-results/"
            ),
            additional_role_policy_statements=[
                self._get_glue_db_iam_policy(database_name=database.database_name)
            ],
        )
```

Als Nächstes wird das `DataPipeline` Konstrukt verwendet, um die Stufen mithilfe von EventBridge Regeln miteinander zu verbinden, wie das folgende Codebeispiel zeigt:

```
        (
            DataPipeline(self, id="ingestion-pipeline")
            .add_stage(
                stage=appflow_stage,
                override_rule=Rule(
                    self,
                    "schedule-rule",
                    schedule=Schedule.rate(Duration.hours(1)),
                    targets=appflow_stage.targets,
                ),
            )
            .add_stage(
                stage=sqs_lambda_stage,
                # By default, AppFlowIngestionStage stage emits an event after the flow run finishes successfully
                # Override rule below changes that behavior to call the the stage when data lands in the bucket instead
                override_rule=Rule(
                    self,
                    "s3-object-created-rule",
                    event_pattern=EventPattern(
                        source=["aws.s3"],
                        detail={
                            "bucket": {"name": [bucket.bucket_name]},
                            "object": {"key": [{"prefix": "ga-data"}]},
                        },
                        detail_type=["Object Created"],
                    ),
                    targets=sqs_lambda_stage.targets,
                ),
            )
            .add_stage(stage=athena_stage)
        )
```

Weitere Codebeispiele finden Sie im Repository GitHub [Analysieren von Google Analytics-Daten mit Amazon AppFlow, Amazon Athena und AWS DataOps Development Kit](https://github.com/aws-samples/aws-ddk-examples/tree/main/google-analytics-data-using-appflow/python).

# Erstellen Sie mithilfe von Amazon Kinesis Video Streams und AWS Fargate eine Videoverarbeitungspipeline
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate"></a>

*Piotr Chotkowski und Pushparaju Thangavel, Amazon Web Services*

## Zusammenfassung
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-summary"></a>

Dieses Muster zeigt, wie [Amazon Kinesis Video Streams](https://aws.amazon.com/kinesis/video-streams/) und [AWS Fargate](https://aws.amazon.com/fargate) verwendet werden, um Frames aus einem Videostream zu extrahieren und sie als Bilddateien für die weitere Verarbeitung in [Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) zu speichern. 

Das Muster bietet eine Beispielanwendung in Form eines Java-Maven-Projekts. Diese Anwendung definiert die AWS-Infrastruktur mithilfe des [AWS Cloud Development Kit](https://aws.amazon.com/cdk/) (AWS CDK). Sowohl die Frame-Verarbeitungslogik als auch die Infrastrukturdefinitionen sind in der Programmiersprache Java geschrieben. Sie können diese Beispielanwendung als Grundlage für die Entwicklung Ihrer eigenen Echtzeit-Videoverarbeitungspipeline oder für die Erstellung des Videovorverarbeitungsschritts einer Pipeline für maschinelles Lernen verwenden. 

## Voraussetzungen und Einschränkungen
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Java SE Development Kit (JDK) 11, installiert
+ [Apache Maven](https://maven.apache.org/), installiert
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html), installiert
+ [AWS-Befehlszeilenschnittstelle (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) Version 2, installiert
+ [Docker](https://docs.docker.com/get-docker/) (erforderlich für die Erstellung von Docker-Images zur Verwendung in AWS Fargate-Aufgabendefinitionen), installiert

**Einschränkungen**

Dieses Muster ist als Machbarkeitsnachweis oder als Grundlage für die weitere Entwicklung gedacht. Es sollte in seiner derzeitigen Form nicht in Produktionsbereitstellungen verwendet werden.

**Produktversionen**
+ Dieses Muster wurde mit der AWS-CDK-Version 1.77.0 getestet (siehe [AWS-CDK-Versionen](https://docs.aws.amazon.com/cdk/api/latest/versions.html))
+ JDK 11
+ AWS-CLI Version 2

## Architektur
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon Kinesis Video Streams
+ AWS Fargate-Aufgabe
+ Amazon Simple Queue Service-Warteschlange (Amazon SQS)
+ Amazon-S3-Bucket

**Zielarchitektur**

![\[Architektur für die Verwendung von Kinesis Video Streams und Fargate zum Aufbau einer Videoverarbeitungspipeline.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9d1442c2-f3ee-47fd-8cce-90d9206ce4d4/images/a60e585f-27be-4dd6-897b-c38adf1d283f.png)


Der Benutzer erstellt einen Kinesis-Videostream, lädt ein Video hoch und sendet eine JSON-Nachricht, die Details zum Kinesis-Eingabevideostream und zum S3-Ausgabe-Bucket enthält, an eine SQS-Warteschlange. AWS Fargate, das die Hauptanwendung in einem Container ausführt, ruft die Nachricht aus der SQS-Warteschlange ab und beginnt mit dem Extrahieren von Frames. Jeder Frame wird in einer Bilddatei und im Ziel-S3-Bucket gespeichert.

**Automatisierung und Skalierung**

Die Beispielanwendung kann innerhalb einer einzelnen AWS-Region sowohl horizontal als auch vertikal skaliert werden. Horizontale Skalierung kann erreicht werden, indem die Anzahl der bereitgestellten AWS Fargate-Aufgaben erhöht wird, die aus der SQS-Warteschlange lesen. Vertikale Skalierung kann erreicht werden, indem die Anzahl der Framesplitting- und Image-Publishing-Threads in der Anwendung erhöht wird. Diese Einstellungen werden in der Definition der [QueueProcessingFargateService](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ecs-patterns.QueueProcessingFargateService.html)Ressource im AWS-CDK als Umgebungsvariablen an die Anwendung übergeben. Aufgrund der Art der AWS-CDK-Stack-Bereitstellung können Sie diese Anwendung ohne zusätzlichen Aufwand in mehreren AWS-Regionen und Konten bereitstellen.

## Tools
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-tools"></a>

**Tools**
+ [AWS CDK](https://aws.amazon.com/cdk/) ist ein Softwareentwicklungsframework zur Definition Ihrer Cloud-Infrastruktur und -Ressourcen mithilfe von Programmiersprachen wie TypeScript,, Python JavaScript, Java und C\$1/.Net.
+ [Amazon Kinesis Video Streams](https://aws.amazon.com/kinesis/video-streams/) ist ein vollständig verwalteter AWS-Service, mit dem Sie Live-Videos von Geräten in die AWS-Cloud streamen oder Anwendungen für Echtzeit-Videoverarbeitung oder stapelorientierte Videoanalysen erstellen können.
+ [AWS Fargate](https://aws.amazon.com/fargate) ist eine serverlose Compute-Engine für Container. Fargate macht die Bereitstellung und Verwaltung von Servern überflüssig, sodass Sie sich auf die Entwicklung Ihrer Anwendungen konzentrieren können.
+ [Amazon S3](https://aws.amazon.com/s3/) ist ein Objektspeicherservice, der Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet.
+ [Amazon SQS](https://aws.amazon.com/sqs/) ist ein vollständig verwalteter Message Queuing-Service, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln und skalieren können.

**Code**
+ Eine ZIP-Datei des Beispielanwendungsprojekts () ist angehängt. `frame-splitter-code.zip`

## Epen
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-epics"></a>

### Stellen Sie die Infrastruktur bereit
<a name="deploy-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie den Docker-Daemon. | Starten Sie den Docker-Daemon auf Ihrem lokalen System. Das AWS CDK verwendet Docker, um das Image zu erstellen, das in der AWS Fargate-Aufgabe verwendet wird. Sie müssen Docker ausführen, bevor Sie mit dem nächsten Schritt fortfahren können. | Entwickler, Ingenieur DevOps  | 
| Erstellen Sie das Projekt. | Laden Sie die `frame-splitter-code` Beispielanwendung (im Anhang) herunter und extrahieren Sie ihren Inhalt in einen Ordner auf Ihrem lokalen Computer. Bevor Sie die Infrastruktur bereitstellen können, müssen Sie das [Java-Maven-Projekt](https://maven.apache.org/) erstellen. Navigieren Sie in einer Befehlszeile zum Stammverzeichnis des Projekts und erstellen Sie das Projekt, indem Sie den folgenden Befehl ausführen: <pre>mvn clean install</pre> | Entwickler, DevOps Ingenieur | 
| Bootstrap für das AWS-CDK. | (Nur AWS-CDK-Erstbenutzer) Wenn Sie das AWS-CDK zum ersten Mal verwenden, müssen Sie die Umgebung möglicherweise booten, indem Sie den AWS-CLI-Befehl ausführen:<pre>cdk bootstrap --profile "$AWS_PROFILE_NAME" </pre>wo `$AWS_PROFILE_NAME` der Name des AWS-Profils aus Ihren AWS-Anmeldeinformationen gespeichert ist. Sie können diesen Parameter auch entfernen, um das Standardprofil zu verwenden. Weitere Informationen finden Sie in der [AWS-CDK-Dokumentation](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html). | Entwickler, Ingenieur DevOps  | 
| Stellen Sie den AWS-CDK-Stack bereit. | In diesem Schritt erstellen Sie die erforderlichen Infrastrukturressourcen (SQS-Warteschlange, S3-Bucket, AWS Fargate-Aufgabendefinition) in Ihrem AWS-Konto, erstellen das Docker-Image, das für die AWS Fargate-Aufgabe erforderlich ist, und stellen die Anwendung bereit. Navigieren Sie an einer Befehlszeile zum Stammverzeichnis des Projekts und führen Sie den folgenden Befehl aus:<pre>cdk deploy --profile "$AWS_PROFILE_NAME" --all </pre>wo `$AWS_PROFILE_NAME` der Name des AWS-Profils aus Ihren AWS-Anmeldeinformationen gespeichert ist. Sie können diesen Parameter auch entfernen, um das Standardprofil zu verwenden. Bestätigen Sie die Bereitstellung. Notieren Sie sich die Werte **QueueUrl**und **Bucket** aus der CDK-Bereitstellungsausgabe. Sie werden sie in späteren Schritten benötigen. Das AWS-CDK erstellt die Ressourcen, lädt sie auf Ihr AWS-Konto hoch und erstellt alle Infrastrukturressourcen. Sie können den Prozess der Ressourcenerstellung in der [ CloudFormation AWS-Konsole](https://console.aws.amazon.com/cloudformation/) beobachten. Weitere Informationen finden Sie in der [ CloudFormation AWS-Dokumentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) und der [AWS-CDK-Dokumentation](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#hello_world_tutorial_deploy). | Entwickler, Ingenieur DevOps  | 
| Erstellen Sie einen Videostream. | In diesem Schritt erstellen Sie einen Kinesis-Videostream, der als Eingangsstream für die Videoverarbeitung dient. Stellen Sie sicher, dass Sie die AWS-CLI installiert und konfiguriert haben. Führen Sie in der AWS-CLI Folgendes aus:<pre>aws kinesisvideo --profile "$AWS_PROFILE_NAME" create-stream --stream-name "$STREAM_NAME" --data-retention-in-hours "24" </pre>wobei der `$AWS_PROFILE_NAME` Name des AWS-Profils aus Ihren AWS-Anmeldeinformationen enthalten ist (oder entfernen Sie diesen Parameter, um das Standardprofil zu verwenden) und `$STREAM_NAME` ein beliebiger gültiger Streamname ist. Alternativ können Sie mithilfe der Kinesis-Konsole einen Videostream erstellen, indem Sie die Schritte in der [Kinesis Video Streams-Dokumentation](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-createstream.html#gs-createstream-console) befolgen. Notieren Sie sich den AWS-Ressourcennamen (ARN) des erstellten Streams. Sie benötigen ihn später. | Entwickler, DevOps Ingenieur | 

### Führen Sie ein Beispiel aus
<a name="run-an-example"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie das Video in den Stream hoch. | Öffnen Sie im Projektordner für die `frame-splitter-code` Beispielanwendung die `ProcessingTaskTest.java` Datei im `src/test/java/amazon/awscdk/examples/splitter` Ordner. Ersetzen Sie die `streamName`**** Variablen `profileName`**** und durch die Werte, die Sie in den vorherigen Schritten verwendet haben. Um das Beispielvideo in den Kinesis-Videostream hochzuladen, den Sie im vorherigen Schritt erstellt haben, führen Sie folgenden Befehl aus:  <pre>amazon.awscdk.examples.splitter.ProcessingTaskTest#testExample test</pre>Alternativ können Sie Ihr Video mit einer der in der [Kinesis Video Streams Streams-Dokumentation](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk.html) beschriebenen Methoden hochladen. | Entwickler, Ingenieur DevOps  | 
| Initiieren Sie die Videoverarbeitung. | Nachdem Sie ein Video in den Kinesis-Videostream hochgeladen haben, können Sie mit der Verarbeitung beginnen. Um die Verarbeitungslogik zu initiieren, müssen Sie eine Nachricht mit Details an die SQS-Warteschlange senden, die das AWS-CDK während der Bereitstellung erstellt hat. Um eine Nachricht mit der AWS-CLI zu senden, führen Sie Folgendes aus:<pre>aws sqs --profile "$AWS_PROFILE_NAME" send-message --queue-url QUEUE_URL --message-body MESSAGE </pre>wobei `$AWS_PROFILE_NAME` der Name des AWS-Profils aus Ihren AWS-Anmeldeinformationen (entfernen Sie diesen Parameter, um das Standardprofil zu verwenden), `QUEUE_URL` der **QueueUrl**Wert aus der AWS-CDK-Ausgabe `MESSAGE` ist und eine JSON-Zeichenfolge im folgenden Format ist: <pre>{ "streamARN": "STREAM_ARN", "bucket": "BUCKET_NAME", "s3Directory": "test-output" }</pre>Dabei `STREAM_ARN` handelt es sich um den ARN des Videostreams, den Sie in einem früheren Schritt erstellt haben, und `BUCKET_NAME` um den **Bucket-Wert** aus der AWS-CDK-Ausgabe. Durch das Senden dieser Nachricht wird die Videoverarbeitung eingeleitet. Alternativ können Sie eine Nachricht mithilfe der Amazon SQS SQS-Konsole senden, wie in der [Amazon SQS SQS-Dokumentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-send-messages.html) beschrieben. | Entwickler, Ingenieur DevOps  | 
| Bilder der Videoframes anzeigen. | Sie können die resultierenden Bilder im S3-Ausgabe-Bucket sehen, `s3://BUCKET_NAME/test-output` wo `BUCKET_NAME` sich der **Bucket-Wert** aus der AWS-CDK-Ausgabe befindet. | Entwickler, Ingenieur DevOps  | 

## Zugehörige Ressourcen
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-resources"></a>
+ [AWS-CDK-Dokumentation](https://docs.aws.amazon.com/cdk/latest/guide/home.html)
+ [AWS-CDK-API-Referenz](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html)
+ [AWS CDK Einführungsworkshop](https://cdkworkshop.com/)
+ [Dokumentation zu Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html)
+ [Beispiel: Identifizieren von Objekten in Videostreams mithilfe von SageMaker](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-sagemaker.html)
+ [Beispiel: Analysieren und Rendern von Kinesis-Videostream-Fragmenten](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-renderer.html)
+ [Analysieren Sie Live-Videos in großem Maßstab in Echtzeit mit Amazon Kinesis Video Streams und Amazon SageMaker](https://aws.amazon.com/blogs/machine-learning/analyze-live-video-at-scale-in-real-time-using-amazon-kinesis-video-streams-and-amazon-sagemaker/) (Blogbeitrag zu AWS Machine Learning)
+ [AWS Fargate — Erste Schritte](https://aws.amazon.com/fargate/getting-started/)

## Zusätzliche Informationen
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-additional"></a>

**Eine IDE auswählen**

Wir empfehlen Ihnen, Ihre bevorzugte Java-IDE zu verwenden, um dieses Projekt zu erstellen und zu erkunden.  

**Bereinigen**

Nachdem Sie dieses Beispiel ausgeführt haben, entfernen Sie alle bereitgestellten Ressourcen, um zusätzliche AWS-Infrastrukturkosten zu vermeiden. 

Verwenden Sie diese beiden Befehle in der AWS-CLI, um die Infrastruktur und den Videostream zu entfernen:

```
cdk destroy --profile "$AWS_PROFILE_NAME" --all
```

```
aws kinesisvideo --profile "$AWS_PROFILE_NAME" delete-stream --stream-arn "$STREAM_ARN"
```

Alternativ können Sie die Ressourcen manuell entfernen, indem Sie die CloudFormation AWS-Konsole verwenden, um den CloudFormation AWS-Stack zu entfernen, und die Kinesis-Konsole, um den Kinesis-Videostream zu entfernen. Beachten Sie, dass der Ausgabe-S3-Bucket oder die Bilder in den Amazon Elastic Container Registry (Amazon ECR) -Repositorys (`aws-cdk/assets`) `cdk destroy` nicht entfernt werden. Sie müssen sie manuell entfernen.

## Anlagen
<a name="attachments-9d1442c2-f3ee-47fd-8cce-90d9206ce4d4"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/9d1442c2-f3ee-47fd-8cce-90d9206ce4d4/attachments/attachment.zip)

# Erstellen Sie eine ETL-Servicepipeline, um Daten mithilfe von AWS Glue inkrementell von Amazon S3 nach Amazon Redshift zu laden
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue"></a>

*Rohan Jamadagni und Arunabha Datta, Amazon Web Services*

## Zusammenfassung
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-summary"></a>

Dieses Muster enthält Anleitungen zur Konfiguration von Amazon Simple Storage Service (Amazon S3) für eine optimale Data-Lake-Leistung und zum anschließenden Laden inkrementeller Datenänderungen von Amazon S3 in Amazon Redshift mithilfe von AWS Glue, wobei Extraktions-, Transformations- und Ladevorgänge (ETL) ausgeführt werden. 

Die Quelldateien in Amazon S3 können verschiedene Formate haben, darunter kommagetrennte Werte (CSV), XML- und JSON-Dateien. Dieses Muster beschreibt, wie Sie AWS Glue verwenden können, um die Quelldateien in ein kosten- und leistungsoptimiertes Format wie Apache Parquet zu konvertieren. Sie können Parquet-Dateien direkt von Amazon Athena und Amazon Redshift Spectrum aus abfragen. Sie können Parquet-Dateien auch in Amazon Redshift laden, sie aggregieren und die aggregierten Daten mit Verbrauchern teilen oder die Daten mithilfe von Amazon Quick Sight visualisieren.

## Voraussetzungen und Einschränkungen
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Ein S3-Quell-Bucket mit den richtigen Rechten, der CSV-, XML- oder JSON-Dateien enthält.

**Annahmen**
+ Die CSV-, XML- oder JSON-Quelldateien wurden bereits in Amazon S3 geladen und sind von dem Konto aus zugänglich, in dem AWS Glue und Amazon Redshift konfiguriert sind.
+ Bewährte Methoden für das Laden der Dateien, das Teilen der Dateien, die Komprimierung und die Verwendung eines Manifests werden befolgt, wie in der [Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-S3.html) beschrieben.
+ Die Struktur der Quelldatei ist unverändert.
+ Das Quellsystem kann Daten in Amazon S3 aufnehmen, indem es der in Amazon S3 definierten Ordnerstruktur folgt.
+ Der Amazon Redshift Redshift-Cluster erstreckt sich über eine einzige Availability Zone. (Diese Architektur ist angemessen, da AWS Lambda, AWS Glue und Amazon Athena serverlos sind.) Um eine hohe Verfügbarkeit zu gewährleisten, werden Cluster-Snapshots in regelmäßigen Abständen erstellt.

**Einschränkungen**
+ Die Dateiformate sind auf diejenigen beschränkt, die [derzeit von AWS Glue unterstützt werden](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html).
+ Downstream-Berichte in Echtzeit werden nicht unterstützt.

## Architektur
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-architecture"></a>

**Quelltechnologie-Stack**
+ S3-Bucket mit CSV-, XML- oder JSON-Dateien

**Zieltechnologie-Stack**
+ S3-Datensee (mit partitioniertem Parquet-Dateispeicher)
+ Amazon Redshift

**Zielarchitektur**

![\[Architektur für das Laden inkrementeller Änderungen von Amazon S3 nach Amazon Redshift mithilfe von AWS Glue.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/105b58ec-56c1-464a-8e69-f625360caa14/images/626aa365-e6e6-4874-a873-1c71adbe5306.png)


 

**Datenfluss**

![\[Datenfluss für das Laden inkrementeller Änderungen von Amazon S3 nach Amazon Redshift mithilfe von AWS Glue.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/105b58ec-56c1-464a-8e69-f625360caa14/images/29569e48-9f2d-4f48-bc59-1f33949d01ca.png)


## Tools
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-tools"></a>
+ [Amazon S3](https://aws.amazon.com/s3/) — Amazon Simple Storage Service (Amazon S3) ist ein hoch skalierbarer Objektspeicherservice. Amazon S3 kann für eine Vielzahl von Speicherlösungen verwendet werden, darunter Websites, mobile Anwendungen, Backups und Data Lakes.
+ [AWS Lambda](https://aws.amazon.com/lambda/) — Mit AWS Lambda können Sie Code ausführen, ohne Server bereitzustellen oder zu verwalten. AWS Lambda ist ein ereignisgesteuerter Service. Sie können Ihren Code so einrichten, dass er automatisch von anderen AWS-Services initiiert wird.
+ [Amazon Redshift](https://aws.amazon.com/redshift/) — Amazon Redshift ist ein vollständig verwalteter Data-Warehouse-Service im Petabyte-Bereich. Mit Amazon Redshift können Sie Petabyte an strukturierten und halbstrukturierten Daten in Ihrem Data Warehouse und Ihrem Data Lake mithilfe von Standard-SQL abfragen.
+ [AWS Glue](https://aws.amazon.com/glue/) — AWS Glue ist ein vollständig verwalteter ETL-Service, der das Aufbereiten und Laden von Daten für Analysen erleichtert. AWS Glue erkennt Ihre Daten und speichert die zugehörigen Metadaten (z. B. Tabellendefinitionen und Schema) im AWS Glue Glue-Datenkatalog. Ihre katalogisierten Daten sind sofort durchsuchbar, können abgefragt werden und sind für ETL verfügbar.
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) — AWS Secrets Manager erleichtert den Schutz und die zentrale Verwaltung von Geheimnissen, die für den Anwendungs- oder Servicezugriff benötigt werden. Der Service speichert Datenbankanmeldedaten, API-Schlüssel und andere Geheimnisse und macht es überflüssig, vertrauliche Informationen im Klartextformat fest zu codieren. Secrets Manager bietet auch eine Schlüsselrotation, um Sicherheits- und Compliance-Anforderungen zu erfüllen. Es verfügt über eine integrierte Integration für Amazon Redshift, Amazon Relational Database Service (Amazon RDS) und Amazon DocumentDB. Sie können Geheimnisse speichern und zentral verwalten, indem Sie die Secrets Manager-Konsole, die Befehlszeilenschnittstelle (CLI) oder die Secrets Manager API und verwenden. SDKs
+ [Amazon Athena](https://aws.amazon.com/athena/) — Amazon Athena ist ein interaktiver Abfrageservice, der die Analyse von Daten, die in Amazon S3 gespeichert sind, vereinfacht. Athena ist serverlos und in AWS Glue integriert, sodass es die mit AWS Glue katalogisierten Daten direkt abfragen kann. Athena ist elastisch skaliert, um interaktive Abfrageleistung zu bieten.

## Epen
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-epics"></a>

### Erstellen Sie die S3-Buckets und die Ordnerstruktur
<a name="create-the-s3-buckets-and-folder-structure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie Quellsysteme auf Datenstruktur und Attribute. | Führen Sie diese Aufgabe für jede Datenquelle aus, die zum Amazon S3 S3-Data Lake beiträgt. | Dateningenieur | 
| Definieren Sie die Partitions- und Zugriffsstrategie. | Diese Strategie sollte auf der Häufigkeit der Datenerfassung, der Delta-Verarbeitung und den Nutzungsanforderungen basieren. Stellen Sie sicher, dass S3-Buckets nicht öffentlich zugänglich sind und dass der Zugriff nur durch spezifische, auf Servicerollen basierende Richtlinien gesteuert wird. Weitere Informationen finden Sie in der [Amazon S3-Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html). | Dateningenieur | 
| Erstellen Sie separate S3-Buckets für jeden Datenquellentyp und einen separaten S3-Bucket pro Quelle für die verarbeiteten (Parquet-) Daten. | Erstellen Sie für jede Quelle einen separaten Bucket und anschließend eine Ordnerstruktur, die auf der Datenaufnahmefrequenz des Quellsystems basiert, z. B. `s3://source-system-name/date/hour` Erstellen Sie für die verarbeiteten (in das Parquet-Format konvertierten) Dateien eine ähnliche Struktur, z. B. `s3://source-processed-bucket/date/hour` Weitere Informationen zum Erstellen von S3-Buckets finden Sie in der [Amazon S3 S3-Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html). | Dateningenieur | 

### Erstellen Sie ein Data Warehouse in Amazon Redshift
<a name="create-a-data-warehouse-in-amazon-redshift"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie den Amazon Redshift Redshift-Cluster mit den entsprechenden Parametergruppen und der Wartungs- und Sicherungsstrategie. | Verwenden Sie das Secrets Manager Manager-Datenbankgeheimnis für Administratoranmeldedaten, während Sie den Amazon Redshift Redshift-Cluster erstellen. Informationen zur Erstellung und Dimensionierung eines Amazon Redshift Redshift-Clusters finden Sie in der [Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-redshift-cluster.html) und im Whitepaper [Sizing Cloud Data Warehouses](https://d1.awsstatic.com/whitepapers/Size-Cloud-Data-Warehouse-on-AWS.pdf). | Dateningenieur | 
| Erstellen Sie die IAM-Servicerolle und fügen Sie sie dem Amazon Redshift Redshift-Cluster hinzu. | Die Servicerolle AWS Identity and Access Management (IAM) gewährleistet den Zugriff auf Secrets Manager und die S3-Quell-Buckets. Weitere Informationen finden Sie in der AWS-Dokumentation zur [Autorisierung](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) und [zum Hinzufügen einer Rolle](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-add-role.html). | Dateningenieur | 
| Erstellen Sie das Datenbankschema. | Folgen Sie den Best Practices von Amazon Redshift für das Tabellendesign. Wählen Sie je nach Anwendungsfall die geeigneten Sortier- und Verteilungsschlüssel sowie die bestmögliche Komprimierungskodierung aus. Bewährte Methoden finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html). | Dateningenieur | 
| Konfigurieren Sie das Workload-Management. | Konfigurieren Sie je nach Ihren Anforderungen Warteschlangen für Workload Management (WLM), Short Query Acceleration (SQA) oder Parallelitätsskalierung. Weitere Informationen finden Sie unter [Implementieren des Workload-Managements](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html) in der Amazon Redshift Redshift-Dokumentation. | Dateningenieur | 

### Erstellen eines Secrets in Secrets Manager
<a name="create-a-secret-in-secrets-manager"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein neues Geheimnis, um die Amazon Redshift Redshift-Anmeldeinformationen in Secrets Manager zu speichern. | In diesem Secret werden die Anmeldeinformationen für den Admin-Benutzer sowie für einzelne Benutzer des Datenbankdienstes gespeichert. Anweisungen finden Sie in der [Secrets Manager Manager-Dokumentation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). Wählen Sie **Amazon Redshift Cluster** als geheimen Typ. Aktivieren Sie außerdem auf der Seite **Secret Rotation** die Rotation. Dadurch wird der entsprechende Benutzer im Amazon Redshift Redshift-Cluster erstellt und die Schlüsselgeheimnisse werden in definierten Intervallen rotiert. | Dateningenieur | 
| Erstellen Sie eine IAM-Richtlinie, um den Zugriff auf Secrets Manager einzuschränken. | Beschränken Sie den Secrets Manager Manager-Zugriff nur auf Amazon Redshift Redshift-Administratoren und AWS Glue. | Dateningenieur | 

### AWS Glue konfigurieren
<a name="configure-aws-glue"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie im AWS Glue Glue-Datenkatalog eine Verbindung für Amazon Redshift hinzu. | Anweisungen finden Sie in der [AWS Glue Glue-Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html). | Dateningenieur | 
| Erstellen Sie eine IAM-Servicerolle für AWS Glue und fügen Sie sie hinzu, um auf Secrets Manager-, Amazon Redshift- und S3-Buckets zuzugreifen. | Weitere Informationen finden Sie in der [AWS Glue Glue-Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/create-service-policy.html). | Dateningenieur | 
| Definieren Sie den AWS Glue Glue-Datenkatalog für die Quelle. | Dieser Schritt beinhaltet die Erstellung einer Datenbank und der erforderlichen Tabellen im AWS Glue Glue-Datenkatalog. Sie können entweder einen Crawler verwenden, um die Tabellen in der AWS Glue Glue-Datenbank zu katalogisieren, oder sie als externe Amazon Athena Athena-Tabellen definieren. Sie können auch über den AWS Glue Glue-Datenkatalog auf die in Athena definierten externen Tabellen zugreifen. Weitere Informationen zur Definition des [Datenkatalogs und zur [Erstellung einer externen Tabelle](https://docs.aws.amazon.com/athena/latest/ug/creating-tables.html) in Athena finden Sie in der](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html) AWS-Dokumentation. | Dateningenieur | 
| Erstellen Sie einen AWS Glue Glue-Job zur Verarbeitung von Quelldaten. | Bei dem AWS Glue Glue-Job kann es sich um eine Python-Shell handeln oder PySpark um die Quelldatendateien zu standardisieren, zu deduplizieren und zu bereinigen. Um die Leistung zu optimieren und zu vermeiden, dass der gesamte S3-Quell-Bucket abgefragt werden muss, partitionieren Sie den S3-Bucket nach Datum, aufgeschlüsselt nach Jahr, Monat, Tag und Stunde als Pushdown-Prädikat für den AWS Glue Glue-Job. Weitere Informationen finden Sie in der [AWS Glue Glue-Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-partitions.html). Laden Sie die verarbeiteten und transformierten Daten im Parquet-Format in die verarbeiteten S3-Bucket-Partitionen. Sie können die Parquet-Dateien von Athena abfragen. | Dateningenieur | 
| Erstellen Sie einen AWS Glue Glue-Job, um Daten in Amazon Redshift zu laden. | Der AWS Glue Glue-Job kann eine Python-Shell sein oder PySpark die Daten laden, indem die Daten aktualisiert werden, gefolgt von einer vollständigen Aktualisierung. Einzelheiten finden Sie in der [AWS Glue Glue-Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/author-job.html) und im Abschnitt *Zusätzliche Informationen*. | Dateningenieur | 
| (Optional) Planen AWS Glue Glue-Jobs, indem Sie bei Bedarf Trigger verwenden. | Die inkrementelle Datenlast wird hauptsächlich durch ein Amazon S3 S3-Ereignis ausgelöst, das eine AWS Lambda Lambda-Funktion veranlasst, den AWS Glue Glue-Job aufzurufen. Verwenden Sie die triggerbasierte Planung von AWS Glue für alle Datenladungen, die eine zeitbasierte statt einer ereignisbasierten Planung erfordern. | Dateningenieur | 

### Erstellen einer Lambda-Funktion
<a name="create-a-lambda-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine mit dem IAM-Service verknüpfte Rolle für AWS Lambda, um auf S3-Buckets und den AWS Glue Glue-Job zuzugreifen, und fügen Sie sie hinzu. | Erstellen Sie eine mit dem IAM-Service verknüpfte Rolle für AWS Lambda mit einer Richtlinie zum Lesen von Amazon S3 S3-Objekten und -Buckets und einer Richtlinie für den Zugriff auf die AWS Glue Glue-API, um einen AWS Glue Glue-Job zu starten. [Weitere Informationen finden Sie im Knowledge Center.](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-execution-role-s3-bucket/) | Dateningenieur | 
| Erstellen Sie eine Lambda-Funktion, um den AWS Glue Glue-Job auf der Grundlage des definierten Amazon S3 S3-Ereignisses auszuführen. | Die Lambda-Funktion sollte durch die Erstellung der Amazon S3-Manifestdatei initiiert werden. Die Lambda-Funktion sollte den Speicherort des Amazon S3 S3-Ordners (z. B. source\$1bucket/year/month/date/hour) als Parameter an den AWS Glue Glue-Job übergeben. Der AWS Glue Glue-Job verwendet diesen Parameter als Pushdown-Prädikat, um den Dateizugriff und die Auftragsverarbeitungsleistung zu optimieren. Weitere Informationen finden Sie in der [AWS Glue Glue-Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html). | Dateningenieur | 
| Erstellen Sie ein Amazon S3 S3-PUT-Objektereignis, um die Objekterstellung zu erkennen, und rufen Sie die entsprechende Lambda-Funktion auf. | Das Amazon S3 S3-PUT-Objektereignis sollte nur durch die Erstellung der Manifestdatei ausgelöst werden. Die Manifestdatei steuert die Lambda-Funktion und die Parallelität des AWS Glue Glue-Jobs und verarbeitet den Ladevorgang als Batch, anstatt einzelne Dateien zu verarbeiten, die in einer bestimmten Partition des S3-Quell-Buckets ankommen. Weitere Informationen finden Sie in der [Lambda-Dokumentation](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Dateningenieur | 

## Zugehörige Ressourcen
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-resources"></a>
+ [Amazon S3 S3-Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html)
+ [Dokumentation zu AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)
+ [Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Amazon Athena](https://aws.amazon.com/athena/)
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)

## Zusätzliche Informationen
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-additional"></a>

**Detaillierter Ansatz für Upsert und Complete Refresh**

**Upsert**: Dies ist für Datensätze vorgesehen, die je nach geschäftlichem Anwendungsfall eine historische Aggregation erfordern. Folgen Sie je nach Ihren Geschäftsanforderungen einem der unter [Aktualisieren und Einfügen neuer Daten](https://docs.aws.amazon.com/redshift/latest/dg/t_updating-inserting-using-staging-tables-.html) (Amazon Redshift Redshift-Dokumentation) beschriebenen Methoden.

**Vollständige Aktualisierung**: Dies ist für kleine Datensätze vorgesehen, für die keine historischen Aggregationen erforderlich sind. Folgen Sie einem der folgenden Ansätze:

1. Kürzen Sie die Amazon Redshift Redshift-Tabelle.

1. Lädt die aktuelle Partition aus dem Staging-Bereich

oder:

1. Erstellen Sie eine temporäre Tabelle mit aktuellen Partitionsdaten.

1. Löschen Sie die Amazon Redshift Redshift-Zieltabelle.

1. Benennen Sie die temporäre Tabelle in die Zieltabelle um.

# Bauen Sie mit Amazon ein Datennetz für Unternehmen auf DataZone AWS CDK, und AWS CloudFormation
<a name="build-enterprise-data-mesh-amazon-data-zone"></a>

*Dhrubajyoti Mukherjee, Ravi Kumar, Weizhou Sun und Adjoa Taylor, Amazon Web Services*

## Zusammenfassung
<a name="build-enterprise-data-mesh-amazon-data-zone-summary"></a>

Bei Amazon Web Services (AWS) wissen Kunden, dass Daten der Schlüssel zur Beschleunigung von Innovationen und zur Steigerung des Geschäftswerts für ihr Unternehmen sind. Um diese riesigen Datenmengen zu verwalten, können Sie eine dezentrale Architektur wie Data Mesh einsetzen. Eine Data-Mesh-Architektur erleichtert das Produktdenken, eine Denkweise, die Kunden, Ziele und den Markt berücksichtigt. Data Mesh hilft auch dabei, ein föderiertes Governance-Modell zu etablieren, das einen schnellen und sicheren Zugriff auf Ihre Daten ermöglicht.

[Unter Strategien für den Aufbau einer auf Datennetzen basierenden Unternehmenslösung AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/introduction.html) wird erläutert, wie Sie das Data Mesh Strategy Framework verwenden können, um eine Data-Mesh-Strategie für Ihr Unternehmen zu formulieren und zu implementieren. Mithilfe des Data Mesh Strategy Framework können Sie die Organisation von Teams und deren Interaktionen optimieren, um Ihre Datennetzentwicklung zu beschleunigen.

Dieses Dokument enthält Anleitungen zum Aufbau eines Unternehmensdatennetzes mit [Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html). Amazon DataZone ist ein Datenverwaltungsservice für die Katalogisierung, Erkennung, gemeinsame Nutzung und Verwaltung von Daten, die vor Ort und in AWS Quellen von Drittanbietern gespeichert sind. Das Muster umfasst Code-Artefakte, die Ihnen helfen, die auf Datennetzen basierende Datenlösungsinfrastruktur mithilfe von und bereitzustellen. AWS Cloud Development Kit (AWS CDK) AWS CloudFormation Dieses Muster ist für Cloud-Architekten und -Techniker vorgesehen. DevOps 

Informationen zu den Zielen dieses Musters und zum Lösungsumfang finden Sie im Abschnitt [Zusätzliche Informationen](#build-enterprise-data-mesh-amazon-data-zone-additional).

## Voraussetzungen und Einschränkungen
<a name="build-enterprise-data-mesh-amazon-data-zone-prereqs"></a>

**Voraussetzungen**
+ Mindestens zwei aktive Konten AWS-Konten: eines für das zentrale Governance-Konto und ein weiteres für das Mitgliedskonto
+ AWS Administratoranmeldedaten für das zentrale Governance-Konto in Ihrer Entwicklungsumgebung
+ AWS Command Line Interface (AWS CLI) [wurde installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html), um Ihre über die AWS-Services Befehlszeile zu verwalten
+ Node.js und Node Package Manager (npm) wurden [installiert](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm), um Anwendungen zu verwalten AWS CDK 
+ AWS CDK Das Toolkit [wurde mithilfe von npm global in Ihrer Entwicklungsumgebung installiert](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install), um Anwendungen zu synthetisieren und bereitzustellen AWS CDK 

  ```
  npm install -g aws-cdk
  ```
+ Python Version 3.12 ist in Ihrer Entwicklungsumgebung installiert
+ TypeScript in Ihrer Entwicklungsumgebung installiert oder global mit dem npm-Compiler installiert:

  ```
  npm install -g typescript
  ```
+ Docker ist in Ihrer Entwicklungsumgebung installiert
+ Ein Versionskontrollsystem wie Git zur Pflege des Quellcodes der Lösung (empfohlen)
+ Eine integrierte Entwicklungsumgebung (IDE) oder ein Texteditor mit Unterstützung für Python und TypeScript (dringend empfohlen)

**Einschränkungen**
+ Die Lösung wurde nur auf Maschinen getestet, auf denen Linux oder macOS ausgeführt wird.
+ In der aktuellen Version unterstützt die Lösung standardmäßig nicht die Integration AWS IAM Identity Center von Amazon DataZone und. Sie können es jedoch so konfigurieren, dass es diese Integration unterstützt.

**Produktversionen**
+ Python-versie 3.12

## Architektur
<a name="build-enterprise-data-mesh-amazon-data-zone-architecture"></a>

Das folgende Diagramm zeigt eine Data-Mesh-Referenzarchitektur. Die Architektur basiert auf Amazon DataZone und verwendet Amazon Simple Storage Service (Amazon S3) und AWS Glue Data Catalog als Datenquellen. Die AWS-Services , die Sie mit Amazon DataZone in Ihrer Data Mesh-Implementierung verwenden, kann je nach den Anforderungen Ihres Unternehmens unterschiedlich sein.

![\[Arbeitsablauf in fünf Schritten für Mitgliedskonten und zentrales Governance-Konto.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/79056dd9-e669-4302-afb8-21e3e0e8a136/images/eacbffca-4f25-405a-a7c8-f89d0fee5682.png)


1. In den Erzeugerkonten sind die Rohdaten entweder in ihrer aktuellen Form verbrauchstauglich oder sie werden durch Nutzung für den Verbrauch transformiert AWS Glue. Die technischen Metadaten der Daten werden in Amazon S3 gespeichert und mithilfe eines AWS Glue Datencrawlers ausgewertet. Die Datenqualität wird mithilfe von [AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html) gemessen. Die Quelldatenbank im Datenkatalog ist als Asset im DataZone Amazon-Katalog registriert. Der DataZone Amazon-Katalog wird mithilfe von DataZone Amazon-Datenquellenjobs im zentralen Governance-Konto gehostet.

1. Das zentrale Governance-Konto hostet die DataZone Amazon-Domain und das DataZone Amazon-Datenportal. Die AWS-Konten Datenproduzenten und -verbraucher sind mit der DataZone Amazon-Domain verknüpft. Die DataZone Amazon-Projekte der Datenproduzenten und -verbraucher sind unter den entsprechenden DataZone Amazon-Domaineinheiten organisiert.

1. Endbenutzer der Datenbestände melden sich mit ihren AWS Identity and Access Management (IAM-) Anmeldeinformationen oder Single Sign-On (mit Integration über IAM Identity Center) beim DataZone Amazon-Datenportal an. Sie suchen, filtern und zeigen Asset-Informationen (z. B. Datenqualitätsinformationen oder geschäftliche und technische Metadaten) im DataZone Amazon-Datenkatalog an.

1. Nachdem ein Endbenutzer den gewünschten Datenbestand gefunden hat, verwendet er die DataZone Amazon-Abonnementfunktion, um Zugriff anzufordern. Der Dateneigentümer im Produzententeam erhält eine Benachrichtigung und bewertet die Abonnementanfrage im DataZone Amazon-Datenportal. Der Dateneigentümer genehmigt oder lehnt die Abonnementanfrage auf der Grundlage ihrer Gültigkeit ab.

1. Nachdem die Abonnementanfrage genehmigt und erfüllt wurde, wird im Kundenkonto für die folgenden Aktivitäten auf das Asset zugegriffen:
   + Entwicklung von KI/ML-Modellen mithilfe von Amazon AI SageMaker 
   + Analytik und Berichterstattung mithilfe von Amazon Athena und Amazon Quick

## Tools
<a name="build-enterprise-data-mesh-amazon-data-zone-tools"></a>

**AWS-Services**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon Simple Storage Service (Amazon S3) analysieren können.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)ist ein Softwareentwicklungs-Framework, das Ihnen hilft, AWS Cloud Infrastruktur im Code zu definieren und bereitzustellen.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und zu verwalten AWS-Regionen.
+ [Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html) ist ein Datenverwaltungsservice, der Sie dabei unterstützt, Daten zu katalogisieren, zu entdecken, gemeinsam zu nutzen und zu verwalten AWS, die vor Ort und in Quellen von Drittanbietern gespeichert sind.
+ [Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und Berichte erstellen können.
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) ist ein verwalteter Service für maschinelles Lernen (ML), mit dem Sie ML-Modelle erstellen und trainieren und diese dann in einer produktionsbereiten, gehosteten Umgebung bereitstellen können.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

**Code-Repository**

Die Lösung ist im Repository GitHub [data-mesh-datazone-cdk-cloudformation](https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation) verfügbar.

## Epen
<a name="build-enterprise-data-mesh-amazon-data-zone-epics"></a>

### Richte die Umgebung ein
<a name="set-up-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das Repository | Um das Repository zu klonen, führen Sie den folgenden Befehl in Ihrer lokalen Entwicklungsumgebung (Linux oder macOS) aus:<pre>git clone https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation</pre> | Cloud-Architekt, DevOps Ingenieur | 
| Erstellen Sie die Umgebung. | Führen Sie die folgenden Befehle aus, um die virtuelle Python-Umgebung zu erstellen:<pre> python3 -m venv .venv<br /> source .venv/bin/activate<br /> pip install -r requirements.txt</pre> | Cloud-Architekt, DevOps Ingenieur | 
| Bootstrap für das Konto. | Führen Sie den folgenden Befehl aus AWS CDK, um das zentrale Governance-Konto mithilfe von zu booten:<pre>cdk bootstrap aws://<GOVERNANCE_ACCOUNT_ID>/<AWS_REGION></pre>Melden Sie sich bei der an AWS-Managementkonsole, öffnen Sie die zentrale Governance-Kontokonsole und rufen Sie den Amazon-Ressourcennamen (ARN) der AWS CDK Ausführungsrolle ab. | Cloud-Architekt, DevOps Ingenieur | 
| Konstruieren Sie die `DzDataMeshMemberStackSet.yaml` Datei. | Um die `DzDataMeshMemberStackSet.yaml` Datei aus dem Stammverzeichnis des Repositorys zu erstellen, starten Sie das folgende Bash-Skript:<pre>./lib/scripts/create_dz_data_mesh_member_stack_set.sh</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Bestätigen Sie die Erstellung der Vorlage. | Stellen Sie sicher, dass die CloudFormation Vorlagendatei am `lib/cfn-templates/DzDataMeshMemberStackSet.yaml` Speicherort erstellt wurde. | Cloud-Architekt, DevOps Ingenieur | 

### Stellen Sie Ressourcen im zentralen Governance-Konto bereit
<a name="deploy-resources-in-the-central-governance-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ändern Sie die Konfiguration. | Ändern Sie in der `config/Config.ts` Datei die folgenden Parameter:<pre>DZ_APPLICATION_NAME - Name of the application.<br />DZ_STAGE_NAME - Name of the stage. <br />DZ_DOMAIN_NAME - Name of the Amazon DataZone domain<br />DZ_DOMAIN_DESCRIPTION - Description of the Amazon DataZone domain<br />DZ_DOMAIN_TAG - Tag of the Amazon DataZone domain<br />DZ_ADMIN_PROJECT_NAME - Name of the Amazon DataZone project for administrators<br />DZ_ADMIN_PROJECT_DESCRIPTION - Description of the Amazon DataZone project for administrators<br />CDK_EXEC_ROLE_ARN - ARN of the cdk execution role<br />DZ_ADMIN_ROLE_ARN - ARN of the administrator role</pre>Lassen Sie die verbleibenden Parameter leer. | Cloud-Architekt, DevOps Ingenieur | 
| Aktualisieren Sie die DataZone Amazon-Glossarkonfiguration. | Verwenden Sie die folgende Beispielkonfiguration, um die DataZone Amazon-Glossarkonfiguration in der `lib/utils/glossary_config.json` Datei zu aktualisieren:<pre>{<br />    "GlossaryName": "PII Data",<br />    "GlossaryDescription": "If data source contains PII attributes",<br />    "GlossaryTerms": [{<br />            "Name": "Yes",<br />            "ShortDescription": "Yes",<br />            "LongDescription": "Yes Glossary Term"<br />        },<br />        {<br />            "Name": "No",<br />            "ShortDescription": "No",<br />            "LongDescription": "No Glossary Term"<br />        }<br />    ]<br />}</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Aktualisieren Sie die Konfiguration des DataZone Amazon-Metadatenformulars. | Verwenden Sie die folgende Beispielkonfiguration`lib/utils/metadata_form_config.json file`, um die Konfiguration des DataZone Amazon-Metadatenformulars in zu aktualisieren:<pre>{<br />    "FormName": "ScheduleDataRefresh",<br />    "FormDescription": "Form for data refresh schedule",<br />    "FormSmithyModel": "@amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\nstructure ScheduleDataRefresh {\n    @documentation(\"Schedule of Data Refresh\")\n    @required\n    @amazon.datazone#searchable\n    @amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\n    data_refresh_schedule: String\n}"<br />}</pre> | Cloud-Architekt, DevOps Ingenieur | 
| Exportieren Sie die AWS Anmeldeinformationen. | Verwenden Sie das folgende Format, um AWS Anmeldeinformationen für die IAM-Rolle mit Administratorrechten in Ihre Entwicklungsumgebung zu exportieren:<pre>export AWS_ACCESS_KEY_ID=<br />export AWS_SECRET_ACCESS_KEY=<br />export AWS_SESSION_TOKEN=</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Synthetisieren Sie die Vorlage. | Führen Sie den folgenden Befehl aus, um die CloudFormation Vorlage zu synthetisieren:<pre>npx cdk synth</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Stellen Sie die Lösung bereit. | Führen Sie den folgenden Befehl aus, um die Lösung bereitzustellen:<pre>npx cdk deploy --all</pre> | Cloud-Architekt, DevOps Ingenieur | 

### Neue Mitgliedskonten konfigurieren
<a name="configure-new-member-accounts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Vorlage bereit. | Stellen Sie die CloudFormation Vorlage, die sich `lib/cfn-templates/DzDataMeshCfnStackSetExecutionRole.yaml` im Mitgliedskonto befindet, mit den folgenden Eingabeparametern bereit: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Cloud-Architekt, Ingenieur DevOps  | 
| Aktualisieren Sie die ARNs. | Verwenden Sie den folgenden Code, um die Liste der CloudFormation StackSet Ausführungsrollen ARNs für die Mitgliedskonten zu aktualisieren:<pre>DZ_MEMBER_STACK_SET_EXEC_ROLE_LIST  - List of Stack set execution role arns for the member accounts.</pre> | Cloud-Architekt, DevOps Ingenieur | 
| Synthetisieren und bereitstellen. | Führen Sie die folgenden Befehle aus, um die CloudFormation Vorlage zu synthetisieren und die Lösung bereitzustellen:<pre>npx cdk synth<br />npx cdk deploy --all</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Ordnen Sie das Mitgliedskonto zu. | Gehen Sie wie folgt vor, um das Mitgliedskonto mit dem zentralen Governance-Konto zu verknüpfen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Cloud-Architekt, Ingenieur DevOps  | 
| Aktualisieren Sie die Parameter. | Verwenden Sie das folgende Format, um die für das Mitgliedskonto spezifischen Parameter in der Konfigurationsdatei unter zu `config/Config.ts` aktualisieren:<pre>export const DZ_MEMBER_ACCOUNT_CONFIG: memberAccountConfig = {<br />  '123456789012' : {<br />    PROJECT_NAME: 'TEST-PROJECT-123456789012',<br />    PROJECT_DESCRIPTION: 'TEST-PROJECT-123456789012',<br />    PROJECT_EMAIL: 'user@xyz.com'<br />  }<br />}</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Synthetisieren Sie die Vorlage und stellen Sie sie bereit. | Führen Sie die folgenden Befehle aus, um die CloudFormation Vorlage zu synthetisieren und die Lösung bereitzustellen:<pre>npx cdk synth<br />npx cdk deploy --all</pre> | Cloud-Architekt, Ingenieur DevOps  | 
| Mitgliedskonten hinzufügen. | Um zusätzliche Mitgliedskonten in der Datenlösung zu erstellen und zu konfigurieren, wiederholen Sie die vorherigen Schritte für jedes Mitgliedskonto.Diese Lösung unterscheidet nicht zwischen Datenproduzenten und Verbrauchern. | Cloud-Architekt, DevOps Ingenieur | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Trennen Sie die Zuordnung der Mitgliedskonten. | Gehen Sie wie folgt vor, um die Zuordnung der Konten aufzuheben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Cloud-Architekt, Ingenieur DevOps  | 
| Löschen Sie die Stack-Instanzen. | Gehen Sie wie folgt vor, um die CloudFormation Stack-Instances zu löschen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Cloud-Architekt, Ingenieur DevOps  | 
| Zerstöre alle Ressourcen. | Um Ressourcen zu vernichten, implementieren Sie die folgenden Schritte in Ihrer lokalen Entwicklungsumgebung (Linux oder macOS):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Cloud-Architekt, DevOps Ingenieur | 

## Zugehörige Ressourcen
<a name="build-enterprise-data-mesh-amazon-data-zone-resources"></a>
+ [ DataZone Amazon-Schnellstart mit Daten AWS Glue](https://docs.aws.amazon.com/datazone/latest/userguide/quickstart-glue.html)
+ [Tutorial: Erstelle deine erste App AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html)
+ [Erste Schritte mit CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html)
+ [Strategien für den Aufbau einer auf Datennetzen basierenden Unternehmenslösung auf AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/introduction.html)

## Zusätzliche Informationen
<a name="build-enterprise-data-mesh-amazon-data-zone-additional"></a>

**Ziele**

Durch die Implementierung dieses Musters wird Folgendes erreicht:
+ **Dezentrales Eigentum an Daten** ‒ Verlagern Sie die Datenverantwortung von einem zentralen Team auf Teams, die die Quellsysteme, Geschäftsbereiche oder Anwendungsfälle Ihres Unternehmens repräsentieren.
+ **Produktdenken** ‒ Führen Sie bei der Betrachtung der Datenbestände in Ihrem Unternehmen eine produktorientierte Denkweise ein, die Kunden, den Markt und andere Faktoren einbezieht.
+ **Föderierte Verwaltung** ‒ Verbessern Sie die Sicherheitsvorkehrungen, Kontrollen und die Einhaltung von Vorschriften für alle Datenprodukte Ihres Unternehmens.
+ Support für **mehrere Konten und Projekte ‒ Unterstützen** Sie den effizienten und sicheren Datenaustausch und die Zusammenarbeit zwischen den Geschäftsbereichen oder Projekten Ihres Unternehmens.
+ **Zentralisierte Überwachung und Benachrichtigungen** ‒ Überwachen Sie die Cloud-Ressourcen Ihres Datennetzes mithilfe von Amazon und benachrichtigen Sie Benutzer CloudWatch, wenn ein neues Mitgliedskonto verknüpft wird.
+ **Skalierbarkeit und Erweiterbarkeit** ‒ Fügen Sie dem Data Mesh neue Anwendungsfälle hinzu, während sich Ihr Unternehmen weiterentwickelt.

**Umfang der Lösung**

Wenn Sie diese Lösung verwenden, können Sie klein anfangen und sie dann skalieren, wenn Sie auf Ihrem Weg zum Data Mesh vorankommen. Wenn ein Mitgliedskonto die Datenlösung verwendet, enthält sie häufig Kontokonfigurationen, die für die Organisation, das Projekt oder die Geschäftseinheit spezifisch sind. Diese Lösung berücksichtigt diese unterschiedlichen AWS-Konto Konfigurationen, indem sie die folgenden Funktionen unterstützt:
+ AWS Glue Data Catalog als Datenquelle für Amazon DataZone
+ Verwaltung der DataZone Amazon-Datendomäne und des zugehörigen Datenportals
+ Verwaltung des Hinzufügens von Mitgliedskonten zur auf Datennetzen basierenden Datenlösung
+ Verwaltung von DataZone Amazon-Projekten und -Umgebungen
+ Verwaltung von DataZone Amazon-Glossaren und Metadatenformularen
+ Verwaltung von IAM-Rollen, die den Benutzern der Data Mesh-basierten Datenlösung entsprechen
+ Benachrichtigung der Benutzer einer auf Datennetzen basierenden Datenlösung
+ Überwachung der bereitgestellten Cloud-Infrastruktur

  Diese Lösung verwendet AWS CDK und implementiert CloudFormation die Cloud-Infrastruktur. Sie macht CloudFormation früher Folgendes:
  + Definieren und implementieren Sie Cloud-Ressourcen auf einer niedrigeren Abstraktionsebene.
  + Stellen Sie Cloud-Ressourcen aus dem AWS-Managementkonsole bereit. Mit diesem Ansatz können Sie eine Infrastruktur ohne Entwicklungsumgebung bereitstellen.

  Die Data-Mesh-Lösung verwendet AWS CDK , um Ressourcen auf einer höheren Abstraktionsebene zu definieren. Dadurch bietet die Lösung einen entkoppelten, modularen und skalierbaren Ansatz, bei dem das entsprechende Tool für die Bereitstellung der Cloud-Ressourcen ausgewählt wird.

**Nächste Schritte**

Sie können sich an AWS[Experten](https://aws.amazon.com/professional-services) wenden, um Unterstützung beim Aufbau eines Datennetzes mit Amazon zu erhalten DataZone.

Der modulare Charakter dieser Lösung unterstützt den Aufbau von Datenmanagementlösungen mit unterschiedlichen Architekturen, wie Data Fabric und Data Lakes. Darüber hinaus können Sie die Lösung je nach den Anforderungen Ihres Unternehmens auf andere DataZone Amazon-Datenquellen ausdehnen.

# Value at Risk (VaR) mithilfe von AWS-Services berechnen
<a name="calculate-value-at-risk-var-by-using-aws-services"></a>

*Sumon Samanta, Amazon Web Services*

## Zusammenfassung
<a name="calculate-value-at-risk-var-by-using-aws-services-summary"></a>

Dieses Muster beschreibt, wie ein Value-at-Risk-Berechnungssystem (VaR) mithilfe von AWS-Services implementiert wird. In einer lokalen Umgebung verwenden die meisten VaR-Systeme eine große, dedizierte Infrastruktur und eine interne oder kommerzielle Netzplanungssoftware, um Batch-Prozesse auszuführen. Dieses Muster stellt eine einfache, zuverlässige und skalierbare Architektur für die VaR-Verarbeitung in der AWS-Cloud dar. Es baut eine serverlose Architektur auf, die Amazon Kinesis Data Streams als Streaming-Service, Amazon Simple Queue Service (Amazon SQS) als verwalteten Warteschlangenservice, Amazon ElastiCache als Caching-Service und AWS Lambda zur Bearbeitung von Bestellungen und zur Risikoberechnung verwendet.

VaR ist ein statistisches Maß, das Händler und Risikomanager verwenden, um potenzielle Verluste in ihrem Portfolio ab einem bestimmten Konfidenzniveau abzuschätzen. Die meisten VaR-Systeme beinhalten die Durchführung einer großen Anzahl mathematischer und statistischer Berechnungen und die Speicherung der Ergebnisse. Diese Berechnungen erfordern erhebliche Rechenressourcen, sodass VaR-Batchprozesse in kleinere Gruppen von Rechenaufgaben aufgeteilt werden müssen. Das Aufteilen eines großen Batches in kleinere Aufgaben ist möglich, da diese Aufgaben größtenteils unabhängig voneinander sind (d. h. Berechnungen für eine Aufgabe hängen nicht von anderen Aufgaben ab). 

Eine weitere wichtige Anforderung an eine VaR-Architektur ist die Skalierbarkeit der Rechenleistung. Dieses Muster verwendet eine serverlose Architektur, die je nach Rechenlast automatisch ein- oder ausskaliert wird. Da der Bedarf an Batch- oder Online-Rechenleistung schwer vorherzusagen ist, ist eine dynamische Skalierung erforderlich, um den Prozess innerhalb des in einem Service Level Agreement (SLA) festgelegten Zeitrahmens abzuschließen. Außerdem sollte eine kostenoptimierte Architektur in der Lage sein, jede Rechenressource herunterzuskalieren, sobald die Aufgaben auf dieser Ressource abgeschlossen sind. 

AWS-Services eignen sich hervorragend für VaR-Berechnungen, da sie skalierbare Rechen- und Speicherkapazität, Analyseservices für eine kostenoptimierte Verarbeitung und verschiedene Arten von Schedulern für die Ausführung Ihrer Risikomanagement-Workflows bieten. Außerdem zahlen Sie nur für die Rechen- und Speicherressourcen, die Sie auf AWS nutzen.

## Voraussetzungen und Einschränkungen
<a name="calculate-value-at-risk-var-by-using-aws-services-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eingabedateien, die von Ihren Geschäftsanforderungen abhängen. Ein typischer Anwendungsfall umfasst die folgenden Eingabedateien:
  + Marktdatendatei (Eingabe in die VaR-Berechnungsmaschine)
  + Handelsdatendatei (es sei denn, Handelsdaten werden über einen Stream übertragen).
  + Konfigurationsdatendatei (Modell und andere statische Konfigurationsdaten)
  + Modelldateien für die Berechnungsengine (quantitative Bibliotheken)
  + Zeitreihendatendatei (für historische Daten wie den Aktienkurs der letzten fünf Jahre)
+ Wenn die Marktdaten oder andere Eingaben über einen Stream eingehen, werden Amazon Kinesis Data Streams eingerichtet und Amazon Identity and Access Management (IAM) -Berechtigungen konfiguriert, um in den Stream zu schreiben.  

Dieses Muster bildet eine Architektur, in der Handelsdaten von einem Handelssystem in einen Kinesis-Datenstrom geschrieben werden. Anstatt einen Streaming-Dienst zu verwenden, können Sie Ihre Handelsdaten in kleinen Batch-Dateien speichern, sie in einem Amazon Simple Storage Service (Amazon S3) -Bucket speichern und ein Ereignis aufrufen, um die Verarbeitung der Daten zu starten.

**Einschränkungen**
+ Die Kinesis-Datenstream-Sequenzierung ist für jeden Shard garantiert, sodass Handelsaufträge, die auf mehrere Shards geschrieben werden, nicht garantiert in derselben Reihenfolge wie Schreibvorgänge geliefert werden.
+ Das AWS Lambda Lambda-Laufzeitlimit beträgt derzeit 15 Minuten. (Weitere Informationen finden Sie in den [häufig gestellten Fragen zu Lambda](https://aws.amazon.com/lambda/faqs/).)

## Architektur
<a name="calculate-value-at-risk-var-by-using-aws-services-architecture"></a>

**Zielarchitektur**

Das folgende Architekturdiagramm zeigt die AWS-Services und Workflows für das Risikobewertungssystem.

![\[VaR-Berechnungssystem mit AWS-Services\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/eb615fc5-3cc3-445a-af2c-8446ee7b5276/images/c60aec03-ff6c-410c-8ee8-f1f6efa22cf7.png)


Das Diagramm veranschaulicht folgende Vorgänge:

1. Geschäfte werden aus dem Auftragsverwaltungssystem eingelesen.

1. Die Lambda-Funktion „*Ticket Position Netting*“ verarbeitet die Bestellungen und schreibt konsolidierte Nachrichten für jeden Ticker in eine Risikowarteschlange in Amazon SQS.

1. Die Lambda-Funktion der *Risikoberechnungs-Engine* verarbeitet die Nachrichten von Amazon SQS, führt Risikoberechnungen durch und aktualisiert die VaR-Gewinn- und Verlustinformationen (PnL) im Risiko-Cache in Amazon. ElastiCache

1. Die Lambda-Funktion zum *Lesen von ElastiCache Daten* ruft die Risikoergebnisse ab ElastiCache und speichert sie in einer Datenbank und einem S3-Bucket.

Weitere Informationen zu diesen Diensten und Schritten finden Sie im Abschnitt *Epics*.

**Automatisierung und Skalierung**

Sie können die gesamte Architektur mithilfe des AWS Cloud Development Kit (AWS CDK) oder CloudFormation AWS-Vorlagen bereitstellen. Die Architektur kann sowohl die Batch-Verarbeitung als auch die Intraday-Verarbeitung (Echtzeit) unterstützen.

Die Skalierung ist in die Architektur integriert. Da immer mehr Trades in den Kinesis-Datenstrom geschrieben werden und auf ihre Verarbeitung warten, können zusätzliche Lambda-Funktionen aufgerufen werden, um diese Trades zu verarbeiten, und nach Abschluss der Verarbeitung nach unten skaliert werden. Die Verarbeitung mehrerer Amazon SQS SQS-Warteschlangen zur Risikoberechnung ist ebenfalls eine Option. Wenn eine strikte Reihenfolge oder Konsolidierung in allen Warteschlangen erforderlich ist, kann die Verarbeitung nicht parallelisiert werden. Bei einem end-of-the-day Batch oder einem Mini-Intraday-Batch können die Lambda-Funktionen jedoch parallel verarbeiten und die Endergebnisse in speichern. ElastiCache 

## Tools
<a name="calculate-value-at-risk-var-by-using-aws-services-tools"></a>

**AWS-Dienste**
+ [Amazon Aurora MySQL-Compatible Edition ist eine vollständig verwaltete, MySQL-kompatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) relationale Datenbank-Engine, die Sie bei der Einrichtung, dem Betrieb und der Skalierung von MySQL-Bereitstellungen unterstützt. Dieses Muster verwendet MySQL als Beispiel, aber Sie können jedes RDBMS-System zum Speichern von Daten verwenden.
+ [Amazon ElastiCache](https://docs.aws.amazon.com/elasticache/) unterstützt Sie bei der Einrichtung, Verwaltung und Skalierung verteilter In-Memory-Cache-Umgebungen in der AWS-Cloud.
+ [Amazon Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) hilft Ihnen dabei, große Datenströme in Echtzeit zu sammeln und zu verarbeiten.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

**Code**

Dieses Muster bietet eine Beispielarchitektur für ein VaR-System in der AWS-Cloud und beschreibt, wie Sie Lambda-Funktionen für VaR-Berechnungen verwenden können. Informationen zum Erstellen Ihrer Lambda-Funktionen finden Sie in den Codebeispielen in der [Lambda-Dokumentation](https://docs.aws.amazon.com/lambda/latest/dg/service_code_examples.html). Wenn Sie Hilfe benötigen, wenden Sie sich an [AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Best Practices
<a name="calculate-value-at-risk-var-by-using-aws-services-best-practices"></a>
+ Halten Sie jede VaR-Rechenaufgabe so klein und leicht wie möglich. Experimentieren Sie mit einer unterschiedlichen Anzahl von Trades in jeder Rechenaufgabe, um herauszufinden, welcher am besten in Bezug auf Rechenzeit und Kosten optimiert ist.
+ Bewahren Sie wiederverwendbare Objekte bei Amazon auf ElastiCache. Verwenden Sie ein Framework wie Apache Arrow, um die Serialisierung und Deserialisierung zu reduzieren.
+ Beachten Sie die Zeitbegrenzung von Lambda. Wenn Sie glauben, dass Ihre Rechenaufgaben mehr als 15 Minuten dauern könnten, versuchen Sie, sie in kleinere Aufgaben aufzuteilen, um das Lambda-Timeout zu vermeiden. Wenn dies nicht möglich ist, könnten Sie eine Container-Orchestrierungslösung mit AWS Fargate, Amazon Elastic Container Service (Amazon ECS) und Amazon Elastic Kubernetes Service (Amazon EKS) in Betracht ziehen.

## Epen
<a name="calculate-value-at-risk-var-by-using-aws-services-epics"></a>

### Handelsfluss zum Risikosystem
<a name="trade-flow-to-risk-system"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fange an, Trades zu schreiben.  | Neue, abgewickelte oder teilweise abgewickelte Geschäfte werden aus dem Auftragsverwaltungssystem in einen Risikostream geschrieben. Dieses Muster verwendet Amazon Kinesis als verwalteten Streaming-Service. Der Hash des Handelsorder-Tickers wird verwendet, um Handelsaufträge auf mehrere Shards zu verteilen. | Amazon Kinesis | 

### Führen Sie Lambda-Funktionen für die Auftragsabwicklung aus
<a name="run-lambda-functions-for-order-processing"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie die Risikoverarbeitung mit Lambda. | Führen Sie eine AWS Lambda Lambda-Funktion für die neuen Bestellungen aus. Basierend auf der Anzahl der ausstehenden Handelsaufträge skaliert Lambda automatisch. Jede Lambda-Instance hat eine oder mehrere Bestellungen und ruft die aktuelle Position für jeden Ticker von Amazon ab. ElastiCache (Sie können eine CUSIP-ID, einen Kurvennamen oder einen Indexnamen für andere Finanzderivate als Schlüssel zum Speichern und Abrufen von Daten verwenden.) ElasticCache In ElastiCache werden die Gesamtposition (Menge) und das Schlüssel-Wert-Paar < *Ticker*, *Nettoposition* >, wobei die *Nettoposition* der Skalierungsfaktor ist, für jeden Ticker einmal aktualisiert.  | Amazon Kinesis, AWS Lambda, Amazon ElastiCache | 

### Schreiben Sie Nachrichten für jeden Ticker in die Warteschlange
<a name="write-messages-for-each-ticker-into-queue"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Schreiben Sie konsolidierte Nachrichten in die Risikowarteschlange. | Schreiben Sie die Nachricht in eine Warteschlange. Dieses Muster verwendet Amazon SQS als verwalteten Warteschlangenservice. Eine einzelne Lambda-Instance kann zu einem bestimmten Zeitpunkt einen kleinen Stapel von Handelsaufträgen erhalten, schreibt jedoch nur eine einzige Nachricht für jeden Ticker an Amazon SQS. Es wird ein Skalierungsfaktor berechnet: (*alte Nettoposition \$1 *aktuelle Position**) */alte* Nettoposition. | Amazon SQS, AWS Lambda | 

### Rufen Sie die Risk Engine auf
<a name="invoke-risk-engine"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie Risikoberechnungen. | Die Lambda-Funktion für das Risk-Engine-Lambda wird aufgerufen. Jede Position wird von einer einzigen Lambda-Funktion verarbeitet. Zu Optimierungszwecken kann jede Lambda-Funktion jedoch mehrere Nachrichten von Amazon SQS verarbeiten. | Amazon SQS, AWS Lambda | 

### Rufen Sie Risikoergebnisse aus dem Cache ab
<a name="retrieve-risk-results-from-cache"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Risiko-Cache abrufen und aktualisieren. | Lambda ruft die aktuelle Nettoposition für jeden Ticker von ab. ElastiCache Es ruft auch ein VaR-Array für Gewinn und Verlust (PnL) für jeden Ticker von ab. ElastiCache Wenn das PnL-Array bereits existiert, aktualisiert die Lambda-Funktion das Array und den VaR mit einer Skala, die aus der Amazon SQS SQS-Nachricht stammt, die von der Netting Lambda-Funktion geschrieben wurde. Wenn das PnL-Array nicht vorhanden ist ElasticCache, werden ein neuer PnL und ein neuer VaR anhand simulierter Tickerpreisreihendaten berechnet. | Amazon SQS, AWS Lambda, Amazon ElastiCache | 

### Daten im Elastic Cache aktualisieren und in der Datenbank speichern
<a name="update-data-in-elastic-cache-and-store-in-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Risikoergebnisse speichern. | Nachdem die VaR- und PnL-Nummern aktualisiert wurden ElastiCache, wird alle fünf Minuten eine neue Lambda-Funktion aufgerufen. Diese Funktion liest alle gespeicherten Daten aus einer Aurora MySQL-kompatiblen Datenbank ElastiCache und in einem S3-Bucket und speichert sie dort. | AWS Lambda, Amazon ElastiCache | 

## Zugehörige Ressourcen
<a name="calculate-value-at-risk-var-by-using-aws-services-resources"></a>
+ [Basler VaR-Framework](https://www.bis.org/basel_framework/chapter/DIS/50.htm)

# Konfigurieren Sie den kontoübergreifenden Zugriff auf einen gemeinsamen AWS Glue Glue-Datenkatalog mit Amazon Athena
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena"></a>

*Denis Avdonin, Amazon Web Services*

## Zusammenfassung
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-summary"></a>

Dieses Muster enthält step-by-step Anweisungen, einschließlich Richtlinienbeispielen für AWS Identity and Access Management (IAM), um die kontoübergreifende gemeinsame Nutzung eines in einem Amazon Simple Storage Service (Amazon S3) -Bucket gespeicherten Datensatzes mithilfe des AWS Glue Glue-Datenkatalogs zu konfigurieren. Sie können den Datensatz in einem S3-Bucket speichern. Die Metadaten werden von einem AWS Glue Glue-Crawler gesammelt und in den AWS Glue Glue-Datenkatalog aufgenommen. Der S3-Bucket und der AWS Glue Glue-Datenkatalog befinden sich in einem AWS-Konto, das als *Datenkonto* bezeichnet wird. Sie können den Zugriff auf IAM-Prinzipale in einem anderen AWS-Konto gewähren, das als *Verbraucherkonto* bezeichnet wird. Benutzer können die Daten im Verbraucherkonto mithilfe der serverlosen Amazon Athena Athena-Abfrage-Engine abfragen.

## Voraussetzungen und Einschränkungen
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-prereqs"></a>

**Voraussetzungen**
+ Zwei aktive [AWS-Konten](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html)
+ Ein [S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) in einem der AWS-Konten
+ [Athena-Engine-Version 2](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference.html#engine-versions-reference-0002)
+ AWS-Befehlszeilenschnittstelle (AWS CLI), [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) (oder [AWS CloudShell](https://aws.amazon.com/cloudshell/) für die Ausführung von AWS-CLI-Befehlen)

**Produktversionen**

Dieses Muster funktioniert nur mit [Athena-Engine-Version 2](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference-0002.html) und [Athena-Engine-Version 3.](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference-0003.html) Wir empfehlen Ihnen, auf Athena-Engine-Version 3 zu aktualisieren. Wenn Sie kein Upgrade von Athena-Engine-Version 1 auf Athena-Engine-Version 3 durchführen können, folgen Sie dem [unter Kontoübergreifender Zugriff auf den AWS Glue-Datenkatalog mit Amazon Athena](https://aws.amazon.com/blogs/big-data/cross-account-aws-glue-data-catalog-access-with-amazon-athena/) im AWS Big Data-Blog beschriebenen Ansatz.

## Architektur
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon Athena
+ Amazon Simple Storage Service (Amazon-S3)
+ AWS Glue
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)

Das folgende Diagramm zeigt eine Architektur, die IAM-Berechtigungen verwendet, um Daten in einem S3-Bucket in einem AWS-Konto (Datenkonto) mit einem anderen AWS-Konto (Verbraucherkonto) über den AWS Glue-Datenkatalog zu teilen.

![\[Teilen eines Datensatzes in einem S3-Bucket zwischen einem Datenkonto und einem Verbraucherkonto mithilfe des AWS Glue Glue-Datenkatalogs.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4ee1d6f5-f8e1-4acb-8a9c-7601c832a87d/images/e73a2b47-c0b1-49f1-be66-9c563c11c9f9.png)


Das Diagramm zeigt den folgenden Workflow:

1. Die S3-Bucket-Richtlinie im Datenkonto gewährt Berechtigungen für eine IAM-Rolle im Verbraucherkonto und für die AWS Glue Glue-Crawler-Servicerolle im Datenkonto.

1. Die AWS KMS KMS-Schlüsselrichtlinie im Datenkonto gewährt Berechtigungen für die IAM-Rolle im Verbraucherkonto und für die AWS Glue Glue-Crawler-Servicerolle im Datenkonto.

1. Der AWS Glue Glue-Crawler im Datenkonto erkennt das Schema der Daten, die im S3-Bucket gespeichert sind.

1. Die Ressourcenrichtlinie des AWS Glue Glue-Datenkatalogs im Datenkonto gewährt Zugriff auf die IAM-Rolle im Verbraucherkonto.

1. Ein Benutzer erstellt mithilfe eines AWS-CLI-Befehls eine benannte Katalogreferenz im Verbraucherkonto.

1. Eine IAM-Richtlinie gewährt einer IAM-Rolle im Verbraucherkonto Zugriff auf Ressourcen im Datenkonto. Die Vertrauensrichtlinie der IAM-Rolle ermöglicht es Benutzern im Verbraucherkonto, die IAM-Rolle zu übernehmen.

1. Ein Benutzer im Verbraucherkonto übernimmt die IAM-Rolle und greift mithilfe von SQL-Abfragen auf Objekte im Datenkatalog zu.

1.  Die serverlose Athena Engine führt die SQL-Abfragen aus.

**Anmerkung**  
[Bewährte Methoden für IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) [empfehlen, einer IAM-Rolle Berechtigungen zu erteilen und einen Identitätsverbund zu verwenden.](https://aws.amazon.com/identity/federation/)

## Tools
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon S3 analysieren können.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter Service zum Extrahieren, Transformieren und Laden (ETL). Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) unterstützt Sie bei der Erstellung und Kontrolle kryptografischer Schlüssel zum Schutz Ihrer Daten.

## Epen
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-epics"></a>

### Richten Sie Berechtigungen im Datenkonto ein
<a name="set-up-permissions-in-the-data-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Gewähren Sie Zugriff auf Daten im S3-Bucket. | [Erstellen Sie eine S3-Bucket-Richtlinie](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) auf der Grundlage der folgenden Vorlage und weisen Sie die Richtlinie dem Bucket zu, in dem die Daten gespeichert sind.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                     "arn:aws:iam::<consumer account id>:role/<role name>",<br />                     "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />                ]<br />            },<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::data-bucket/*"<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                      "arn:aws:iam::<consumer account id>:role/<role name>",<br />                      "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />                ]<br />            },<br />            "Action": "s3:ListBucket",<br />            "Resource": "arn:aws:s3:::data-bucket"<br />        }<br />    ]<br />}</pre>Die Bucket-Richtlinie gewährt Berechtigungen für die IAM-Rolle im Verbraucherkonto und für die AWS Glue Glue-Crawler-Servicerolle im Datenkonto. | Cloud-Administrator | 
| (Falls erforderlich) Gewähren Sie Zugriff auf den Datenverschlüsselungsschlüssel. | Wenn der S3-Bucket mit einem AWS-KMS-Schlüssel verschlüsselt ist, `kms:Decrypt` erteilen Sie der IAM-Rolle im Verbraucherkonto und der AWS Glue Glue-Crawler-Servicerolle im Datenkonto die Erlaubnis für den Schlüssel.Aktualisieren Sie die [Schlüsselrichtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) mit der folgenden Aussage:<pre>{<br />    "Effect": "Allow",<br />    "Principal": {<br />        "AWS": [<br />            "arn:aws:iam::<consumer account id>:role/<role name>",<br />            "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />        ]<br />    },<br />    "Action": "kms:Decrypt",<br />    "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>"<br />}</pre> | Cloud-Administrator | 
| Gewähren Sie dem Crawler Zugriff auf die Daten. | Fügen Sie der Servicerolle des Crawlers die folgende IAM-Richtlinie hinzu:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::data-bucket/*"<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:ListBucket",<br />            "Resource": "arn:aws:s3:::data-bucket"<br />        }<br />    ]<br />} </pre> | Cloud-Administrator | 
| (Falls erforderlich) Gewähren Sie dem Crawler Zugriff auf den Datenverschlüsselungsschlüssel. | Wenn der S3-Bucket mit einem AWS-KMS-Schlüssel verschlüsselt ist, erteilen Sie der Service-Rolle des Crawlers die `kms:Decrypt` Erlaubnis für den Schlüssel, indem Sie ihm die folgende Richtlinie anhängen:<pre>{<br />    "Effect": "Allow",<br />    "Action": "kms:Decrypt",<br />    "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>"<br />}</pre> | Cloud-Administrator | 
| Gewähren Sie der IAM-Rolle im Verbraucherkonto und dem Crawler Zugriff auf den Datenkatalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html)<pre>{<br />    "Version" : "2012-10-17",<br />    "Statement" : [ <br />        {<br />            "Effect" : "Allow",<br />            "Principal" : {<br />                "AWS" : [<br />                     "arn:aws:iam::<consumer account id>:role/<role name>",<br />                    "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />                ]<br />            },<br />            "Action" : "glue:*",<br />            "Resource" : [ <br />                 "arn:aws:glue:<region>:<data account id>:catalog", <br />                 "arn:aws:glue:<region>:<data account id>:database/*", <br />                 "arn:aws:glue:<region>:<data account id>:table/*" <br />            ]<br />        } <br />    ]<br />}</pre>Diese Richtlinie erlaubt alle AWS Glue Glue-Aktionen für alle Datenbanken und Tabellen im Datenkonto. Sie können die Richtlinie so anpassen, dass den Benutzerprinzipalen nur die erforderlichen Berechtigungen gewährt werden. Sie können beispielsweise schreibgeschützten Zugriff auf bestimmte Tabellen oder Ansichten in einer Datenbank gewähren. | Cloud-Administrator | 

### Greifen Sie über das Verbraucherkonto auf Daten zu
<a name="access-data-from-the-consumer-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine benannte Referenz für den Datenkatalog. | Um eine benannte Datenkatalogreferenz zu erstellen, verwenden Sie [CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/getting-started.html)oder eine lokal installierte AWS-CLI, um den folgenden Befehl auszuführen:<pre>aws athena create-data-catalog --name <shared catalog name> --type GLUE --parameters catalog-id=<data account id></pre> | Cloud-Administrator | 
| Gewähren Sie der IAM-Rolle im Verbraucherkonto Zugriff auf die Daten. | Fügen Sie der IAM-Rolle im Verbraucherkonto die folgende Richtlinie hinzu, um der Rolle kontoübergreifenden Zugriff auf die Daten zu gewähren:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />        {<br />             "Effect": "Allow",<br />             "Action": "s3:GetObject",<br />             "Resource": "arn:aws:s3:::data-bucket/*"<br />        },<br />        {<br />             "Effect": "Allow",<br />             "Action": "s3:ListBucket",<br />             "Resource": "arn:aws:s3:::data-bucket"<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Action": "glue:*",<br />            "Resource": [<br />                 "arn:aws:glue:<region>:<data account id>:catalog",<br />                 "arn:aws:glue:<region>:<data account id>:database/*",<br />                 "arn:aws:glue:<region>:<data account id>:table/*"<br />            ]<br />        }<br />    ]<br />}</pre>Verwenden Sie als Nächstes die folgende Vorlage, um anzugeben, welche Benutzer die IAM-Rolle in ihrer Vertrauensrichtlinie akzeptieren können:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />       {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<consumer account id>:user/<IAM user>"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre>Erteilen Sie den Benutzern abschließend Berechtigungen zur Übernahme der IAM-Rolle, indem Sie dieselbe Richtlinie an die Benutzergruppe anhängen, zu der sie gehören. | Cloud-Administrator | 
| (Falls erforderlich) Gewähren Sie der IAM-Rolle im Verbraucherkonto Zugriff auf den Datenverschlüsselungsschlüssel. | Wenn der S3-Bucket mit einem AWS-KMS-Schlüssel verschlüsselt ist, erteilen Sie der IAM-Rolle im Verbraucherkonto die `kms:Decrypt` Erlaubnis für den Schlüssel, indem Sie ihm die folgende Richtlinie anhängen:<pre>{<br />     "Effect": "Allow",<br />     "Action": "kms:Decrypt",<br />     "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>"<br />}</pre> | Cloud-Administrator | 
| Wechseln Sie im Verbraucherkonto zur IAM-Rolle, um auf Daten zuzugreifen. | [Wechseln Sie als Datenverbraucher zur IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html), um auf Daten im Datenkonto zuzugreifen. | Datenkonsument | 
| Greifen Sie auf die Daten zu. | Fragen Sie Daten mit Athena ab. Öffnen Sie beispielsweise den Athena-Abfrage-Editor und führen Sie die folgende Abfrage aus:<pre>SELECT *<br />  FROM <shared catalog name>.<database name>.<table name></pre>Anstatt eine benannte Katalogreferenz zu verwenden, können Sie auch anhand seines Amazon-Ressourcennamens (ARN) auf den Katalog verweisen.Wenn Sie in einer Abfrage oder Ansicht eine dynamische Katalogreferenz verwenden, setzen Sie den Verweis in doppelte Anführungszeichen (\$1“). Beispiel:<pre>SELECT * <br />  FROM \"glue:arn:aws:glue:<region>:<data account id>:catalog\".<database name>.<table name></pre>Weitere Informationen finden Sie unter [Kontoübergreifender Zugriff auf AWS Glue Glue-Datenkataloge](https://docs.aws.amazon.com/athena/latest/ug/security-iam-cross-account-glue-catalog-access.html) im Amazon Athena Athena-Benutzerhandbuch. | Datenverbraucher | 

## Zugehörige Ressourcen
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-resources"></a>
+ [Kontoübergreifender Zugriff auf AWS Glue Glue-Datenkataloge](https://docs.aws.amazon.com/athena/latest/ug/security-iam-cross-account-glue-catalog-access.html) (Athena-Dokumentation)
+ [(AWS CLI) create-data-catalog](https://docs.aws.amazon.com/cli/latest/reference/athena/create-data-catalog.html) (AWS CLI-Befehlsreferenz)
+ [Kontoübergreifender Zugriff auf den AWS Glue-Datenkatalog mit Amazon Athena](https://aws.amazon.com/blogs/big-data/cross-account-aws-glue-data-catalog-access-with-amazon-athena/) (AWS Big Data Blog)
+ [Bewährte Sicherheitsmethoden in IAM (IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html))

## Zusätzliche Informationen
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-additional"></a>

**Verwendung von Lake Formation als Alternative für kontenübergreifendes Teilen**

Sie können AWS Lake Formation auch verwenden, um den Zugriff auf AWS Glue Glue-Katalogobjekte für mehrere Konten gemeinsam zu nutzen. Lake Formation bietet eine detaillierte Zugriffskontrolle auf Spalten- und Zeilenebene, Tag-basierte Zugriffskontrolle, gesteuerte Tabellen für ACID-Transaktionen und andere Funktionen. Lake Formation ist zwar gut in Athena integriert, erfordert jedoch eine zusätzliche Konfiguration im Vergleich zum reinen IAM-Ansatz dieses Musters. Wir empfehlen Ihnen, die Entscheidung, Lake Formation oder reine IAM-Zugriffskontrollen zu verwenden, im breiteren Kontext Ihrer gesamten Lösungsarchitektur zu berücksichtigen. Zu den Überlegungen gehören auch, um welche anderen Dienste es sich handelt und wie sie sich in beide Ansätze integrieren lassen.

# Konvertieren Sie die temporale Funktion Teradata NORMALIZE in Amazon Redshift SQL
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql"></a>

*Po Hong, Amazon Web Services*

## Zusammenfassung
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-summary"></a>

**NORMALIZE** ist eine Teradata-Erweiterung des ANSI SQL-Standards. **Wenn eine SQL-Tabelle eine Spalte mit dem Datentyp PERIOD enthält, kombiniert **NORMALIZE** Werte, die sich in dieser Spalte treffen oder sich überschneiden, zu einer einzigen Periode, die mehrere einzelne Periodenwerte konsolidiert.** Um **NORMALIZE** verwenden zu können, muss mindestens eine Spalte in der SQL **SELECT-Liste** den temporalen **PERID-Datentyp** von Teradata haben. Weitere Informationen zu **NORMALIZE** finden Sie in der [Teradata-Dokumentation](https://docs.teradata.com/reader/2_MC9vCtAJRlKle2Rpb0mA/MIGI5UMEwgERC3Un7tEZ6g). 

Amazon Redshift unterstützt **NORMALIZE** nicht, aber Sie können diese Funktionalität mithilfe der systemeigenen SQL-Syntax und der **LAG-Fensterfunktion** in Amazon Redshift implementieren. Dieses Muster konzentriert sich auf die Verwendung der Teradata **NORMALIZE-Erweiterung** mit der Bedingung **ON MEETS OR OVERLAPS**, dem beliebtesten Format. Es erklärt, wie diese Funktion in Teradata funktioniert und wie sie in die native SQL-Syntax von Amazon Redshift konvertiert werden kann.

## Voraussetzungen und Einschränkungen
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-prereqs"></a>

**Voraussetzungen**
+ Grundkenntnisse und Erfahrung mit Teradata SQL
+ Wissen und Erfahrung mit Amazon Redshift

## Architektur
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-architecture"></a>

**Quelltechnologie-Stack**
+ Teradata-Datawarehouse

**Zieltechnologie-Stack**
+ Amazon Redshift

**Zielarchitektur**

Eine allgemeine Architektur für die Migration einer Teradata-Datenbank zu Amazon Redshift finden Sie im Muster [Migrieren einer Teradata-Datenbank zu Amazon Redshift mithilfe von AWS SCT-Datenextraktionsagenten](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html). Die Migration konvertiert die Teradata **NORMALIZE-Phrase** nicht automatisch in Amazon Redshift SQL. Sie können diese Teradata-Erweiterung konvertieren, indem Sie die Richtlinien in diesem Muster befolgen.

## Tools
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-tools"></a>

**Code**

Sehen Sie sich die folgende Tabellendefinition in Teradata an, um das Konzept und die Funktionalität von **NORMALIZE** zu veranschaulichen:

```
CREATE TABLE systest.project
     (    emp_id        INTEGER,
          project_name  VARCHAR(20),
          dept_id       INTEGER,
          duration      PERIOD(DATE)
     );
```

Führen Sie den folgenden SQL-Code aus, um Beispieldaten in die Tabelle einzufügen:

```
BEGIN TRANSACTION;

INSERT INTO systest.project VALUES (10, 'First Phase', 1000,  PERIOD(DATE '2010-01-10', DATE '2010-03-20') );
INSERT INTO systest.project VALUES (10, 'First Phase', 2000,  PERIOD(DATE '2010-03-20', DATE '2010-07-15') );

INSERT INTO systest.project VALUES (10, 'Second Phase', 2000,  PERIOD(DATE '2010-06-15', DATE '2010-08-18') );
INSERT INTO systest.project VALUES (20, 'First Phase', 2000,  PERIOD(DATE '2010-03-10', DATE '2010-07-20') );

INSERT INTO systest.project VALUES (20, 'Second Phase', 1000,  PERIOD(DATE '2020-05-10', DATE '2020-09-20') );

END TRANSACTION;
```

Ergebnisse:

```
select * from systest.project order by 1,2,3;
 
 *** Query completed. 4 rows found. 4 columns returned.
 *** Total elapsed time was 1 second.
 
     emp_id  project_name              dept_id  duration
-----------  --------------------  -----------  ------------------------
         10  First Phase                  1000  ('10/01/10', '10/03/20')        
         10  First Phase                  2000  ('10/03/20', '10/07/15')
         10  Second Phase                 2000  ('10/06/15', '10/08/18')
         20  First Phase                  2000  ('10/03/10', '10/07/20')
         20  Second Phase                 1000  ('20/05/10', '20/09/20')
```

*Anwendungsfall Teradata NORMALIZE*

**Fügen Sie nun die Teradata **NORMALIZE** SQL-Klausel zur SELECT-Anweisung hinzu:**

```
SELECT NORMALIZE ON MEETS OR OVERLAPS emp_id, duration 
FROM systest.project 
ORDER BY 1,2;
```

Diese **NORMALIZE-Operation** wird für eine einzelne Spalte () `emp_id` ausgeführt. Denn `emp_id=10` die drei sich überschneidenden Periodenwerte in Bezug auf die Dauer verschmelzen wie folgt zu einem einzigen Periodenwert:  

```
     emp_id  duration
-----------  ------------------------
         10  ('10/01/10', '10/08/18')
         20  ('10/03/10', '10/07/20')
         20  ('20/05/10', '20/09/20')
```

Die folgende **SELECT-Anweisung** führt eine **NORMALIZE-Operation** für und aus. `project_name` `dept_id` Beachten Sie, dass die **SELECT-Liste** nur eine **PERIOD-Spalte** enthält,`duration`.

```
SELECT NORMALIZE project_name, dept_id, duration 
FROM systest.project;
```

Ausgabe:

```
project_name              dept_id  duration
--------------------  -----------  ------------------------
First Phase                  1000  ('10/01/10', '10/03/20')
Second Phase                 1000  ('20/05/10', '20/09/20')
First Phase                  2000  ('10/03/10', '10/07/20')
Second Phase                 2000  ('10/06/15', '10/08/18')
```

*SQL entspricht Amazon Redshift*

Amazon Redshift unterstützt derzeit den **PERIOD-Datentyp** in einer Tabelle nicht. Stattdessen müssen Sie ein Teradata **PERIOD-Datenfeld** wie folgt in zwei Teile unterteilen: `start_date, end_date`  

```
CREATE TABLE systest.project
     (    emp_id        INTEGER,
          project_name  VARCHAR(20),
          dept_id       INTEGER,
          start_date  DATE,
          end_date    DATE
     );
```

Fügen Sie Beispieldaten in die Tabelle ein:

```
BEGIN TRANSACTION;
 
INSERT INTO systest.project VALUES (10, 'First Phase', 1000,  DATE '2010-01-10', DATE '2010-03-20' );
INSERT INTO systest.project VALUES (10, 'First Phase', 2000,  DATE '2010-03-20', DATE '2010-07-15');
 
INSERT INTO systest.project VALUES (10, 'Second Phase', 2000,  DATE '2010-06-15', DATE '2010-08-18' );
INSERT INTO systest.project VALUES (20, 'First Phase', 2000,  DATE '2010-03-10', DATE '2010-07-20' );
 
INSERT INTO systest.project VALUES (20, 'Second Phase', 1000,  DATE '2020-05-10', DATE '2020-09-20' );
 
END TRANSACTION;
```

Ausgabe:

```
 emp_id | project_name | dept_id | start_date |  end_date
--------+--------------+---------+------------+------------
     10 | First Phase  |    1000 | 2010-01-10 | 2010-03-20
     10 | First Phase  |    2000 | 2010-03-20 | 2010-07-15
     10 | Second Phase |    2000 | 2010-06-15 | 2010-08-18
     20 | First Phase  |    2000 | 2010-03-10 | 2010-07-20
     20 | Second Phase |    1000 | 2020-05-10 | 2020-09-20
(5 rows)
```

Um die **NORMALIZE-Klausel** von Teradata neu zu schreiben, können Sie die [LAG-Fensterfunktion](https://docs.aws.amazon.com/redshift/latest/dg/r_WF_LAG.html) in Amazon Redshift verwenden. Diese Funktion gibt die Werte für eine Zeile mit einem bestimmten Offset über (vor) der aktuellen Zeile in der Partition zurück.

Sie können die **LAG-Funktion** verwenden, um jede Zeile zu identifizieren, mit der eine neue Periode beginnt, indem Sie ermitteln, ob eine Periode mit der vorherigen Periode übereinstimmt oder sich mit ihr überschneidet (0, wenn ja und 1, wenn nein). Wenn dieses Flag kumulativ zusammengefasst wird, stellt es eine Gruppen-ID bereit, die in der äußeren **Group** By-Klausel verwendet werden kann, um das gewünschte Ergebnis in Amazon Redshift zu erzielen.  

Hier ist ein Beispiel für eine Amazon Redshift SQL-Anweisung, die **LAG ()** verwendet:

```
SELECT emp_id, start_date, end_date, 
            (CASE WHEN start_date <= LAG(end_date) OVER (PARTITION BY emp_id ORDER BY start_date, end_date) THEN 0 ELSE 1 END) AS GroupStartFlag
FROM systest.project 
ORDER BY 1,2;
```

Ausgabe:

```
 emp_id | start_date |  end_date  | groupstartflag
--------+------------+------------+----------------
     10 | 2010-01-10 | 2010-03-20 |              1
     10 | 2010-03-20 | 2010-07-15 |              0
     10 | 2010-06-15 | 2010-08-18 |              0
     20 | 2010-03-10 | 2010-07-20 |              1
     20 | 2020-05-10 | 2020-09-20 |              1
(5 rows)
```

Die folgende Amazon Redshift SQL-Anweisung normalisiert nur die Spalte: `emp_id`

```
SELECT T2.emp_id, MIN(T2.start_date) as new_start_date, MAX(T2.end_date) as new_end_date
FROM 
( SELECT T1.*, SUM(GroupStartFlag) OVER (PARTITION BY emp_id ORDER BY start_date ROWS UNBOUNDED PRECEDING) As GroupID
FROM ( SELECT emp_id, start_date, end_date, 
            (CASE WHEN start_date <= LAG(end_date) OVER (PARTITION BY emp_id ORDER BY start_date, end_date) THEN 0 ELSE 1 END) AS GroupStartFlag
FROM systest.project ) T1
) T2
GROUP BY T2.emp_id, T2.GroupID
ORDER BY 1,2;
```

Ausgabe:  

```
 emp_id | new_start_date | new_end_date
--------+----------------+------------------------------------
     10 | 2010-01-10     | 2010-08-18
     20 | 2010-03-10     | 2010-07-20
     20 | 2020-05-10     | 2020-09-20
(3 rows)
```

** **

Die folgende Amazon Redshift SQL-Anweisung normalisiert sowohl die Spalten als `project_name` auch`dept_id`:

```
SELECT T2.project_name, T2.dept_id, MIN(T2.start_date) as new_start_date, MAX(T2.end_date) as new_end_date
FROM 
( SELECT T1.*, SUM(GroupStartFlag) OVER (PARTITION BY project_name, dept_id ORDER BY start_date ROWS UNBOUNDED PRECEDING) As GroupID
FROM ( SELECT project_name, dept_id, start_date, end_date, 
            (CASE WHEN start_date <= LAG(end_date) OVER (PARTITION BY project_name, dept_id ORDER BY start_date, end_date) THEN 0 ELSE 1 END) AS GroupStartFlag
FROM systest.project ) T1
) T2
GROUP BY T2.project_name, T2.dept_id, T2.GroupID
ORDER BY 1,2,3;
```

Ausgabe:

```
 project_name | dept_id | new_start_date | new_end_date
--------------+---------+----------------+--------------
 First Phase  |    1000 | 2010-01-10     | 2010-03-20
 First Phase  |    2000 | 2010-03-10     | 2010-07-20
 Second Phase |    1000 | 2020-05-10     | 2020-09-20
 Second Phase |    2000 | 2010-06-15     | 2010-08-18
(4 rows)
```

## Epen
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-epics"></a>

### NORMALIZE nach Amazon Redshift SQL konvertieren
<a name="convert-normalize-to-amazon-redshift-sql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Ihren Teradata SQL-Code. | Verwenden Sie die NORMALIZE-Phrase entsprechend Ihren Bedürfnissen. | SQL Developer | 
| Konvertieren Sie den Code in Amazon Redshift SQL. | Folgen Sie den Richtlinien im Abschnitt „Tools“ dieses Musters, um Ihren Code zu konvertieren. | SQL Developer | 
| Führen Sie den Code in Amazon Redshift aus. | Erstellen Sie Ihre Tabelle, laden Sie Daten in die Tabelle und führen Sie Ihren Code in Amazon Redshift aus. | SQL Developer | 

## Zugehörige Ressourcen
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-resources"></a>

**Referenzen**
+ [Temporale Funktion „Teradata NORMALIZE“](https://docs.teradata.com/reader/2_MC9vCtAJRlKle2Rpb0mA/MIGI5UMEwgERC3Un7tEZ6g) (Teradata-Dokumentation)
+ [LAG-Fensterfunktion](https://docs.aws.amazon.com/redshift/latest/dg/r_WF_LAG.html) (Amazon Redshift Redshift-Dokumentation)
+ [Zu Amazon Redshift migrieren](https://aws.amazon.com/redshift/data-warehouse-migration/) (AWS-Website)
+ [Migrieren Sie eine Teradata-Datenbank mithilfe von AWS SCT-Datenextraktionsagenten zu Amazon Redshift (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html) Prescriptive Guidance)
+ [Konvertieren Sie die Teradata RESET WHEN-Funktion auf Amazon Redshift SQL](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.html) (AWS Prescriptive Guidance)

**Tools**
+ [AWS-Schemakonvertierungstool (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/)

**Partner**
+ [AWS-Kompetenzpartner für Migration](https://aws.amazon.com/migration/partner-solutions/#delivery)

# Konvertieren Sie die Teradata RESET WHEN-Funktion in Amazon Redshift SQL
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql"></a>

*Po Hong, Amazon Web Services*

## Zusammenfassung
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-summary"></a>

**RESET WHEN** ist eine Teradata-Funktion, die in analytischen Fensterfunktionen von SQL verwendet wird. Es ist eine Erweiterung des ANSI SQL-Standards. **RESET WHEN** bestimmt die Partition, über die eine SQL-Fensterfunktion ausgeführt wird, basierend auf einer bestimmten Bedingung. Wenn die Bedingung **TRUE** ergibt, wird eine neue, dynamische Unterpartition innerhalb der vorhandenen Fensterpartition erstellt. Weitere Informationen zu **RESET** WHEN finden Sie in der [Teradata-Dokumentation](https://docs.teradata.com/reader/1DcoER_KpnGTfgPinRAFUw/b7wL86OoMTPno6hrSPNdDg).

Amazon Redshift unterstützt **RESET WHEN** in SQL-Fensterfunktionen nicht. Um diese Funktionalität zu implementieren, müssen Sie **RESET WHEN** in die native SQL-Syntax in Amazon Redshift konvertieren und mehrere verschachtelte Funktionen verwenden. Dieses Muster zeigt, wie Sie die Teradata **RESET** WHEN-Funktion verwenden und sie in die Amazon Redshift SQL-Syntax konvertieren können. 

## Voraussetzungen und Einschränkungen
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-prereqs"></a>

**Voraussetzungen**
+ Grundkenntnisse des Teradata Data Warehouse und seiner SQL-Syntax
+ Gutes Verständnis von Amazon Redshift und seiner SQL-Syntax

## Architektur
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-architecture"></a>

**Quelltechnologie-Stack**
+ Teradata-Datawarehouse

**Zieltechnologie-Stack**
+ Amazon Redshift

**Architektur**

Eine übergeordnete Architektur für die Migration einer Teradata-Datenbank zu Amazon Redshift finden Sie im Muster [Migrieren einer Teradata-Datenbank zu Amazon Redshift mithilfe von AWS SCT-Datenextraktionsagenten](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html). Die Migration konvertiert die Teradata **RESET** WHEN-Phrase nicht automatisch in Amazon Redshift SQL. Sie können diese Teradata-Erweiterung konvertieren, indem Sie die Richtlinien im nächsten Abschnitt befolgen.

## Tools
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-tools"></a>

**Code**

Sehen Sie sich die folgende Tabellendefinition in Teradata an, um das Konzept von **RESET WHEN** zu veranschaulichen:

```
create table systest.f_account_balance                                
( account_id integer NOT NULL,
  month_id integer,
  balance integer )
unique primary index (account_id, month_id);
```

Führen Sie den folgenden SQL-Code aus, um Beispieldaten in die Tabelle einzufügen:

```
BEGIN TRANSACTION;
Insert Into systest.f_account_balance values (1,1,60);
Insert Into systest.f_account_balance values (1,2,99);
Insert Into systest.f_account_balance values (1,3,94);
Insert Into systest.f_account_balance values (1,4,90);
Insert Into systest.f_account_balance values (1,5,80);
Insert Into systest.f_account_balance values (1,6,88);
Insert Into systest.f_account_balance values (1,7,90);
Insert Into systest.f_account_balance values (1,8,92);
Insert Into systest.f_account_balance values (1,9,10);
Insert Into systest.f_account_balance values (1,10,60);
Insert Into systest.f_account_balance values (1,11,80);
Insert Into systest.f_account_balance values (1,12,10);
END TRANSACTION;
```

Die Beispieltabelle enthält die folgenden Daten:


| 
| 
| account\$1id | month\$1id | balance | 
| --- |--- |--- |
| 1 | 1 | 60 | 
| 1 | 2 | 99 | 
| 1 | 3 | 94 | 
| 1 | 4 | 90 | 
| 1 | 5 | 80 | 
| 1 | 6 | 88 | 
| 1 | 7 | 90 | 
| 1 | 8 | 92 | 
| 1 | 9 | 10 | 
| 1 | 10 | 60 | 
| 1 | 11 | 80 | 
| 1 | 12 | 10 | 

Nehmen wir an, Sie möchten für jedes Konto die Reihenfolge der aufeinanderfolgenden monatlichen Saldoerhöhungen analysieren. Wenn der Saldo eines Monats kleiner oder gleich dem Saldo des Vormonats ist, müssen Sie den Zähler auf Null zurücksetzen und neu starten.

*Anwendungsfall Teradata RESET WHEN*

Um diese Daten zu analysieren, verwendet Teradata SQL eine Fensterfunktion mit einem verschachtelten Aggregat und einer **RESET WHEN-Phrase wie folgt:**

```
SELECT account_id, month_id, balance,
 ( ROW_NUMBER() OVER (PARTITION BY account_id ORDER BY month_id
RESET WHEN balance <= SUM(balance) over (PARTITION BY account_id ORDER BY month_id ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) ) -1 ) as balance_increase
FROM systest.f_account_balance
ORDER BY 1,2;
```

Ausgabe:


| 
| 
|  account\$1id | month\$1id | balance | Saldo erhöhen | 
| --- |--- |--- |--- |
| 1 | 1 | 60 | 0 | 
| 1 | 2 | 99 | 1 | 
| 1 | 3 | 94 | 0 | 
| 1 | 4 | 90 | 0 | 
| 1 | 5 | 80 | 0 | 
| 1 | 6 | 88 | 1 | 
| 1 | 7 | 90 | 2 | 
| 1 | 8 | 92 | 3 | 
| 1 | 9 | 10 | 0 | 
| 1 | 10 | 60 | 1 | 
| 1 | 11 | 80 | 2 | 
| 1 | 12 | 10 | 0 | 

Die Abfrage wird in Teradata wie folgt verarbeitet:

1. Die Aggregatfunktion **SUM (Saldo)** berechnet die Summe aller Salden für ein bestimmtes Konto in einem bestimmten Monat.

1. Wir prüfen, ob ein Saldo in einem bestimmten Monat (für ein bestimmtes Konto) höher ist als der Saldo des Vormonats.

1. Wenn der Saldo gestiegen ist, erfassen wir einen kumulierten Zählwert. Wenn die Bedingung **RESET WHEN als** **falsch** ausgewertet wird, was bedeutet, dass der Saldo in aufeinanderfolgenden Monaten gestiegen ist, erhöhen wir die Anzahl weiter.

1. Die geordnete analytische Funktion **ROW\$1NUMBER ()** berechnet den Zählwert. **Wenn wir einen Monat erreichen, dessen Saldo kleiner oder gleich dem Saldo des Vormonats ist, wird die **RESET WHEN-Bedingung als wahr** ausgewertet.** Falls ja, starten wir eine neue Partition und **ROW\$1NUMBER ()** setzt die Zählung bei 1 neu an. Wir verwenden **ROWS BETWEEN 1 PREVIODING UND 1 PREVIODING, um auf den Wert der vorherigen** Zeile zuzugreifen.

1. Wir subtrahieren 1, um sicherzustellen, dass der Zählwert mit 0 beginnt.

*Amazon Redshift Redshift-äquivalentes SQL*

Amazon Redshift unterstützt die **RESET WHEN-Phrase** in einer SQL-Analysefensterfunktion nicht.  Um dasselbe Ergebnis zu erzielen, müssen Sie Teradata SQL mithilfe der nativen SQL-Syntax von Amazon Redshift und verschachtelten Unterabfragen wie folgt neu schreiben: 

```
SELECT account_id, month_id, balance,
   (ROW_NUMBER() OVER(PARTITION BY account_id, new_dynamic_part ORDER BY month_id) -1) as balance_increase
FROM
( SELECT account_id, month_id, balance, prev_balance,
SUM(dynamic_part) OVER (PARTITION BY account_id ORDER BY month_id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) As new_dynamic_part
FROM ( SELECT account_id, month_id, balance,
SUM(balance) over (PARTITION BY account_id ORDER BY month_id ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as prev_balance,
(CASE When balance <= prev_balance Then 1 Else 0 END) as dynamic_part
FROM systest.f_account_balance ) A
) B
ORDER BY 1,2;
```

Da Amazon Redshift keine Funktionen für verschachtelte Fenster in der **SELECT-Klausel** einer einzelnen SQL-Anweisung unterstützt, müssen Sie zwei verschachtelte Unterabfragen verwenden.
+ In der inneren Unterabfrage (Alias A) wird ein dynamischer Partitionsindikator (**dynamic\$1part**) erstellt und gefüllt. **dynamic\$1part** wird auf 1 gesetzt, wenn der Saldo eines Monats kleiner oder gleich dem Saldo des Vormonats ist. Andernfalls wird er auf 0 gesetzt. 
+ **In der nächsten Ebene (Alias B) wird ein **new\$1dynamic\$1part-Attribut** als Ergebnis einer SUM-Fensterfunktion generiert.** 
+ Schließlich fügen Sie **new\$1dynamic\$1part** als neues Partitionsattribut (**dynamische** Partition) zum vorhandenen Partitionsattribut (**account\$1id) hinzu und wenden dieselbe Fensterfunktion **ROW\$1NUMBER**** () wie in Teradata an (und minus eins). 

Nach diesen Änderungen generiert Amazon Redshift SQL dieselbe Ausgabe wie Teradata.

## Epen
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-epics"></a>

### RESET WHEN nach Amazon Redshift SQL konvertieren
<a name="convert-reset-when-to-amazon-redshift-sql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Ihre Teradata-Fensterfunktion. | Verwenden Sie je nach Bedarf verschachtelte Aggregate und die RESET WHEN-Phrase. | SQL Developer | 
| Konvertieren Sie den Code in Amazon Redshift SQL. | Folgen Sie den Richtlinien im Abschnitt „Tools“ dieses Musters, um Ihren Code zu konvertieren. | SQL Developer | 
| Führen Sie den Code in Amazon Redshift aus. | Erstellen Sie Ihre Tabelle, laden Sie Daten in die Tabelle und führen Sie Ihren Code in Amazon Redshift aus. | SQL Developer | 

## Zugehörige Ressourcen
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-resources"></a>

**Referenzen**
+ [RESET WHEN-Phrase](https://docs.teradata.com/reader/1DcoER_KpnGTfgPinRAFUw/b7wL86OoMTPno6hrSPNdDg) (Teradata-Dokumentation)
+ [Erklärung „RESET WHEN](https://stackoverflow.com/questions/53344536/teradata-reset-when-partition-by-order-by)“ (Stack Overflow)
+ [Migrieren Sie zu Amazon Redshift](https://aws.amazon.com/redshift/data-warehouse-migration/) (AWS-Website)
+ [Migrieren Sie eine Teradata-Datenbank mithilfe von AWS SCT-Datenextraktionsagenten zu Amazon Redshift (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html) Prescriptive Guidance)
+ [Konvertieren Sie die temporale Funktion Teradata NORMALIZE in Amazon Redshift SQL](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.html) (AWS Prescriptive Guidance)

**Tools**
+ [AWS-Schemakonvertierungstool (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/)

**Partner**
+ [AWS-Kompetenzpartner für Migration](https://aws.amazon.com/migration/partner-solutions/#delivery)

# Bereitstellen und verwalten Sie einen serverlosen Data Lake in der AWS-Cloud, indem Sie Infrastruktur als Code verwenden
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code"></a>

*Kirankumar Chandrashekar und Abdel Jaidi, Amazon Web Services*

## Zusammenfassung
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-summary"></a>

Dieses Muster beschreibt, wie [Serverless Computing](https://aws.amazon.com/serverless/) und [Infrastructure as Code](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html) (IaC) verwendet werden, um einen Data Lake in der Amazon Web Services (AWS) -Cloud zu implementieren und zu verwalten. Dieses Muster basiert auf dem von AWS entwickelten Workshop zum [Serverless Data Lake Framework (SDLF)](https://sdlf.workshop.aws/).

SDLF ist eine Sammlung wiederverwendbarer Ressourcen, die die Bereitstellung von Unternehmensdatenseen in der AWS-Cloud beschleunigen und zu einer schnelleren Bereitstellung in der Produktion beitragen. Es wird verwendet, um die grundlegende Struktur eines Data Lakes unter Befolgung bewährter Methoden zu implementieren.

SDLF implementiert einen CI/CD-Prozess (Continuous Integration/Continuous Deployment) während der gesamten Code- und Infrastrukturbereitstellung mithilfe von AWS-Services wie AWS CodePipeline, AWS und AWS CodeBuild. CodeCommit

Dieses Muster verwendet mehrere serverlose AWS-Services, um das Data Lake-Management zu vereinfachen. Dazu gehören Amazon Simple Storage Service (Amazon S3) und Amazon DynamoDB für die Speicherung, AWS Lambda und AWS Glue für die Datenverarbeitung sowie Amazon CloudWatch Events, Amazon Simple Queue Service (Amazon SQS) und AWS Step Functions für die Orchestrierung.

AWS CloudFormation - und AWS-Code-Services fungieren als IaC-Schicht und bieten reproduzierbare und schnelle Bereitstellungen mit einfachem Betrieb und einfacher Verwaltung.

## Voraussetzungen und Einschränkungen
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ [AWS-Befehlszeilenschnittstelle (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html), installiert und konfiguriert. 
+ Ein Git-Client, installiert und konfiguriert.
+ Der [SDLF-Workshop](https://sdlf.workshop.aws/) wird in einem Webbrowser-Fenster geöffnet und ist sofort einsatzbereit. 

## Architektur
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-architecture"></a>

![\[Implementierung und Verwaltung eines Data Lakes in der AWS-Cloud.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f4fc3ad2-1c4f-45ea-bc86-2db13105a173/images/e0cfff30-f0f8-4fc1-8e84-a152ef615c58.png)


 Das Architekturdiagramm veranschaulicht einen ereignisgesteuerten Prozess mit den folgenden Schritten. 

1. Nachdem eine Datei zum Rohdaten-S3-Bucket hinzugefügt wurde, wird eine Amazon S3 S3-Ereignisbenachrichtigung in eine SQS-Warteschlange gestellt. Jede Benachrichtigung wird als JSON-Datei zugestellt, die Metadaten wie den S3-Bucket-Namen, den Objektschlüssel oder den Zeitstempel enthält.

1. Diese Benachrichtigung wird von einer Lambda-Funktion verarbeitet, die das Ereignis auf der Grundlage der Metadaten an den richtigen Extraktions-, Transformations- und Ladeprozess (ETL) weiterleitet. Die Lambda-Funktion kann auch kontextbezogene Konfigurationen verwenden, die in einer Amazon DynamoDB-Tabelle gespeichert sind. Dieser Schritt ermöglicht die Entkopplung und Skalierung auf mehrere Anwendungen im Data Lake.

1. Das Ereignis wird an die erste Lambda-Funktion im ETL-Prozess weitergeleitet, die Daten transformiert und aus dem Rohdatenbereich in den Staging-Bereich für den Data Lake verschiebt. Der erste Schritt besteht darin, den umfassenden Katalog zu aktualisieren. Dies ist eine DynamoDB-Tabelle, die alle Dateimetadaten des Data Lake enthält. Jede Zeile in dieser Tabelle enthält Betriebsmetadaten zu einem einzelnen Objekt, das in Amazon S3 gespeichert ist. Es wird synchron eine Lambda-Funktion aufgerufen, die eine leichte Transformation für das S3-Objekt durchführt. Dabei handelt es sich um einen rechenintensiven Vorgang (z. B. das Konvertieren einer Datei von einem Format in ein anderes). Da dem Staging-S3-Bucket ein neues Objekt hinzugefügt wurde, wird der umfassende Katalog aktualisiert und eine Nachricht an die SQS-Warteschlange gesendet, in der auf die nächste ETL-Phase gewartet wird.

1. Eine CloudWatch Ereignisregel löst alle 5 Minuten eine Lambda-Funktion aus. Diese Funktion prüft, ob Nachrichten aus der vorherigen ETL-Phase an die SQS-Warteschlange zugestellt wurden. Wenn eine Nachricht zugestellt wurde, startet die Lambda-Funktion die zweite Funktion von [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/sample-start-workflow.html) im ETL-Prozess.

1. Anschließend wird eine umfangreiche Transformation auf einen Stapel von Dateien angewendet. Diese umfangreiche Transformation ist ein rechenintensiver Vorgang, z. B. ein synchroner Aufruf eines AWS Glue-Jobs, einer AWS Fargate-Aufgabe, eines Amazon EMR-Schritts oder eines Amazon-Notebooks. SageMaker Tabellenmetadaten werden mithilfe eines AWS Glue-Crawlers, der den AWS Glue-Katalog aktualisiert, aus den Ausgabedateien extrahiert. Dateimetadaten werden auch der umfassenden Katalogtabelle in DynamoDB hinzugefügt. Schließlich wird auch ein Datenqualitätsschritt ausgeführt, der [Deequ](https://github.com/awslabs/deequ) nutzt.

**Technologie-Stack**
+  CloudWatch Amazon-Veranstaltungen
+ AWS CloudFormation
+ AWS CodePipeline
+ AWS CodeBuild
+ AWS CodeCommit
+ Amazon DynamoDB
+ AWS Glue
+ AWS Lambda
+ Amazon S3
+ Amazon SQS
+ AWS Step Functions

## Tools
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-tools"></a>
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — CloudWatch Events bietet einen Stream von Systemereignissen, die Änderungen an AWS-Ressourcen beschreiben, nahezu in Echtzeit.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — CloudFormation hilft bei der vorhersehbaren und wiederholten Erstellung und Bereitstellung von AWS-Infrastrukturbereitstellungen.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) — CodeBuild ist ein vollständig verwalteter Build-Service, der Ihren Quellcode kompiliert, Komponententests durchführt und Artefakte erzeugt, die sofort einsatzbereit sind.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) — CodeCommit ist ein von AWS gehosteter Service zur Versionskontrolle, mit dem Sie Ressourcen (wie Quellcode und Binärdateien) privat speichern und verwalten können.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) — CodePipeline ist ein Continuous Delivery Service, mit dem Sie die Schritte modellieren, visualisieren und automatisieren können, die für die kontinuierliche Veröffentlichung Ihrer Softwareänderungen erforderlich sind.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) — DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankservice, der schnelle und vorhersehbare Leistung mit Skalierbarkeit bietet. 
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) — AWS Glue ist ein vollständig verwalteter ETL-Service, der das Aufbereiten und Laden von Daten für Analysen erleichtert.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — Lambda unterstützt die Ausführung von Code ohne Bereitstellung oder Verwaltung von Servern. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) — Amazon Simple Storage Service (Amazon S3) ist ein hoch skalierbarer Objektspeicherservice. Amazon S3 kann für eine Vielzahl von Speicherlösungen verwendet werden, darunter Websites, mobile Anwendungen, Backups und Data Lakes.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) — AWS Step Functions ist ein serverloser Funktionsorchestrator, der es einfach macht, AWS Lambda Lambda-Funktionen und mehrere AWS-Services in geschäftskritischen Anwendungen zu sequenzieren.
+ [Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) — Amazon Simple Queue Service (Amazon SQS) ist ein vollständig verwalteter Message Queuing-Service, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln und skalieren können.
+ [Deequ — Deequ](https://github.com/awslabs/deequ) ist ein Tool, das Ihnen dabei hilft, Datenqualitätskennzahlen für große Datenmengen zu berechnen, Datenqualitätsbeschränkungen zu definieren und zu überprüfen und über Änderungen bei der Datenverteilung auf dem Laufenden zu bleiben.

**Code-Repository**

Der Quellcode und die Ressourcen für das SDLF sind im [AWS GitHub Labs-Repository](https://github.com/awslabs/aws-serverless-data-lake-framework/) verfügbar.

## Epen
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-epics"></a>

### Richten Sie die CI/CD Pipeline für die Bereitstellung von IaC ein
<a name="set-up-the-ci-cd-pipeline-to-provision-iac"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie die CI/CD Pipeline zur Verwaltung von IaC für den Data Lake ein. | Melden Sie sich bei der AWS-Managementkonsole an und folgen Sie den Schritten aus dem Abschnitt [Ersteinrichtung](https://sdlf.workshop.aws/en/10-deployment/100-setup.html) des SDLF-Workshops. Dadurch werden die ersten CI/CD Ressourcen wie CodeCommit Repositorys, CodeBuild Umgebungen und CodePipeline Pipelines erstellt, die IaC für den Data Lake bereitstellen und verwalten. | DevOps Ingenieur | 

### Versionskontrolle des IaC
<a name="version-control-the-iac"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das CodeCommit Repository auf Ihrem lokalen Computer. | Folgen Sie den Anweisungen aus dem [Abschnitt Einführung der Grundlagen](https://sdlf.workshop.aws/en/10-deployment/200-foundations.html) des SDLF-Workshops. Auf diese Weise können Sie das Git-Repository, das IaC hostet, in Ihre lokale Umgebung klonen. Weitere Informationen finden Sie in der Dokumentation unter [Verbindung zu CodeCommit Repositorys](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html) herstellen. CodeCommit  | DevOps Ingenieur | 
| Ändern Sie die CloudFormation Vorlagen. | Verwenden Sie Ihre lokale Workstation und einen Code-Editor, um die CloudFormation Vorlagen an Ihre Anwendungsfälle oder Anforderungen anzupassen. Übergeben Sie sie in das lokal geklonte Git-Repository. Weitere Informationen finden Sie in der [ CloudFormation AWS-Dokumentation unter Arbeiten mit CloudFormation AWS-Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). | DevOps Ingenieur | 
| Übertragen Sie die Änderungen in das CodeCommit Repository.  | Ihr Infrastrukturcode unterliegt jetzt der Versionskontrolle und Änderungen an Ihrer Codebasis werden nachverfolgt. Wenn Sie eine Änderung per Push in das CodeCommit Repository übertragen, CodePipeline wird sie automatisch auf Ihre Infrastruktur angewendet und an diese weitergeleitet CodeBuild. Wenn Sie die AWS SAM-CLI in verwenden CodeBuild, führen Sie die `sam deploy` Befehle `sam package` und aus. Wenn Sie die AWS-CLI verwenden, führen Sie die `aws cloudformation deploy` Befehle `aws cloudformation package` und aus. | DevOps Ingenieur | 

## Zugehörige Ressourcen
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-resources"></a>

**Richten Sie die CI/CD Pipeline für die Bereitstellung von IaC ein**
+ [SDLF-Workshop — Erste Einrichtung](https://sdlf.workshop.aws/en/10-deployment/100-setup.html)

**Versionskontrolle des IaC**
+ [SDLF-Workshop — Bereitstellung der Grundlagen](https://sdlf.workshop.aws/en/10-deployment/200-foundations.html)
+ [Verbindung zu Repositorien herstellen CodeCommit ](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html)
+ [Arbeiten mit CloudFormation AWS-Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)

**Sonstige Ressourcen**
+ [Referenzarchitektur für die serverlose Datenanalyse-Pipeline von AWS](https://aws.amazon.com/blogs/big-data/aws-serverless-data-analytics-pipeline-reference-architecture/)
+ [SDLF-Dokumentation](https://sdlf.readthedocs.io/en/latest/)

# Erzwingen Sie die Kennzeichnung von Amazon EMR-Clustern beim Start
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch"></a>

*Priyanka Chaudhary, Amazon Web Services*

## Zusammenfassung
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-summary"></a>

Dieses Muster bietet eine Sicherheitskontrolle, die sicherstellt, dass Amazon EMR-Cluster bei ihrer Erstellung markiert werden. 

Amazon EMR ist ein Service von Amazon Web Services (AWS) zur Verarbeitung und Analyse großer Datenmengen. Amazon EMR bietet einen erweiterbaren Service mit geringer Konfiguration als einfachere Alternative zum Betrieb interner Cluster-Datenverarbeitung. Mithilfe von Tagging können Sie AWS-Ressourcen auf unterschiedliche Weise kategorisieren, z. B. nach Zweck, Eigentümer oder Umgebung. Sie können beispielsweise Ihre Amazon EMR-Cluster taggen, indem Sie jedem Cluster benutzerdefinierte Metadaten zuweisen. Ein Tag besteht aus einem Schlüssel und einem Wert, die Sie definieren. Wir empfehlen Ihnen, einen konsistenten Satz von Stichwörtern zu erstellen, um die Anforderungen Ihrer Organisation zu erfüllen. Wenn Sie einem Amazon EMR-Cluster ein Tag hinzufügen, wird das Tag auch an jede aktive Amazon Elastic Compute Cloud (Amazon EC2) -Instance weitergegeben, die dem Cluster zugeordnet ist. Wenn Sie ein Tag aus einem Amazon EMR-Cluster entfernen, wird dieses Tag auch von jeder zugehörigen aktiven EC2 Instance entfernt.

Die Detective Control überwacht API-Aufrufe und initiiert ein Amazon CloudWatch Events-Ereignis für [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html), [AddTags[RemoveTags](https://docs.aws.amazon.com/emr/latest/APIReference/API_RemoveTags.html)](https://docs.aws.amazon.com/emr/latest/APIReference/API_AddTags.html), und [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html) APIs. Das Ereignis ruft AWS Lambda auf, das ein Python-Skript ausführt. Die Python-Funktion ruft die Amazon EMR-Cluster-ID aus der JSON-Eingabe des Ereignisses ab und führt die folgenden Prüfungen durch:
+ Prüfen Sie, ob der Amazon EMR-Cluster mit den von Ihnen angegebenen Tag-Namen konfiguriert ist.
+ Falls nicht, senden Sie dem Benutzer eine Amazon Simple Notification Service (Amazon SNS) -Benachrichtigung mit den entsprechenden Informationen: dem Namen des Amazon EMR-Clusters, den Details zum Verstoß, der AWS-Region, dem AWS-Konto und dem Amazon-Ressourcennamen (ARN) für Lambda, von dem diese Benachrichtigung stammt.

## Voraussetzungen und Einschränkungen
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket zum Hochladen des bereitgestellten Lambda-Codes. Oder Sie können zu diesem Zweck einen S3-Bucket erstellen, wie im Abschnitt *Epics* beschrieben.
+ Eine aktive E-Mail-Adresse, an die Sie Benachrichtigungen über Verstöße erhalten möchten.
+ Eine Liste der obligatorischen Stichwörter, nach denen Sie suchen möchten.

**Einschränkungen**
+ Diese Sicherheitskontrolle ist regional. Sie müssen es in jeder AWS-Region bereitstellen, die Sie überwachen möchten.

**Produktversionen**
+ Amazon EMR Version 4.8.0 und höher.

## Architektur
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-architecture"></a>

**Workflow-Architektur**

![\[Clusterstart, Überwachung mithilfe APIs, Ereignisgenerierung, Lambda-Funktionsaufruf, gesendete Benachrichtigung.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb/images/0d95c414-69d1-4f29-a9e7-09f202e27014.png)


**Automatisierung und Skalierung**
+ Wenn Sie [AWS Organizations](https://aws.amazon.com/organizations/) verwenden, können Sie [AWS Cloudformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) verwenden, StackSets um diese Vorlage in mehreren Konten bereitzustellen, die Sie überwachen möchten.

## Tools
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-tools"></a>

**AWS-Services**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation hilft Ihnen dabei, Ihre AWS-Ressourcen zu modellieren und einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus zu verwalten. Sie können eine Vorlage verwenden, um Ihre Ressourcen und ihre Abhängigkeiten zu beschreiben und sie zusammen als Stack zu starten und zu konfigurieren, anstatt Ressourcen einzeln zu verwalten. Sie können Stacks für mehrere AWS-Konten und AWS-Regionen verwalten und bereitstellen.
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — Amazon CloudWatch Events bietet einen Stream von Systemereignissen, die Änderungen an AWS-Ressourcen beschreiben, nahezu in Echtzeit.
+ [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) — Amazon EMR ist ein Webservice, der die Ausführung von Big-Data-Frameworks und die effiziente Verarbeitung großer Datenmengen vereinfacht. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice. Mit Amazon S3 können Sie jederzeit beliebige Mengen von Daten von überall aus im Internet speichern und aufrufen.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Abonnenten erhalten die veröffentlichten Mitteilungen zu den Themen, die sie abonniert haben. Alle Abonnenten eines Themas erhalten dieselben Mitteilungen.

**Code**

Dieses Muster umfasst die folgenden Anlagen:
+ `EMRTagValidation.zip`— Der Lambda-Code für die Sicherheitskontrolle.
+ `EMRTagValidation.yml`— Die CloudFormation Vorlage, die das Ereignis und die Lambda-Funktion einrichtet.

## Epen
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-epics"></a>

### Richten Sie den S3-Bucket ein
<a name="set-up-the-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Definieren Sie den S3-Bucket. | Wählen oder erstellen Sie in der [Amazon S3 S3-Konsole](https://console.aws.amazon.com/s3/) einen S3-Bucket, um die Lambda-Code-ZIP-Datei zu hosten. Dieser S3-Bucket muss sich in derselben AWS-Region befinden wie der Amazon EMR-Cluster, den Sie überwachen möchten. Der Name eines Amazon S3-Buckets ist global eindeutig, und der Namespace wird von allen AWS-Konten verwendet. Der S3-Bucket-Name darf keine führenden Schrägstriche enthalten. | Cloud-Architekt | 
| Laden Sie den Lambda-Code hoch. | Laden Sie die Lambda-Code-ZIP-Datei, die im Abschnitt *Anlagen* bereitgestellt wird, in den S3-Bucket hoch.                                               | Cloud-Architekt | 

### Stellen Sie die CloudFormation AWS-Vorlage bereit
<a name="deploy-the-aws-cloudformation-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie die CloudFormation AWS-Vorlage. | Öffnen Sie die [ CloudFormation AWS-Konsole](https://console.aws.amazon.com/cloudformation/.) in derselben AWS-Region wie Ihr S3-Bucket und stellen Sie die Vorlage bereit. Weitere Informationen zur Bereitstellung von CloudFormation AWS-Vorlagen finden Sie in der CloudFormation Dokumentation unter [Erstellen eines Stacks auf der CloudFormation AWS-Konsole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). | Cloud-Architekt | 
| Vervollständigen Sie die Parameter in der Vorlage. | Wenn Sie die Vorlage starten, werden Sie zur Eingabe der folgenden Informationen aufgefordert:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/enforce-tagging-of-amazon-emr-clusters-at-launch.html) | Cloud-Architekt | 

### Bestätigen Sie das Abonnement
<a name="confirm-the-subscription"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie das Abonnement. | Wenn die CloudFormation Vorlage erfolgreich bereitgestellt wurde, sendet sie eine Abonnement-E-Mail an die von Ihnen angegebene E-Mail-Adresse. Sie müssen dieses E-Mail-Abonnement bestätigen, um Benachrichtigungen über Verstöße zu erhalten. | Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-resources"></a>
+ [AWS Lambda Lambda-Entwicklerhandbuch](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
+ [Kennzeichnen von Clustern in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html)

## Anlagen
<a name="attachments-1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb/attachments/attachment.zip)

# Stellen Sie sicher, dass die Amazon EMR-Protokollierung bei Amazon S3 beim Start aktiviert ist
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch"></a>

*Priyanka Chaudhary, Amazon Web Services*

## Zusammenfassung
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-summary"></a>

Dieses Muster bietet eine Sicherheitskontrolle, die die Protokollierungskonfiguration für Amazon EMR-Cluster überwacht, die auf Amazon Web Services (AWS) ausgeführt werden.

Amazon EMR ist ein AWS-Tool für die Verarbeitung und Analyse großer Datenmengen. Amazon EMR bietet den erweiterbaren Service mit niedriger Konfiguration als Alternative zum Betrieb interner Cluster-Datenverarbeitung. Amazon EMR bietet zwei Arten von EMR-Clustern.
+ **Transiente Amazon EMR-Cluster**: Transiente Amazon EMR-Cluster werden automatisch heruntergefahren und es fallen keine Kosten mehr an, wenn die Verarbeitung abgeschlossen ist.
+ **Persistente Amazon EMR-Cluster**: Persistente Amazon EMR-Cluster werden weiterhin ausgeführt, nachdem der Datenverarbeitungsauftrag abgeschlossen ist.

Sowohl Amazon EMR als auch Hadoop erstellen Protokolldateien, die Aufschluss über den jeweiligen Status des Clusters geben. Standardmäßig werden diese auf den Master-Knoten im Verzeichnis**/mnt/var/log/**geschrieben. Je nachdem, wie Sie den Cluster beim Start konfigurieren, können Sie diese Protokolle auch in Amazon Simple Storage Service (Amazon S3) speichern und sie über das grafische Debugging-Tool anzeigen. Beachten Sie, dass die Amazon S3 S3-Protokollierung nur angegeben werden kann, wenn der Cluster gestartet wird. Bei dieser Konfiguration werden alle 5 Minuten Protokolle vom primären Knoten an den Amazon S3 S3-Standort gesendet. Für transiente Cluster ist die Amazon S3 S3-Protokollierung wichtig, da die Cluster nach Abschluss der Verarbeitung verschwinden und diese Protokolldateien zum Debuggen fehlgeschlagener Jobs verwendet werden können.

Das Muster verwendet eine CloudFormation AWS-Vorlage, um eine Sicherheitskontrolle bereitzustellen, die API-Aufrufe überwacht und Amazon CloudWatch Events auf "" startetRunJobFlow. Der Trigger ruft AWS Lambda auf, das ein Python-Skript ausführt. Die Lambda-Funktion ruft die EMR-Cluster-ID aus der JSON-Eingabe des Ereignisses ab und sucht auch nach einer Amazon S3 S3-Protokoll-URI. Wenn kein Amazon S3 S3-URI gefunden wird, sendet die Lambda-Funktion eine Amazon Simple Notification Service (Amazon SNS) -Benachrichtigung, in der der EMR-Clustername, die Verstoßdetails, die AWS-Region, das AWS-Konto und der Lambda Amazon Resource Name (ARN), von dem die Benachrichtigung stammt, detailliert beschrieben werden.

## Voraussetzungen und Einschränkungen
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein S3-Bucket für die Lambda-Code-.zip-Datei
+ Eine E-Mail-Adresse, an die Sie die Benachrichtigung über den Verstoß erhalten möchten

**Einschränkungen**
+ Diese Detective Control ist regional und muss in den AWS-Regionen eingesetzt werden, die Sie überwachen möchten.

**Produktversionen**
+ Amazon EMR Version 4.8.0 und höher

## Architektur
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-architecture"></a>

**Zieltechnologie-Stack**
+ Veranstaltung Amazon CloudWatch Events
+ Amazon EMR
+ Lambda-Funktion
+ S3-Bucket
+ Amazon SNS

**Zielarchitektur**

![\[Workflow, um sicherzustellen, dass die Amazon EMR-Protokollierung bei Amazon S3 beim Start aktiviert ist.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/079af32e-0418-4bb2-bc20-c67ea5ac3b6e/images/3ba125cb-018a-4ace-838f-8c20992ecc20.png)


**Automatisierung und Skalierung**
+ Wenn Sie AWS Organizations verwenden, können Sie [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) verwenden, CloudFormation StackSets um diese Vorlage in mehreren Konten bereitzustellen, die Sie überwachen möchten.

## Tools
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-tools"></a>

**Tools**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation unterstützt Sie bei der Modellierung und Einrichtung von AWS-Ressourcen mithilfe von Infrastructure as Code.
+ [AWS Cloudwatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — AWS CloudWatch Events bietet einen Stream von Systemereignissen, die Änderungen an AWS-Ressourcen beschreiben, nahezu in Echtzeit.
+ [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) — Amazon EMR ist eine verwaltete Cluster-Plattform, die den Betrieb von Big-Data-Frameworks vereinfacht.
+ [AWS Lambda](https://aws.amazon.com/lambda/) — AWS Lambda unterstützt die Ausführung von Code ohne Bereitstellung oder Verwaltung von Servern. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) — Amazon S3 ist eine Webservice-Schnittstelle, mit der Sie beliebige Datenmengen von überall im Internet speichern und abrufen können.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon SNS ist ein Webservice, der die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen, koordiniert und verwaltet.

**Code**
+ Eine ZIP-Datei des Projekts ist als Anhang verfügbar.

## Epen
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-epics"></a>

### Definieren Sie den S3-Bucket
<a name="define-the-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Definieren Sie den S3-Bucket. | Um die Lambda-Code-ZIP-Datei zu hosten, wählen oder erstellen Sie einen S3-Bucket mit einem eindeutigen Namen, der keine führenden Schrägstriche enthält. Ein S3-Bucket-Name ist weltweit eindeutig, und der Namespace wird von allen AWS-Konten gemeinsam genutzt. Ihr S3-Bucket muss sich in derselben AWS-Region befinden wie der Amazon EMR-Cluster, der bewertet wird. | Cloud-Architekt | 

### Laden Sie den Lambda-Code in den S3-Bucket hoch
<a name="upload-the-lambda-code-to-the-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie den Lambda-Code in den S3-Bucket hoch. | Laden Sie die Lambda-Code-ZIP-Datei, die im Abschnitt „Anlagen“ bereitgestellt wird, in den S3-Bucket hoch. Der S3-Bucket muss sich in derselben Region befinden wie der Amazon EMR-Cluster, der bewertet wird. | Cloud-Architekt | 

### Stellen Sie die CloudFormation AWS-Vorlage bereit
<a name="deploy-the-aws-cloudformation-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die CloudFormation AWS-Vorlage bereit. | Stellen Sie auf der CloudFormation AWS-Konsole, in derselben Region wie Ihr S3-Bucket, die CloudFormation AWS-Vorlage bereit, die als Anlage zu diesem Muster bereitgestellt wird. Geben Sie im nächsten Epic die Werte für die Parameter an. Weitere Informationen zur Bereitstellung von CloudFormation AWS-Vorlagen finden Sie im Abschnitt „Verwandte Ressourcen“. | Cloud-Architekt | 

### Vervollständigen Sie die Parameter in der CloudFormation AWS-Vorlage
<a name="complete-the-parameters-in-the-aws-cloudformation-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Nennen Sie den S3-Bucket. | Geben Sie den Namen des S3-Buckets ein, den Sie im ersten Epic erstellt haben. | Cloud-Architekt | 
| Geben Sie den Amazon S3 S3-Schlüssel ein. | <file-name>Geben Sie den Speicherort der Lambda-Code-ZIP-Datei in Ihrem S3-Bucket ohne führende Schrägstriche an (z. B.<directory>/.zip). | Cloud-Architekt | 
| Geben Sie eine E-Mail-Adresse an. | Geben Sie eine aktive E-Mail-Adresse an, um Amazon SNS SNS-Benachrichtigungen zu erhalten. | Cloud-Architekt | 
| Definieren Sie die Protokollierungsebene. | Definieren Sie die Protokollierungsebene und die Häufigkeit für Ihre Lambda-Funktion. „Info“ bezeichnet detaillierte Informationsmeldungen über den Fortschritt der Anwendung. „Fehler“ bezeichnet Fehlerereignisse, die dazu führen könnten, dass die Anwendung weiterhin ausgeführt werden kann. „Warnung“ steht für potenziell schädliche Situationen. | Cloud-Architekt | 

### Bestätigen Sie das Abonnement
<a name="confirm-the-subscription"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie das Abonnement. | Wenn die Vorlage erfolgreich bereitgestellt wurde, sendet sie eine Abonnement-E-Mail-Nachricht an die angegebene E-Mail-Adresse. Sie müssen dieses E-Mail-Abonnement bestätigen, um Benachrichtigungen über Verstöße zu erhalten. | Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-resources"></a>
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Amazon EMR-Protokollierung](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-debugging.html)
+ [Bereitstellung von CloudFormation AWS-Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)

## Anlagen
<a name="attachments-079af32e-0418-4bb2-bc20-c67ea5ac3b6e"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/079af32e-0418-4bb2-bc20-c67ea5ac3b6e/attachments/attachment.zip)

# Generieren Sie Testdaten mit einem AWS Glue Glue-Job und Python
<a name="generate-test-data-using-an-aws-glue-job-and-python"></a>

*Moinul Al-Mamun, Amazon Web Services*

## Zusammenfassung
<a name="generate-test-data-using-an-aws-glue-job-and-python-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie schnell und einfach Millionen von Beispieldateien gleichzeitig generieren können, indem Sie einen in Python geschriebenen AWS Glue Glue-Job erstellen. Die Beispieldateien werden in einem Amazon Simple Storage Service (Amazon S3) -Bucket gespeichert. Die Fähigkeit, schnell eine große Anzahl von Beispieldateien zu generieren, ist wichtig für das Testen oder Evaluieren von Services in der AWS-Cloud. Sie können beispielsweise die Leistung von AWS Glue Studio- oder AWS Glue DataBrew Glue-Jobs testen, indem Sie Datenanalysen für Millionen kleiner Dateien in einem Amazon S3 S3-Präfix durchführen.

Sie können zwar andere AWS-Services verwenden, um Beispieldatensätze zu generieren, wir empfehlen Ihnen jedoch, AWS Glue zu verwenden. Sie müssen keine Infrastruktur verwalten, da es sich bei AWS Glue um einen serverlosen Datenverarbeitungsservice handelt. Sie können einfach Ihren Code mitbringen und ihn in einem AWS Glue Glue-Cluster ausführen. Darüber hinaus stellt AWS Glue die Ressourcen bereit, konfiguriert und skaliert sie, die für die Ausführung Ihrer Jobs erforderlich sind. Sie zahlen nur für die Ressourcen, die Ihre Jobs während der Ausführung verbrauchen.

## Voraussetzungen und Einschränkungen
<a name="generate-test-data-using-an-aws-glue-job-and-python-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ AWS-Befehlszeilenschnittstelle (AWS CLI), für die Verwendung mit dem AWS-Konto [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Produktversionen**
+ Python 3.9
+ AWS-CLI Version 2

**Einschränkungen**

Die maximale Anzahl von AWS Glue Glue-Jobs pro Trigger beträgt 50. Weitere Informationen finden Sie unter [AWS Glue Glue-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/glue.html).

## Architektur
<a name="generate-test-data-using-an-aws-glue-job-and-python-architecture"></a>

Das folgende Diagramm zeigt eine Beispielarchitektur, in deren Mittelpunkt ein AWS Glue Glue-Job steht, der seine Ausgabe (d. h. Beispieldateien) in einen S3-Bucket schreibt.

![\[Der Workflow zeigt, dass die AWS-CLI den AWS Glue-Job initiiert, der die Ausgabe in den S3-Bucket schreibt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f35943e8-3b2b-410e-a3f0-05e1ebd357d0/images/452ccbda-71f2-42b8-976d-bcc968bb1dab.png)


Das Diagramm umfasst den folgenden Workflow:

1. Sie verwenden die AWS-CLI, die AWS-Managementkonsole oder eine API, um den AWS Glue-Job zu initiieren. Mit der AWS-CLI oder API können Sie die Parallelisierung des aufgerufenen Jobs automatisieren und die Laufzeit für die Generierung von Beispieldateien reduzieren.

1. Der AWS Glue Glue-Job generiert Dateiinhalte nach dem Zufallsprinzip, konvertiert den Inhalt in das CSV-Format und speichert den Inhalt dann als Amazon S3 S3-Objekt unter einem gemeinsamen Präfix. Jede Datei ist kleiner als ein Kilobyte. Der AWS Glue Glue-Job akzeptiert zwei benutzerdefinierte Auftragsparameter: `START_RANGE` und`END_RANGE`. Sie können diese Parameter verwenden, um Dateinamen und die Anzahl der Dateien festzulegen, die in Amazon S3 bei jeder Auftragsausführung generiert werden. Sie können mehrere Instanzen dieses Jobs parallel ausführen (z. B. 100 Instanzen).

## Tools
<a name="generate-test-data-using-an-aws-glue-job-and-python-tools"></a>
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter Service zum Extrahieren, Transformieren und Laden (ETL). Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

## Best Practices
<a name="generate-test-data-using-an-aws-glue-job-and-python-best-practices"></a>

Beachten Sie bei der Implementierung dieses Musters die folgenden bewährten Methoden für AWS Glue:
+ **Verwenden Sie den richtigen AWS Glue Glue-Worker-Typ, um die Kosten zu senken.** Wir empfehlen Ihnen, sich mit den verschiedenen Eigenschaften von Workertypen vertraut zu machen und dann anhand der CPU- und Speicheranforderungen den richtigen Worker-Typ für Ihre Arbeitslast auszuwählen. Für dieses Muster empfehlen wir, einen Python-Shell-Job als Jobtyp zu verwenden, um die DPU zu minimieren und die Kosten zu senken. Weitere Informationen finden Sie unter [Hinzufügen von Aufträgen in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) im AWS Glue Developer Guide.
+ **Verwenden Sie das richtige Parallelitätslimit, um Ihren Job zu skalieren.** Wir empfehlen Ihnen, die maximale Parallelität Ihres AWS Glue Glue-Auftrags auf Ihrem Zeitbedarf und der erforderlichen Anzahl von Dateien festzulegen.
+ **Generieren Sie zunächst eine kleine Anzahl von Dateien.** Um Kosten und Zeit beim Erstellen Ihrer AWS Glue Glue-Jobs zu sparen, beginnen Sie mit einer kleinen Anzahl von Dateien (z. B. 1.000). Dies kann die Fehlerbehebung erleichtern. Wenn das Generieren einer kleinen Anzahl von Dateien erfolgreich ist, können Sie auf eine größere Anzahl von Dateien skalieren.
+ **Führen Sie es zuerst lokal aus.** Um Kosten und Zeit bei der Erstellung Ihrer AWS Glue Glue-Jobs zu sparen, starten Sie die Entwicklung lokal und testen Sie Ihren Code. Anweisungen zur Einrichtung eines Docker-Containers, der Ihnen helfen kann, AWS Glue Glue-ETL-Jobs (Extrahieren, Transformieren und Laden) sowohl in einer Shell als auch in einer integrierten Entwicklungsumgebung (IDE) zu schreiben, finden Sie im Beitrag [Entwickeln von AWS Glue Glue-ETL-Jobs lokal mithilfe eines Containers](https://aws.amazon.com/blogs/big-data/developing-aws-glue-etl-jobs-locally-using-a-container/) im AWS Big Data-Blog.

Weitere bewährte Methoden für AWS Glue finden Sie unter [Bewährte Methoden](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/best-practices.html) in der AWS Glue Glue-Dokumentation.

## Epen
<a name="generate-test-data-using-an-aws-glue-job-and-python-epics"></a>

### Erstellen Sie einen S3-Ziel-Bucket und eine IAM-Rolle
<a name="create-a-destination-s3-bucket-and-iam-role"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket zum Speichern der Dateien. | Erstellen Sie einen [S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) und ein darin [enthaltenes Präfix](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html).Dieses Muster verwendet den `s3://{your-s3-bucket-name}/small-files/` Standort zu Demonstrationszwecken. | App-Developer | 
| Erstellen und konfigurieren Sie eine IAM-Rolle. | Sie müssen eine IAM-Rolle erstellen, die Ihr AWS Glue Glue-Job verwenden kann, um in Ihren S3-Bucket zu schreiben.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | App-Developer | 

### Erstellen und konfigurieren Sie einen AWS Glue Glue-Job zur Verarbeitung gleichzeitiger Läufe
<a name="create-and-configure-an-aws-glue-job-to-handle-concurrent-runs"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen AWS Glue Glue-Job. | Sie müssen einen AWS Glue Glue-Job erstellen, der Ihre Inhalte generiert und in einem S3-Bucket speichert.Erstellen Sie einen [AWS Glue Glue-Job](https://docs.aws.amazon.com/glue/latest/dg/console-jobs.html) und konfigurieren Sie dann Ihren Job, indem Sie die folgenden Schritte ausführen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | App-Developer | 
| Aktualisieren Sie den Jobcode. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | App-Developer | 

### Führen Sie den AWS Glue Glue-Job über die Befehlszeile oder Konsole aus
<a name="run-the-aws-glue-job-from-the-command-line-or-console"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie den AWS Glue Glue-Job von der Befehlszeile aus. | Um Ihren AWS Glue Glue-Job über die AWS-CLI auszuführen, führen Sie den folgenden Befehl mit Ihren Werten aus:<pre>cmd:~$ aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"0","--END_RANGE":"1000000"}'<br />cmd:~$ aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1000000","--END_RANGE":"2000000"}'</pre>Anweisungen zur Ausführung des AWS Glue Glue-Jobs von der AWS-Managementkonsole aus finden Sie in *der Geschichte Ausführen des AWS Glue-Jobs in der AWS-Managementkonsole* in diesem Muster.Wir empfehlen die Verwendung der AWS-CLI zur Ausführung von AWS Glue-Jobs, wenn Sie mehrere Ausführungen gleichzeitig mit unterschiedlichen Parametern ausführen möchten, wie im obigen Beispiel gezeigt.Um alle AWS-CLI-Befehle zu generieren, die zum Generieren einer definierten Anzahl von Dateien unter Verwendung eines bestimmten Parallelisierungsfaktors erforderlich sind, führen Sie den folgenden Bash-Code aus (unter Verwendung Ihrer Werte):<pre># define parameters<br />NUMBER_OF_FILES=10000000;<br />PARALLELIZATION=50; <br /> <br /># initialize<br />_SB=0;<br />      <br /># generate commands<br />for i in $(seq 1 $PARALLELIZATION); <br />do <br />      echo aws glue start-job-run --job-name create_small_files --arguments "'"'{"--START_RANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION) * (i-1) + _SB))'","--END_RANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION) * (i)))'"}'"'";<br />      _SB=1; <br />done</pre>Wenn Sie das obige Skript verwenden, sollten Sie Folgendes beachten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) Ein Beispiel für die Ausgabe des obigen Skripts finden Sie unter *Shell-Skriptausgabe* im Abschnitt *Zusätzliche Informationen* dieses Musters. | App-Developer | 
| Führen Sie den AWS Glue Glue-Job in der AWS-Managementkonsole aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | App-Developer | 
| Überprüfen Sie den Status Ihres AWS Glue Glue-Auftrags. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | App-Developer | 

## Zugehörige Ressourcen
<a name="generate-test-data-using-an-aws-glue-job-and-python-resources"></a>

**Referenzen**
+ [Register für offene Daten auf AWS](https://registry.opendata.aws/)
+ [Datensätze für Analysen](https://aws.amazon.com/marketplace/solutions/data-analytics/data-sets)
+ [Daten auf AWS öffnen](https://aws.amazon.com/opendata/)
+ [Hinzufügen von Aufträgen in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-job.html)
+ [Erste Schritte mit AWS Glue](https://aws.amazon.com/glue/getting-started/)

**Anleitungen und Muster**
+ [Bewährte Methoden für AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/best-practices.html)
+ [Anwendungen für Lasttests](https://docs.aws.amazon.com/prescriptive-guidance/latest/load-testing/welcome.html)

## Zusätzliche Informationen
<a name="generate-test-data-using-an-aws-glue-job-and-python-additional"></a>

**Benchmarking-Test**

Dieses Muster wurde verwendet, um im Rahmen eines Benchmark-Tests 10 Millionen Dateien mit unterschiedlichen Parallelisierungsparametern zu generieren. Die folgende Tabelle zeigt die Ergebnisse des Tests:


| 
| 
| Parallelisierung | Anzahl der Dateien, die durch einen Joblauf generiert wurden | Dauer des Job | Geschwindigkeit | 
| --- |--- |--- |--- |
| 10 | 1 000 000 | 6 Stunden, 40 Minuten | Sehr langsam | 
| 50 | 200 000 | 80 Minuten | Mittel | 
| 100 | 100 000 | 40 Minuten | Schnell | 

Wenn Sie den Prozess beschleunigen möchten, können Sie in Ihrer Jobkonfiguration mehr gleichzeitige Läufe konfigurieren. Sie können die Auftragskonfiguration ganz einfach an Ihre Anforderungen anpassen. Beachten Sie jedoch, dass es ein Kontingent für den AWS Glue Glue-Service gibt. Weitere Informationen finden Sie unter [AWS Glue Glue-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/glue.html).

**Shell-Skriptausgabe**

Das folgende Beispiel zeigt die Ausgabe des Shell-Skripts aus dem *Job Run the AWS Glue von der Befehlszeile* aus in diesem Muster.

```
user@MUC-1234567890 MINGW64 ~
  $ # define parameters
  NUMBER_OF_FILES=10000000;
  PARALLELIZATION=50;
  # initialize
  _SB=0;
   
  # generate commands
  for i in $(seq 1 $PARALLELIZATION);
   do
         echo aws glue start-job-run --job-name create_small_files --arguments "'"'{"--START_RANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION)  (i-1) + SB))'","--ENDRANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION)  (i)))'"}'"'";
         _SB=1;
   done
   
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"0","--END_RANGE":"200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"200001","--END_RANGE":"400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"400001","--END_RANGE":"600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"600001","--END_RANGE":"800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"800001","--END_RANGE":"1000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1000001","--END_RANGE":"1200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1200001","--END_RANGE":"1400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1400001","--END_RANGE":"1600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1600001","--END_RANGE":"1800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1800001","--END_RANGE":"2000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2000001","--END_RANGE":"2200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2200001","--END_RANGE":"2400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2400001","--END_RANGE":"2600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2600001","--END_RANGE":"2800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2800001","--END_RANGE":"3000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3000001","--END_RANGE":"3200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3200001","--END_RANGE":"3400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3400001","--END_RANGE":"3600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3600001","--END_RANGE":"3800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3800001","--END_RANGE":"4000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4000001","--END_RANGE":"4200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4200001","--END_RANGE":"4400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4400001","--END_RANGE":"4600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4600001","--END_RANGE":"4800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4800001","--END_RANGE":"5000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5000001","--END_RANGE":"5200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5200001","--END_RANGE":"5400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5400001","--END_RANGE":"5600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5600001","--END_RANGE":"5800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5800001","--END_RANGE":"6000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6000001","--END_RANGE":"6200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6200001","--END_RANGE":"6400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6400001","--END_RANGE":"6600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6600001","--END_RANGE":"6800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6800001","--END_RANGE":"7000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7000001","--END_RANGE":"7200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7200001","--END_RANGE":"7400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7400001","--END_RANGE":"7600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7600001","--END_RANGE":"7800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7800001","--END_RANGE":"8000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8000001","--END_RANGE":"8200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8200001","--END_RANGE":"8400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8400001","--END_RANGE":"8600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8600001","--END_RANGE":"8800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8800001","--END_RANGE":"9000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9000001","--END_RANGE":"9200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9200001","--END_RANGE":"9400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9400001","--END_RANGE":"9600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9600001","--END_RANGE":"9800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9800001","--END_RANGE":"10000000"}'
  
  user@MUC-1234567890 MINGW64 ~
```

**HÄUFIG GESTELLTE FRAGEN**

*Wie viele gleichzeitige Läufe oder parallel Jobs sollte ich verwenden?*

Die Anzahl der gleichzeitigen Läufe und parallel Jobs hängt von Ihrem Zeitbedarf und der gewünschten Anzahl von Testdateien ab. Wir empfehlen Ihnen, die Größe der Dateien, die Sie erstellen, zu überprüfen. Prüfen Sie zunächst, wie viel Zeit ein AWS Glue Glue-Job benötigt, um die gewünschte Anzahl von Dateien zu generieren. Verwenden Sie dann die richtige Anzahl gleichzeitiger Läufe, um Ihre Ziele zu erreichen. Wenn Sie beispielsweise davon ausgehen, dass 100.000 Dateien 40 Minuten benötigen, um den Lauf abzuschließen, Ihre Zielzeit jedoch 30 Minuten beträgt, müssen Sie die Parallelitätseinstellung für Ihren AWS Glue Glue-Job erhöhen.

*Welche Art von Inhalt kann ich mit diesem Muster erstellen?*

Sie können jede Art von Inhalt erstellen, z. B. Textdateien mit unterschiedlichen Trennzeichen (z. B. PIPE, JSON oder CSV). Dieses Muster verwendet Boto3, um in eine Datei zu schreiben, und speichert die Datei dann in einem S3-Bucket.

*Welche IAM-Berechtigungen benötige ich für den S3-Bucket?*

Sie benötigen eine identitätsbasierte Richtlinie, die den `Write` Zugriff auf Objekte in Ihrem S3-Bucket ermöglicht. Weitere Informationen finden Sie unter [Amazon S3: Erlaubt Lese- und Schreibzugriff auf Objekte in einem S3-Bucket](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket.html) in der Amazon S3 S3-Dokumentation.

# Mit AWS IoT Greengrass IoT-Daten kostengünstig direkt in Amazon S3 aufnehmen
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass"></a>

*Sebastian Viviani und Rizwan Syed, Amazon Web Services*

## Zusammenfassung
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie mithilfe eines AWS IoT Greengrass Version 2-Geräts kostengünstig Daten aus dem Internet der Dinge (IoT) direkt in einen Amazon Simple Storage Service (Amazon S3) -Bucket aufnehmen können. Auf dem Gerät wird eine benutzerdefinierte Komponente ausgeführt, die die IoT-Daten liest und die Daten in einem persistenten Speicher (d. h. einer lokalen Festplatte oder einem lokalen Volume) speichert. Anschließend komprimiert das Gerät die IoT-Daten in eine Apache Parquet-Datei und lädt die Daten regelmäßig in einen S3-Bucket hoch.

Die Menge und Geschwindigkeit der IoT-Daten, die Sie aufnehmen, ist nur durch Ihre Edge-Hardwarekapazitäten und Ihre Netzwerkbandbreite begrenzt. Sie können Amazon Athena verwenden, um Ihre aufgenommenen Daten kostengünstig zu analysieren. Athena unterstützt komprimierte Apache Parquet-Dateien und Datenvisualisierung mithilfe von [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html).

## Voraussetzungen und Einschränkungen
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein [Edge-Gateway](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), das auf [AWS IoT Greengrass Version 2](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-v2-whats-new.html) läuft und Daten von Sensoren sammelt (Die Datenquellen und der Datenerfassungsprozess würden den Rahmen dieses Musters sprengen, aber Sie können fast jede Art von Sensordaten verwenden. Dieses Muster verwendet einen lokalen [MQTT-Broker](https://mqtt.org/) mit Sensoren oder Gateways, die Daten lokal veröffentlichen.)
+ [Komponenten](https://docs.aws.amazon.com/greengrass/v2/developerguide/develop-greengrass-components.html), [Rollen](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) und [SDK-Abhängigkeiten](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation) von AWS IoT Greengrass
+ Eine [Stream-Manager-Komponente](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html) zum Hochladen der Daten in den S3-Bucket
+ [AWS SDK for Java](https://aws.amazon.com/sdk-for-java/), [AWS-SDK für JavaScript](https://aws.amazon.com/sdk-for-javascript/) oder [AWS-SDK SDK for Python (Boto3) zur Ausführung](https://docs.aws.amazon.com/pythonsdk/) des APIs

**Einschränkungen**
+ Die Daten in diesem Muster werden nicht in Echtzeit in den S3-Bucket hochgeladen. Es gibt eine Verzögerungszeit, und Sie können die Verzögerungszeit konfigurieren. Daten werden vorübergehend auf dem Edge-Gerät zwischengespeichert und nach Ablauf des Zeitraums hochgeladen.
+ Das SDK ist nur in Java, Node.js und Python verfügbar.

## Architektur
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon S3
+ AWS IoT Greengrass
+ MQTT-Broker
+ Stream Manager-Komponente

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur, die darauf ausgelegt ist, IoT-Sensordaten aufzunehmen und diese Daten in einem S3-Bucket zu speichern.

![\[Architekturdiagramm\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/b9032ae2-fffb-4750-b161-09810e19d878/images/8c28e639-5dcf-4950-b4a6-8015ec1a2894.png)


Das Diagramm zeigt den folgenden Workflow:

1. Aktualisierungen mehrerer Sensoren (z. B. Temperatur und Ventil) werden auf einem lokalen MQTT-Broker veröffentlicht.

1. Der Parquet-Dateikomprimierer, der diese Sensoren abonniert hat, aktualisiert Themen und empfängt diese Updates.

1. Der Parquet-Dateikompressor speichert die Updates lokal.

1. Nach Ablauf des Zeitraums werden die gespeicherten Dateien zu Parquet-Dateien komprimiert und an den Stream-Manager weitergegeben, damit sie in den angegebenen S3-Bucket hochgeladen werden.

1. Der Stream-Manager lädt die Parquet-Dateien in den S3-Bucket hoch.

**Anmerkung**  
Der Stream-Manager (`StreamManager`) ist eine verwaltete Komponente. Beispiele für den Export von Daten nach Amazon S3 finden Sie unter [Stream Manager](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html) in der AWS IoT Greengrass-Dokumentation. Sie können einen lokalen MQTT-Broker als Komponente oder einen anderen Broker wie [Eclipse](https://mosquitto.org/) Mosquitto verwenden.

## Tools
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-tools"></a>

**AWS-Tools**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon S3 analysieren können.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) ist ein Open-Source-IoT-Edge-Laufzeit- und Cloud-Service, mit dem Sie IoT-Anwendungen auf Ihren Geräten erstellen, bereitstellen und verwalten können.

**Andere Tools**
+ [Apache Parquet](https://parquet.apache.org/) ist ein spaltenorientiertes Open-Source-Datendateiformat, das zum Speichern und Abrufen entwickelt wurde.
+ [MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html) (Message Queuing Telemetry Transport) ist ein einfaches Messaging-Protokoll, das für eingeschränkte Geräte entwickelt wurde.

## Best Practices
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-best-practices"></a>

**Verwenden Sie das richtige Partitionsformat für hochgeladene Daten**

Es gibt keine spezifischen Anforderungen für die Root-Präfixnamen im S3-Bucket (z. B. `"myAwesomeDataSet/"` oder`"dataFromSource"`), aber wir empfehlen, eine aussagekräftige Partition und ein aussagekräftiges Präfix zu verwenden, damit der Zweck des Datensatzes leicht zu verstehen ist.

Wir empfehlen außerdem, die richtige Partitionierung in Amazon S3 zu verwenden, damit die Abfragen für den Datensatz optimal ausgeführt werden. Im folgenden Beispiel werden die Daten im HIVE-Format partitioniert, sodass die von jeder Athena-Abfrage gescannte Datenmenge optimiert wird. Dies verbessert die Leistung und senkt die Kosten.

`s3://<ingestionBucket>/<rootPrefix>/year=YY/month=MM/day=DD/HHMM_<suffix>.parquet`

## Epen
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-epics"></a>

### So richten Sie Ihre Umgebung ein
<a name="set-up-your-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | App-Developer | 
| Fügen Sie dem S3-Bucket IAM-Berechtigungen hinzu. | Um Benutzern Schreibzugriff auf den S3-Bucket und das Präfix zu gewähren, die Sie zuvor erstellt haben, fügen Sie Ihrer AWS IoT Greengrass-Rolle die folgende IAM-Richtlinie hinzu:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3DataUpload",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:List*",<br />                "s3:Put*"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<ingestionBucket>",<br />                "arn:aws:s3:::<ingestionBucket>/<prefix>/*"<br />            ]<br />        }<br />    ]<br />}</pre>Weitere Informationen finden Sie in der Aurora-Dokumentation unter [Erstellen einer IAM-Richtlinie für den Zugriff auf Amazon S3 S3-Ressourcen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html).Aktualisieren Sie als Nächstes die Ressourcenrichtlinie (falls erforderlich) für den S3-Bucket, um Schreibzugriff mit den richtigen [AWS-Prinzipalen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) zu ermöglichen. | App-Developer | 

### Erstellen und implementieren Sie die AWS IoT Greengrass-Komponente
<a name="build-and-deploy-the-aws-iot-greengrass-component"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie das Rezept der Komponente. | [Aktualisieren Sie die Komponentenkonfiguration](https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html), wenn Sie [eine Bereitstellung anhand des folgenden Beispiels erstellen](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html):<pre>{<br />  "region": "<region>",<br />  "parquet_period": <period>,<br />  "s3_bucket": "<s3Bucket>",<br />  "s3_key_prefix": "<s3prefix>"<br />}</pre>`<region>`Ersetzen Sie durch Ihre AWS-Region, `<period>` durch Ihr periodisches Intervall, `<s3Bucket>` durch Ihren S3-Bucket und `<s3prefix>` durch Ihr Präfix. | App-Developer | 
| Erstellen Sie die Komponente. | Führen Sie eine der folgenden Aktionen aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | App-Developer | 
| Aktualisieren Sie den MQTT-Client. | Der Beispielcode verwendet keine Authentifizierung, da die Komponente eine lokale Verbindung zum Broker herstellt. Wenn sich Ihr Szenario unterscheidet, aktualisieren Sie den MQTT-Client-Bereich nach Bedarf. Gehen Sie zusätzlich wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | App-Developer | 

### Fügen Sie die Komponente dem AWS IoT Greengrass Version 2-Kerngerät hinzu
<a name="add-the-component-to-the-aws-iot-greengrass-version-2-core-device"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie die Bereitstellung des Kerngeräts. | Wenn die Bereitstellung des AWS IoT Greengrass Version 2-Kerngeräts bereits vorhanden ist, [überarbeiten Sie die](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html) Bereitstellung. Wenn die Bereitstellung nicht existiert, [erstellen Sie eine neue](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) Bereitstellung.Um der Komponente den richtigen Namen zu geben, [aktualisieren Sie die Log Manager-Konfiguration](https://docs.aws.amazon.com/greengrass/v2/developerguide/log-manager-component.html) für die neue Komponente (falls erforderlich) auf der Grundlage der folgenden Kriterien:<pre>{<br />  "logsUploaderConfiguration": {<br />    "systemLogsConfiguration": {<br />    ...<br />    },<br />    "componentLogsConfigurationMap": {<br />      "<com.iot.ingest.parquet>": {<br />        "minimumLogLevel": "INFO",<br />        "diskSpaceLimit": "20",<br />        "diskSpaceLimitUnit": "MB",<br />        "deleteLogFileAfterCloudUpload": "false"<br />      }<br />      ...<br />    }<br />  },<br />  "periodicUploadIntervalSec": "300"<br />}</pre>Schließen Sie abschließend die Überarbeitung der Bereitstellung für Ihr AWS IoT Greengrass-Kerngerät ab. | App-Developer | 

### Überprüfen Sie die Datenaufnahme in den S3-Bucket
<a name="verify-data-ingestion-into-the-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Protokolle für das AWS IoT Greengrass-Volume. | Überprüfen Sie Folgendes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | App-Developer | 
| Überprüfen Sie den S3-Bucket. | Überprüfen Sie, ob die Daten in den S3-Bucket hochgeladen werden. Sie können sehen, wie die Dateien zu jedem Zeitpunkt hochgeladen werden.Sie können auch überprüfen, ob die Daten in den S3-Bucket hochgeladen wurden, indem Sie die Daten im nächsten Abschnitt abfragen. | App-Developer | 

### Abfragen von Athena einrichten
<a name="set-up-querying-from-athena"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Datenbank und eine Tabelle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | App-Developer | 
| Gewähren Sie Athena Zugriff auf die Daten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | App-Developer | 

## Fehlerbehebung
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Der MQTT-Client kann keine Verbindung herstellen | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | 
| Der MQTT-Client kann nicht abonnieren | Überprüfen Sie die Berechtigungen auf dem MQTT-Broker. Wenn Sie einen MQTT-Broker von AWS haben, finden Sie weitere Informationen unter [MQTT 3.1.1 Broker (Moquette) und [MQTT 5 Broker (EMQX](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-emqx-component.html))](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-moquette-component.html). | 
| Parquet-Dateien werden nicht erstellt | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | 
| Objekte werden nicht in den S3-Bucket hochgeladen | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | 

## Zugehörige Ressourcen
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-resources"></a>
+ [DataFrame](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html)(Pandas-Dokumentation)
+ [Apache Parquet-Dokumentation](https://parquet.apache.org/docs/) (Parquet-Dokumentation)
+ [Entwickeln von AWS IoT Greengrass-Komponenten](https://docs.aws.amazon.com/greengrass/v2/developerguide/develop-greengrass-components.html) (AWS IoT Greengrass-Entwicklerhandbuch, Version 2)
+ [Bereitstellen von AWS IoT Greengrass-Komponenten auf Geräten](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-deployments.html) (AWS IoT Greengrass Developer Guide, Version 2)
+ [Interagieren Sie mit lokalen IoT-Geräten](https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html) (AWS IoT Greengrass Developer Guide, Version 2)
+ [MQTT 3.1.1 Broker (Moquette)](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-moquette-component.html) (AWS IoT Greengrass Entwicklerhandbuch, Version 2)
+ [MQTT 5-Broker (EMQX)](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) (AWS IoT Greengrass-Entwicklerhandbuch, Version 2)

## Zusätzliche Informationen
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-additional"></a>

**Kostenanalyse**

Das folgende Kostenanalyseszenario zeigt, wie sich der in diesem Muster behandelte Ansatz zur Datenaufnahme auf die Datenaufnahmekosten in der AWS-Cloud auswirken kann. Die Preisbeispiele in diesem Szenario basieren auf den Preisen zum Zeitpunkt der Veröffentlichung. Die Preise sind freibleibend. Darüber hinaus können Ihre Kosten je nach AWS-Region, AWS-Servicekontingenten und anderen Faktoren im Zusammenhang mit Ihrer Cloud-Umgebung variieren.

*Eingangssignal eingestellt*

Diese Analyse verwendet die folgenden Eingangssignale als Grundlage für den Vergleich der IoT-Aufnahmekosten mit anderen verfügbaren Alternativen.


| 
| 
| Anzahl der Signale | Frequency (Frequenz) | Daten pro Signal | 
| --- |--- |--- |
| 125 | 25 Hz | 8 Bytes | 

In diesem Szenario empfängt das System 125 Signale. Jedes Signal ist 8 Byte groß und tritt alle 40 Millisekunden (25 Hz) auf. Diese Signale können einzeln oder gruppiert in einer gemeinsamen Nutzlast übertragen werden. Sie haben die Möglichkeit, diese Signale nach Ihren Bedürfnissen aufzuteilen und zu bündeln. Sie können auch die Latenz bestimmen. Die Latenz besteht aus dem Zeitraum für den Empfang, die Akkumulation und die Aufnahme der Daten.

Zu Vergleichszwecken basiert der Aufnahmevorgang für dieses Szenario auf der `us-east-1` AWS-Region. Der Kostenvergleich gilt nur für AWS-Services. Andere Kosten, wie Hardware oder Konnektivität, werden bei der Analyse nicht berücksichtigt.

*Kostenvergleiche*

Die folgende Tabelle zeigt die monatlichen Kosten in US-Dollar (USD) für jede Aufnahmemethode.


| 
| 
| Methode | Monatliche Kosten | 
| --- |--- |
|  SiteWise*AWS-IoT\$1* | 331,77 USD | 
| AWS IoT SiteWise Edge mit Datenverarbeitungspaket (alle Daten werden am Netzwerkrand aufbewahrt) | 200 USD | 
| AWS IoT Core- und Amazon S3 S3-Regeln für den Zugriff auf Rohdaten | 84,54 USD | 
| Parquet-Dateikomprimierung am Edge und Hochladen auf Amazon S3 | 0.5 USD | 

\$1Daten müssen heruntergerechnet werden, um die Servicekontingenten einzuhalten. Das bedeutet, dass es bei dieser Methode zu Datenverlusten kommt.

*Alternative Methoden*

In diesem Abschnitt werden die entsprechenden Kosten für die folgenden alternativen Methoden aufgeführt:
+ **AWS IoT SiteWise** — Jedes Signal muss in einer individuellen Nachricht hochgeladen werden. Daher beträgt die Gesamtzahl der Nachrichten pro Monat 125×25×3600×24×30 oder 8,1 Milliarden Nachrichten pro Monat. AWS IoT SiteWise kann jedoch nur 10 Datenpunkte pro Sekunde pro Eigenschaft verarbeiten. Unter der Annahme, dass die Daten auf 10 Hz heruntergerechnet werden, wird die Anzahl der Nachrichten pro Monat auf 125×10×3600×24×30 oder 3,24 Milliarden reduziert. Wenn Sie die Publisher-Komponente verwenden, die Messungen in Gruppen von 10 zusammenfasst (bei 1 USD pro Million Nachrichten), fallen monatliche Kosten in Höhe von 324 USD pro Monat an. Unter der Annahme, dass jede Nachricht 8 Byte (1 Kb/125) umfasst, sind das 25,92 GB Datenspeicher. Dadurch fallen monatliche Kosten in Höhe von 7,77 USD pro Monat an. Die Gesamtkosten für den ersten Monat betragen 331,77 USD und steigen jeden Monat um 7,77 USD.
+ **AWS IoT SiteWise Edge mit Datenverarbeitungspaket, einschließlich aller Modelle und Signale, die vollständig am Edge verarbeitet werden (d. h. keine Cloud-Aufnahme)** — Sie können das Datenverarbeitungspaket als Alternative verwenden, um die Kosten zu senken und alle Modelle zu konfigurieren, die am Edge berechnet werden. Dies kann nur zur Speicherung und Visualisierung funktionieren, auch wenn keine echte Berechnung durchgeführt wird. In diesem Fall ist es notwendig, leistungsstarke Hardware für das Edge-Gateway zu verwenden. Es gibt feste Kosten von 200 USD pro Monat.
+ **Direkte Aufnahme in AWS IoT Core durch MQTT und eine IoT-Regel zum Speichern der Rohdaten in Amazon S3** — Unter der Annahme, dass alle Signale in einer gemeinsamen Nutzlast veröffentlicht werden, beträgt die Gesamtzahl der auf AWS IoT Core veröffentlichten Nachrichten 25×3600×24×30 oder 64,8 Millionen pro Monat. Bei 1 USD pro Million Nachrichten sind das monatliche Kosten von 64,8 USD pro Monat. Bei 0,15 USD pro Million Regelaktivierungen und einer Regel pro Nachricht fallen dadurch monatliche Kosten in Höhe von 19,44 USD pro Monat an. Bei einem Preis von 0,023 USD pro GB Speicherplatz in Amazon S3 fallen weitere 1,5 USD pro Monat an (was jeden Monat steigt, um den neuen Daten Rechnung zu tragen). Die Gesamtkosten für den ersten Monat belaufen sich auf 84,54 USD und steigen jeden Monat um 1,5 USD.
+ **Komprimieren von Daten am Edge in einer Parquet-Datei und Hochladen auf Amazon S3 (vorgeschlagene Methode**) — Das Komprimierungsverhältnis hängt vom Datentyp ab. Bei denselben Industriedaten, die für MQTT getestet wurden, belaufen sich die Gesamtausgabedaten für einen ganzen Monat auf 1,2 Gb. Das kostet 0,03 USD pro Monat. Die in anderen Benchmarks beschriebenen Kompressionsraten (unter Verwendung zufälliger Daten) liegen in der Größenordnung von 66 Prozent (was eher einem Worst-Case-Szenario entspricht). Die Gesamtdaten belaufen sich auf 21 GB und kosten 0,5 USD pro Monat.

**Parkett-Dateigenerator**

Das folgende Codebeispiel zeigt die Struktur eines Parquet-Dateigenerators, der in Python geschrieben ist. Das Codebeispiel dient nur zur Veranschaulichung und funktioniert nicht, wenn es in Ihre Umgebung eingefügt wird.

```
import queue
import paho.mqtt.client as mqtt
import pandas as pd

#queue for decoupling the MQTT thread
messageQueue = queue.Queue()
client = mqtt.Client()
streammanager = StreamManagerClient()

def feederListener(topic, message):
    payload = {
        "topic" : topic,
        "payload" : message,
    }
    messageQueue.put_nowait(payload)

def on_connect(client_instance, userdata, flags, rc):
    client.subscribe("#",qos=0)

def on_message(client, userdata, message):
    feederListener(topic=str(message.topic), message=str(message.payload.decode("utf-8")))


filename = "tempfile.parquet"
streamname = "mystream"
destination_bucket= "amzn-s3-demo-bucket"
keyname="mykey"
period= 60

client.on_connect = on_connect
client.on_message = on_message
streammanager.create_message_stream(
            MessageStreamDefinition(name=streamname, strategy_on_full=StrategyOnFull.OverwriteOldestData)
        )


while True:
   try:
       message = messageQueue.get(timeout=myArgs.mqtt_timeout)
   except (queue.Empty):
       logger.warning("MQTT message reception timed out")

   currentTimestamp = getCurrentTime()
   if currentTimestamp >= nextUploadTimestamp:
       df = pd.DataFrame.from_dict(accumulator)
       df.to_parquet(filename)
       s3_export_task_definition = S3ExportTaskDefinition(input_url=filename, bucket=destination_bucket, key=key_name)
       streammanager.append_message(streamname, Util.validate_and_serialize_to_json_bytes(s3_export_task_definition))
       accumulator = {}
       nextUploadTimestamp += period
   else:
        accumulator.append(message)
```

# Starten Sie einen Spark-Job in einem transienten EMR-Cluster mithilfe einer Lambda-Funktion
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function"></a>

*Dhrubajyoti Mukherjee, Amazon Web Services*

## Zusammenfassung
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-summary"></a>

Dieses Muster verwendet die Amazon RunJobFlow EMR-API-Aktion, um einen transienten Cluster zu starten, um einen Spark-Job von einer Lambda-Funktion aus auszuführen. Ein transienter EMR-Cluster ist so konzipiert, dass er beendet wird, sobald der Job abgeschlossen ist oder wenn ein Fehler auftritt. Ein transienter Cluster bietet Kosteneinsparungen, da er nur während der Rechenzeit ausgeführt wird, und er bietet Skalierbarkeit und Flexibilität in einer Cloud-Umgebung.

Der transiente EMR-Cluster wird mithilfe der Boto3-API und der Programmiersprache Python in einer Lambda-Funktion gestartet. Die Lambda-Funktion, die in Python geschrieben ist, bietet die zusätzliche Flexibilität, den Cluster bei Bedarf zu initiieren.

Um ein Beispiel für eine Batchberechnung und -ausgabe zu demonstrieren, startet dieses Muster einen Spark-Job in einem EMR-Cluster von einer Lambda-Funktion aus und führt eine Batch-Berechnung anhand der Beispielvertriebsdaten eines fiktiven Unternehmens durch. Die Ausgabe des Spark-Jobs wird eine Datei mit kommagetrennten Werten (CSV) in Amazon Simple Storage Service (Amazon S3) sein. Die Eingabedatendatei, die Spark-JAR-Datei, ein Codeausschnitt und eine CloudFormation AWS-Vorlage für eine Virtual Private Cloud (VPC) und AWS Identity and Access Management (IAM) -Rollen zur Ausführung der Berechnung werden als Anlage bereitgestellt.

## Voraussetzungen und Einschränkungen
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto

**Einschränkungen**
+ Aus dem Code kann jeweils nur ein Spark-Job initiiert werden. 

**Produktversionen**
+ Auf Amazon EMR 6.0.0 getestet

## Architektur
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon EMR 
+ AWS Lambda
+ Amazon S3
+ Apache Spark

**Zielarchitektur**

![\[Lambda zu Amazon EMR und Spark zu Amazon S3\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6c999fa7-9550-4929-a5c1-60394142175d/images/eb4fbb3f-2114-44d2-b9da-3fdcb9ca456e.png)


**Automatisierung und Skalierung**

Um die Spark-EMR-Batchberechnung zu automatisieren, können Sie eine der folgenden Optionen verwenden.
+ Implementieren Sie eine EventBridge Amazon-Regel, die die Lambda-Funktion in einem Cron-Zeitplan initiieren kann. Weitere Informationen finden Sie unter [Tutorial: AWS Lambda Lambda-Funktionen planen mithilfe von EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-run-lambda-schedule.html).
+ Konfigurieren Sie [Amazon S3 S3-Ereignisbenachrichtigungen](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) so, dass die Lambda-Funktion bei Dateieingang ausgelöst wird.
+ Übergeben Sie die Eingabeparameter über den Ereignistext und die Lambda-Umgebungsvariablen an die AWS-Lambda-Funktion. 

## Tools
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-tools"></a>

**AWS-Services**
+ [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) ist eine verwaltete Cluster-Plattform, die die Ausführung von Big-Data-Frameworks auf AWS vereinfacht, um große Datenmengen zu verarbeiten und zu analysieren.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

**Andere Tools**
+ [Apache Spark](https://spark.apache.org/docs/latest/) ist eine mehrsprachige Analyse-Engine für die Verarbeitung großer Datenmengen.

## Epen
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-epics"></a>

### Erstellen Sie die Amazon EMR- und Lambda IAM-Rollen und die VPC
<a name="create-the-amazon-emr-and-lambda-iam-roles-and-the-vpc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die IAM-Rollen und die VPC. | Wenn Sie bereits über die IAM-Rollen AWS Lambda und Amazon EMR und eine VPC verfügen, können Sie diesen Schritt überspringen. Um den Code auszuführen, benötigen sowohl der EMR-Cluster als auch die Lambda-Funktion IAM-Rollen. Der EMR-Cluster benötigt außerdem eine VPC mit einem öffentlichen Subnetz oder ein privates Subnetz mit einem NAT-Gateway. Um automatisch alle IAM-Rollen und eine VPC zu erstellen, stellen Sie die angehängte CloudFormation AWS-Vorlage unverändert bereit, oder Sie können die Rollen und die VPC manuell erstellen, wie im Abschnitt *Zusätzliche Informationen* angegeben. | Cloud-Architekt | 
| Notieren Sie sich die CloudFormation Ausgabeschlüssel der AWS-Vorlage. | Nachdem die CloudFormation Vorlage erfolgreich bereitgestellt wurde, navigieren Sie in der CloudFormation AWS-Konsole zur Registerkarte **Outputs**. Beachten Sie die fünf Ausgabetasten: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function.html)Sie werden die Werte aus diesen Schlüsseln verwenden, wenn Sie die Lambda-Funktion erstellen. | Cloud-Architekt | 

### Laden Sie die Spark-.jar-Datei hoch
<a name="upload-the-spark-jar-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Spark-.jar-Datei hoch. | Laden Sie die Spark-.jar-Datei in den S3-Bucket hoch, den der CloudFormation AWS-Stack erstellt hat. Der Bucket-Name ist derselbe wie der Ausgabeschlüssel`S3Bucket`.  | Allgemeines AWS | 

### Erstellen Sie die Lambda-Funktion, um den EMR-Cluster zu starten
<a name="create-the-lambda-function-to-launch-the-emr-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Lambda-Funktion. | Erstellen Sie auf der Lambda-Konsole eine Python 3.9\$1 Lambda-Funktion mit einer Ausführungsrolle. Die Ausführungsrollenrichtlinie muss es Lambda ermöglichen, einen EMR-Cluster zu starten. (Siehe die beigefügte CloudFormation AWS-Vorlage.) | Dateningenieur, Cloud-Ingenieur | 
| Kopieren Sie den Code und fügen Sie ihn ein. | Ersetzen Sie den Code in der `lambda_function.py` Datei durch den Code aus dem Abschnitt *Zusätzliche Informationen* dieses Musters. | Dateningenieur, Cloud-Ingenieur | 
| Ändern Sie die Parameter im Code. | Folgen Sie den Kommentaren im Code, um die Parameterwerte so zu ändern, dass sie Ihrem AWS-Konto entsprechen. | Dateningenieur, Cloud-Ingenieur | 
| Starten Sie die Funktion, um den Cluster zu initiieren. | Starten Sie die Funktion, um die Erstellung eines transienten EMR-Clusters mit der bereitgestellten Spark-.jar-Datei zu initiieren. Sie führt den Spark-Job aus und wird automatisch beendet, wenn der Job abgeschlossen ist. | Dateningenieur, Cloud-Ingenieur | 
| Überprüfen Sie den Status des EMR-Clusters. | Nachdem der EMR-Cluster initiiert wurde, wird er in der Amazon EMR-Konsole unter der Registerkarte **Cluster** angezeigt. Alle Fehler beim Starten des Clusters oder beim Ausführen des Jobs können entsprechend überprüft werden. | Dateningenieur, Cloud-Ingenieur | 

### Richten Sie die Beispieldemo ein und führen Sie sie aus
<a name="set-up-and-run-the-sample-demo"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Spark-.jar-Datei hoch.  | Laden Sie die Spark-.jar-Datei aus dem Bereich *Anlagen* herunter und laden Sie sie in den S3-Bucket hoch. | Dateningenieur, Cloud-Ingenieur | 
| Laden Sie den Eingabedatensatz hoch. | Laden Sie die angehängte `fake_sales_data.csv` Datei in den S3-Bucket hoch. | Dateningenieur, Cloud-Ingenieur | 
| Fügen Sie den Lambda-Code ein und ändern Sie die Parameter. | Kopieren Sie den Code aus dem Abschnitt **Tools** und fügen Sie den Code in eine Lambda-Funktion ein, wodurch die `lambda_function.py` Codedatei ersetzt wird. Ändern Sie die Parameterwerte so, dass sie Ihrem Konto entsprechen. | Dateningenieur, Cloud-Ingenieur | 
| Starten Sie die Funktion und überprüfen Sie die Ausgabe. | Nachdem die Lambda-Funktion den Cluster mit dem bereitgestellten Spark-Job initiiert hat, generiert sie eine .csv-Datei im S3-Bucket. | Dateningenieur, Cloud-Ingenieur | 

## Zugehörige Ressourcen
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-resources"></a>
+ [Spark bauen](https://spark.apache.org/docs/latest/building-spark.html)
+ [Apache Spark und Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark.html)
+ [Boto3 Docs run\$1job\$1flow-Dokumentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/emr.html#EMR.Client.run_job_flow)
+ [Informationen und Dokumentation zu Apache Spark](https://spark.apache.org/)

## Zusätzliche Informationen
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-additional"></a>

**Code**

```
"""
Copy paste the following code in your Lambda function. Make sure to change the following key parameters for the API as per your account

-Name (Name of Spark cluster)
-LogUri (S3 bucket to store EMR logs)
-Ec2SubnetId (The subnet to launch the cluster into)
-JobFlowRole (Service role for EC2)
-ServiceRole (Service role for Amazon EMR)

The following parameters are additional parameters for the Spark job itself. Change the bucket name and prefix for the Spark job (located at the bottom).

-s3://your-bucket-name/prefix/lambda-emr/SparkProfitCalc.jar (Spark jar file)
-s3://your-bucket-name/prefix/fake_sales_data.csv (Input data file in S3)
-s3://your-bucket-name/prefix/outputs/report_1/ (Output location in S3)
"""
import boto3

client = boto3.client('emr')


def lambda_handler(event, context):
    response = client.run_job_flow(
        Name='spark_job_cluster',
        LogUri='s3://your-bucket-name/prefix/logs',
        ReleaseLabel='emr-6.0.0',
        Instances={
            'MasterInstanceType': 'm5.xlarge',
            'SlaveInstanceType': 'm5.large',
            'InstanceCount': 1,
            'KeepJobFlowAliveWhenNoSteps': False,
            'TerminationProtected': False,
            'Ec2SubnetId': 'subnet-XXXXXXXXXXXXXX'
        },
        Applications=[{'Name': 'Spark'}],
        Configurations=[
            {'Classification': 'spark-hive-site',
             'Properties': {
                 'hive.metastore.client.factory.class': 'com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory'}
             }
        ],
        VisibleToAllUsers=True,
        JobFlowRole='EMRLambda-EMREC2InstanceProfile-XXXXXXXXX',
        ServiceRole='EMRLambda-EMRRole-XXXXXXXXX',
        Steps=[
            {
                'Name': 'flow-log-analysis',
                'ActionOnFailure': 'TERMINATE_CLUSTER',
                'HadoopJarStep': {
                    'Jar': 'command-runner.jar',
                    'Args': [
                        'spark-submit',
                        '--deploy-mode', 'cluster',
                        '--executor-memory', '6G',
                        '--num-executors', '1',
                        '--executor-cores', '2',
                        '--class', 'com.aws.emr.ProfitCalc',
                        's3://your-bucket-name/prefix/lambda-emr/SparkProfitCalc.jar',
                        's3://your-bucket-name/prefix/fake_sales_data.csv',
                        's3://your-bucket-name/prefix/outputs/report_1/'
                    ]
                }
            }
        ]
    )
```

**IAM-Rollen und VPC-Erstellung**

Um den EMR-Cluster in einer Lambda-Funktion zu starten, sind eine VPC und IAM-Rollen erforderlich. Sie können die VPC- und IAM-Rollen mithilfe der CloudFormation AWS-Vorlage im Abschnitt Anlagen dieses Musters einrichten, oder Sie können sie mithilfe der folgenden Links manuell erstellen. 

Die folgenden IAM-Rollen sind für die Ausführung von Lambda und Amazon EMR erforderlich. 

*Lambda-Ausführungsrolle*

Die [Ausführungsrolle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) einer Lambda-Funktion gewährt ihr die Erlaubnis, auf AWS-Services und -Ressourcen zuzugreifen.

*Servicerolle für Amazon EMR*

Die [Amazon EMR-Rolle](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html) definiert die zulässigen Aktionen für Amazon EMR bei der Bereitstellung von Ressourcen und der Ausführung von Service-Level-Aufgaben, die nicht im Kontext einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance ausgeführt werden, die innerhalb eines Clusters ausgeführt wird. Die Service-Rolle wird beispielsweise verwendet, um EC2 Instances bereitzustellen, wenn ein Cluster gestartet wird.

*Servicerolle für EC2 Instanzen*

Die [Servicerolle für EC2 Cluster-Instances](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html) (auch EC2 Instance-Profil für Amazon EMR genannt) ist eine spezielle Art von Servicerolle, die jeder EC2 Instance in einem Amazon EMR-Cluster zugewiesen wird, wenn die Instance gestartet wird. Anwendungsprozesse, die auf Apache Hadoop ausgeführt werden, übernehmen diese Rolle für Berechtigungen zur Interaktion mit anderen AWS-Services.

*VPC- und Subnetzerstellung*

Sie können [eine VPC von der VPC-Konsole aus erstellen](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#create-vpc-and-other-resources). 

## Anlagen
<a name="attachments-6c999fa7-9550-4929-a5c1-60394142175d"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/6c999fa7-9550-4929-a5c1-60394142175d/attachments/attachment.zip)

# Migrieren Sie Apache Cassandra-Workloads mithilfe von AWS Glue zu Amazon Keyspaces
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue"></a>

*Nikolai Kolesnikov, Karthiga Priya Chandran und Samir Patel, Amazon Web Services*

## Zusammenfassung
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie Ihre vorhandenen Apache Cassandra-Workloads mithilfe CQLReplicator von AWS Glue zu Amazon Keyspaces (für Apache Cassandra) migrieren. Sie können CQLReplicator auf AWS Glue verwenden, um die Replikationsverzögerung bei der Migration Ihrer Workloads auf wenige Minuten zu reduzieren. Sie erfahren auch, wie Sie einen Amazon Simple Storage Service (Amazon S3) -Bucket verwenden, um Daten zu speichern, die für die Migration erforderlich sind, einschließlich [Apache Parquet-Dateien](https://parquet.apache.org/), Konfigurationsdateien und Skripts. Bei diesem Muster wird davon ausgegangen, dass Ihre Cassandra-Workloads auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances in einer Virtual Private Cloud (VPC) gehostet werden.

## Voraussetzungen und Einschränkungen
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-prereqs"></a>

**Voraussetzungen**
+ Cassandra-Cluster mit einer Quelltabelle
+ Zieltabelle in Amazon Keyspaces zur Replikation der Arbeitslast
+ S3-Bucket zum Speichern von Parquet-Zwischendateien, die inkrementelle Datenänderungen enthalten
+ S3-Bucket zum Speichern von Job-Konfigurationsdateien und Skripten

**Einschränkungen**
+ CQLReplicator auf AWS Glue benötigt einige Zeit, um Datenverarbeitungseinheiten (DPUs) für die Cassandra-Workloads bereitzustellen. Die Replikationsverzögerung zwischen dem Cassandra-Cluster und dem Zielschlüsselraum und der Zieltabelle in Amazon Keyspaces wird wahrscheinlich nur wenige Minuten andauern.

## Architektur
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-architecture"></a>

**Quelltechnologie-Stack**
+ Apache Cassandra
+ DataStax Server
+ ScyllaDB

**Zieltechnologie-Stack**
+ Amazon Keyspaces

**Migrationsarchitektur**

Das folgende Diagramm zeigt eine Beispielarchitektur, bei der ein Cassandra-Cluster auf EC2 Instanzen gehostet und auf drei Availability Zones verteilt ist. Die Cassandra-Knoten werden in privaten Subnetzen gehostet.

![\[Benutzerdefinierte Servicerolle, Amazon Keyspaces und Amazon S3, wobei AWS Glue eine Verbindung zu den Knoten VPC herstellt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e08048da-8996-4f2c-b8ed-da49fe9e693b/images/76256ab3-a1e6-4c9e-9c40-dc78f51edf0f.png)


Das Diagramm zeigt den folgenden Workflow:

1. Eine benutzerdefinierte Servicerolle bietet Zugriff auf Amazon Keyspaces und den S3-Bucket.

1. Ein AWS Glue Glue-Job liest die Jobkonfiguration und die Skripts im S3-Bucket.

1. Der AWS Glue Glue-Job stellt über Port 9042 eine Verbindung her, um Daten aus dem Cassandra-Cluster zu lesen.

1. Der AWS Glue Glue-Job stellt über Port 9142 eine Verbindung her, um Daten in Amazon Keyspaces zu schreiben.

## Tools
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-tools"></a>

**AWS-Services und -Tools**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) ist eine browserbasierte Shell, mit der Sie AWS-Services mithilfe der AWS-Befehlszeilenschnittstelle (AWS CLI) und einer Reihe vorinstallierter Entwicklungstools verwalten können.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter ETL-Service, mit dem Sie Daten zuverlässig kategorisieren, bereinigen, anreichern und zwischen Datenspeichern und Datenströmen verschieben können.
+ [Amazon Keyspaces (für Apache Cassandra)](https://docs.aws.amazon.com/keyspaces/latest/devguide/what-is-keyspaces.html) ist ein verwalteter Datenbankservice, der Sie bei der Migration, Ausführung und Skalierung Ihrer Cassandra-Workloads in der AWS-Cloud unterstützt.

**Code**

Der Code für dieses Muster ist im Repository verfügbar. GitHub [CQLReplicator](https://github.com/aws-samples/cql-replicator/tree/main/glue)

## Best Practices
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-best-practices"></a>
+ Um die erforderlichen AWS Glue Glue-Ressourcen für die Migration zu ermitteln, schätzen Sie die Anzahl der Zeilen in der Cassandra-Quelltabelle. Zum Beispiel 250.000 Zeilen pro 0,25 DPU (2 VCPUs, 4 GB Arbeitsspeicher) mit 84 GB Festplatte.
+ Wärmen Sie Amazon Keyspaces-Tabellen vor der Ausführung vor. CQLReplicator Beispielsweise können acht CQLReplicator Kacheln (AWS Glue Glue-Jobs) bis zu 22 K WCUs pro Sekunde schreiben, sodass das Ziel auf 25-30 K WCUs pro Sekunde vorgewärmt werden sollte.
+ Um die Kommunikation zwischen AWS Glue Glue-Komponenten zu ermöglichen, verwenden Sie eine selbstreferenzierende Regel für eingehenden Datenverkehr für alle TCP-Ports in Ihrer Sicherheitsgruppe.
+ Verwenden Sie die Strategie für den inkrementellen Datenverkehr, um die Migrationslast im Laufe der Zeit zu verteilen.

## Epen
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-epics"></a>

### Bereitstellen CQLReplicator
<a name="deploy-cqlreplicator"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Zielschlüsselraum und eine Tabelle.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | App-Besitzer, AWS-Administrator, DBA, App-Entwickler | 
| Konfigurieren Sie den Cassandra-Treiber für die Verbindung mit Cassandra. | Verwenden Sie das folgende Konfigurationsskript:<pre>Datastax-java-driver {<br />  basic.request.consistency = "LOCAL_QUORUM"<br />  basic.contact-points = ["127.0.0.1:9042"]<br />   advanced.reconnect-on-init = true<br />   basic.load-balancing-policy {<br />        local-datacenter = "datacenter1"<br />}<br />advanced.auth-provider = {<br />       class = PlainTextAuthProvider<br />       username = "user-at-sample"<br />       password = "S@MPLE=PASSWORD="<br />}<br />}</pre>Das vorherige Skript verwendet den Spark Cassandra Connector. Weitere Informationen finden Sie in der Referenzkonfiguration für [Cassandra](https://docs.datastax.com/en/developer/java-driver/4.17/manual/core/configuration/reference/). | DBA | 
| Konfigurieren Sie den Cassandra-Treiber für die Verbindung mit Amazon Keyspaces. | Verwenden Sie das folgende Konfigurationsskript:<pre>datastax-java-driver {<br />basic {<br />  load-balancing-policy {<br />    local-datacenter = us-west-2<br />        }<br />  contact-points = [<br />            "cassandra.us-west-2.amazonaws.com:9142"<br />        ]<br />  request {<br />  page-size = 2500<br />  timeout = 360 seconds<br />  consistency = LOCAL_QUORUM<br />        }<br />    }<br />advanced {<br /> control-connection {<br />  timeout = 360 seconds<br />        }<br /> session-leak.threshold = 6<br /> connection {<br /> connect-timeout = 360 seconds<br /> init-query-timeout = 360 seconds<br /> warn-on-init-error = false<br />        }<br /> auth-provider = {<br />  class = software.aws.mcs.auth.SigV4AuthProvider<br />  aws-region = us-west-2<br /> }<br /><br /> ssl-engine-factory {<br />  class = DefaultSslEngineFactory<br />        }<br />    }<br />}</pre>Das vorherige Skript verwendet den Spark Cassandra Connector. Weitere Informationen finden Sie in der Referenzkonfiguration für [Cassandra](https://docs.datastax.com/en/developer/java-driver/4.17/manual/core/configuration/reference/). | DBA | 
| Erstellen Sie eine IAM-Rolle für den AWS Glue Glue-Job. | Erstellen Sie eine neue AWS-Servicerolle `glue-cassandra-migration` mit dem Namen AWS Glue als vertrauenswürdige Entität.Das `glue-cassandra-migration` sollte Lese- und Schreibzugriff auf den S3-Bucket und Amazon Keyspaces bieten. Der S3-Bucket enthält die .jar-Dateien, die Konfigurationsdateien für Amazon Keyspaces und Cassandra sowie die Parquet-Zwischendateien. Er enthält beispielsweise die verwalteten Richtlinien`AWSGlueServiceRole`,`AmazonS3FullAccess`, und`AmazonKeyspacesFullAccess`. | AWS DevOps | 
|  CQLReplicator In AWS herunterladen CloudShell. | Laden Sie das Projekt in Ihren Home-Ordner herunter, indem Sie den folgenden Befehl ausführen:<pre>git clone https://github.com/aws-samples/cql-replicator.git<br />cd cql-replicator/glue<br /># Only for AWS CloudShell, the bc package includes bc and dc. Bc is an arbitrary precision numeric processing arithmetic language<br />sudo yum install bc -y</pre> |  | 
| Ändern Sie die Referenzkonfigurationsdateien. | Kopieren `KeyspacesConnector.conf` Sie `CassandraConnector.conf` und in das `../glue/conf` Verzeichnis im Projektordner. | AWS DevOps | 
| Initiieren Sie den Migrationsprozess. | Der folgende Befehl initialisiert die CQLReplicator Umgebung. Die Initialisierung umfasst das Kopieren von .jar-Artefakten und das Erstellen eines AWS Glue Glue-Connectors, eines S3-Buckets, eines AWS Glue Glue-Jobs, des `migration` Schlüsselraums und der Tabelle: `ledger`<pre>cd cql-replicator/glue/bin<br />./cqlreplicator --state init --sg '"sg-1","sg-2"' \ <br />                --subnet "subnet-XXXXXXXXXXXX" \ <br />                --az us-west-2a --region us-west-2 \ <br />                --glue-iam-role glue-cassandra-migration \ <br />                --landing-zone s3://cql-replicator-1234567890-us-west-2<br /></pre>Das Skript enthält die folgenden Parameter:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | AWS DevOps | 
| Validieren Sie die Bereitstellung. | Nachdem Sie den vorherigen Befehl ausgeführt haben, sollte das AWS-Konto Folgendes enthalten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | AWS DevOps | 

### Lauf CQLReplicator
<a name="run-cqlreplicator"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie den Migrationsprozess. | Um mit CQLReplicator AWS Glue zu arbeiten, müssen Sie den `--state run` Befehl verwenden, gefolgt von einer Reihe von Parametern. Die genaue Konfiguration dieser Parameter wird in erster Linie von Ihren individuellen Migrationsanforderungen bestimmt. Diese Einstellungen können beispielsweise variieren, wenn Sie sich dafür entscheiden, TTL-Werte und Aktualisierungen (Time to Live) zu replizieren, oder wenn Sie Objekte, die 1 MB überschreiten, nach Amazon S3 auslagern.Führen Sie den folgenden Befehl aus, um die Arbeitslast vom Cassandra-Cluster nach Amazon Keyspaces zu replizieren: <pre>./cqlreplicator --state run --tiles 8  \<br />                --landing-zone s3://cql-replicator-1234567890-us-west-2 \ <br />                --region us-west-2 \                              <br />                --src-keyspace source_keyspace \ <br />                --src-table source_table \  <br />                --trg-keyspace taget_keyspace \<br />                --writetime-column column_name \<br />                --trg-table target_table --inc-traffic</pre>Ihr Quellschlüsselraum und Ihre Tabelle befinden sich `source_keyspace.source_table` im Cassandra-Cluster. Ihr Zielschlüsselraum und Ihre Zieltabelle befinden sich `target_keyspace.target_table` in Amazon Keyspaces. Der Parameter `--inc-traffic` verhindert, dass inkrementeller Verkehr den Cassandra-Cluster und Amazon Keyspaces mit einer hohen Anzahl von Anfragen überlastet.Um Updates zu replizieren, fügen Sie sie zu Ihrer Befehlszeile hinzu`--writetime-column regular_column_name`. Die reguläre Spalte wird als Quelle für den Schreibzeitstempel verwendet. | AWS DevOps | 

### Überwachen Sie den Migrationsprozess
<a name="monitor-the-migration-process"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie migrierte Cassandra-Zeilen während der historischen Migrationsphase. | Führen Sie den folgenden Befehl aus, um die Anzahl der Zeilen zu ermitteln, die während der Backfilling-Phase repliziert wurden:<pre>./cqlreplicator --state stats \<br />                --landing-zone s3://cql-replicator-1234567890-us-west-2 \  <br />                --src-keyspace source_keyspace --src-table source_table --region us-west-2</pre> | AWS DevOps | 

### Beenden Sie den Migrationsprozess
<a name="stop-the-migration-process"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie den `cqlreplicator` Befehl oder die AWS Glue Glue-Konsole. | Führen Sie den folgenden Befehl aus, um den Migrationsprozess ordnungsgemäß zu beenden:<pre>./cqlreplicator --state request-stop --tiles 8 \                         <br />                --landing-zone s3://cql-replicator-1234567890-us-west-2 \     <br />                --region us-west-2 \                     <br />                --src-keyspace source_keyspace --src-table source_table</pre>Verwenden Sie die AWS Glue Glue-Konsole, um den Migrationsprozess sofort zu beenden. | AWS DevOps | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie die bereitgestellten Ressourcen. | Der folgende Befehl löscht den AWS Glue Glue-Job, den Connector, den S3-Bucket und die Keyspaces-Tabelle`ledger`:<pre>./cqlreplicator --state cleanup --landing-zone s3://cql-replicator-1234567890-us-west-2</pre> | AWS DevOps | 

## Fehlerbehebung
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| AWS Glue Glue-Jobs schlugen fehl und gaben einen OOM-Fehler (Out of Memory) zurück. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | 

## Zugehörige Ressourcen
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-resources"></a>
+ [CQLReplicator mit AWS Glue README.MD](https://github.com/aws-samples/cql-replicator/blob/main/glue/README.MD)
+ [AWS Glue Glue-Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)
+ [Dokumentation zu Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/what-is-keyspaces.html)
+ [Apache Cassandra](https://cassandra.apache.org/_/index.html)

## Zusätzliche Informationen
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-additional"></a>

**Überlegungen zur Migration**

Sie können AWS Glue verwenden, um Ihren Cassandra-Workload zu Amazon Keyspaces zu migrieren, während Ihre Cassandra-Quelldatenbanken während des Migrationsprozesses voll funktionsfähig bleiben. Nach Abschluss der Replikation können Sie wählen, ob Sie Ihre Anwendungen mit minimaler Replikationsverzögerung (weniger als Minuten) zwischen dem Cassandra-Cluster und Amazon Keyspaces auf Amazon Keyspaces übertragen möchten. Um die Datenkonsistenz aufrechtzuerhalten, können Sie auch eine ähnliche Pipeline verwenden, um die Daten von Amazon Keyspaces zurück in den Cassandra-Cluster zu replizieren.

**Schreiben Sie Berechnungen für Einheiten**

Stellen Sie sich als Beispiel vor, Sie beabsichtigen, innerhalb einer Stunde 500.000.000 mit einer Zeilengröße von 1 KiB zu schreiben. Die Gesamtzahl der Amazon Keyspaces-Schreibeinheiten (WCUs), die Sie benötigen, basiert auf dieser Berechnung:

`(number of rows/60 mins 60s) 1 WCU per row = (500,000,000/(60*60s) * 1 WCU) = 69,444 WCUs required`

69.444 WCUs pro Sekunde ist der Tarif für 1 Stunde, aber Sie könnten etwas mehr Aufwandspolster hinzufügen.  `69,444 * 1.10 = 76,388 WCUs`Hat zum Beispiel 10 Prozent Gemeinkosten.

**Erstellen Sie einen Schlüsselraum mithilfe von CQL**

Führen Sie die folgenden Befehle aus, um einen Schlüsselraum mithilfe von CQL zu erstellen:

```
CREATE KEYSPACE target_keyspace WITH replication = {'class': 'SingleRegionStrategy'}
CREATE TABLE target_keyspace.target_table ( userid uuid, level text, gameid int, description text, nickname text, zip text, email text, updatetime text, PRIMARY KEY (userid, level, gameid) ) WITH default_time_to_live = 0 AND CUSTOM_PROPERTIES = {'capacity_mode':{ 'throughput_mode':'PROVISIONED', 'write_capacity_units':76388, 'read_capacity_units':3612 }} AND CLUSTERING ORDER BY (level ASC, gameid ASC)
```

# Migrieren Sie Oracle Business Intelligence 12c von lokalen Servern zur AWS-Cloud
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers"></a>

*Lanre (Lan-Ray) showunmi und Patrick Huang, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-summary"></a>

Dieses Muster zeigt, wie [Oracle Business Intelligence Enterprise Edition 12c](https://www.oracle.com/business-analytics/business-intelligence/technologies/bi-enterprise-edition.html) mithilfe von AWS von lokalen Servern in die AWS-Cloud migriert wird. CloudFormation Außerdem wird beschrieben, wie Sie andere AWS-Services verwenden können, um Oracle BI 12c-Komponenten zu implementieren, die hohe Verfügbarkeit, Sicherheit, Flexibilität und die Fähigkeit zur dynamischen Skalierung bieten.

Eine Liste der bewährten Methoden im Zusammenhang mit der Migration von Oracle BI 12c zur AWS-Cloud finden Sie im Abschnitt **Zusätzliche Informationen** dieses Musters.

**Anmerkung**  
Es hat sich bewährt, mehrere Testmigrationen durchzuführen, bevor Sie Ihre vorhandenen Oracle BI 12c-Daten in die Cloud übertragen. Diese Tests helfen Ihnen dabei, Ihren Migrationsansatz zu optimieren, potenzielle Probleme zu identifizieren und zu beheben und die Ausfallzeiten genauer einzuschätzen.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Sichere Netzwerkkonnektivität zwischen Ihren lokalen Servern und AWS über [AWS Virtual Private Network (AWS VPN)](https://aws.amazon.com/vpn/) -Services oder [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)
+ Softwarelizenzen für Ihr Oracle-Betriebssystem, Oracle BI 12c, Oracle Database, Oracle WebLogic Server und Oracle HTTP Server

**Einschränkungen**

Informationen zu Speichergrößenbeschränkungen finden Sie in der Dokumentation zu [Amazon Relational Database Service (Amazon RDS) für Oracle](https://aws.amazon.com/rds/oracle/features/).

**Produktversionen**
+ Oracle Business Intelligence Enterprise Ausgabe 12c
+ Oracle WebLogic Server 12c
+ Oracle HTTP-Server 12c
+ Oracle Database 12c (oder neuer)
+ Oracle Java SE 8

## Architektur
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-architecture"></a>

Das folgende Diagramm zeigt eine Beispielarchitektur für die Ausführung von Oracle BI 12c-Komponenten in der AWS-Cloud:

![\[Beispielarchitektur für die Ausführung von Oracle BI 12c-Komponenten in der AWS-Cloud.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8bb72df1-7546-4208-bc70-5789767e3600/images/aae8f8f3-8125-4868-a8e5-eac1cc42812f.png)


 

Dieses Diagramm zeigt die folgende Architektur:

1. Amazon Route 53 bietet eine DNS-Konfiguration (Domain Name Service).

1. Elastic Load Balancing (ELB) verteilt den Netzwerkverkehr, um die Skalierbarkeit und Verfügbarkeit der Oracle BI 12c-Komponenten auf mehrere Availability Zones zu verbessern.

1. Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling Scaling-Gruppen hosten die Oracle HTTP-Server, den Weblogic Admin-Server und verwaltete BI-Server in mehreren Availability Zones.

1. Amazon Relational Database Service (Amazon RDS) für Oracle-Datenbanken speichert BI-Server-Metadaten in mehreren Availability Zones.

1. Amazon Elastic File System (Amazon EFS) wird auf jeder Oracle BI 12c-Komponente zur gemeinsamen Dateispeicherung bereitgestellt.

**Technologie-Stack**
+ Amazon Elastic Block Store (Amazon EBS)
+ Amazon Elastic Compute Cloud (Amazon EC2)
+ Amazon Elastic File System (Amazon EFS)
+ Amazon RDS für Oracle
+ AWS Certificate Manager (ACM)
+ Elastic Load Balancing (ELB)
+ Oracle BI 12c
+ Oracle WebLogic Server 12c
+ Oracle HTTP-Server (OHS)

## Tools
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten.
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) unterstützt Sie bei der Erstellung, Speicherung und Erneuerung von öffentlichen und privaten SSL/TLS X.509-Zertifikaten und Schlüsseln, die Ihre AWS-Websites und -Anwendungen schützen.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server starten, wie Sie benötigen, und diese schnell nach oben oder unten skalieren.
+ [Amazon EC2 Auto Scaling](https://aws.amazon.com/ec2/autoscaling/) hilft Ihnen dabei, die Anwendungsverfügbarkeit aufrechtzuerhalten, und ermöglicht es Ihnen, EC2 Amazon-Instances gemäß den von Ihnen definierten Bedingungen automatisch hinzuzufügen oder zu entfernen. 
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) unterstützt Sie bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS-Cloud.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) verteilt den eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele. Sie können beispielsweise den Traffic auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances, Container und IP-Adressen in einer oder mehreren Availability Zones verteilen.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen, AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk zu starten. Dieses virtuelle Netzwerk ähnelt einem herkömmlichen Netzwerk, das Sie in Ihrem eigenen Rechenzentrum betreiben würden, mit den Vorteilen der skalierbaren Infrastruktur von AWS.
+ Mit [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) können Sie Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere verschieben.
+ [Oracle Fusion Middleware](https://www.oracle.com/middleware/technologies/business-intelligence-v12214-downloads.html) ist eine Suite von Tools für die Anwendungsentwicklung und Integrationslösungen für Identitätsmanagement, Zusammenarbeit und Business Intelligence-Reporting.
+ [Oracle GoldenGate](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) unterstützt Sie bei der Entwicklung, Ausführung, Orchestrierung und Überwachung Ihrer Datenreplikations- und Streaming-Datenverarbeitungslösungen in der Oracle Cloud-Infrastruktur.
+ Das [Oracle WebLogic Scripting Tool (WLST)](https://docs.oracle.com/middleware/12213/cross/wlsttasks.htm) bietet eine Befehlszeilenschnittstelle, mit der Sie Ihre Cluster horizontal skalieren können. WebLogic 

## Epen
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-epics"></a>

### Beurteilen Sie die Quellumgebung
<a name="assess-the-source-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Sammeln Sie Informationen zum Softwareinventar. | Identifizieren Sie Versionen und Patch-Levels für jede der Softwarekomponenten Ihres Quelltechnologie-Stacks, einschließlich der folgenden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 
| Sammeln Sie Informationen zum Rechen- und Speicherbestand. | Überprüfen Sie in Ihrer Quellumgebung aktuelle und historische Nutzungskennzahlen auf Folgendes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html)Vergewissern Sie sich, dass Sie historische Auslastungsspitzen berücksichtigen. | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator, Systemadministrator | 
| Sammeln Sie Informationen über die Architektur der Quellumgebung und ihre Anforderungen. | Verschaffen Sie sich ein umfassendes Verständnis der Architektur Ihrer Quellumgebung und ihrer Anforderungen, einschließlich der folgenden Kenntnisse:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 
| Identifizieren Sie die Datenquellen von Java Database Connectivity (JDBC). | Sammeln Sie Informationen über die JDBC-Datenquellen und -Treiber Ihrer Quellumgebung für jede verwendete Datenbank-Engine. | Migrationsarchitekt, Anwendungsbesitzer, Oracle BI-Administrator, Datenbankingenieur oder Administrator | 
| Sammeln Sie Informationen über umgebungsspezifische Einstellungen. | Sammeln Sie Informationen zu Einstellungen und Konfigurationen, die für Ihre Quellumgebung spezifisch sind, einschließlich der folgenden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 
| Identifizieren Sie alle Abhängigkeiten von anderen Anwendungen. | Sammeln Sie Informationen über Integrationen in Ihrer Quellumgebung, die Abhängigkeiten zu anderen Anwendungen schaffen.Stellen Sie sicher, dass Sie alle LDAP-Integrationen (Lightweight Directory Access Protocol) und andere Netzwerkanforderungen identifizieren. | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 

### Entwerfen Sie Ihre Zielumgebung
<a name="design-your-target-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Designdokument auf hoher Ebene. | Erstellen Sie ein Dokument zum Entwurf einer Zielarchitektur. Stellen Sie sicher, dass Sie die Informationen, die Sie bei der Bewertung Ihrer Quellumgebung gesammelt haben, als Grundlage für das Entwurfsdokument verwenden. | Lösungsarchitekt, Anwendungsarchitekt, Datenbankingenieur, Migrationsarchitekt | 
| Holen Sie die Genehmigung für das Entwurfsdokument ein. | Prüfen Sie das Entwurfsdokument mit den Beteiligten und holen Sie die erforderlichen Genehmigungen ein. | Inhaber der Anwendung oder des Dienstes, Lösungsarchitekt, Anwendungsarchitekt | 

### Stellen Sie die Infrastruktur bereit
<a name="deploy-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie den Infrastrukturcode in vor CloudFormation. | Erstellen Sie CloudFormation Vorlagen für die Bereitstellung Ihrer Oracle BI 12c-Infrastruktur in der AWS-Cloud.Weitere Informationen finden Sie unter [Arbeiten mit CloudFormation AWS-Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) im * CloudFormation AWS-Benutzerhandbuch*.Es hat sich bewährt, modulare CloudFormation Vorlagen für jede Oracle BI 12c-Stufe zu erstellen, anstatt eine große Vorlage für all Ihre Ressourcen zu erstellen. Weitere Informationen zu CloudFormation bewährten Methoden finden Sie im AWS-Blog unter [8 bewährte Methoden zur Automatisierung Ihrer Bereitstellungen mit CloudFormation AWS](https://aws.amazon.com/blogs/infrastructure-and-automation/best-practices-automating-deployments-with-aws-cloudformation/). | Cloud-Infrastrukturarchitekt, Lösungsarchitekt, Anwendungsarchitekt | 
| Laden Sie die erforderliche Software herunter. | DDownload die folgende Software zusammen mit den erforderlichen Versionen und Patches von der [Oracle-Website](https://www.oracle.com/):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Datenbankingenieur, Anwendungsarchitekt | 
| Bereiten Sie die Installationsskripten vor. | Erstellen Sie Softwareinstallationsskripts, die eine unbeaufsichtigte Installation ausführen. Diese Skripts vereinfachen die Automatisierung der Bereitstellung.Weitere Informationen finden Sie unter [OBIEE 12c: Wie führe ich eine Installation im Hintergrund](https://support.oracle.com/knowledge/Enterprise%20Performance%20Management%20and%20Business%20Intelligence/2267490_1.html) durch? auf der Oracle Support-Website. Sie benötigen ein Oracle Support-Konto, um die Dokumentation einsehen zu können. | Migrationsarchitekt, Datenbankingenieur, Anwendungsarchitekt | 
| Erstellen Sie ein Amazon EBS-gestütztes Linux-AMI für Ihre Web- und Anwendungsstufen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Datenbankingenieur, Anwendungsarchitekt | 
| Starten Sie Ihre AWS-Infrastruktur mithilfe von CloudFormation. | Stellen Sie Ihre Web- und Anwendungsebenen von Oracle BI 12c in Modulen bereit, indem Sie die von Ihnen erstellten CloudFormation Vorlagen verwenden.Anweisungen finden Sie unter [Erste Schritte mit AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html) *im CloudFormation AWS-Benutzerhandbuch*. | Cloud-Infrastrukturarchitekt, Lösungsarchitekt, Anwendungsarchitekt | 

### Migrieren Sie Oracle BI 12c mithilfe einer Neuinstallation zu AWS
<a name="migrate-oracle-bi-12c-to-aws-by-using-a-fresh-installation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die erforderliche Software bereit. | Stellen Sie die erforderliche Software an einem Ort bereit, auf den die EC2 Amazon-Instances zugreifen können. Sie könnten die Software beispielsweise in Amazon S3 oder einer anderen EC2 Amazon-Instance bereitstellen, auf die Ihre Web- und Anwendungsserver zugreifen können. | Migrationsarchitekt, Oracle BI-Architekt, Cloud-Infrastrukturarchitekt, Lösungsarchitekt, Anwendungsarchitekt | 
| Bereiten Sie Ihre Repository-Datenbank für die Installation von Oracle BI 12c vor. | Erstellen Sie Oracle BI 12c-Schemas, indem Sie das [Oracle Repository Creation Utility (RCU)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Resources.RCU.html#Oracle.Resources.RCU.Installing) für eine neue [Amazon RDS for Oracle Oracle-Datenbank-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) ausführen. | Cloud-Infrastrukturarchitekt, Lösungsarchitekt, Anwendungsarchitekt, Migrationsarchitekt, Oracle BI-Architekt | 
| Installieren Sie Oracle Fusion Middleware 12c und Oracle BI 12c. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Oracle BI Architect | 
| Konfigurieren Sie Ihre Oracle WebLogic Server-Domain für Oracle BI 12c. | Konfigurieren Sie Ihre Oracle BI 12c-Domain als Bereitstellung ohne Cluster. Weitere Informationen finden Sie unter [Configuring the BI Domain](https://docs.oracle.com/middleware/bi12214/lcm/BIEDG/GUID-FD80C4C4-A2E9-4190-8B6A-7AD659D8FBE2.htm#BIEDG-GUID-D4FC2F0A-88B0-453C-BF14-17D365018252) im *Oracle Fusion Middleware Enterprise Deployment Guide* for Oracle Business Intelligence. | Migrationsarchitekt, Oracle BI Architect | 
| Führen Sie eine horizontale Skalierung von Oracle BI 12c aus durch. | Skalieren Sie den einzelnen Knoten horizontal auf die gewünschte Anzahl von Knoten. Weitere Informationen finden Sie unter [Scaling out Oracle Business Intelligence](https://docs.oracle.com/middleware/bi12214/lcm/BIEDG/GUID-B7BEA45C-A8C0-4591-B748-FC35C587DAE0.htm#BIEDG-GUID-B7BEA45C-A8C0-4591-B748-FC35C587DAE0) im *Oracle Fusion Middleware Enterprise Deployment Guide for Oracle Business* Intelligence. | Migrationsarchitekt, Oracle BI Architect | 
| Installieren Sie Oracle HTTP Server 12c. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Oracle BI Architect | 
| Konfigurieren Sie Load Balancer für die SSL-Terminierung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Architekt der Cloud-Infrastruktur, Migrationsarchitekt | 
| Migrieren Sie Business Intelligence-Metadaten-Artefakte zu AWS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Oracle BI Architect | 
| Führen Sie Aufgaben nach der Migration aus. | Gehen Sie nach dem Import der BAR-Dateien wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Migrationsarchitekt, Oracle BI Architect | 

### Testen Sie die neue Umgebung
<a name="test-the-new-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie die neue Oracle BI 12c-Umgebung. | Führen Sie end-to-end Tests in der neuen Oracle BI 12c-Umgebung durch. Verwenden Sie so viel Automatisierung wie möglich.Beispiele für Testaktivitäten umfassen Folgendes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html)Führen Sie bei Bedarf zusätzliche Tests und Validierungen durch. | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 

### Wechseln Sie zur neuen Umgebung
<a name="cut-over-to-the-new-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Trennen Sie den Datenverkehr zur lokalen Oracle BI 12c-Umgebung. | Stoppen Sie den gesamten Datenverkehr zur lokalen Oracle BI 12c-Umgebung innerhalb des festgelegten Zeitfensters für die Umstellung. | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 
| Resynchronisieren Sie die neue Oracle BI 12c-Repository-Datenbank mit der Quelldatenbank. | Synchronisieren Sie die Amazon RDS Oracle Oracle BI 12c-Repository-Datenbank erneut mit der lokalen Datenbank.Um die Datenbanken zu synchronisieren, können Sie entweder eine [Oracle Data Pump-Aktualisierung](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.DataPump.html) oder eine [AWS DMS-Change Data Capture (CDC](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/)) verwenden. | Oracle BI-Administrator, Datenbankingenieur/Administrator | 
| Stellen Sie Ihr Oracle BI 12c so URLs um, dass es auf die neue AWS-Umgebung verweist. | Aktualisieren Sie Oracle BI 12c URLs auf Ihren internen DNS-Servern, sodass sie auf die neue AWS-Installation verweisen. | Migrationsarchitekt, Lösungsarchitekt, Anwendungseigentümer, Oracle BI-Administrator | 
| Überwachen Sie die neue Umgebung. | Überwachen Sie die neue Oracle BI 12c-Umgebung mit einem der folgenden Tools:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Oracle BI-Administrator, Datenbankingenieur/Administrator, Anwendungsadministrator | 
| Holen Sie sich die Genehmigung für das Projekt. | Überprüfen Sie die Testergebnisse mit den Beteiligten und holen Sie die erforderlichen Genehmigungen ein, um die Migration abzuschließen. | Anwendungsinhaber, Serviceinhaber, Cloud-Infrastrukturarchitekt, Migrationsarchitekt, Oracle BI Architect | 

## Zugehörige Ressourcen
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-resources"></a>
+ [Verwenden des Oracle Repository Creation Utility auf RDS für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Resources.RCU.html) (*Amazon RDS-Benutzerhandbuch*)
+ [Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) (*Amazon RDS-Benutzerhandbuch*)
+ [Oracle WebLogic Server 12c auf AWS (AWS-Whitepaper](https://d1.awsstatic.com/whitepapers/Oracle-WebLogic-12c-on-AWS.pdf))
+ [Bereitstellung von Oracle Business Intelligence für hohe Verfügbarkeit](https://docs.oracle.com/middleware/1221/biee/BIESG/highavail.htm#BIESG1584) (Oracle Help Center)
+ [Oracle Business Intelligence Application Archive (BAR) -Dateien](https://docs.oracle.com/middleware/bi12214/biee/BIESG/GUID-7FCD90A3-E005-49BF-902F-30FBF9B41B07.htm#BIESG2889) (Oracle Help Center)
+ [So migrieren Sie OBI 12c zwischen Umgebungen](https://support.oracle.com/knowledge/Enterprise%20Performance%20Management%20and%20Business%20Intelligence/2203360_1.html) (Oracle Support) 

## Zusätzliche Informationen
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-additional"></a>

Im Folgenden finden Sie eine Liste von Best Practices im Zusammenhang mit der Migration von Oracle BI 12c zur AWS-Cloud.

**Repository-Datenbanken**

Es hat sich bewährt, Oracle BI 12c-Datenbankschemas auf einer Amazon RDS for Oracle Oracle-Instance zu hosten. Dieser Instance-Typ bietet kosteneffiziente und anpassbare Kapazität und automatisiert gleichzeitig Verwaltungsaufgaben wie Hardwarebereitstellung, Datenbankeinrichtung, Patching und Backups.

Weitere Informationen finden Sie unter [Using the Oracle Repository Creation Utility on RDS for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Resources.RCU.html) im *Amazon RDS-Benutzerhandbuch*.

**Web- und Anwendungsebenen**

[Speicheroptimierte EC2 Amazon-Instances](https://aws.amazon.com/ec2/instance-types/) eignen sich häufig gut für Oracle BI 12c-Server. Für welchen Instance-Typ Sie sich auch entscheiden, stellen Sie sicher, dass die von Ihnen bereitgestellten Instances die Anforderungen an die Speichernutzung Ihres Systems erfüllen. Stellen Sie außerdem sicher, dass Sie [eine ausreichende Heap-Größe für WebLogic Java Virtual Machine (JVM) auf der Grundlage des verfügbaren Speichers Ihrer EC2 Amazon-Instance konfigurieren](https://docs.oracle.com/cd/E49933_01/server.770/es_install/src/tins_postinstall_jvm_heap.html#:~:text=The%20default%20JVM%20heap%20size%20for%20WebLogic%20is%203GB.,file%20for%20Linux%20or%20setDomainEnv.).

**Lokaler Speicher**

I/O spielt eine wichtige Rolle für die Gesamtleistung Ihrer Oracle BI 12c-Anwendung. Amazon Elastic Block Store (Amazon EBS) bietet verschiedene Speicherklassen, die für unterschiedliche Workload-Muster optimiert sind. Stellen Sie sicher, dass Sie einen Amazon EBS-Volumetyp wählen, der zu Ihrem Anwendungsfall passt.

Weitere Informationen zu EBS-Volumetypen finden Sie unter [Amazon EBS-Funktionen](https://aws.amazon.com/ebs/features/) in der Amazon EBS-Dokumentation.

**Gemeinsamer Speicher**

Eine geclusterte Oracle BI 12c-Domain benötigt gemeinsam genutzten Speicher für die folgenden Ressourcen:
+ Konfigurationsdateien
+ Oracle BI 12c Singleton Data Directory (SDD)
+ Globaler Oracle-Cache
+ Oracle BI Scheduler-Skripts
+ Oracle WebLogic Server-Binärdateien

Sie können diese Anforderungen an gemeinsam genutzten Speicher erfüllen, indem Sie [Amazon EFS](https://aws.amazon.com/efs/) verwenden, das ein skalierbares, vollständig verwaltetes elastisches Network File System (NFS) -Dateisystem bietet.

*Feinabstimmung der Leistung von gemeinsam genutztem Speicher*

Amazon EFS hat zwei [Durchsatzmodi](https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes): **Bereitgestellt und** **Bursting**. Der Service verfügt außerdem über zwei [Leistungsmodi](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes): **General Purpose** und **Max I/O.**

Um die Leistung zu optimieren, testen Sie zunächst Ihre Workloads im **allgemeinen** Leistungsmodus und im **Bereitstellungsdurchsatzmodus**. Mithilfe dieser Tests können Sie feststellen, ob diese Basismodi ausreichen, um Ihre gewünschten Service Levels zu erreichen.

Weitere Informationen finden Sie unter [Amazon EFS-Leistung](https://docs.aws.amazon.com/efs/latest/ug/performance.html) im *Amazon EFS-Benutzerhandbuch*.

**Verfügbarkeit und Notfallwiederherstellung**

Es hat sich bewährt, Oracle BI 12c-Komponenten in mehreren Availability Zones bereitzustellen, um diese Ressourcen im Falle eines Ausfalls der Availability Zone zu schützen. Im Folgenden finden Sie eine Liste der bewährten Methoden zur Verfügbarkeit und Notfallwiederherstellung für bestimmte Oracle BI 12c-Ressourcen, die in der AWS-Cloud gehostet werden:
+ **Oracle BI 12c-Repository-Datenbanken**: Stellen Sie eine Multi-AZ-Amazon RDS-Datenbank-Instance in Ihrer Oracle BI 12c-Repository-Datenbank bereit. In einer Multi-AZ-Bereitstellung stellt Amazon RDS automatisch ein synchrones Standby-Replikat in einer anderen AZ bereit und verwaltet es. Der Betrieb einer Oracle BI 12c-Repository-Datenbank-Instance in verschiedenen Availability Zones kann die Verfügbarkeit während der geplanten Systemwartung verbessern und Ihre Datenbanken vor Instance- und Availability Zone-Ausfällen schützen.
+ **Oracle BI 12c Managed Servers**: Um Fehlertoleranz zu erreichen, ist es eine bewährte Methode, Oracle BI 12c-Systemkomponenten auf verwalteten Servern in einer Amazon EC2 Auto Scaling Scaling-Gruppe bereitzustellen, die so konfiguriert ist, dass sie sich über mehrere Availability Zones erstreckt. Auto Scaling ersetzt fehlerhafte Instances auf der Grundlage von [Amazon EC2 Health Checks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html). Im Falle eines Ausfalls der Availability Zone leiten die Oracle HTTP-Server weiterhin den Datenverkehr an die verwalteten Server in der funktionierenden Availability Zone weiter. Anschließend startet Auto Scaling Instances, um mit Ihren Anforderungen an die Hostanzahl Schritt zu halten. Es wird empfohlen, die HTTP-Sitzungsstatusreplikation zu aktivieren, um sicherzustellen, dass ein reibungsloser Failover der vorhandenen Sitzungen auf die funktionierenden Managed Server erfolgt.
+ **Oracle BI 12c-Administrationsserver:** Um sicherzustellen, dass Ihr Administrationsserver hochverfügbar ist, hosten Sie ihn in einer Amazon EC2 Auto Scaling Scaling-Gruppe, die so konfiguriert ist, dass sie sich über mehrere Availability Zones erstreckt. Stellen Sie dann die Mindest- und Maximalgröße der Gruppe auf **1** ein. Wenn ein Availability Zone-Fehler auftritt, startet Amazon EC2 Auto Scaling einen Ersatz-Administrationsserver in einer alternativen Availability Zone. Um alle ausgefallenen zugrunde liegenden Hosts innerhalb derselben Availability Zone wiederherzustellen, können Sie [Amazon EC2 Auto Recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) aktivieren.
+ **Oracle Web Tier-Server:** Es hat sich bewährt, Ihren Oracle HTTP Server mit Ihrer Oracle WebLogic Server-Domain zu verknüpfen. Für eine hohe Verfügbarkeit stellen Sie Ihren Oracle HTTP-Server in einer Amazon EC2 Auto Scaling Scaling-Gruppe bereit, die so konfiguriert ist, dass sie mehrere Availability Zones bereitstellt. Platzieren Sie den Server anschließend hinter einem ELB Elastic Load Balancer. Um zusätzlichen Schutz vor Hostausfällen zu bieten, können Sie Amazon EC2 Auto Recovery aktivieren.

**Skalierbarkeit**

Die Elastizität der AWS-Cloud hilft Ihnen dabei, Anwendungen je nach Workload-Anforderungen horizontal oder vertikal zu skalieren.

*Vertikale Skalierung*

Um Ihre Anwendung vertikal zu skalieren, können Sie die Größe und den Typ der EC2 Amazon-Instances ändern, auf denen Ihre Oracle BI 12c-Komponenten ausgeführt werden. Sie müssen zu Beginn Ihrer Bereitstellung nicht zu viele Instances bereitstellen und es entstehen keine unnötigen Kosten. 

*Horizontale Skalierung*

Amazon EC2 Auto Scaling hilft Ihnen dabei, Ihre Anwendung horizontal zu skalieren, indem verwaltete Server je nach Arbeitslastanforderungen automatisch hinzugefügt oder entfernt werden.

**Anmerkung**  
Für die horizontale Skalierung mit Amazon EC2 Auto Scaling sind Skriptkenntnisse und gründliche Tests für die Implementierung erforderlich.

**Backup und Wiederherstellung**

Im Folgenden finden Sie eine Liste der bewährten Methoden zur Sicherung und Wiederherstellung für bestimmte Oracle BI 12c-Ressourcen, die in der AWS-Cloud gehostet werden:
+ **Oracle Business Intelligence-Metadaten-Repositorys:** Amazon RDS erstellt und speichert automatisch Backups Ihrer Datenbank-Instances. Diese Backups werden für einen von Ihnen angegebenen Zeitraum aufbewahrt. Stellen Sie sicher, dass Sie Ihre Amazon RDS-Backupdauer und Aufbewahrungseinstellungen entsprechend Ihren Datenschutzanforderungen konfigurieren. Weitere Informationen finden Sie unter [Amazon-RDS-Backup und -Wiederherstellung](https://aws.amazon.com/rds/features/backup/).
+ **Verwaltete Server, Administrationsserver und Web-Tier-Server:** Stellen Sie sicher, dass Sie [Amazon EBS-Snapshots entsprechend](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html) Ihren Datenschutz- und Aufbewahrungsanforderungen konfigurieren.
+ **Gemeinsamer Speicher:** Sie können die Sicherung und Wiederherstellung von in Amazon EFS gespeicherten Dateien mithilfe von [AWS Backup](https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html) verwalten. Der AWS-Backup-Service kann auch zur zentralen Verwaltung der Sicherung und Wiederherstellung anderer Services wie Amazon EC2, Amazon EBS und Amazon RDS eingesetzt werden. Weitere Informationen finden Sie unter [Was ist AWS Backup?](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) Im *AWS Backup Developer Guide*.

**Sicherheit und Einhaltung von Vorschriften**

Im Folgenden finden Sie eine Liste mit bewährten Sicherheitsmethoden und AWS-Services, mit denen Sie Ihre Oracle BI 12c-Anwendungen in der AWS-Cloud schützen können:
+ **Verschlüsselung im Ruhezustand:** Amazon RDS, Amazon EFS und Amazon EBS unterstützen alle branchenübliche Verschlüsselungsalgorithmen. Sie können den [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) verwenden, um kryptografische Schlüssel zu erstellen und zu verwalten und deren Verwendung in allen AWS-Services und in Ihren Anwendungen zu kontrollieren. Sie können [Oracle Transparent Data Encryption (TDE)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.AdvSecurity.html) auch auf der Amazon RDS for Oracle Oracle-Datenbank-Instance konfigurieren, die Ihre Oracle BI 12c-Repository-Datenbank hostet.
+ **Verschlüsselung bei der Übertragung:** Es hat sich bewährt, entweder das SSL- oder das TLS-Protokoll zu aktivieren, um Daten zu schützen, die zwischen den verschiedenen Ebenen Ihrer Oracle BI 12c-Installation übertragen werden. Sie können [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) verwenden, um öffentliche und private SSL- und TLS-Zertifikate für Ihre Oracle BI 12c-Ressourcen bereitzustellen, zu verwalten und bereitzustellen.
+ **Netzwerksicherheit**: Stellen Sie sicher, dass Sie Ihre Oracle BI 12c-Ressourcen in einer Amazon VPC bereitstellen, für die die entsprechenden Zugriffskontrollen für Ihren Anwendungsfall konfiguriert sind. Konfigurieren Sie Ihre Sicherheitsgruppen so, dass eingehender und ausgehender Datenverkehr von den EC2 Amazon-Instances gefiltert wird, auf denen Ihre Installation ausgeführt wird. Stellen Sie außerdem sicher, dass Sie [Netzwerkzugriffskontrolllisten (NACLs)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) konfigurieren, die Datenverkehr auf der Grundlage definierter Regeln zulassen oder verweigern.
+ **Überwachung und Protokollierung**: Sie können [AWS](https://aws.amazon.com/cloudtrail/) verwenden CloudTrail, um API-Aufrufe an Ihre AWS-Infrastruktur, einschließlich Ihrer Oracle BI 12c-Ressourcen, zu verfolgen. Diese Funktion ist nützlich, wenn Sie Änderungen an der Infrastruktur verfolgen oder eine Sicherheitsanalyse durchführen möchten. Sie können [Amazon](https://aws.amazon.com/cloudwatch/) auch verwenden CloudWatch, um Betriebsdaten einzusehen, die Ihnen verwertbare Einblicke in die Leistung und den Zustand Ihrer Oracle BI 12c-Anwendung bieten können. Sie können auch Alarme konfigurieren und automatisierte Maßnahmen auf der Grundlage dieser Alarme ergreifen. Amazon RDS bietet zusätzliche Überwachungstools, darunter [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) und [Performance Insights](https://aws.amazon.com/rds/performance-insights/).

# Migrieren Sie einen ELK-Stack zu Elastic Cloud auf AWS
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws"></a>

*Battulga Purevragchaa und Antony Prasad Thevaraj, Amazon Web Services*

*Ruday Reddy, Keiner*

## Zusammenfassung
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-summary"></a>

[Elastic](https://www.elastic.co/) bietet seit vielen Jahren Dienstleistungen an, wobei Benutzer und Kunden Elastic in der Regel selbst vor Ort verwalten. [Elastic Cloud](https://www.elastic.co/cloud)[, der verwaltete [Elasticsearch-Service](https://www.elastic.co/elasticsearch/service), bietet eine Möglichkeit, den Elastic Stack (ELK Stack) und Lösungen für [Unternehmenssuche](https://www.elastic.co/enterprise-search), [Observability](https://www.elastic.co/observability) und Sicherheit zu nutzen.](https://www.elastic.co/security) Sie können mit Apps wie Logs, Metrics, APM (Application Performance Monitoring) und SIEM (Security Information and Event Management) auf Elastic-Lösungen zugreifen. Sie können integrierte Funktionen wie maschinelles Lernen, Index-Lifecycle-Management und Kibana Lens (für Drag-and-Drop-Visualisierungen) verwenden.

Wenn Sie von selbstverwaltetem Elasticsearch zu Elastic Cloud wechseln, kümmert sich der Elasticsearch-Service um Folgendes:
+ Bereitstellung und Verwaltung der zugrunde liegenden Infrastruktur
+ Elasticsearch-Cluster erstellen und verwalten
+ Cluster nach oben und unten skalieren
+ Upgrades, Patches und Erstellen von Snapshots

So haben Sie mehr Zeit, sich auf die Lösung anderer Herausforderungen zu konzentrieren.

Dieses Muster definiert, wie Elasticsearch 7.13 vor Ort zu Elasticsearch auf Elastic Cloud auf Amazon Web Services (AWS) migriert wird. Andere Versionen erfordern möglicherweise geringfügige Änderungen an den in diesem Muster beschriebenen Prozessen. Für weitere Informationen wenden Sie sich an Ihren Elastic-Ansprechpartner.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-prereqs"></a>

**Voraussetzungen**
+ Ein aktives [AWS-Konto](https://aws.amazon.com/account/) mit Zugriff auf [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3) für Snapshots
+ Ein sicherer [privater Link](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html) mit ausreichend hoher Bandbreite zum Kopieren von Snapshot-Datendateien nach Amazon S3
+ [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/)
+ [Elastic Snapshot-Richtlinien](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/getting-started-snapshot-lifecycle-management.html), um sicherzustellen, dass die Datenaufnahme regelmäßig archiviert wird, entweder in einem ausreichend großen lokalen Datenspeicher oder in einem Remotespeicher (Amazon S3)

Bevor Sie mit der Migration beginnen, müssen Sie wissen, wie umfangreich Ihre Snapshots und [die Lebenszyklusrichtlinien](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html) für die zugehörigen Indizes vor Ort sind. [Für weitere Informationen wenden Sie sich an Elastic.](https://www.elastic.co/contact)

**Rollen und Fähigkeiten**

Für den Migrationsprozess sind außerdem die in der folgenden Tabelle beschriebenen Rollen und Fachkenntnisse erforderlich.


| 
| 
| Rolle | Kompetenz | Verantwortlichkeiten | 
| --- |--- |--- |
| App-Unterstützung | Vertrautheit mit Elastic Cloud und Elastic vor Ort | Alle Aufgaben im Zusammenhang mit Elastic | 
| Systemadministrator oder DBA | Umfassende Kenntnisse der lokalen Elastic-Umgebung und ihrer Konfiguration | Die Fähigkeit, Speicher bereitzustellen, die AWS-Befehlszeilenschnittstelle (AWS CLI) zu installieren und zu verwenden und alle Datenquellen zu identifizieren, die Elastic vor Ort versorgen | 
| Netzwerkadministrator | Kenntnisse der Netzwerkkonnektivität, Sicherheit und Leistung von lokalen zu AWS-Netzwerken | Einrichtung von Netzwerkverbindungen von lokalen Standorten zu Amazon S3 mit Kenntnis der Verbindungsbandbreite | 

**Einschränkungen**
+ Elasticsearch auf Elastic Cloud ist nur in [unterstützten AWS-Regionen verfügbar (September 2021)](https://www.elastic.co/guide/en/cloud/current/ec-regions-templates-instances.html#ec-aws_regions).

**Produktversionen**
+ Elasticsearch 7.13

## Architektur
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-architecture"></a>

**Quelltechnologie-Stack**

Lokales Elasticsearch 7.13 oder höher:
+ Cluster-Snapshots
+ Schnappschüsse indizieren
+ [Beats-Konfiguration](https://www.elastic.co/beats/)

**Architektur der Quelltechnologie**

Das folgende Diagramm zeigt eine typische lokale Architektur mit unterschiedlichen Aufnahmemethoden, Knotentypen und Kibana. Die verschiedenen Knotentypen spiegeln die Elasticsearch-Cluster-, Authentifizierungs- und Visualisierungsrollen wider.

![\[Achtstufiger Prozess, einschließlich Beats, Logstash, Elasticsearch und Kibana.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/23d1b437-22ff-420e-80ac-834f1116d234/images/937c4d22-429f-4673-86df-ae491d68389c.png)


1. Aufnahme von Beats zu Logstash

1. Aufnahme von Beats in die Apache Kafka-Messaging-Warteschlange

1. Aufnahme von Filebeat nach Logstash

1. Aufnahme aus der Apache Kafka-Messaging-Warteschlange nach Logstash

1. Aufnahme von Logstash in einen Elasticsearch-Cluster

1. Elasticsearch-Cluster

1. Authentifizierungs- und Benachrichtigungsknoten

1. Kibana- und Blob-Knoten

**Zieltechnologie-Stack**

Elastic Cloud wird auf Ihrem SaaS-Konto (Software as a Service) in mehreren AWS-Regionen mit clusterübergreifender Replikation bereitgestellt.
+ Cluster-Snapshots
+ Index-Snapshots
+ Beats-Konfigurationen
+ Elastische Cloud
+ Network Load Balancer
+ Amazon Route 53
+ Amazon S3

**Zielarchitektur**

![\[Route 53 53-Endpunkte leiten den Datenverkehr an Multi-AZ-Umgebungen in zwei verschiedenen Regionen weiter.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/23d1b437-22ff-420e-80ac-834f1116d234/images/16cbac49-0adb-4469-b546-ae4b1ca35357.png)


 

Die verwaltete Elastic Cloud-Infrastruktur ist:
+ Hochverfügbar, in mehreren [Availability Zones](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) und mehreren AWS-Regionen präsent.
+ Region ist ausfalltolerant, da Daten (Indizes und Snapshots) mithilfe der [Cluster-übergreifenden](https://www.elastic.co/guide/en/elasticsearch/reference/7.14/xpack-ccr.html) Replikation (CCR) von Elastic Cloud repliziert werden
+ [Archivierung, da Snapshots in Amazon S3 archiviert werden](https://aws.amazon.com/s3/?p=pm&c=s3&z=4)
+ Netzwerkpartitionstolerant durch eine Kombination aus [Network Load Balancers](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/) und [Route 53](https://aws.amazon.com/route53/)
+ [https://www.elastic.co/beats/](https://www.elastic.co/beats/)

**Migrationsschritte auf hoher Ebene**

Elastic hat eine eigene präskriptive Methode für die Migration von lokalen Elastic Clustern zu Elastic Cloud entwickelt. Die Elastic-Methodik ist direkt auf die AWS-Migrationsleitlinien und Best Practices abgestimmt und ergänzt diese, darunter das [Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc) und das [AWS Migration Acceleration Program](https://aws.amazon.com/migration-acceleration-program/) (MAP). In der Regel sind die drei AWS-Migrationsphasen die folgenden:
+ Bewerten
+ Mobilisieren
+ Migrieren und modernisieren

Elastic folgt ähnlichen Migrationsphasen mit ergänzender Terminologie:
+ Initiieren
+ Plan
+ Implementieren
+ Liefern
+ Schließen

Elastic verwendet die Elastic Implementation Methodology, um die Bereitstellung von Projektergebnissen zu erleichtern. Dies ist von Haus aus inklusiv, um sicherzustellen, dass Elastic, die Beratungsteams und die Kundenteams klar zusammenarbeiten, um gemeinsam die angestrebten Ergebnisse zu erzielen.

Die Elastic-Methode kombiniert traditionelle Wasserfall-Phasen mit Scrum innerhalb der Implementierungsphase. Konfigurationen der technischen Anforderungen werden iterativ auf kollaborative Weise bereitgestellt, wobei das Risiko minimiert wird.

![\[Diagramm, das die fünf Stufen der Elastic Implementation Methodology zeigt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/23d1b437-22ff-420e-80ac-834f1116d234/images/b041c61d-980e-49a0-a721-791c20edde64.png)


 

## Tools
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-tools"></a>

**AWS-Services**
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) — Amazon Route 53 ist ein hochverfügbarer und skalierbarer Domain Name System (DNS) -Webservice. Sie können Route 53 zum Durchführen von drei wesentlichen Aufgaben in beliebiger Kombination verwenden: Domänenregistrierung, DNS-Routing und Zustandsprüfung.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice. Mit Amazon S3 können Sie jederzeit beliebige Mengen von Daten von überall aus im Internet speichern und aufrufen. Dieses Muster verwendet einen S3-Bucket und [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration-examples.html).
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) — Elastic Load Balancing verteilt Ihren eingehenden Traffic automatisch auf mehrere Ziele wie EC2 Instances, Container und IP-Adressen in einer oder mehreren Availability Zones.

**Andere Tools**
+ [Beats](https://www.elastic.co/beats/) — Beats versendet Daten von Logstash oder Elasticsearch
+ [Elastic Cloud](https://www.elastic.co/cloud/) — Elastic Cloud ist ein verwalteter Dienst für das Hosten von Elasticsearch.
+ [Elasticsearch](https://www.elastic.co/elasticsearch/) — Elasticsearch ist eine Such- und Analyse-Engine, die den Elastic Stack verwendet, um Ihre Daten für skalierbare Such- und Analysezwecke zentral zu speichern. Dieses Muster verwendet auch die Erstellung von Snapshots und die clusterübergreifende Replikation.
+ [Logstash](https://www.elastic.co/logstash/) — Logstash ist eine serverseitige Datenverarbeitungspipeline, die Daten aus mehreren Quellen aufnimmt, transformiert und dann an Ihren Datenspeicher sendet.

## Epen
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-epics"></a>

### Bereiten Sie die Migration vor
<a name="prepare-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie Server, auf denen die lokale Elastic-Lösung ausgeführt wird. | Vergewissern Sie sich, dass die Elastic-Migration unterstützt wird. | Besitzer der App | 
| Machen Sie sich mit der lokalen Serverkonfiguration vertraut. | Um die Serverkonfiguration zu verstehen, die für die erfolgreiche Ausführung von Workloads vor Ort erforderlich ist, sollten Sie den Platzbedarf der Serverhardware, die Netzwerkkonfiguration und die Speichereigenschaften ermitteln, die derzeit verwendet werden | App-Unterstützung | 
| Sammeln Sie Benutzer- und App-Kontoinformationen. | Identifizieren Sie die Benutzernamen und App-Namen, die von der lokalen Elastic-Umgebung verwendet werden. | Systemadministrator, App-Support | 
| Dokumentieren Sie die Konfiguration von Beats und Data Shipper. | Um die Konfigurationen zu dokumentieren, schauen Sie sich die vorhandenen Datenquellen und Datenquellen an. Weitere Informationen finden Sie in der [Elastic-Dokumentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html). | App-Unterstützung | 
| Ermitteln Sie die Geschwindigkeit und das Datenvolumen. | Legen Sie eine Ausgangsbasis dafür fest, wie viele Daten der Cluster verarbeitet. | Systemadministrator, App-Support | 
| Dokumentieren Sie RPO- und RTO-Szenarien. | Dokumentieren Sie Szenarien mit Recovery Point Objective (RPO) und Recovery Time Objective (RTO) in Form von Ausfällen und Service Level Agreements (). SLAs | App-Besitzer, Systemadministrator, App-Support | 
| Ermitteln Sie die optimalen Einstellungen für den Snapshot-Lebenszyklus. | Definieren Sie, wie oft Daten *während und nach* der Migration mithilfe von Elastic-Snapshots gesichert werden müssen. | App-Besitzer, Systemadministrator, App-Support | 
| Definieren Sie die Leistungserwartungen nach der Migration. | Generieren Sie Messwerte zur aktuellen und zu erwartenden Bildschirmaktualisierung, zu Abfragelaufzeiten und zum Verhalten der Benutzeroberfläche. | Systemadministrator, App-Support | 
| Dokumentieren Sie die Transport-, Bandbreiten- und Verfügbarkeitsanforderungen für den Internetzugang. | Stellen Sie die Geschwindigkeit, Latenz und Stabilität der Internetverbindungen für das Kopieren von Snapshots nach Amazon S3 fest. | Netzwerkadministrator | 
| Dokumentieren Sie die aktuellen Kosten der lokalen Laufzeit für Elastic. | Stellen Sie sicher, dass die Größe der AWS-Zielumgebung so konzipiert ist, dass sie sowohl leistungsstark als auch kostengünstig ist. | DBA, Systemadministrator, App-Support | 
| Identifizieren Sie die Authentifizierungs- und Autorisierungsanforderungen. | Die Sicherheitsfunktionen von Elastic Stack bieten integrierte Realms wie Lightweight Directory Access Protocol (LDAP), Security Assertion Markup Language (SAML) und OpenID Connect (OIDC). | DBA, Systemadministrator, Anwendungsunterstützung | 
| Verstehen Sie die spezifischen regulatorischen Anforderungen je nach geografischem Standort. | Stellen Sie sicher, dass Daten gemäß Ihren Anforderungen und allen relevanten nationalen Anforderungen exportiert und verschlüsselt werden. | DBA, Systemadministrator, App-Support | 

### Implementieren Sie die Migration
<a name="implement-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie den Staging-Bereich auf Amazon S3 vor.  | Um Snapshots auf Amazon S3 zu erhalten, [erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) und eine temporäre AWS Identity and Access Management (IAM) -Rolle mit vollem Zugriff auf Ihren neu erstellten Bucket. Weitere Informationen finden Sie unter [Eine Rolle erstellen, um Berechtigungen an einen IAM-Benutzer zu delegieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Verwenden Sie den AWS Security Token Service, um [temporäre Sicherheitsnachweise anzufordern](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html). Bewahren Sie die Zugriffsschlüssel-ID, den geheimen Zugriffsschlüssel und das Sitzungstoken sicher auf.Aktivieren Sie [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration-examples.html) für den Bucket. | AWS-Administrator | 
| Installieren Sie AWS CLI und das Amazon S3 S3-Plugin vor Ort. | Führen Sie auf jedem Elasticsearch-Knoten den folgenden Befehl aus.<pre>sudo bin/elasticsearch-plugin install repository-s3</pre>Starten Sie dann den Knoten neu. | AWS-Administrator | 
| Konfigurieren Sie den Amazon S3 S3-Client-Zugriff. | Fügen Sie die zuvor erstellten Schlüssel hinzu, indem Sie die folgenden Befehle ausführen.<pre>elasticsearch-keystore add s3.client.default.access_key</pre><pre>elasticsearch-keystore add s3.client.default.secret_key</pre><pre>elasticsearch-keystore add s3.client.default.session_token</pre> | AWS-Administrator | 
| Registrieren Sie ein Snapshot-Repository für Elastic-Daten | Verwenden Sie die [Kibana Dev Tools](https://www.elastic.co/guide/en/kibana/current/console-kibana.html), um dem lokalen lokalen Cluster mitzuteilen, in welchen Remote-S3-Bucket geschrieben werden soll. | AWS-Administrator | 
| Konfigurieren Sie die Snapshot-Richtlinie. | Um das Snapshot-Lebenszyklusmanagement zu konfigurieren, wählen Sie auf der Registerkarte **Kibana-Richtlinien** die Option **SLM-Richtlinie** aus und definieren Sie, welche Zeiten, Datenströme oder Indizes enthalten sein sollen und welche Namen verwendet werden sollen.Konfigurieren Sie eine Richtlinie, die häufig Snapshots erstellt. Snapshots sind inkrementell und nutzen den Speicherplatz effizient. Passen Sie Ihre Entscheidung bei der Eignungsbeurteilung an. Eine Richtlinie kann auch eine [Aufbewahrungsrichtlinie](https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-retention.html) festlegen und Snapshots automatisch löschen, wenn sie nicht mehr benötigt werden. | Unterstützung für Apps | 
| Stellen Sie sicher, dass Snapshots funktionieren. | Führen Sie in Kibana Dev Tools den folgenden Befehl aus.<pre>GET _snapshot/<your_repo_name>/_all</pre> | AWS-Administrator, Anwendungssupport,  | 
| Stellen Sie einen neuen Cluster auf Elastic Cloud bereit.  | [Melden Sie sich bei Elastic an](https://cloud.elastic.co/login?redirectTo=%2Fhome) und wählen Sie einen Cluster für „Observability, Search oder Security“ aus, der sich aus Ihren Geschäftsergebnissen im Readiness Assessment ergibt. | AWS-Administrator, Anwendungssupport | 
| Richten Sie den Zugriff auf den Cluster-Schlüsselspeicher ein. | Der neue Cluster benötigt Zugriff auf den S3-Bucket, in dem die Snapshots gespeichert werden. Wählen Sie in der Elasticsearch Service Console **Sicherheit** und geben Sie die Zugriffs- und geheimen IAM-Schlüssel ein, die Sie zuvor erstellt haben. | AWS-Administrator | 
| Konfigurieren Sie den von Elastic Cloud gehosteten Cluster für den Zugriff auf Amazon S3. | Richten Sie einen neuen Cluster-Zugriff auf das zuvor erstellte Snapshot-Repository in Amazon S3 ein. Gehen Sie mit Kibana wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-elk-stack-to-elastic-cloud-on-aws.html) | AWS-Administrator, Anwendungssupport | 
| Überprüfen Sie das neue Amazon S3 S3-Repository. | Stellen Sie sicher, dass Sie auf Ihr neues Repository zugreifen können, das im Elastic Cloud-Cluster gehostet wird. | AWS-Administrator | 
| Initialisieren Sie den Elasticsearch-Servicecluster. | Initialisieren Sie in der Elasticsearch Service Console den Elasticsearch-Servicecluster aus dem S3-Snapshot.Führen Sie die folgenden Befehle als POST aus.<pre>*/_close?expand_wildcards=all</pre><pre>/_snapshot/<your-repo-name>/  <your-snapshot-name>/_restore</pre><pre>*/_open?expand_wildcards=all</pre> | App-Unterstützung | 

### Schließen Sie die Migration ab
<a name="complete-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie sicher, dass die Snapshot-Wiederherstellung erfolgreich war. | Führen Sie mit den Kibana Dev Tools den folgenden Befehl aus.<pre>GET _cat/indices</pre> | App-Unterstützung | 
| Stellen Sie die Aufnahmedienste erneut bereit. | Connect die Endpunkte für Beats und Logstash mit dem neuen Elasticsearch-Serviceendpunkt. | Unterstützung für Apps | 

### Testen Sie die Cluster-Umgebung und bereinigen Sie
<a name="test-the-cluster-environment-and-clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Cluster-Umgebung. | Nachdem die lokale Elastic-Cluster-Umgebung zu AWS migriert wurde, können Sie eine Verbindung zu ihr herstellen und Ihre eigenen UAT-Tools (User Acceptance Testing) verwenden, um die neue Umgebung zu validieren. | Unterstützung für Apps | 
| Säubere die Ressourcen. | Nachdem Sie überprüft haben, dass der Cluster erfolgreich migriert wurde, entfernen Sie den S3-Bucket und die für die Migration verwendete IAM-Rolle. | AWS-Administrator | 

## Zugehörige Ressourcen
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-resources"></a>

**Elastische Referenzen**
+ [Elastische Cloud](https://www.elastic.co/cloud/)
+ [Verwaltetes Elasticsearch und Kibana auf AWS](https://www.elastic.co/elasticsearch/service)
+ [Elastische Unternehmenssuche](https://www.elastic.co/enterprise-search)
+ [Elastische Integrationen](https://www.elastic.co/integrations?search=amazon)
+ [Elastische Beobachtbarkeit](https://www.elastic.co/observability)
+ [Elastische Sicherheit](https://www.elastic.co/security)
+ [Beats](https://www.elastic.co/beats/)
+ [Elastisches APM](https://www.elastic.co/apm/)
+ [Wechseln Sie zum Index-Lifecycle-Management](https://www.elastic.co/guide/en/cloud-enterprise/current/ece-migrate-index-management.html)
+ [Elastische Abonnements](https://www.elastic.co/subscriptions)
+ [Kontaktieren Sie Elastic](https://www.elastic.co/contact)

*Blogbeiträge von Elastic*
+ [So migrieren Sie von selbstverwaltetem Elasticsearch zu Elastic Cloud on AWS](https://www.elastic.co/blog/how-to-migrate-from-self-managed-elasticsearch-to-elastic-cloud-on-aws) (Blogbeitrag)
+ [Migration zu Elastic Cloud (Blogbeitrag](https://www.elastic.co/blog/migrating-to-elastic-cloud))

*Elastische Dokumentation*
+ [Tutorial: Automatisieren Sie Backups mit SLM](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/getting-started-snapshot-lifecycle-management.html)
+ [ILM: Verwalten Sie den Index-Lebenszyklus](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html)
+ [Logstash](https://www.elastic.co/guide/en/logstash/current/index.html)
+ [Clusterübergreifende Replikation (CCR)](https://www.elastic.co/guide/en/elasticsearch/reference/7.14/xpack-ccr.html)
+ [Pipelines aufnehmen](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html)
+ [Elasticsearch-API-Anfragen ausführen](https://www.elastic.co/guide/en/kibana/current/console-kibana.html)
+ [Snapshot-Aufbewahrung](https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-retention.html)

*Elastic-Video und Webinar*
+ [Elastische Cloud-Migration](https://www.youtube.com/watch?v=WbPJi-APZ_Q)
+ [Elastic Cloud: Warum migrieren Kunden](https://www.elastic.co/webinars/elastic-cloud-why-customers-are-migrating-now) (Webinar)

**AWS-Referenzen**
+ [Elastic Cloud auf dem AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=d8f59038-c24c-4a9d-a66d-6711d35d7305)
+ [AWS-Befehlszeilenschnittstelle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setup-aws-cli.html)
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/)
+ [AWS Migration Acceleration Program](https://aws.amazon.com/migration-acceleration-program/)
+ [Network Load Balancers](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/)
+ [Regionen und Availability Zones](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)
+ [Amazon Route 53](https://aws.amazon.com/route53/)
+ [Amazon Simple Storage Service](https://aws.amazon.com/s3/)
+ [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/)
+ [VPN-Verbindungen](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)
+ [Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc)

## Zusätzliche Informationen
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-additional"></a>

Wenn Sie planen, komplexe Workloads zu migrieren, wenden Sie sich an [Elastic](https://www.elastic.co/consulting/engage) Consulting Services. Wenn Sie grundlegende Fragen zu Konfigurationen und Services haben, wenden Sie sich an das [Elastic Support-Team](mailto:support@elastic.co).

# Migrieren Sie Daten mithilfe AWS Cloud von Starburst auf
<a name="migrate-data-to-the-aws-cloud-by-using-starburst"></a>

*Antony Prasad Thevaraj und Suresh Veeragoni, Amazon Web Services*

*Shaun Van Staden, keiner*

## Zusammenfassung
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-summary"></a>

Starburst hilft Ihnen dabei, Ihre Datenmigration zu Amazon Web Services (AWS) zu beschleunigen, indem es eine Abfrage-Engine für Unternehmen bereitstellt, die bestehende Datenquellen in einem einzigen Zugriffspunkt zusammenführt. Sie können Analysen für mehrere Datenquellen durchführen, um wertvolle Erkenntnisse zu gewinnen, bevor Sie Migrationspläne fertigstellen. Ohne die business-as-usual Analytik zu unterbrechen, können Sie die Daten mithilfe der Starburst-Engine oder einer speziellen ETL-Anwendung (Extrahieren, Transformieren und Laden) migrieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Eine Virtual Private Cloud (VPC)
+ Ein Amazon Elastic Kubernetes Service (Amazon EKS) -Cluster
+ Eine Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling Scaling-Gruppe
+ Eine Liste der aktuellen System-Workloads, die migriert werden müssen
+ Netzwerkkonnektivität von AWS zu Ihrer lokalen Umgebung

## Architektur
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-architecture"></a>

**Referenzarchitektur**

Das folgende Architekturdiagramm auf hoher Ebene zeigt den typischen Einsatz von Starburst Enterprise in: AWS Cloud

1. Der Starburst Enterprise-Cluster läuft in Ihrem. AWS-Konto

1. Ein Benutzer authentifiziert sich mithilfe des Lightweight Directory Access Protocol (LDAP) oder Open Authorization (OAuth) und interagiert direkt mit dem Starburst-Cluster.

1. Starburst kann eine Verbindung zu verschiedenen AWS Datenquellen herstellen, z. B. AWS Glue Amazon Simple Storage Service (Amazon S3), Amazon Relational Database Service (Amazon RDS) und Amazon Redshift. Starburst bietet föderierte Abfragefunktionen für Datenquellen in der AWS Cloud, vor Ort oder in anderen Cloud-Umgebungen.

1. Sie starten Starburst Enterprise in einem Amazon EKS-Cluster mithilfe von Helm-Diagrammen.

1. Starburst Enterprise verwendet Amazon EC2 Auto Scaling Scaling-Gruppen und Amazon EC2 Spot-Instances, um die Infrastruktur zu optimieren.

1. Starburst Enterprise stellt eine direkte Verbindung zu Ihren vorhandenen lokalen Datenquellen her, um Daten in Echtzeit zu lesen. Wenn Sie eine bestehende Starburst Enterprise-Bereitstellung in dieser Umgebung haben, können Sie außerdem Ihren neuen Starburst-Cluster im direkt mit diesem vorhandenen Cluster verbinden. AWS Cloud 

![\[Hochrangiges Architekturdiagramm der Starburst Enterprise-Bereitstellung in der AWS-Cloud\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/12ae0463-9029-4a32-9d7b-70cdb5406fb0/images/e9975d3a-f75b-41a2-8c08-5b82539adf8c.png)


Beachten Sie bitte Folgendes:
+ Starburst ist keine Datenvirtualisierungsplattform. Es handelt sich um eine SQL-basierte MPP-Abfrage-Engine (Massively Parallel Processing), die die Grundlage einer umfassenden Data-Mesh-Strategie für Analysen bildet.
+ Wenn Starburst im Rahmen einer Migration bereitgestellt wird, ist es direkt mit der vorhandenen lokalen Infrastruktur verbunden.
+ Starburst bietet mehrere integrierte Unternehmens- und Open-Source-Konnektoren, die die Konnektivität zu einer Vielzahl von Altsystemen erleichtern. Eine vollständige Liste der Konnektoren und ihrer Funktionen finden Sie unter [Konnektoren](https://docs.starburst.io/latest/connector.html) im *Starburst Enterprise-Benutzerhandbuch*.
+ Starburst kann Daten in Echtzeit aus lokalen Datenquellen abfragen. Dies verhindert Unterbrechungen des regulären Geschäftsbetriebs während der Datenmigration.
+ Wenn Sie von einer bestehenden lokalen Starburst Enterprise-Bereitstellung migrieren, können Sie einen speziellen Konnektor, Starburst *Stargate, verwenden, um Ihren Starburst* Enterprise-Cluster direkt mit Ihrem lokalen Cluster zu verbinden. AWS Dies bietet zusätzliche Leistungsvorteile, wenn Geschäftsanwender und Datenanalysten Abfragen aus der Umgebung in Ihre lokale Umgebung zusammenführen. AWS Cloud 

**Allgemeiner Überblick über die Prozesse**

Mit Starburst können Sie Datenmigrationsprojekte beschleunigen, da Starburst Einblicke in all Ihre Daten ermöglicht, bevor Sie sie migrieren. Die folgende Abbildung zeigt den typischen Prozess für die Datenmigration mithilfe von Starburst.

![\[Prozessablauf für die Migration von Daten in die AWS-Cloud mithilfe von Starburst\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/12ae0463-9029-4a32-9d7b-70cdb5406fb0/images/e79b0084-7275-4824-8854-646236ec23dc.png)


**Rollen**

Die folgenden Rollen sind in der Regel erforderlich, um eine Migration mit Starburst abzuschließen:
+ **Cloud-Administrator** — Verantwortlich für die Bereitstellung von Cloud-Ressourcen für die Ausführung der Starburst Enterprise-Anwendung
+ **Starburst-Administrator** — Verantwortlich für die Installation, Konfiguration, Verwaltung und Unterstützung der Starburst-Anwendung
+ **Dateningenieur** — Verantwortlich für:
  + Migration der Altdaten in die Cloud
  + Erstellung semantischer Ansichten zur Unterstützung von Analysen
+ **Lösungs- oder Systemeigentümer** — Verantwortlich für die Implementierung der Gesamtlösung

## Tools
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ Mit [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) können Sie Kubernetes ausführen, AWS ohne dass Sie Ihre eigene Kubernetes-Steuerebene oder Knoten installieren oder verwalten müssen.

**Andere Tools**
+ [Helm — Helm](https://helm.sh/docs/) ist ein Paketmanager für Kubernetes, der Sie bei der Installation und Verwaltung von Anwendungen auf Ihrem Kubernetes-Cluster unterstützt.
+ [Starburst Enterprise](https://docs.starburst.io/latest/index.html) — Starburst Enterprise ist eine SQL-basierte MPP-Abfrage-Engine (Massively Parallel Processing), die die Grundlage einer umfassenden Data-Mesh-Strategie für Analysen bildet.
+ [Starburst Stargate](https://docs.starburst.io/latest/connector/starburst-stargate.html) — Starburst Stargate verknüpft Kataloge und Datenquellen in einer Starburst Enterprise-Umgebung, z. B. einen Cluster in einem lokalen Rechenzentrum, mit den Katalogen und Datenquellen in einer anderen Starburst Enterprise-Umgebung, z. B. einem Cluster in der. AWS Cloud

## Epen
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-epics"></a>

### Beurteilen Sie die Daten
<a name="assess-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren und priorisieren Sie Ihre Daten. | Identifizieren Sie die Daten, die Sie verschieben möchten. Große, lokale Altsysteme können neben Daten, die Sie migrieren möchten, auch Daten enthalten, die Sie aus Compliance-Gründen nicht verschieben möchten oder die nicht verschoben werden können. Wenn Sie mit einem Dateninventar beginnen, können Sie Prioritäten setzen, auf welche Daten Sie zuerst abzielen sollten. Weitere Informationen finden Sie unter [Erste Schritte mit der automatisierten Portfolioerkennung](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html). | Dateningenieur, DBA | 
| Erkunden, inventarisieren und sichern Sie Ihre Daten. | Überprüfen Sie die Qualität, Quantität und Relevanz der Daten für Ihren Anwendungsfall. Sichern oder erstellen Sie nach Bedarf einen Snapshot der Daten und stellen Sie die Zielumgebung für die Daten fertig. | Dateningenieur, DBA | 

### Richten Sie die Starburst Enterprise-Umgebung ein
<a name="set-up-the-starburst-enterprise-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie Starburst Enterprise in der AWS Cloud. | Richten Sie Starburst Enterprise in einem verwalteten Amazon EKS-Cluster ein, während die Daten katalogisiert werden. *Weitere Informationen finden Sie unter [Deployment with Kubernetes](https://docs.starburst.io/latest/k8s.html) in der Starburst Enterprise-Referenzdokumentation.* Dies ermöglicht business-as-usual Analysen während der Datenmigration. | AWS-Administrator, App-Entwickler | 
| Connect Starburst mit den Datenquellen. | Nachdem Sie die Daten identifiziert und Starburst Enterprise eingerichtet haben, verbinden Sie Starburst mit den Datenquellen. Starburst liest Daten direkt aus der Datenquelle als SQL-Abfrage. Weitere Informationen finden Sie in der [Starburst Enterprise-Referenzdokumentation.](https://docs.starburst.io/latest/overview.html) | AWS-Administrator, App-Entwickler | 

### Migrieren Sie die Daten
<a name="migrate-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen und betreiben Sie die ETL-Pipelines. | Beginnen Sie mit dem Datenmigrationsprozess. Diese Aktivität kann gleichzeitig mit der business-as-usual Analyse erfolgen. Für die Migration können Sie ein Drittanbieterprodukt oder Starburst verwenden. Starburst ist in der Lage, Daten aus verschiedenen Quellen sowohl zu lesen als auch zu schreiben. Weitere Informationen finden Sie in der [Starburst Enterprise-Referenzdokumentation.](https://docs.starburst.io/latest/overview.html) | Dateningenieur | 
| Validieren Sie die Daten. | Nachdem die Daten migriert wurden, validieren Sie die Daten, um sicherzustellen, dass alle erforderlichen Daten verschoben wurden und intakt sind. | Dateningenieur, DevOps Ingenieur | 

### Überschneiden
<a name="cut-over"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überschneide die Daten. | Nach Abschluss der Datenmigration und -validierung können Sie die Daten überarbeiten. Dies beinhaltet das Ändern der Datenverbindungslinks in Starburst. Anstatt auf die lokalen Quellen zu verweisen, verweisen Sie auf die neuen Cloud-Quellen und aktualisieren die semantischen Ansichten. Weitere Informationen finden Sie unter [Connectors](https://docs.starburst.io/latest/connector.html) in der *Starburst Enterprise-Referenzdokumentation*. | Dateningenieur, Cutover-Leiter | 
| Für Benutzer verfügbar machen. | Datenkonsumenten beginnen, mit den migrierten Datenquellen zu arbeiten. Dieser Prozess ist für die Analytics-Endbenutzer unsichtbar. | Leiter der Umstellung, Dateningenieur | 

## Zugehörige Ressourcen
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-resources"></a>

**AWS Marketplace**
+ [Starburst-Galaxie](https://aws.amazon.com/marketplace/pp/prodview-yugyv4gbgn5ss?ref_=srh_res_product_title)
+ [Starburst Enterprise](https://aws.amazon.com/marketplace/pp/prodview-pwnl3c6p2jycg?ref_=srh_res_product_title)
+ [Starburst-Daten JumpStart](https://aws.amazon.com/marketplace/pp/prodview-ou6drb23gch2u?ref_=srh_res_product_title)
+ [Starburst Enterprise mit Graviton](https://aws.amazon.com/marketplace/pp/prodview-2bpppdqlesn6w?ref_=srh_res_product_title)

**Starburst-Dokumentation**
+ [Starburst Enterprise-Benutzerhandbuch](https://docs.starburst.io/index.html)
+ [Referenzdokumentation zu Starburst Enterprise](https://docs.starburst.io/latest/index.html)

**Andere Dokumentation AWS **
+ [Beginnen Sie mit der automatisierten Portfolioerkennung](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html) (AWS Prescriptive Guidance)
+ [Optimierung der Kosten und Leistung der Cloud-Infrastruktur mit Starburst on AWS(Blogbeitrag](https://aws.amazon.com/blogs/architecture/optimizing-cloud-infrastructure-cost-and-performance-with-starburst-on-aws/))AWS 

# Optimieren Sie die ETL-Erfassung der Eingabedateigröße auf AWS
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws"></a>

*Unterstützung Patrikar, Amazon Web Services*

## Zusammenfassung
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie den Aufnahmeschritt des ETL-Prozesses (Extrahieren, Transformieren und Laden) für Big Data- und Apache Spark-Workloads auf AWS Glue optimieren können, indem Sie die Dateigröße vor der Verarbeitung Ihrer Daten optimieren. Verwenden Sie dieses Muster, um das Problem mit *kleinen* Dateien zu verhindern oder zu lösen. Dies ist der Fall, wenn eine große Anzahl kleiner Dateien die Datenverarbeitung aufgrund der Gesamtgröße der Dateien verlangsamt. Beispielsweise können Hunderte von Dateien, die jeweils nur einige hundert Kilobyte groß sind, die Datenverarbeitungsgeschwindigkeit für Ihre AWS Glue Glue-Jobs erheblich verlangsamen. Dies liegt daran, dass AWS Glue interne Listenfunktionen auf Amazon Simple Storage Service (Amazon S3) ausführen muss und YARN (Yet Another Resource Negotiator) eine große Menge an Metadaten speichern muss. Um die Datenverarbeitungsgeschwindigkeit zu verbessern, können Sie mithilfe von Gruppierung Ihre ETL-Aufgaben in die Lage versetzen, eine Gruppe von Eingabedateien in eine einzige In-Memory-Partition zu lesen. Die Partition gruppiert automatisch kleinere Dateien zusammen. Alternativ können Sie benutzerdefinierten Code verwenden, um Ihren vorhandenen Dateien Batch-Logik hinzuzufügen.

## Voraussetzungen und Einschränkungen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein oder mehrere [AWS-Klebejobs](https://docs.aws.amazon.com/glue/latest/dg/author-job.html)
+ Eine oder mehrere Big-Data- oder [Apache Spark-Workloads](https://spark.apache.org/)
+ Einen [S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html)

## Architektur
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-architecture"></a>

Das folgende Muster zeigt, wie Daten in verschiedenen Formaten von einem AWS Glue Glue-Job verarbeitet und dann in einem S3-Bucket gespeichert werden, um einen Überblick über die Leistung zu erhalten.

![\[Daten in verschiedenen Formaten werden von einem AWS Glue Glue-Job verarbeitet und dann in einem S3-Bucket gespeichert.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/88ee332f-2f12-4d88-b491-e78bbb173850/images/9a97b54a-3f67-4a48-94d2-5807373ace25.png)


Das Diagramm zeigt den folgenden Workflow:

1. 
**Anmerkung**  
Ein AWS Glue Glue-Job konvertiert kleine Dateien im CSV-, JSON- und Parquet-Format in dynamische Frames. : Die Größe der Eingabedatei hat den größten Einfluss auf die Leistung des AWS Glue Glue-Jobs.

1. Der AWS Glue Glue-Job führt interne Listenfunktionen in einem S3-Bucket aus.

## Tools
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-tools"></a>
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter ETL-Service. Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

## Epen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-epics"></a>

### Verwenden Sie Gruppierung, um die ETL-Aufnahme beim Lesen zu optimieren
<a name="use-grouping-to-optimize-etl-ingestion-during-reading"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Geben Sie die Gruppengröße an. | Wenn Sie mehr als 50.000 Dateien haben, erfolgt die Gruppierung standardmäßig. Sie können die Gruppierung jedoch auch für weniger als 50.000 Dateien verwenden, indem Sie die Gruppengröße im `connectionOptions` Parameter angeben. Der `connectionOptions` Parameter ist in der `create_dynamic_frame.from_options` Methode enthalten. | Dateningenieur | 
| Schreiben Sie den Gruppierungscode. | Verwenden Sie die `create_dynamic_frame` Methode, um einen dynamischen Frame zu erstellen. Beispiel:<pre>S3bucket_node1 = glueContext.create_dynamic_frame.from_options(<br />    format_options={"multiline": False},<br />    connection_type="s3",<br />    format="json",<br />    connection_options={<br />        "paths": ["s3://bucket/prefix/file.json"],<br />        "recurse": True,<br />        "groupFiles": 'inPartition', <br />        "groupSize": 1048576<br />    },<br />    transformation_ctx="S3bucket_node1",<br />)</pre>Wird verwendet`groupFiles`, um Dateien in einer Amazon S3 S3-Partitionsgruppe zu gruppieren. Wird verwendet`groupSize`, um die Zielgröße der Gruppe festzulegen, die im Speicher gelesen werden soll. Geben Sie `groupSize` in Byte an (1048576 = 1 MB). | Dateningenieur | 
| Fügen Sie den Code zum Workflow hinzu. | Fügen Sie den Gruppierungscode zu Ihrem [Job-Workflow](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) in AWS Glue hinzu. | Dateningenieur | 

### Verwenden Sie benutzerdefinierte Logik, um die ETL-Erfassung zu optimieren
<a name="use-custom-logic-to-optimize-etl-ingestion"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie die Sprache und die Verarbeitungsplattform. | Wählen Sie die Skriptsprache und die Verarbeitungsplattform, die auf Ihren Anwendungsfall zugeschnitten sind. | Cloud-Architekt | 
| Schreiben Sie den Code. | Schreiben Sie die benutzerdefinierte Logik, um Ihre Dateien zu stapeln. | Cloud-Architekt | 
| Fügen Sie den Code zum Workflow hinzu. | Fügen Sie den Code zu Ihrem [Job-Workflow](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) in AWS Glue hinzu. Dadurch kann Ihre benutzerdefinierte Logik bei jeder Ausführung des Jobs angewendet werden. | Dateningenieur | 

### Neupartitionierung beim Schreiben von Daten nach der Transformation
<a name="repartition-when-writing-data-after-transformation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie Konsummuster. | Finden Sie heraus, wie nachgelagerte Anwendungen die von Ihnen geschriebenen Daten verwenden werden. Wenn sie beispielsweise täglich Daten abfragen und Sie nur Daten pro Region partitionieren oder sehr kleine Ausgabedateien haben, z. B. 2,5 KB pro Datei, ist dies nicht optimal für die Nutzung. | DBA | 
| Daten vor dem Schreiben neu partitionieren. | Neupartitionierung auf der Grundlage von Verknüpfungen oder Abfragen während der Verarbeitung (basierend auf der Verarbeitungslogik) und nach der Verarbeitung (basierend auf dem Verbrauch). Beispielsweise eine Neupartitionierung auf der Grundlage der Bytegröße, wie`.repartition(100000)`, oder eine Neupartitionierung auf der Grundlage von Spalten, wie. `.repartition("column_name")` | Dateningenieur | 

## Zugehörige Ressourcen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-resources"></a>
+ [Eingabedateien in größeren Gruppen lesen](https://docs.aws.amazon.com/glue/latest/dg/grouping-input-files.html)
+ [Überwachung von AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-glue.html)
+ [Überwachung von AWS Glue mithilfe von CloudWatch Amazon-Metriken](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)
+ [Auftragsüberwachung und Debugging](https://docs.aws.amazon.com/glue/latest/dg/monitor-profile-glue-job-cloudwatch-metrics.html)
+ [Erste Schritte mit serverlosem ETL auf AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/welcome.html)

## Zusätzliche Informationen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-additional"></a>

**Ermitteln der Dateigröße**

Es gibt keine einfache Methode, um festzustellen, ob eine Datei zu groß oder zu klein ist. Die Auswirkung der Dateigröße auf die Verarbeitungsleistung hängt von der Konfiguration Ihres Clusters ab. In Core Hadoop empfehlen wir, Dateien mit einer Größe von 128 MB oder 256 MB zu verwenden, um die Blockgröße optimal zu nutzen.

Für die meisten Textdatei-Workloads auf AWS Glue empfehlen wir eine Dateigröße zwischen 100 MB und 1 GB für einen 5-10 DPU-Cluster. Um die beste Größe der Eingabedateien zu ermitteln, überwachen Sie den Vorverarbeitungsbereich Ihres AWS Glue Glue-Auftrags und überprüfen Sie dann die CPU-Auslastung und die Speicherauslastung des Auftrags.

**Zusätzliche Überlegungen**

Wenn die Leistung in den frühen ETL-Phasen einen Engpass darstellt, sollten Sie die Datendateien vor der Verarbeitung gruppieren oder zusammenführen. Wenn Sie die vollständige Kontrolle über den Dateigenerierungsprozess haben, kann es noch effizienter sein, Datenpunkte auf dem Quellsystem selbst zu aggregieren, bevor die Rohdaten an AWS gesendet werden.

# Orchestrieren Sie eine ETL-Pipeline mit Validierung, Transformation und Partitionierung mit AWS Step Functions
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions"></a>

*Sandip Gangapadhyay, Amazon Web Services*

## Zusammenfassung
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-summary"></a>

Dieses Muster beschreibt, wie Sie eine serverlose ETL-Pipeline (Extrahieren, Transformieren und Laden) erstellen, um einen großen CSV-Datensatz zur Leistungs- und Kostenoptimierung zu validieren, zu transformieren, zu komprimieren und zu partitionieren. Die Pipeline wird durch Funktionen zur Fehlerbehandlung, zur automatischen Wiederholung AWS Step Functions und zur Benutzerbenachrichtigung orchestriert und umfasst diese Funktionen.

Wenn eine CSV-Datei in einen Bucket-Quellordner von Amazon Simple Storage Service (Amazon S3) hochgeladen wird, beginnt die ETL-Pipeline zu laufen. Die Pipeline validiert den Inhalt und das Schema der CSV-Quelldatei, wandelt die CSV-Datei in ein komprimiertes Apache Parquet-Format um, partitioniert den Datensatz nach Jahr, Monat und Tag und speichert ihn in einem separaten Ordner, damit Analysetools ihn verarbeiten können.

Der Code, der dieses Muster automatisiert, ist in der GitHub [ETL-Pipeline](https://github.com/aws-samples/aws-step-functions-etl-pipeline-pattern) mit Repository verfügbar. AWS Step Functions

## Voraussetzungen und Einschränkungen
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto.
+ AWS Command Line Interface (AWS CLI) wurde mit Ihrem installiert und konfiguriert AWS-Konto, sodass Sie AWS Ressourcen erstellen können, indem Sie einen AWS CloudFormation Stack bereitstellen. Wir empfehlen die Verwendung AWS CLI von Version 2. Anweisungen finden Sie AWS CLI in der AWS CLI Dokumentation unter [Installation oder Aktualisierung auf die neueste Version von](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html). Anweisungen zur Konfiguration finden Sie in der AWS CLI Dokumentation unter [Einstellungen für Konfiguration und Anmeldeinformationsdatei](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).
+ Ein Amazon-S3-Bucket
+ Ein CSV-Datensatz mit dem richtigen Schema. (Das in diesem Muster enthaltene [Code-Repository](https://github.com/aws-samples/aws-step-functions-etl-pipeline-pattern/) enthält eine CSV-Beispieldatei mit dem richtigen Schema und Datentyp, die Sie verwenden können.)
+ Ein Webbrowser, der die unterstützt AWS-Managementkonsole. (Sehen Sie sich die [Liste der unterstützten Browser](https://aws.amazon.com/premiumsupport/knowledge-center/browsers-management-console/) an.)
+ AWS Glue Zugriff auf die Konsole.
+ AWS Step Functions Konsolenzugriff.

**Einschränkungen**
+ In liegt AWS Step Functions die Höchstgrenze für die Aufbewahrung von Verlaufsprotokollen bei 90 Tagen. Weitere Informationen finden Sie in der AWS Step Functions Dokumentation unter [Step Functions Functions-Dienstkontingente](https://docs.aws.amazon.com/step-functions/latest/dg/service-quotas.html).

**Produktversionen**
+ Python 3.13 für AWS Lambda
+ AWS Glue Version 4.0

## Architektur
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-architecture"></a>

![\[ETL-Prozess vom S3-Quell-Bucket über Step Functions, AWS Glue und Amazon SNS in 10 Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8eb792b0-d35b-4a63-ba2d-71eb8d2c1203/images/054c8e9d-76a2-4334-b21a-cbe76af45923.png)


 

Der in der Abbildung dargestellte Arbeitsablauf besteht aus diesen grundlegenden Schritten:

1. Der Benutzer lädt eine CSV-Datei in den Quellordner in Amazon S3 hoch.

1. Ein Amazon S3 S3-Benachrichtigungsereignis löst eine AWS Lambda Funktion aus, die die AWS Step Functions Zustandsmaschine startet.

1. Die Lambda-Funktion validiert das Schema und den Datentyp der CSV-Rohdatei.

1. Abhängig von den Validierungsergebnissen:

   1. Wenn die Überprüfung der Quelldatei erfolgreich ist, wird die Datei zur weiteren Verarbeitung in den Stage-Ordner verschoben.

   1. Schlägt die Überprüfung fehl, wird die Datei in den Fehlerordner verschoben und eine Fehlerbenachrichtigung wird über Amazon Simple Notification Service (Amazon SNS) gesendet.

1. Ein AWS Glue Crawler erstellt das Schema der Rohdatei aus dem Stage-Ordner in Amazon S3.

1. Ein AWS Glue Job transformiert, komprimiert und partitioniert die Rohdatei in das Parquet-Format.

1. Der AWS Glue Job verschiebt die Datei auch in den Transformationsordner in Amazon S3.

1. Der AWS Glue Crawler erstellt das Schema aus der transformierten Datei. Das resultierende Schema kann von jedem Analysejob verwendet werden. Sie können Amazon Athena auch verwenden, um Ad-hoc-Abfragen auszuführen.

1. Wenn die Pipeline ohne Fehler abgeschlossen wird, wird die Schemadatei in den Archivordner verschoben. Wenn Fehler auftreten, wird die Datei stattdessen in den Fehlerordner verschoben.

1. Amazon SNS sendet eine Benachrichtigung, die auf Erfolg oder Misserfolg basierend auf dem Status der Pipeline-Fertigstellung hinweist.

Alle in diesem Muster verwendeten AWS Ressourcen sind serverlos. Es müssen keine Server verwaltet werden.

## Tools
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-tools"></a>

**AWS-Services**
+ [AWS Glue](https://aws.amazon.com/glue/)— AWS Glue ist ein vollständig verwalteter ETL-Service, der es Kunden leicht macht, ihre Daten für Analysen vorzubereiten und zu laden.
+ [AWS Step Functions](https://aws.amazon.com/step-functions/)— AWS Step Functions ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische AWS-Services Anwendungen zu erstellen. Über die AWS Step Functions grafische Konsole sehen Sie den Arbeitsablauf Ihrer Anwendung als eine Reihe von ereignisgesteuerten Schritten.
+ [Amazon S3](https://aws.amazon.com/s3/) — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet.
+ [Amazon SNS](https://aws.amazon.com/sns/) — Amazon Simple Notification Service (Amazon SNS) ist ein hochverfügbarer, langlebiger, sicherer und vollständig verwalteter pub/sub Messaging-Service, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln können.
+ [AWS Lambda](https://aws.amazon.com/lambda/)— AWS Lambda ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. AWS Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch, von wenigen Anfragen pro Tag bis hin zu Tausenden pro Sekunde.

**Code**

Der Code für dieses Muster ist in der GitHub [ETL-Pipeline mit AWS Step Functions](https://github.com/aws-samples/aws-step-functions-etl-pipeline-pattern) Repository verfügbar. Das Code-Repository enthält die folgenden Dateien und Ordner:
+ `template.yml`— AWS CloudFormation Vorlage für die Erstellung der ETL-Pipeline mit AWS Step Functions.
+ `parameter.json`— Enthält alle Parameter und Parameterwerte. Sie aktualisieren diese Datei, um Parameterwerte zu ändern, wie im Abschnitt *Epics* beschrieben.
+ `myLayer/python`Ordner — Enthält Python-Pakete, die zum Erstellen der erforderlichen AWS Lambda Ebene für dieses Projekt benötigt werden.
+ `lambda`Ordner — Enthält die folgenden Lambda-Funktionen:
  + `move_file.py`— Verschiebt den Quelldatensatz in den Archiv-, Transformations- oder Fehlerordner.
  + `check_crawler.py`— Überprüft den Status des AWS Glue Crawlers so oft, wie von der `RETRYLIMIT ` Umgebungsvariablen konfiguriert, bevor eine Fehlermeldung gesendet wird.
  + `start_crawler.py`— Startet den AWS Glue Crawler.
  + `start_step_function.py`— Startet AWS Step Functions.
  + `start_codebuild.py`— Startet das AWS CodeBuild Projekt.
  + `validation.py`— Validiert den Eingabe-Rohdatensatz.
  + `s3object.py`— Erstellt die erforderliche Verzeichnisstruktur im Amazon S3 S3-Bucket.
  + `notification.py`— Sendet Erfolgs- oder Fehlerbenachrichtigungen am Ende der Pipeline.

Um den Beispielcode zu verwenden, folgen Sie den Anweisungen im Abschnitt *Epics*.

## Epen
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-epics"></a>

### Bereiten Sie die Quelldateien vor
<a name="prepare-the-source-files"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das Beispielcode-Repository. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Aktualisieren Sie die Parameterwerte. | Bearbeiten Sie in Ihrer lokalen Kopie des Repositorys die `parameter.json` Datei und aktualisieren Sie die Standardparameterwerte wie folgt:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Laden Sie den Quellcode in den Amazon S3 S3-Bucket hoch. | Bevor Sie die AWS CloudFormation Vorlage bereitstellen, die die ETL-Pipeline automatisiert, müssen Sie die Quelldateien für die Vorlage verpacken und in einen Amazon S3 S3-Bucket hochladen. Führen Sie dazu den folgenden AWS CLI Befehl mit Ihrem vorkonfigurierten Profil aus:<pre>aws cloudformation package --template-file template.yml --s3-bucket <bucket_name> --output-template-file packaged.template --profile <profile_name></pre>Wobei:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 

### Erstellen Sie den -Stack
<a name="create-the-stack"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die CloudFormation Vorlage bereit. | Führen Sie den folgenden AWS CLI Befehl aus, um die AWS CloudFormation Vorlage bereitzustellen:<pre>aws cloudformation deploy --stack-name <stack_name> --template-file packaged.template --parameter-overrides file://parameter.json --capabilities CAPABILITY_IAM --profile <profile_name></pre>Wobei:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Überprüfe den Fortschritt. | Überprüfen Sie auf der [AWS CloudFormation Konsole](https://console.aws.amazon.com/cloudformation/) den Fortschritt der Stack-Entwicklung. Wenn der Status lautet`CREATE_COMPLETE`, wurde der Stack erfolgreich bereitgestellt. | Developer | 
| Notieren Sie sich den AWS Glue Datenbanknamen. | Auf der Registerkarte **Ausgaben** für den Stack wird der Name der AWS Glue Datenbank angezeigt. Der Schlüsselname ist`GlueDBOutput`. | Developer | 

### Testen Sie die Pipeline
<a name="test-the-pipeline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie die ETL-Pipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Suchen Sie nach dem partitionierten Datensatz. | Wenn die ETL-Pipeline abgeschlossen ist, stellen Sie sicher, dass der partitionierte Datensatz im Amazon S3 S3-Transformationsordner (oder dem Ordnernamen`transform`, den Sie in der `parameter.json` Datei festgelegt haben) verfügbar ist. | Developer | 
| Suchen Sie nach der partitionierten Datenbank AWS Glue . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Führen Sie Abfragen aus. | (Optional) Verwenden Sie Amazon Athena, um Ad-hoc-Abfragen in der partitionierten und transformierten Datenbank auszuführen. Anweisungen finden Sie in der AWS Dokumentation unter [Ausführen von SQL-Abfragen in Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/querying-athena-tables.html). | Datenbank-Analyst | 

## Fehlerbehebung
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| AWS Identity and Access Management (IAM) -Berechtigungen für den AWS Glue Job und den Crawler | Wenn Sie den AWS Glue Job oder den Crawler weiter anpassen, stellen Sie sicher, dass Sie die entsprechenden IAM-Berechtigungen in der vom AWS Glue Job verwendeten IAM-Rolle gewähren oder Datenberechtigungen für erteilen. AWS Lake Formation Weitere Informationen finden Sie in der [AWS -Dokumentation](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html). | 

## Zugehörige Ressourcen
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-resources"></a>

**AWS-Service Dokumentation**
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/)
+ [AWS Glue](https://docs.aws.amazon.com/glue/)
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/)
+ [Amazon S3](https://docs.aws.amazon.com/s3/)
+ [Amazon SNS](https://docs.aws.amazon.com/sns/)

## Zusätzliche Informationen
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-additional"></a>

Das folgende Diagramm zeigt den AWS Step Functions Arbeitsablauf für eine erfolgreiche ETL-Pipeline vom AWS Step Functions **Inspektor-Panel** aus. ****

![\[Step Functions Functions-Workflow zur Validierung der Eingabe-CSV-Datei, zum Crawlen von Daten und zum Ausführen des AWS Glue Glue-Jobs.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8eb792b0-d35b-4a63-ba2d-71eb8d2c1203/images/bd77de7b-4d04-44bb-95d2-3ec4599b3770.png)


Das folgende Diagramm zeigt den AWS Step Functions Arbeitsablauf für eine ETL-Pipeline, die aufgrund eines Eingabevalidierungsfehlers fehlschlägt, im Bereich Step Functions **Inspector**. 

![\[Step Functions Functions-Workflow mit Fehler, sodass die Datei in den Fehlerordner verschoben wird.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8eb792b0-d35b-4a63-ba2d-71eb8d2c1203/images/5fd7dd79-ba4c-4c20-b1f0-ad4b5f22bdfc.png)


 

# Führen Sie erweiterte Analysen mit Amazon Redshift ML durch
<a name="perform-advanced-analytics-using-amazon-redshift-ml"></a>

*Po Hong und Chyanna Antonio, Amazon Web Services*

## Zusammenfassung
<a name="perform-advanced-analytics-using-amazon-redshift-ml-summary"></a>

In der Amazon Web Services (AWS) -Cloud können Sie Amazon Redshift Machine Learning (Amazon Redshift ML) verwenden, um ML-Analysen für Daten durchzuführen, die entweder in einem Amazon Redshift Redshift-Cluster oder in Amazon Simple Storage Service (Amazon S3) gespeichert sind. Amazon Redshift ML unterstützt überwachtes Lernen, das in der Regel für erweiterte Analysen verwendet wird. Zu den Anwendungsfällen für Amazon Redshift ML gehören Umsatzprognosen, Erkennung von Kreditkartenbetrug und Prognosen zum Customer Lifetime Value (CLV) oder zur Kundenabwanderung.

Amazon Redshift ML macht es Datenbankbenutzern leicht, ML-Modelle mithilfe von Standard-SQL-Befehlen zu erstellen, zu trainieren und bereitzustellen. Amazon Redshift ML verwendet Amazon SageMaker Autopilot, um anhand Ihrer Daten automatisch die besten ML-Modelle für die Klassifizierung oder Regression zu trainieren und zu optimieren, während Sie die Kontrolle und Transparenz behalten.

Alle Interaktionen zwischen Amazon Redshift, Amazon S3 und Amazon SageMaker werden abstrahiert und automatisiert. Nachdem das ML-Modell trainiert und bereitgestellt wurde, ist es als [benutzerdefinierte Funktion](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html) (UDF) in Amazon Redshift verfügbar und kann in SQL-Abfragen verwendet werden.  

Dieses Muster ergänzt die Lernprogramme [Erstellen, Trainieren und Bereitstellen von ML-Modellen in Amazon Redshift mithilfe von SQL mit Amazon Redshift ML](https://aws.amazon.com/blogs/big-data/create-train-and-deploy-machine-learning-models-in-amazon-redshift-using-sql-with-amazon-redshift-ml/) aus dem AWS-Blog und das SageMaker Tutorial [Erstellen, Trainieren und Bereitstellen eines ML-Modells mit Amazon](https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/) aus dem [Getting Started](https://aws.amazon.com/getting-started/) Resource Center.

## Voraussetzungen und Einschränkungen
<a name="perform-advanced-analytics-using-amazon-redshift-ml-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Bestehende Daten in einer Amazon Redshift Redshift-Tabelle

**Fähigkeiten**
+ *Vertrautheit mit den von Amazon Redshift ML verwendeten Begriffen und Konzepten, einschließlich *maschinellem Lernen*, *Training* und Prognose.* Weitere Informationen dazu finden Sie unter [Training ML-Modelle](https://docs.aws.amazon.com/machine-learning/latest/dg/training-ml-models.html) in der Dokumentation zu Amazon Machine Learning (Amazon ML).
+ Erfahrung mit Amazon Redshift Redshift-Benutzereinrichtung, Zugriffsverwaltung und Standard-SQL-Syntax. Weitere Informationen dazu finden Sie unter [Erste Schritte mit Amazon Redshift in der Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) Redshift-Dokumentation.
+ Wissen und Erfahrung mit Amazon S3 und AWS Identity and Access Management (IAM). 
+ Erfahrung mit der Ausführung von Befehlen in der AWS-Befehlszeilenschnittstelle (AWS CLI) ist ebenfalls von Vorteil, aber nicht erforderlich. 

**Einschränkungen**
+ Der Amazon Redshift Redshift-Cluster und der S3-Bucket müssen sich in derselben AWS-Region befinden.
+ Der Ansatz dieses Musters unterstützt nur Modelle des überwachten Lernens wie Regression, binäre Klassifizierung und Mehrklassenklassifizierung. 

## Architektur
<a name="perform-advanced-analytics-using-amazon-redshift-ml-architecture"></a>

![\[Der Workflow zeigt, wie Amazon Redshift ML beim Erstellen SageMaker , Trainieren und Bereitstellen eines ML-Modells zusammenarbeitet.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/3b6a5f49-c647-45f4-940e-b623f989326a/images/36cc39fe-c1f3-4d68-b89e-e636156001a6.png)


In den folgenden Schritten wird erklärt, wie Amazon Redshift ML beim Erstellen SageMaker , Trainieren und Bereitstellen eines ML-Modells zusammenarbeitet: 

1. Amazon Redshift exportiert Trainingsdaten in einen S3-Bucket.

1. SageMaker Autopilot verarbeitet die Trainingsdaten automatisch vor.

1. Nachdem die `CREATE MODEL` Anweisung aufgerufen wurde, verwendet Amazon Redshift ML sie SageMaker für das Training.

1. SageMaker Autopilot sucht nach dem ML-Algorithmus und den optimalen Hyperparametern, die die Bewertungsmetriken optimieren, und empfiehlt diese.

1. Amazon Redshift ML registriert das Ausgabe-ML-Modell als SQL-Funktion im Amazon Redshift Redshift-Cluster.

1. Die Funktion des ML-Modells kann in einer SQL-Anweisung verwendet werden. 

**Technologie-Stack**
+ Amazon Redshift
+ SageMaker
+ Amazon S3

## Tools
<a name="perform-advanced-analytics-using-amazon-redshift-ml-tools"></a>
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/welcome.html) — Amazon Redshift ist ein vollständig verwalteter Data-Warehousing-Service auf Unternehmensebene im Petabyte-Bereich.
+ [Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/machine_learning.html) — Amazon Redshift Machine Learning (Amazon Redshift ML) ist ein robuster, cloudbasierter Service, der es Analysten und Datenwissenschaftlern aller Qualifikationsstufen leicht macht, ML-Technologie zu nutzen.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) ist Speicher für das Internet. 
+ [Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) — SageMaker ist ein vollständig verwalteter ML-Service. 
+ [Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html) — SageMaker Autopilot ist ein Funktionsumfang, der wichtige Aufgaben eines automatischen maschinellen Lernprozesses (AutoML) automatisiert.

 

**Code**

Sie können ein überwachtes ML-Modell in Amazon Redshift mithilfe des folgenden Codes erstellen:

```
"CREATE MODEL customer_churn_auto_model
FROM (SELECT state,
             account_length,
             area_code,
             total_charge/account_length AS average_daily_spend, 
             cust_serv_calls/account_length AS average_daily_cases,
             churn 
      FROM customer_activity
      WHERE  record_date < '2020-01-01' 
     )
TARGET churn
FUNCTION ml_fn_customer_churn_auto
IAM_ROLE 'arn:aws:iam::XXXXXXXXXXXX:role/Redshift-ML'
SETTINGS (
  S3_BUCKET 'your-bucket'
);")
```

**Anmerkung**  
Der `SELECT` Status kann sich auf reguläre Amazon Redshift-Tabellen, externe Amazon Redshift Spectrum-Tabellen oder auf beide beziehen.

## Epen
<a name="perform-advanced-analytics-using-amazon-redshift-ml-epics"></a>

### Bereiten Sie einen Trainings- und Testdatensatz vor
<a name="prepare-a-training-and-test-dataset"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie einen Trainings- und Testdatensatz vor. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die SageMaker Amazon-Konsole. Folgen Sie den Anweisungen im Tutorial Ein [Modell für maschinelles Lernen erstellen, trainieren und bereitstellen, um eine](https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/) .csv- oder Apache Parquet-Datei zu erstellen, die eine Labelspalte (*betreutes Training*) und keinen Header enthält. Wir empfehlen, dass Sie den Rohdatensatz mischen und in einen Trainingssatz für das Training des Modells (70 Prozent) und einen Testsatz für die Leistungsbewertung des Modells (30 Prozent) aufteilen. | Datenwissenschaftler | 

### Bereiten Sie den Technologie-Stack vor und konfigurieren Sie ihn
<a name="prepare-and-configure-the-technology-stack"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen und konfigurieren Sie einen Amazon Redshift Redshift-Cluster. | Erstellen Sie auf der Amazon Redshift Redshift-Konsole einen Cluster gemäß Ihren Anforderungen. Weitere Informationen dazu finden Sie unter [Create a cluster](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data-launch-cluster.html) in der Amazon Redshift Redshift-Dokumentation.  Amazon Redshift Redshift-Cluster müssen zusammen mit dem `SQL_PREVIEW` Maintenance Track erstellt werden. Weitere Informationen zu Vorschau-Tracks finden Sie unter [Cluster-Wartungsspuren auswählen](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-mgmt-maintenance-tracks) in der Amazon Redshift Redshift-Dokumentation. | DBA, Cloud-Architekt | 
| Erstellen Sie einen S3-Bucket zum Speichern von Trainingsdaten und Modellartefakten. | Erstellen Sie auf der Amazon S3 S3-Konsole einen S3-Bucket für die Trainings- und Testdaten. Weitere Informationen zum Erstellen eines S3-Buckets finden Sie unter [Erstellen eines S3-Buckets](https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html) über AWS Quick Starts. Stellen Sie sicher, dass sich Ihr Amazon Redshift Redshift-Cluster und Ihr S3-Bucket in derselben Region befinden.  | DBA, Cloud-Architekt | 
| Erstellen Sie eine IAM-Richtlinie und fügen Sie sie dem Amazon Redshift Redshift-Cluster hinzu. | Erstellen Sie eine IAM-Richtlinie, um dem Amazon Redshift Redshift-Cluster den Zugriff auf Amazon S3 SageMaker zu ermöglichen. Anweisungen und Schritte finden Sie unter [Cluster-Setup für die Verwendung von Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/cluster-setup.html) in der Amazon Redshift Redshift-Dokumentation. | DBA, Cloud-Architekt | 
| Erlauben Sie Amazon Redshift Redshift-Benutzern und -Gruppen den Zugriff auf Schemas und Tabellen. | Erteilen Sie Berechtigungen, um Benutzern und Gruppen in Amazon Redshift den Zugriff auf interne und externe Schemas und Tabellen zu ermöglichen. Schritte und Anweisungen finden Sie unter [Berechtigungen und Besitz verwalten](https://docs.aws.amazon.com/redshift/latest/dg/permissions-ownership.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 

### Erstellen und trainieren Sie das ML-Modell in Amazon Redshift
<a name="create-and-train-the-ml-model-in-amazon-redshift"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen und trainieren Sie das ML-Modell in Amazon Redshift. | Erstellen und trainieren Sie Ihr ML-Modell in Amazon Redshift ML. Weitere Informationen finden Sie in der `CREATE MODEL` Erklärung in der Amazon Redshift Redshift-Dokumentation. | Entwickler, Datenwissenschaftler | 

### Batch-Inferenz und Vorhersage in Amazon Redshift durchführen
<a name="perform-batch-inference-and-prediction-in-amazon-redshift"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Inferenz mithilfe der generierten ML-Modellfunktion durch. | Weitere Informationen zur Durchführung von Inferenzen mithilfe der generierten ML-Modellfunktion finden Sie unter [Vorhersage](https://docs.aws.amazon.com/redshift/latest/dg/prediction.html) in der Amazon Redshift Redshift-Dokumentation. | Datenwissenschaftler, Business Intelligence-Benutzer | 

## Zugehörige Ressourcen
<a name="perform-advanced-analytics-using-amazon-redshift-ml-resources"></a>

**Bereiten Sie einen Trainings- und Testdatensatz vor**
+ [Aufbau, Schulung und Bereitstellung eines Modells für maschinelles Lernen mit Amazon SageMaker](https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/)

 

**Bereiten Sie den Technologie-Stack vor und konfigurieren Sie ihn**
+ [Einen Amazon Redshift Redshift-Cluster erstellen](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data-launch-cluster.html)
+ [Auswahl von Amazon Redshift Redshift-Cluster-Wartungsplänen](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-mgmt-maintenance-tracks)
+ [Erstellen eines S3-Buckets](https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html)
+ [Einrichtung eines Amazon Redshift-Clusters für die Verwendung von Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/cluster-setup.html)
+ [Verwaltung von Berechtigungen und Eigentum in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/permissions-ownership.html)

 

**Erstellen und trainieren Sie das ML-Modell in Amazon Redshift**
+ [CREATE MODEL-Anweisung in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_MODEL.html#r_simple_create_model) 

 

**Batch-Inferenz und Vorhersage in Amazon Redshift durchführen**
+ [Prognose in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/prediction.html) 

 

**Sonstige Ressourcen**
+ [Erste Schritte mit Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/geting-started-machine-learning.html)
+ [Erstellen, Trainieren und Bereitstellen von ML-Modellen in Amazon Redshift mithilfe von SQL mit Amazon Redshift ML](https://aws.amazon.com/blogs/big-data/create-train-and-deploy-machine-learning-models-in-amazon-redshift-using-sql-with-amazon-redshift-ml/)
+ [Amazon Redshift Redshift-Partner](https://aws.amazon.com/redshift/partners/?partner-solutions-cards.sort-by=item.additionalFields.partnerNameLower&partner-solutions-cards.sort-order=aschttps://aws.amazon.com/redshift/partners/?partner-solutions-cards.sort-by=item.additionalFields.partnerNameLower&partner-solutions-cards.sort-order=asc)
+ [AWS-Kompetenzpartner für maschinelles Lernen](https://aws.amazon.com/machine-learning/partner-solutions/?partner-solutions-cards.sort-by=item.additionalFields.partnerNameLower&partner-solutions-cards.sort-order=asc)

# Abfragen von Amazon DynamoDB-Tabellen mit SQL mithilfe von Amazon Athena
<a name="query-amazon-dynamodb-tables-sql-amazon-athena"></a>

*Gavin Perrie, Ajit Ambike und Brad Yates, Amazon Web Services*

## Zusammenfassung
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-summary"></a>

Wenn Ihre Daten andere Quellen als Amazon Simple Storage Service (Amazon S3) enthalten, können Sie Verbundabfragen verwenden, um auf diese relationalen, nicht-relationalen, Objekt- oder benutzerdefinierten Datenquellen zuzugreifen. Dieses Muster zeigt, wie der föderierte Abfragezugriff über Amazon Athena auf Amazon DynamoDB mithilfe eines SQL-Datenquellen-Connectors konfiguriert wird.

Mit diesem Muster können Sie Folgendes tun:
+ Fragen Sie DynamoDB-Tabellen mithilfe von SQL ab.
+ Führen Sie föderierte SQL-Abfragen in Athena aus und verknüpfen Sie DynamoDB-Tabellen mit anderen unterstützten Datenquellen.

## Voraussetzungen und Einschränkungen
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-prereqs"></a>

**Voraussetzungen**
+ Eine DynamoDB-Tabelle.
+ Eine Athena-Arbeitsgruppe, die die Athena-Engine Version 2 verwenden soll. Anweisungen finden Sie in der [Athena-Dokumentation](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html).
+ Ein S3-Bucket, in dem die `AthenaDynamoDBConnector` AWS Lambda Funktion die Daten weitergeben kann. Der S3-Bucket und die Lambda-Funktion müssen sich in derselben AWS-Region befinden.

Wenn Sie zum ersten Mal auf Athena zugreifen, benötigen Sie einen zusätzlichen S3-Bucket, den Sie als Speicherort für Abfrageergebnisse verwenden können. Anweisungen finden Sie in der [Athena-Dokumentation](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location-console).

**Einschränkungen**
+ Schreiboperationen wie [INSERT INTO](https://docs.aws.amazon.com/athena/latest/ug/insert-into.html) werden nicht unterstützt. ****

**Versionen der Produkte**
+ [Athena Query Federation veröffentlicht am GitHub](https://github.com/awslabs/aws-athena-query-federation/releases)

## Architektur
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-architecture"></a>

**Zielarchitektur**

Das folgende Diagramm zeigt den Verbindungsfluss, nachdem das Muster eingerichtet wurde. Der Benutzer stellt eine Verbindung zu Amazon Athena her, um die Anfrage bereitzustellen. Athena übergibt die Abfrage und das Ziel an die Lambda-Funktion des DynamoDB-Datenquellenkonnektors, die die Daten abruft und an Athena zurückgibt. Wenn große Datenmengen zurückgegeben werden, speichert Athena die temporären Ergebnisse im Spill-Bucket, bevor der gesamte Datensatz verpackt und zurückgegeben wird.

![\[Workflow von Benutzern über Athena bis Lambda, der eine Verbindung zum S3-Bucket und zur DynamoDB-Tabelle herstellt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9d1ee529-36f3-4c7e-a2e7-05b76e09a3d8/images/e50a00cf-a55a-4def-81d5-4d2755dc9a97.png)


## Tools
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-tools"></a>

**AWS-Services**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon Simple Storage Service (Amazon S3) analysieren können. Dieses Muster verwendet [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb), ein Tool, das mit dem Amazon Athena Query Federation SDK erstellt und als AWS Lambda Anwendung über das installiert wird. AWS Serverless Application Repository
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation/releases) Repository verfügbar.

## Epen
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-epics"></a>

### DynamoDB-Datenquellenconnector einrichten und testen
<a name="set-up-and-test-the-ddb-data-source-connector"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die AthenaDynamo DBConnector Anwendung bereit. | Gehen Sie zur Bereitstellung AthenaDynamo DBConnecter wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Erstellen Sie eine Datenquelle für Athena. | Gehen Sie wie folgt vor, um die Datenquelle zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Verwenden Sie Athena, um die DynamoDB-Tabelle abzufragen. | Gehen Sie wie folgt vor, um die DynamoDB-Tabelle abzufragen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | App-Developer | 

## Fehlerbehebung
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| *Die Abfrage schlägt fehl mit. `GENERIC_INTERNAL_ERROR: The bucket is in this region: <region>`* | Stellen Sie sicher, dass der Athena Spill Bucket und die Lambda-Funktion in derselben Datei erstellt wurden. AWS-Region | 
| Die neu erstellte Datenquelle ist auf der Athena-Konsole nicht sichtbar. | Athena-Datenkataloge sind regional. Stellen Sie sicher, dass der in der Region eingesetzt `AthenaDynamoDBConnector` wurde, in der Sie Athena verwenden möchten. | 
| Sie können die Abfrage nicht für die neu erstellte Datenquelle ausführen. | Vergewissern Sie sich, dass der **Speicherort für das Abfrageergebnis** festgelegt wurde. | 

## Zugehörige Ressourcen
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-resources"></a>
+ [Amazon Athena DynamoDB-Konnektor](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb)
+ [Amazon Athena Verbundabfrage](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)

# Mit Athena auf Amazon DynamoDB-Tabellen zugreifen, diese abfragen und verbinden
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena"></a>

*Moinul Al-Mamun, Amazon Web Services*

## Zusammenfassung
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie mithilfe des Amazon Athena DynamoDB-Connectors eine Verbindung zwischen Amazon Athena und Amazon DynamoDB einrichten. Der Connector verwendet eine AWS-Lambda-Funktion, um die Daten in DynamoDB abzufragen. Sie müssen keinen Code schreiben, um die Verbindung einzurichten. Nachdem die Verbindung hergestellt wurde, können Sie schnell auf DynamoDB-Tabellen zugreifen und diese analysieren, indem Sie [Athena Federated Query](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html) verwenden, um SQL-Befehle von Athena auszuführen. Sie können auch eine oder mehrere DynamoDB-Tabellen miteinander oder mit anderen Datenquellen wie Amazon Redshift oder Amazon Aurora verbinden.

## Voraussetzungen und Einschränkungen
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto mit Berechtigungen zur Verwaltung von DynamoDB-Tabellen, Athena-Datenquellen, Lambda und AWS Identity and Access Management (IAM) -Rollen
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket, in dem Athena Abfrageergebnisse speichern kann
+ Ein S3-Bucket, in dem der Athena DynamoDB Connector die Daten kurzfristig speichern kann
+ Eine AWS-Region, die [Athena Engine Version 2](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference-0002.html) unterstützt
+ IAM-Berechtigungen für den Zugriff auf Athena und die erforderlichen S3-Buckets
+ [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb), installiert

**Einschränkungen**

Das Abfragen von DynamoDB-Tabellen ist kostenpflichtig. Tabellengrößen, die einige Gigabyte (GBs) überschreiten, können hohe Kosten verursachen. Wir empfehlen, dass Sie die Kosten berücksichtigen, bevor Sie einen vollständigen Tabellen-SCAN-Vorgang durchführen. Weitere Informationen finden Sie unter [Amazon DynamoDB – Preise](https://aws.amazon.com/dynamodb/pricing/). Um die Kosten zu senken und eine hohe Leistung zu erzielen, empfehlen wir, in Ihrer Abfrage immer LIMIT zu verwenden (z. B.`SELECT * FROM table1 LIMIT 10`). Bevor Sie eine JOIN- oder GROUP BY-Abfrage in einer Produktionsumgebung ausführen, sollten Sie außerdem die Größe Ihrer Tabellen berücksichtigen. Wenn Ihre Tabellen zu groß sind, ziehen Sie alternative Optionen in Betracht, z. B. [die Migration der Tabelle zu Amazon S3](https://aws.amazon.com/blogs/database/simplify-amazon-dynamodb-data-extraction-and-analysis-by-using-aws-glue-and-amazon-athena/).

## Architektur
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-architecture"></a>

Das folgende Diagramm zeigt, wie ein Benutzer eine SQL-Abfrage für eine DynamoDB-Tabelle von Athena aus ausführen kann.

![\[Workflow für die Verbindung von Athena und DynamoDB zur Ausführung einer SQL-Abfrage.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e6ff94af-d208-40c7-94e4-af257755a603/images/bc8e0132-b578-463b-bf55-3c39ce359c17.png)


Das Diagramm zeigt den folgenden Workflow:

1. Um eine DynamoDB-Tabelle abzufragen, führt ein Benutzer eine SQL-Abfrage von Athena aus.

1. Athena initiiert eine Lambda-Funktion.

1. Die Lambda-Funktion fragt die angeforderten Daten in der DynamoDB-Tabelle ab.

1. DynamoDB gibt die angeforderten Daten an die Lambda-Funktion zurück. Anschließend überträgt die Funktion die Abfrageergebnisse über Athena an den Benutzer.

1. Die Lambda-Funktion speichert Daten im S3-Bucket.

**Technologie-Stack**
+ Amazon Athena
+ Amazon DynamoDB
+ Amazon S3
+ AWS Lambda

## Tools
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon S3 analysieren können.
+ [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb) ist ein AWS-Tool, mit dem Athena mithilfe von SQL-Abfragen eine Verbindung mit DynamoDB herstellen und auf Ihre Tabellen zugreifen kann.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

## Epen
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-epics"></a>

### DynamoDB-Beispieltabellen erstellen
<a name="create-sample-dynamodb-tables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die erste Beispieltabelle.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Fügen Sie Beispieldaten in die erste Tabelle ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)<pre>{<br />  "PK1": "1234",<br />  "SK1": "info",<br />  "Salary": "5000"<br /> }</pre><pre>{<br />  "PK1": "1235",<br />  "SK1": "info",<br />  "Salary": "5200"<br /> }</pre> | Developer | 
| Erstellen Sie die zweite Beispieltabelle.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Fügen Sie Beispieldaten in die zweite Tabelle ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)<pre>{<br />  "PK2": "1234",<br /> "SK2": "bonus",<br /> "Bonus": "500"<br />}</pre><pre>{<br />  "PK2": "1235",<br /> "SK2": "bonus",<br /> "Bonus": "1000"<br />}</pre> | Developer | 

### Erstellen Sie eine Datenquelle in Athena für DynamoDB
<a name="create-a-data-source-in-athena-for-dynamodb"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie den Datenquellenkonnektor ein. | Erstellen Sie eine Datenquelle für DynamoDB und anschließend eine Lambda-Funktion, um eine Verbindung zu dieser Datenquelle herzustellen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Stellen Sie sicher, dass die Lambda-Funktion auf den S3-Spill-Bucket zugreifen kann. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)Wenn Sie auf Fehler stoßen, finden Sie im Abschnitt *Zusätzliche Informationen* in diesem Muster eine Anleitung. | Developer | 

### Greifen Sie von Athena aus auf DynamoDB-Tabellen zu
<a name="access-dynamodb-tables-from-athena"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fragen Sie die DynamoDB-Tabellen ab. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Verbinden Sie die beiden DynamoDB-Tabellen. | DynamoDB ist ein NoSQL-Datenspeicher und unterstützt den SQL-Join-Vorgang nicht. Folglich müssen Sie einen Join-Vorgang für zwei DynamoDB-Tabellen ausführen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)<pre>SELECT pk1, salary, bonus FROM dydbtable1 t1<br /> JOIN dydbtable2 t2 ON t1.pk1 = t2.pk2;</pre> | Developer | 

## Zugehörige Ressourcen
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-resources"></a>
+ [Amazon Athena DynamoDB-Konnektor (AWS Labs](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb))
+ [Abfragen beliebiger Datenquellen mit der neuen Verbundabfrage von Amazon Athena](https://aws.amazon.com/blogs/big-data/query-any-data-source-with-amazon-athenas-new-federated-query/) (AWS Big Data Blog)
+ [Versionsreferenz der Athena-Engine](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference.html) (Athena-Benutzerhandbuch)
+ [Vereinfachen Sie die Datenextraktion und -analyse mit Amazon DynamoDB mithilfe von AWS Glue und Amazon Athena (AWS-Datenbank-Blog](https://aws.amazon.com/blogs/database/simplify-amazon-dynamodb-data-extraction-and-analysis-by-using-aws-glue-and-amazon-athena/))

## Zusätzliche Informationen
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-additional"></a>

Wenn Sie in Athena eine Abfrage mit `spill_bucket` im `{bucket_name}/folder_name/` Format ausführen, erhalten Sie möglicherweise die folgende Fehlermeldung:

```
"GENERIC_USER_ERROR: Encountered an exception[java.lang.RuntimeException] from your LambdaFunction[arn:aws:lambda:us-east-1:xxxxxx:function:testdynamodb] executed in context[retrieving meta-data] with message[You do NOT own the spill bucket with the name: s3://amzn-s3-demo-bucket/athena_dynamodb_spill_data/]
This query ran against the "default" database, unless qualified by the query. Please post the error message on our forum  or contact customer support with Query Id: [query-id]"
```

Um diesen Fehler zu beheben, aktualisieren Sie die Umgebungsvariable der Lambda-Funktion `spill_bucket` auf `{bucket_name_only}` und aktualisieren Sie dann die folgende Lambda-IAM-Richtlinie für den Bucket-Schreibzugriff:

```
{
             "Action": [
                 "s3:GetObject",
                 "s3:ListBucket",
                 "s3:GetBucketLocation",
                 "s3:GetObjectVersion",
                 "s3:PutObject",
                 "s3:PutObjectAcl",
                 "s3:GetLifecycleConfiguration",
                 "s3:PutLifecycleConfiguration",
                 "s3:DeleteObject"
            ],
             "Resource": [
                 "arn:aws:s3:::spill_bucket",
                 "arn:aws:s3:::spill_bucket/*"
            ],
             "Effect": "Allow"
        }
```

Alternativ können Sie den Athena-Datenquellenconnector, den Sie zuvor erstellt haben, entfernen und ihn neu erstellen, indem Sie nur `{bucket_name}` für verwenden. `spill_bucket`

# Richten Sie eine sprachspezifische Sortierung für Amazon Redshift Redshift-Abfrageergebnisse mithilfe einer skalaren Python-UDF ein
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf"></a>

*Ethan Stark, Amazon Web Services*

## Zusammenfassung
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-summary"></a>

Dieses Muster enthält Schritte und Beispielcode für die Verwendung einer skalaren Python-UDF (benutzerdefinierte Funktion) zur Einrichtung einer sprachlichen Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung für Amazon Redshift Redshift-Abfrageergebnisse. Es ist notwendig, eine skalare Python-UDF zu verwenden, da Amazon Redshift Ergebnisse auf der Grundlage der binären UTF-8-Reihenfolge zurückgibt und keine sprachspezifische Sortierung unterstützt. Eine Python-UDF ist Nicht-SQL-Verarbeitungscode, der auf einem Python-Programm basiert und in einem Data Warehouse ausgeführt wird. Sie können Python-UDF-Code mit einer SQL-Anweisung in einer einzigen Abfrage ausführen. Weitere Informationen finden Sie im Blogbeitrag [Einführung UDFs in Python in Amazon Redshift](https://aws.amazon.com/blogs/big-data/introduction-to-python-udfs-in-amazon-redshift/) AWS Big Data.

Die Beispieldaten in diesem Muster basieren zu Demonstrationszwecken auf dem türkischen Alphabet. Die skalare Python-UDF in diesem Muster ist so konzipiert, dass die Standardabfrageergebnisse von Amazon Redshift der sprachlichen Reihenfolge der Zeichen in der türkischen Sprache entsprechen. Weitere Informationen finden Sie im *Beispiel in türkischer Sprache* im Abschnitt *Zusätzliche Informationen dieses Musters*. Sie können die skalare Python-UDF in diesem Muster für andere Sprachen ändern.

## Voraussetzungen und Einschränkungen
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-prereqs"></a>

**Voraussetzungen**
+ [Amazon Redshift Redshift-Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) mit einer Datenbank, einem Schema und Tabellen
+ [Amazon Redshift Redshift-Benutzer](https://docs.aws.amazon.com/redshift/latest/dg/r_Users.html) mit `CREATE TABLE` und Berechtigungen `CREATE FUNCTION`
+ [Python 2.7](https://www.python.org/download/releases/2.7/) oder höher

**Einschränkungen**

Bei der sprachlichen Sortierung, die von den Abfragen in diesem Muster verwendet wird, wird nicht zwischen Groß- und Kleinschreibung unterschieden.

## Tools
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-tools"></a>

**AWS-Services**
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) ist ein verwalteter Data-Warehouse-Service im Petabyte-Bereich in der. AWS Cloud Amazon Redshift ist in Ihren Data Lake integriert, sodass Sie Ihre Daten nutzen können, um neue Erkenntnisse für Ihr Unternehmen und Ihre Kunden zu gewinnen.

**Andere Tools**
+ [Benutzerdefinierte Funktionen von Python (UDFs)](https://docs.snowflake.com/en/developer-guide/udf/python/udf-python-introduction.html) sind Funktionen, die Sie in Python schreiben und dann in SQL-Anweisungen aufrufen können.

## Epen
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-epics"></a>

### Entwickeln Sie Code, um Abfrageergebnisse in sprachlicher Reihenfolge zu sortieren
<a name="develop-code-to-sort-query-results-in-linguistic-order"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Tabelle für Ihre Beispieldaten. | Verwenden Sie die folgenden SQL-Anweisungen, um eine Tabelle in Amazon Redshift zu erstellen und Ihre Beispieldaten in die Tabelle einzufügen:<pre>CREATE TABLE my_table (first_name varchar(30));<br /><br />INSERT INTO my_table (first_name)<br />VALUES<br />    ('ali'),<br />    ('Ali'),<br />    ('ırmak'),<br />    ('IRMAK'),<br />    ('irem'),<br />    ('İREM'),<br />    ('oğuz'),<br />    ('OĞUZ'),<br />    ('ömer'),<br />    ('ÖMER'),<br />    ('sedat'),<br />    ('SEDAT'),<br />    ('şule'),</pre>Die Vornamen in den Beispieldaten enthalten Sonderzeichen aus dem türkischen Alphabet. Weitere Informationen zu den Überlegungen zur türkischen Sprache für dieses Beispiel finden Sie unter *Beispiel für eine türkische Sprache* im Abschnitt *Zusätzliche Informationen* dieses Musters. | Dateningenieur | 
| Überprüfen Sie die Standardsortierung der Beispieldaten. | Führen Sie die folgende Abfrage aus, um die Standardsortierung Ihrer Beispieldaten in Amazon Redshift zu sehen:<pre>SELECT first_name FROM my_table ORDER BY first_name;</pre>Die Abfrage gibt die Liste der Vornamen aus der Tabelle zurück, die Sie zuvor erstellt haben:<pre>first_name<br />---------------<br />Ali<br />IRMAK<br />OĞUZ<br />SEDAT<br />ali<br />irem<br />oğuz<br />sedat<br />ÖMER<br />ömer<br />İREM<br />ırmak<br />ŞULE<br />şule</pre>Die Abfrageergebnisse sind nicht in der richtigen Reihenfolge, da die standardmäßige binäre UTF-8-Reihenfolge die sprachliche Reihenfolge der türkischen Sonderzeichen nicht berücksichtigt. | Dateningenieur | 
| Erstellen Sie eine skalare Python-UDF. | Verwenden Sie den folgenden SQL-Code, um eine skalare Python-UDF zu erstellen: <pre>CREATE OR REPLACE FUNCTION collate_sort (value varchar) <br />RETURNS varchar <br />IMMUTABLE <br />AS <br />$$    <br />    def sort_str(val):<br />        import string<br />        <br />        dictionary = {<br />            'I': 'ı', <br />            'ı': 'h~', <br />            'İ': 'i', <br />            'Ş': 's~', <br />            'ş': 's~', <br />            'Ğ': 'g~', <br />            'ğ': 'g~', <br />            'Ü': 'u~', <br />            'ü': 'u~', <br />            'Ö': 'o~', <br />            'ö': 'o~', <br />            'Ç': 'c~', <br />            'ç': 'c~'<br />        }<br />        <br />        for key, value in dictionary.items():<br />            val = val.replace(key, value)<br />        <br />        return val.lower()<br /> <br />    return sort_str(value)<br />    <br />$$ LANGUAGE plpythonu;</pre> | Dateningenieur | 
| Fragen Sie die Beispieldaten ab. | Führen Sie die folgende SQL-Abfrage aus, um die Beispieldaten mithilfe der Python-UDF abzufragen:<pre>SELECT first_name FROM my_table ORDER BY collate_sort(first_name);</pre>Die Abfrage gibt jetzt die Beispieldaten in türkischer Sprachreihenfolge zurück:<pre>first_name<br />---------------<br />ali<br />Ali<br />ırmak<br />IRMAK<br />irem<br />İREM<br />oğuz<br />OĞUZ<br />ömer<br />Ömer<br />sedat<br />SEDAT<br />şule<br />ŞULE</pre> | Dateningenieur | 

## Zugehörige Ressourcen
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-resources"></a>
+ [ORDER BY-Klausel](https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html) (Amazon Redshift Redshift-Dokumentation)
+ [Erstellen einer skalaren Python-UDF](https://docs.aws.amazon.com/redshift/latest/dg/udf-creating-a-scalar-udf.html) (Amazon Redshift Redshift-Dokumentation)

## Zusätzliche Informationen
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-additional"></a>

**Beispiel in türkischer Sprache**

Amazon Redshift gibt Abfrageergebnisse zurück, die auf der binären UTF-8-Sortierreihenfolge basieren, nicht auf der sprachspezifischen Sortierreihenfolge. Das heißt, wenn Sie eine Amazon Redshift Redshift-Tabelle abfragen, die türkische Zeichen enthält, werden die Abfrageergebnisse nicht nach der sprachlichen Reihenfolge der türkischen Sprache sortiert. Die türkische Sprache enthält sechs Sonderzeichen (ç, ı, ğ, ö, ş und ü), die im lateinischen Alphabet nicht vorkommen. Diese Sonderzeichen werden am Ende einer sortierten Ergebnismenge platziert, die auf der binären UTF-8-Reihenfolge basiert, wie die folgende Tabelle zeigt.


| 
| 
| Binäre UTF-8-Reihenfolge | Türkische sprachliche Reihenfolge | 
| --- |--- |
| a | a | 
| b | b | 
| c | c | 
| d | **ç (\$1)** | 
| e | d | 
| f | e | 
| g | f | 
| h | g | 
| i | **ğ (\$1)** | 
| j | h | 
| k | **ı (\$1)** | 
| l | i | 
| m | j | 
| n | k | 
| o | l | 
| p | m | 
| r | n | 
| S | o | 
| t | **ö (\$1)** | 
| u | p | 
| V | r | 
| y | S | 
| z | **ş (\$1)** | 
| **ç (\$1)** | t | 
| **ğ (\$1)** | u | 
| **ı (\$1)** | **ü (\$1)** | 
| **ö (\$1)** | V | 
| **ş (\$1)** | y | 
| **ü (\$1)** | z | 

**Anmerkung**  
Das Sternchen (\$1) steht für ein Sonderzeichen in der türkischen Sprache.

Wie die obige Tabelle zeigt, steht das Sonderzeichen **ç** in der türkischen Sprachreihenfolge zwischen **c** und **d**, in der binären UTF-8-Reihenfolge jedoch hinter **z** Die skalare Python-UDF in diesem Muster verwendet das folgende Zeichenersetzungswörterbuch, um die türkischen Sonderzeichen durch entsprechende lateinische äquivalente Zeichen zu ersetzen.


| 
| 
| Türkisches Sonderzeichen | Entsprechendes lateinisches Zeichen | 
| --- |--- |
| ç | c\$1 | 
| ı | h\$1 | 
| ğ | g\$1 | 
| ö | o\$1 | 
| ş | s\$1 | 
| ü | u\$1 | 

**Anmerkung**  
An das Ende der lateinischen Zeichen, die die entsprechenden türkischen Sonderzeichen ersetzen, wird eine Tilde (\$1) angehängt.

**Ändern Sie eine skalare Python-UDF-Funktion**

Verwenden Sie den folgenden SQL-Code, um die skalare Python-UDF-Funktion anhand dieses Musters so zu ändern, dass die Funktion einen Locate-Parameter akzeptiert und ein Wörterbuch mit mehreren Transaktionen unterstützt:

```
CREATE OR REPLACE FUNCTION collate_sort (value varchar, locale varchar) 
RETURNS varchar 
IMMUTABLE 
AS 
$$    
    def sort_str(val):
       import string
       # Turkish Dictionary
       if locale == 'tr-TR':
            dictionary = {
               'I': 'ı', 
               'ı': 'h~', 
               'İ': 'i', 
               'Ş': 's~', 
               'ş': 's~', 
               'Ğ': 'g~', 
               'ğ': 'g~', 
               'Ü': 'u~', 
               'ü': 'u~', 
               'Ö': 'o~', 
               'ö': 'o~', 
               'Ç': 'c~', 
               'ç': 'c~'
        }
        # German Dictionary
        if locale == 'de-DE':
            dictionary = {
               ....
               ....
        }
        
        for key, value in dictionary.items():
            val = val.replace(key, value)
        
        return val.lower()
 
    return sort_str(value)
    
$$ LANGUAGE plpythonu;
```

Der folgende Beispielcode zeigt, wie die modifizierte Python-UDF abgefragt wird:

```
SELECT first_name FROM my_table ORDER BY collate_order(first_name, 'tr-TR');
```

# Abonnieren Sie eine Lambda-Funktion für Ereignisbenachrichtigungen von S3-Buckets in verschiedenen AWS-Regionen
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions"></a>

*Suresh Konathala, Amazon Web Services*

*Andrew Preston und Arindom Sarkar, Keiner*

## Zusammenfassung
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-summary"></a>

[Amazon Simple Storage Service (Amazon S3) Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/userguide/NotificationHowTo.html) veröffentlicht Benachrichtigungen für bestimmte Ereignisse in Ihrem S3-Bucket (z. B. Ereignisse, die durch Objekte erstellt wurden, Objekte entfernt oder Objekte wiederhergestellt). Sie können eine AWS Lambda Lambda-Funktion verwenden, um diese Benachrichtigungen gemäß den Anforderungen Ihrer Anwendung zu verarbeiten. Die Lambda-Funktion kann jedoch Benachrichtigungen von S3-Buckets, die in verschiedenen AWS-Regionen gehostet werden, nicht direkt abonnieren.

Der Ansatz dieses Musters stellt ein [Fanout-Szenario](https://docs.aws.amazon.com/sns/latest/dg/sns-common-scenarios.html) zur Verarbeitung von Amazon S3 S3-Benachrichtigungen aus regionsübergreifenden S3-Buckets mithilfe eines Amazon Simple Notification Service (Amazon SNS) -Themas für jede Region bereit. Diese regionalen SNS-Themen senden die Amazon S3 S3-Ereignisbenachrichtigungen an eine Amazon Simple Queue Service (Amazon SQS) -Warteschlange in einer zentralen Region, die auch Ihre Lambda-Funktion enthält. Die Lambda-Funktion abonniert diese SQS-Warteschlange und verarbeitet die Ereignisbenachrichtigungen gemäß den Anforderungen Ihres Unternehmens.

## Voraussetzungen und Einschränkungen
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Bestehende S3-Buckets in mehreren Regionen, einschließlich einer zentralen Region zum Hosten der Amazon SQS SQS-Warteschlange und der Lambda-Funktion.
+ AWS-Befehlszeilenschnittstelle (AWS CLI), installiert und konfiguriert. Weitere Informationen dazu finden Sie unter [Installation, Aktualisierung und Deinstallation der AWS-CLI in der AWS-CLI-Dokumentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html). 
+ Vertrautheit mit dem Fanout-Szenario in Amazon SNS. Weitere Informationen dazu finden Sie unter [Allgemeine Amazon SNS SNS-Szenarien in der Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-common-scenarios.html) SNS-Dokumentation.

## Architektur
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-architecture"></a>

Das folgende Diagramm zeigt die Architektur für den Ansatz dieses Musters. 

![\[Workflow verwendet Amazon SNS, S3 und SQS, um Ereignisbenachrichtigungen aus regionsübergreifenden S3-Buckets zu verarbeiten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cf6c1804-8c41-46f1-9f17-ff361708c595/images/760cf4c0-0cb3-48d1-92ae-1cf0fa8ae076.png)


Das Diagramm zeigt den folgenden Workflow:

1. Amazon S3 sendet Ereignisbenachrichtigungen über S3-Buckets (z. B. erstelltes, entferntes Objekt oder wiederhergestelltes Objekt) an ein SNS-Thema in derselben Region.

1. Das SNS-Thema veröffentlicht das Ereignis in einer SQS-Warteschlange in der Zentralregion.

1. Die SQS-Warteschlange ist als Ereignisquelle für Ihre Lambda-Funktion konfiguriert und puffert die Ereignisnachrichten für die Lambda-Funktion. 

1. Die Lambda-Funktion fragt die SQS-Warteschlange nach Nachrichten ab und verarbeitet die Amazon S3 S3-Ereignisbenachrichtigungen gemäß den Anforderungen Ihrer Anwendung.

 

**Technologie-Stack**
+ Lambda
+ Amazon SNS
+ Amazon SQS
+ Amazon S3

## Tools
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-tools"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist ein Open-Source-Tool für die Interaktion mit AWS-Services über Befehle in Ihrer Befehlszeilen-Shell. Mit minimaler Konfiguration können Sie AWS-CLI-Befehle, die Funktionen implementieren, die denen entsprechen, die von der browserbasierten AWS-Managementkonsole bereitgestellt werden, von einer Befehlszeile aus ausführen.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation hilft Ihnen dabei, Ihre AWS-Ressourcen zu modellieren und einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus zu verwalten. Sie können eine Vorlage verwenden, um Ihre Ressourcen und ihre Abhängigkeiten zu beschreiben und sie zusammen als Stack zu starten und zu konfigurieren, anstatt Ressourcen einzeln zu verwalten. Sie können Stacks für mehrere AWS-Konten und AWS-Regionen verwalten und bereitstellen.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Abonnenten erhalten die veröffentlichten Mitteilungen zu den Themen, die sie abonniert haben. Alle Abonnenten eines Themas erhalten dieselben Mitteilungen.
+ [Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) — Amazon Simple Queue Service (Amazon SQS) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können. Amazon SQS unterstützt sowohl Standard- als auch FIFO-Warteschlangen.

## Epen
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-epics"></a>

### Erstellen Sie die SQS-Warteschlange und die Lambda-Funktion in Ihrer zentralen Region
<a name="create-the-sqs-queue-and-lambda-function-in-your-central-region"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine SQS-Warteschlange mit einem Lambda-Trigger. | Melden Sie sich bei der AWS-Managementkonsole an und verwenden Sie die Anweisungen aus dem Tutorial [Using Lambda with Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-example.html) in der AWS Lambda-Dokumentation, um die folgenden Ressourcen in Ihrer zentralen Region zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.html)Stellen Sie sicher, dass Sie die SQS-Warteschlange als Ereignisquelle für Ihre Lambda-Funktion konfigurieren. | AWS DevOps, Cloud-Architekt | 

### Erstellen Sie ein SNS-Thema und richten Sie Ereignisbenachrichtigungen für die S3-Buckets in jeder erforderlichen Region ein
<a name="create-an-sns-topic-and-set-up-event-notifications-for-the-s3-buckets-in-each-required-region"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  Erstellen Sie ein SNS-Thema, um Amazon S3 S3-Ereignisbenachrichtigungen zu erhalten. | Erstellen Sie ein SNS-Thema in einer Region, von der Sie Amazon S3 S3-Ereignisbenachrichtigungen erhalten möchten. Weitere Informationen dazu finden Sie unter dem [Thema Creating an SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) in der Amazon SNS SNS-Dokumentation. Stellen Sie sicher, dass Sie den Amazon-Ressourcennamen (ARN) Ihres SNS-Themas aufzeichnen.  | AWS DevOps, Cloud-Architekt | 
| Abonnieren Sie das SNS-Thema für die zentrale SQS-Warteschlange. | Abonnieren Sie Ihr SNS-Thema für die SQS-Warteschlange, die von Ihrer zentralen Region gehostet wird. Weitere Informationen dazu finden Sie unter dem [Thema Abonnieren eines SNS in der Amazon SNS SNS-Dokumentation](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html). | AWS DevOps, Cloud-Architekt | 
| Aktualisieren Sie die Zugriffsrichtlinie des SNS-Themas.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.html)<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Sid": "0",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Service": "s3.amazonaws.com"<br />      },<br />      "Action": "sns:Publish",<br />      "Resource": "arn:aws:sns:us-west-2::s3Events-SNSTopic-us-west-2"<br />    }<br />  ]<br />}</pre> | AWS DevOps, Cloud-Architekt | 
| Richten Sie Benachrichtigungen für jeden S3-Bucket in der Region ein. | Richten Sie Ereignisbenachrichtigungen für jeden S3-Bucket in der Region ein. Weitere Informationen dazu finden Sie unter [Aktivieren und Konfigurieren von Ereignisbenachrichtigungen mithilfe der Amazon S3 S3-Konsole](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications.html) in der Amazon S3 S3-Dokumentation.Wählen Sie im Abschnitt **Ziel** die Option **SNS-Thema** aus und geben Sie den ARN des SNS-Themas an, das Sie zuvor erstellt haben. | AWS DevOps, Cloud-Architekt | 
| Wiederholen Sie dieses Epos für alle erforderlichen Regionen. | Wiederholen Sie die Aufgaben in diesem Epos für jede Region, aus der Sie Amazon S3 S3-Ereignisbenachrichtigungen erhalten möchten, einschließlich Ihrer zentralen Region. | AWS DevOps, Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-resources"></a>
+ [Konfiguration einer Zugriffsrichtlinie](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-add-permissions.html) (Amazon SQS SQS-Dokumentation)
+ [Konfiguration einer SQS-Warteschlange als Ereignisquelle](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) (AWS Lambda Lambda-Dokumentation)
+ [Konfiguration einer SQS-Warteschlange zur Initiierung einer Lambda-Funktion](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-lambda-function-trigger.html) (Amazon SQS SQS-Dokumentation)
+ [AWS::Lambda::Function Ressource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html) ( CloudFormation AWS-Dokumentation)

# Drei AWS Glue ETL-Auftragstypen für die Konvertierung von Daten in Apache Parquet
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet"></a>

*Adnan Alvee, Nith Govindasivan und Karthikeyan Ramachandran, Amazon Web Services*

## Zusammenfassung
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-summary"></a>

In der Amazon Web Services (AWS) Cloud ist AWS Glue ein vollständig verwalteter Service zum Extrahieren, Transformieren und Laden (ETL). Mit AWS Glue können Sie Ihre Daten kostengünstig kategorisieren, bereinigen, anreichern und zuverlässig zwischen verschiedenen Datenspeichern und Datenströmen verschieben.

Dieses Muster bietet verschiedene Auftragstypen in AWS Glue und verwendet drei verschiedene Skripts, um die Erstellung von ETL-Jobs zu demonstrieren.

Sie können AWS Glue verwenden, um ETL-Jobs in einer Python-Shell-Umgebung zu schreiben. Sie können auch Batch- und Streaming-ETL-Jobs mithilfe von Python (PySpark) oder Scala in einer verwalteten Apache Spark-Umgebung erstellen. Um Ihnen den Einstieg in die Erstellung von ETL-Jobs zu erleichtern, konzentriert sich dieses Muster auf Batch-ETL-Jobs mit Python-Shell und Scala. PySpark Python-Shell-Jobs sind für Workloads gedacht, die weniger Rechenleistung benötigen. Die verwaltete Apache Spark-Umgebung ist für Workloads gedacht, die eine hohe Rechenleistung erfordern.

Apache Parquet wurde entwickelt, um effiziente Komprimierungs- und Kodierungsschemata zu unterstützen. Es kann Ihre Analytics-Workloads beschleunigen, da es Daten spaltenweise speichert. Durch die Konvertierung von Daten in Parquet können Sie auf längere Sicht Speicherplatz, Kosten und Zeit sparen. Weitere Informationen zu Parquet finden Sie im Blogbeitrag [Apache Parquet: How to be a hero with the open-source columnar data format](https://blog.openbridge.com/how-to-be-a-hero-with-powerful-parquet-google-and-amazon-f2ae0f35ee04).

## Voraussetzungen und Einschränkungen
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-prereqs"></a>

**Voraussetzungen**
+ Rolle AWS Identity and Access Management (IAM) (Wenn Sie noch keine Rolle haben, lesen Sie den Abschnitt [Zusätzliche Informationen](#three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional).)

## Architektur
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-architecture"></a>

**Zieltechnologie-Stack**
+ AWS Glue
+ Amazon Simple Storage Service (Amazon-S3)
+ Apache Parquet

**Automatisierung und Skalierung**
+ [AWS Glue Glue-Workflows](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) unterstützen die vollständige Automatisierung einer ETL-Pipeline.
+ Sie können die Anzahl der Datenverarbeitungseinheiten (DPUs) oder Workertypen ändern, um sie horizontal und vertikal zu skalieren.

## Tools
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-tools"></a>

**AWS-Services**
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter ETL-Service zum Kategorisieren, Bereinigen, Anreichern und Verschieben Ihrer Daten zwischen verschiedenen Datenspeichern und Datenströmen.

**Andere Tools**
+ [Apache Parquet](https://parquet.apache.org/) ist ein spaltenorientiertes Open-Source-Datendateiformat, das zum Speichern und Abrufen entwickelt wurde.

**Konfiguration**

Verwenden Sie die folgenden Einstellungen für die Konfiguration der Rechenleistung von AWS Glue ETL. Um die Kosten zu senken, sollten Sie die minimalen Einstellungen verwenden, wenn Sie den Workload ausführen, der in diesem Muster bereitgestellt wird. 
+ **Python-Shell** — Sie können 1 DPU verwenden, um 16 GB Speicher zu nutzen, oder 0,0625 DPU, um 1 GB Speicher zu nutzen. Dieses Muster verwendet 0,0625 DPU, was die Standardeinstellung in der AWS Glue Glue-Konsole ist.
+ **Python oder Scala für Spark** — Wenn Sie die Spark-bezogenen Jobtypen in der Konsole auswählen, verwendet AWS Glue standardmäßig 10 Worker und den G.1X-Workertyp. Bei diesem Muster werden zwei Worker verwendet, was der zulässigen Mindestanzahl entspricht. Der Standard-Worker-Typ ist ausreichend und kostengünstig.

Die folgende Tabelle zeigt die verschiedenen AWS Glue Glue-Worker-Typen für die Apache Spark-Umgebung. Da ein Python-Shell-Job die Apache Spark-Umgebung nicht zum Ausführen von Python verwendet, ist er nicht in der Tabelle enthalten.


| 
| 
|  | Standard | G.1X | G.2X | 
| --- |--- |--- |--- |
| vCPU | 4 | 4 | 8 | 
| Arbeitsspeicher | 16 GB | 16 GB | 32 GB | 
| Festplattenkapazität | 50 GB | 64 GB | 128 GB | 
| Testamentsvollstrecker pro Arbeiter | 2 | 1  | 1 | 

**Code**

Den Code, der in diesem Muster verwendet wird, einschließlich der IAM-Rolle und der Parameterkonfiguration, finden Sie im Abschnitt [Zusätzliche](#three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional) Informationen.

## Epen
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-epics"></a>

### Laden Sie die Daten hoch
<a name="upload-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Daten in einen neuen oder vorhandenen S3-Bucket hoch. | Erstellen oder verwenden Sie einen vorhandenen S3-Bucket in Ihrem Konto. Laden Sie die Datei sample\$1data.csv aus dem Bereich [Anlagen](#attachments-8c926709-8fa4-417f-9aaf-bcc8113d018f) hoch und notieren Sie sich den S3-Bucket und den Speicherort des Präfixes. | Allgemeines AWS | 

### Den AWS Glue Glue-Job erstellen und ausführen
<a name="create-and-run-the-aws-glue-job"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den AWS Glue Glue-Job. | Fügen Sie im ETL-Bereich der AWS Glue Glue-Konsole einen AWS Glue Glue-Job hinzu. Wählen Sie den entsprechenden Jobtyp, die AWS Glue Glue-Version sowie den entsprechenden DPU/Worker Typ und die Anzahl der Mitarbeiter aus. Einzelheiten finden Sie im Abschnitt *Konfiguration*. | Entwickler, Cloud oder Daten | 
| Ändern Sie die Eingabe- und Ausgabeorte. | Kopieren Sie den Code, der Ihrem AWS Glue Glue-Job entspricht, und ändern Sie den Eingabe- und Ausgabeort, den Sie im Abschnitt **Daten hochladen** notiert haben. | Entwickler, Cloud oder Daten | 
| Konfigurieren Sie die Parameter. | Sie können die im Abschnitt [Zusätzliche Informationen](#three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional) bereitgestellten Codefragmente verwenden, um Parameter für Ihren ETL-Job festzulegen. AWS Glue verwendet intern vier Argumentnamen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet.html)Der `--JOB_NAME` Parameter muss explizit in der AWS Glue Glue-Konsole eingegeben werden. Wählen Sie **Jobs**, **Job bearbeiten**, **Sicherheitskonfiguration, Skriptbibliotheken und Jobparameter (optional)**. Geben Sie `--JOB_NAME` es als Schlüssel ein und geben Sie einen Wert ein. Sie können diesen Parameter auch über die AWS-Befehlszeilenschnittstelle (AWS CLI) oder die AWS Glue Glue-API festlegen. Der `--JOB_NAME` Parameter wird von Spark verwendet und wird in einem Python-Shell-Umgebungsjob nicht benötigt.Sie müssen `--` vor jedem Parameter einen Namen hinzufügen, sonst funktioniert der Code nicht. Für die Codefragmente müssen die Standortparameter beispielsweise mit und aufgerufen werden. `--input_loc` `--output_loc` | Entwickler, Cloud oder Daten | 
| Führen Sie den ETL-Job aus. | Führen Sie Ihren Job aus und überprüfen Sie die Ausgabe. Beachten Sie, wie viel Speicherplatz gegenüber der Originaldatei reduziert wurde. | Entwickler, Cloud oder Daten | 

## Zugehörige Ressourcen
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-resources"></a>

**Referenzen**
+ [Apache Spark](https://spark.apache.org/)
+ [AWS Glue: So funktioniert's](https://docs.aws.amazon.com/glue/latest/dg/how-it-works.html)
+ [Preise für AWS Glue](https://aws.amazon.com/glue/pricing/)

**Tutorials und Videos**
+ [Was ist AWS Glue?](https://www.youtube.com/watch?v=qgWMfNSN9f4)

## Zusätzliche Informationen
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional"></a>

**IAM role** (IAM-Rolle)

Wenn Sie die AWS Glue Glue-Jobs erstellen, können Sie entweder eine vorhandene IAM-Rolle mit den im folgenden Codeausschnitt angegebenen Berechtigungen oder eine neue Rolle verwenden.

Verwenden Sie den folgenden YAML-Code, um eine neue Rolle zu erstellen.

```
# (c) 2022 Amazon Web Services, Inc. or its affiliates. All Rights Reserved. This AWS Content is provided subject to the terms of the AWS Customer
# Agreement available at https://aws.amazon.com/agreement/ or other written agreement between Customer and Amazon Web Services, Inc.

AWSTemplateFormatVersion: "2010-09-09"

Description: This template will setup IAM role for AWS Glue service.

Resources:
  rGlueRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: "Allow"
            Principal:
              Service:
                - "glue.amazonaws.com"
            Action:
              - "sts:AssumeRole"
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole
      Policies:
        - PolicyName: !Sub "${AWS::StackName}-s3-limited-read-write-inline-policy"
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - "s3:PutObject"
                  - "s3:GetObject"
                Resource: "arn:aws:s3:::*/*"
      Tags:
        - Key  : "Name"
          Value : !Sub "${AWS::StackName}"

Outputs:
  oGlueRoleName:
    Description: AWS Glue IAM role
    Value:
      Ref: rGlueRole
    Export:
      Name: !Join [ ":", [ !Ref "AWS::StackName", rGlueRole ] ]
```

**AWS Glue Python-Shell**

Der Python-Code verwendet die Pandas und PyArrow Bibliotheken, um Daten in Parquet zu konvertieren. Die Pandas-Bibliothek ist bereits verfügbar. Die PyArrow Bibliothek wird heruntergeladen, wenn Sie das Pattern ausführen, da es sich um eine einmalige Ausführung handelt. Sie können Raddateien verwenden, um sie in eine Bibliothek PyArrow zu konvertieren und die Datei als Bibliothekspaket bereitzustellen. Weitere Informationen zum Verpacken von Raddateien finden Sie unter [Bereitstellen einer eigenen Python-Bibliothek](https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html).

*Python-Shell-Parameter von AWS Glue*

```
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv, ["input_loc", "output_loc"])
```

*Python-Shellcode von AWS Glue*

```
from io import BytesIO
import pandas as pd
import boto3
import os
import io
import site
from importlib import reload
from setuptools.command import easy_install
install_path = os.environ['GLUE_INSTALLATION']
easy_install.main( ["--install-dir", install_path, "pyarrow"] )
reload(site)
import pyarrow


input_loc = "s3://bucket-name/prefix/sample_data.csv"
output_loc = "s3://bucket-name/prefix/"


input_bucket = input_loc.split('/', 1)[0]
object_key = input_loc.split('/', 1)[1]


output_loc_bucket = output_loc.split('/', 1)[0]
output_loc_prefix = output_loc.split('/', 1)[1] 


s3 = boto3.client('s3')
obj = s3.get_object(Bucket=input_bucket, Key=object_key)
df = pd.read_csv(io.BytesIO(obj['Body'].read()))


parquet_buffer = BytesIO()
s3_resource = boto3.resource('s3')
df.to_parquet(parquet_buffer, index=False) 
s3_resource.Object(output_loc_bucket, output_loc_prefix +  'data' + '.parquet').put(Body=parquet_buffer.getvalue())
```

**AWS Glue Spark-Auftrag mit Python**

Um einen AWS Glue Spark-Auftragstyp mit Python zu verwenden, wählen Sie **Spark** als Auftragstyp. Wählen Sie **Spark 3.1, Python 3 mit verbesserter Jobstartzeit (Glue Version 3.0)** als AWS Glue Glue-Version.

*Python-Parameter von AWS Glue*

```
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv, ["JOB_NAME", "input_loc", "output_loc"])
```

*AWS Glue Spark-Job mit Python-Code*

```
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.transforms import *
from awsglue.dynamicframe import DynamicFrame
from awsglue.utils import getResolvedOptions
from awsglue.job import Job


sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

input_loc = "s3://bucket-name/prefix/sample_data.csv"
output_loc = "s3://bucket-name/prefix/"

inputDyf = glueContext.create_dynamic_frame_from_options(\
    connection_type = "s3", \
    connection_options = { 
        "paths": [input_loc]}, \
    format = "csv",
    format_options={
        "withHeader": True,
        "separator": ","
    })


outputDF = glueContext.write_dynamic_frame.from_options(\
    frame = inputDyf, \
    connection_type = "s3", \
    connection_options = {"path": output_loc \
        }, format = "parquet")
```

Verwenden Sie für eine große Anzahl komprimierter großer Dateien (z. B. 1.000 Dateien mit einer Größe von jeweils etwa 3 MB) den `compressionType` Parameter mit dem `recurse` Parameter, um alle Dateien zu lesen, die innerhalb des Präfixes verfügbar sind, wie im folgenden Code gezeigt.

```
input_loc = "bucket-name/prefix/"
output_loc = "bucket-name/prefix/"

inputDyf = glueContext.create_dynamic_frame_from_options(
                    connection_type = "s3", 
                    connection_options = {"paths": [input_loc], 
                                            "compressionType":"gzip","recurse" :"True",
                                            },
                    format = "csv",
                    format_options={"withHeader": True,"separator": ","}
                    )
```

Verwenden Sie für eine große Anzahl komprimierter kleiner Dateien (z. B. 1.000 Dateien mit jeweils etwa 133 KB) den `groupFiles` Parameter zusammen mit den `recurse` Parametern `compressionType` und. Der `groupFiles` Parameter gruppiert kleine Dateien in mehrere große Dateien, und der `groupSize` Parameter steuert die Gruppierung auf die angegebene Größe in Byte (z. B. 1 MB). Der folgende Codeausschnitt bietet ein Beispiel für die Verwendung dieser Parameter im Code.

```
input_loc = "bucket-name/prefix/"
output_loc = "bucket-name/prefix/"

inputDyf = glueContext.create_dynamic_frame_from_options(
                    connection_type = "s3", 
                    connection_options = {"paths": [input_loc], 
                                            "compressionType":"gzip","recurse" :"True",
                                             "groupFiles" :"inPartition",  "groupSize" :"1048576",
                                            },
                    format = "csv",
                    format_options={"withHeader": True,"separator": ","}
                    )
```

Ohne Änderung der Worker-Knoten ermöglichen diese Einstellungen dem AWS Glue Glue-Job, mehrere Dateien (groß oder klein, mit oder ohne Komprimierung) zu lesen und sie im Parquet-Format auf das Ziel zu schreiben.

**AWS Glue Spark-Auftrag mit Scala**

Um einen AWS Glue Spark-Auftragstyp mit Scala zu verwenden, wählen Sie **Spark** als Auftragstyp und **Sprache** als **Scala**. Wählen Sie **Spark 3.1, Scala 2 mit verbesserter Jobstartzeit (Glue Version 3.0)** als AWS Glue Glue-Version. Um Speicherplatz zu sparen, verwendet das folgende Beispiel für AWS Glue mit Scala die `applyMapping` Funktion auch zum Konvertieren von Datentypen.

*AWS Glue Scala-Parameter*

```
import com.amazonaws.services.glue.util.GlueArgParser val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME", "inputLoc", "outputLoc").toArray)
```

*AWS Glue Spark-Job mit Scala-Code*

```
import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.MappingSpec
import com.amazonaws.services.glue.DynamicFrame
import com.amazonaws.services.glue.errors.CallSite
import com.amazonaws.services.glue.util.GlueArgParser
import com.amazonaws.services.glue.util.Job
import com.amazonaws.services.glue.util.JsonOptions
import org.apache.spark.SparkContext
import scala.collection.JavaConverters._


object GlueScalaApp {
  def main(sysArgs: Array[String]) {
    
    @transient val spark: SparkContext = SparkContext.getOrCreate()
    val glueContext: GlueContext = new GlueContext(spark)

    val inputLoc = "s3://bucket-name/prefix/sample_data.csv"
    val outputLoc = "s3://bucket-name/prefix/"

    val readCSV = glueContext.getSource("csv", JsonOptions(Map("paths" -> Set(inputLoc)))).getDynamicFrame()

    val applyMapping = readCSV.applyMapping(mappings = Seq(("_c0", "string", "date", "string"), ("_c1", "string", "sales", "long"),
    ("_c2", "string", "profit", "double")), caseSensitive = false)

    val formatPartition = applyMapping.toDF().coalesce(1)

    val dynamicFrame = DynamicFrame(formatPartition, glueContext)

    val dataSink = glueContext.getSinkWithFormat(
        connectionType = "s3", 
        options = JsonOptions(Map("path" -> outputLoc )),
        transformationContext = "dataSink", format = "parquet").writeDynamicFrame(dynamicFrame)
  }
}
```

## Anlagen
<a name="attachments-8c926709-8fa4-417f-9aaf-bcc8113d018f"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/8c926709-8fa4-417f-9aaf-bcc8113d018f/attachments/attachment.zip)

# Visualisieren Sie Amazon Redshift Redshift-Prüfprotokolle mit Amazon Athena und Amazon QuickSight
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight"></a>

*Sanket Sirsikar und Gopal Krishna Bhatia, Amazon Web Services*

## Zusammenfassung
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-summary"></a>

Sicherheit ist ein integraler Bestandteil des Datenbankbetriebs in der Amazon Web Services (AWS) Cloud. Ihr Unternehmen sollte sicherstellen, dass es die Aktivitäten und Verbindungen der Datenbankbenutzer überwacht, um potenzielle Sicherheitsvorfälle und -risiken zu erkennen. Dieses Muster hilft Ihnen dabei, Ihre Datenbanken zu Sicherheits- und Fehlerbehebungszwecken zu überwachen. Dieser Vorgang wird als Datenbank-Auditing bezeichnet.

 Dieses Muster stellt ein SQL-Skript bereit, das die Erstellung einer Amazon Athena Athena-Tabelle und Ansichten für ein Berichts-Dashboard in Amazon automatisiert QuickSight , das Sie bei der Prüfung von Amazon Redshift Redshift-Protokollen unterstützt. Dadurch wird sichergestellt, dass Benutzer, die für die Überwachung der Datenbankaktivitäten verantwortlich sind, bequemen Zugriff auf Datensicherheitsfunktionen haben.  

## Voraussetzungen und Einschränkungen
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Ein vorhandener Amazon Redshift Redshift-Cluster. Weitere Informationen dazu finden Sie unter [Erstellen eines Amazon Redshift Redshift-Clusters in der Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data-launch-cluster.html) Redshift-Dokumentation.
+ Zugriff auf eine bestehende Athena-Arbeitsgruppe. Weitere Informationen finden Sie in der Amazon Athena Athena-Dokumentation unter [So funktionieren Arbeitsgruppen](https://docs.aws.amazon.com/athena/latest/ug/user-created-workgroups.html). 
+ Ein vorhandener Quell-Bucket von Amazon Simple Storage Service (Amazon S3) mit den erforderlichen AWS Identity and Access Management (IAM) -Berechtigungen. Weitere Informationen finden Sie unter [Bucket-Berechtigungen für die Amazon Redshift Redshift-Audit-Protokollierung](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-bucket-permissions) unter [Datenbank-Audit-Protokollierung](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html) in der Amazon Redshift Redshift-Dokumentation.

## Architektur
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-architecture"></a>

![\[Data flow diagram showing Amazon Redshift, logs, S3 bucket, Amazon Athena, and Amazon Quick.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/90e69009-001e-4ced-bef0-3c361f93ae87/images/9fde7f01-17ab-4207-8a59-a12daf85a382.png)


 

**Technologie-Stack**
+ Athena
+ Amazon Redshift 
+ Amazon S3 
+ QuickSight

## Tools
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) — Athena ist ein interaktiver Abfrageservice, der es einfach macht, Daten in Amazon S3 mit Standard-SQL zu analysieren. 
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) — QuickSight ist ein skalierbarer, serverloser, einbettbarer, auf maschinellem Lernen basierender Business Intelligence (BI) -Service. 
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) — Amazon Redshift ist ein vollständig verwalteter Data-Warehousing-Service auf Unternehmensebene im Petabyte-Bereich. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) ist ein Speicher für das Internet.

## Epen
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-epics"></a>

### Den Amazon Redshift Redshift-Cluster konfigurieren
<a name="configure-the-amazon-redshift-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  Aktivieren Sie die Auditprotokollierung für den Amazon Redshift Redshift-Cluster. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight.html) | DBA, Dateningenieur | 
| Aktivieren Sie die Protokollierung in der Amazon Redshift Redshift-Cluster-Parametergruppe. | Sie können die Prüfung von Verbindungsprotokollen, Benutzerprotokollen und Benutzeraktivitätsprotokollen gleichzeitig aktivieren, indem Sie die AWS-Managementkonsole, die Amazon Redshift Redshift-API-Referenz oder die AWS-Befehlszeilenschnittstelle (AWS CLI) verwenden.  Für die Prüfung von Benutzeraktivitätsprotokollen müssen Sie den `enable_user_activity_logging` Datenbankparameter aktivieren. Wenn Sie nur die Audit-Logging-Funktion, aber nicht den zugehörigen Parameter aktivieren, protokolliert das Datenbank-Audit die Protokollinformationen für die Verbindungs- und Benutzerprotokolle, nicht aber für die Benutzeraktivitätsprotokolle. Der `enable_user_activity_logging` Parameter ist standardmäßig nicht aktiviert, aber Sie können ihn aktivieren, indem Sie ihn von `false` zu ändern`true`.Sie müssen eine neue Cluster-Parametergruppe mit aktiviertem `user_activity_logging` Parameter erstellen und sie an Ihren Amazon Redshift Redshift-Cluster anhängen. Weitere Informationen dazu finden Sie unter [Einen Cluster modifizieren](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#modify-cluster) in der Amazon Redshift Redshift-Dokumentation.Weitere Informationen zu dieser Aufgabe finden Sie unter [Amazon Redshift Redshift-Parametergruppen](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) und [Konfiguration der Überwachung mithilfe der Konsole in der](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing-console.html) Amazon Redshift Redshift-Dokumentation. | DBA, Dateningenieur | 
| Konfigurieren Sie S3-Bucket-Berechtigungen für die Amazon Redshift Redshift-Cluster-Protokollierung. | Wenn Sie die Protokollierung aktivieren, sammelt Amazon Redshift Protokollierungsinformationen und lädt sie in Protokolldateien hoch, die in einem S3-Bucket gespeichert sind. Sie können einen vorhandenen S3-Bucket verwenden oder einen neuen Bucket erstellen.Stellen Sie sicher, dass Amazon Redshift über die erforderlichen IAM-Berechtigungen für den Zugriff auf den S3-Bucket verfügt. Weitere Informationen dazu finden Sie unter [Bucket-Berechtigungen für die Amazon Redshift Redshift-Audit-Protokollierung](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-bucket-permissions) von [Database Audit Logging](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html) in der Amazon Redshift Redshift-Dokumentation. | DBA, Dateningenieur | 

### Erstellen Sie die Athena-Tabelle und die Athena-Ansichten
<a name="create-the-athena-table-and-views"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Athena-Tabelle und die Ansichten, um Amazon Redshift Redshift-Audit-Protokolldaten aus dem S3-Bucket abzufragen. | Öffnen Sie die Amazon Athena Athena-Konsole und verwenden Sie die DDL-Abfrage (Data Definition Language) aus dem `AuditLogging.sql` SQL-Skript (angehängt), um die Tabelle und die Ansichten für Benutzeraktivitätsprotokolle, Benutzerprotokolle und Verbindungsprotokolle zu erstellen.Weitere Informationen und Anweisungen finden Sie im Tutorial [Tabellen erstellen und Abfragen ausführen](https://athena-in-action.workshop.aws/30-basics/301-create-tables.html) aus dem Amazon Athena Workshop. | Dateningenieur | 

### Richten Sie die Protokollüberwachung im QuickSight Dashboard ein
<a name="set-up-log-monitoring-in-the-quicksight-dashboard"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein QuickSight Dashboard mit Athena als Datenquelle. | Öffnen Sie die QuickSight Amazon-Konsole und erstellen Sie ein QuickSight Dashboard, indem Sie den Anweisungen im Tutorial [Visualize QuickSight with Athena](https://athena-in-action.workshop.aws/30-basics/307-quicksight.html) aus dem Amazon Athena Workshop folgen. | DBA, Dateningenieur | 

## Zugehörige Ressourcen
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-resources"></a>
+ [Erstellen Sie Tabellen und führen Sie Abfragen in Athena aus](https://athena-in-action.workshop.aws/30-basics/301-create-tables.html)
+ [Visualisieren QuickSight mit Athena](https://athena-in-action.workshop.aws/30-basics/307-quicksight.html)

## Anlagen
<a name="attachments-90e69009-001e-4ced-bef0-3c361f93ae87"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/90e69009-001e-4ced-bef0-3c361f93ae87/attachments/attachment.zip)

# Visualisieren Sie IAM-Anmeldedatenberichte für alle AWS-Konten mit Amazon Quick Sight
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight"></a>

*Parag Nagwekar und Arun Chandapillai, Amazon Web Services*

## Zusammenfassung
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-summary"></a>


| 
| 
| Warnung: IAM-Benutzer verfügen über langfristige Anmeldeinformationen, was ein Sicherheitsrisiko darstellt. Um dieses Risiko zu minimieren, empfehlen wir, diesen Benutzern nur die Berechtigungen zu gewähren, die sie für die Ausführung der Aufgabe benötigen, und diese Benutzer zu entfernen, wenn sie nicht mehr benötigt werden. | 
| --- |

Sie können die Anmeldeinformationen von AWS Identity and Access Management (IAM) verwenden, um die Sicherheits-, Prüf- und Compliance-Anforderungen Ihres Unternehmens zu erfüllen. [Anmeldedatenberichte](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html) enthalten eine Liste aller Benutzer in Ihren AWS-Konten und zeigen den Status ihrer Anmeldeinformationen, wie Passwörter, Zugriffsschlüssel und Geräte mit Multi-Faktor-Authentifizierung (MFA). Sie können Anmeldeinformationsberichte für mehrere AWS-Konten verwenden, die von [AWS Organizations](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/core-concepts.html) verwaltet werden.

Dieses Muster umfasst Schritte und Code, mit denen Sie mithilfe von Amazon Quick Sight-Dashboards IAM-Anmeldedaten für alle AWS-Konten in Ihrer Organisation erstellen und teilen können. Sie können die Dashboards mit Stakeholdern in Ihrer Organisation teilen. Die Berichte können Ihrem Unternehmen dabei helfen, die folgenden gezielten Geschäftsergebnisse zu erzielen:
+ Identifizieren Sie Sicherheitsvorfälle im Zusammenhang mit IAM-Benutzern
+ Verfolgen Sie die Migration von IAM-Benutzern zur Single Sign-On (SSO) -Authentifizierung in Echtzeit
+ AWS-Regionen verfolgen, auf die IAM-Benutzer zugreifen
+ Bleiben Sie konform
+ Teilen Sie Informationen mit anderen Stakeholdern

## Voraussetzungen und Einschränkungen
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine [Organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tutorials_basic.html) mit Mitgliedskonten
+ Eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) mit Berechtigungen für den Zugriff auf Konten in Organizations
+ AWS-Befehlszeilenschnittstelle (AWS CLI) Version 2, [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Ein [Abonnement](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) für die [Amazon Quick Enterprise Edition](https://docs.aws.amazon.com/quicksight/latest/user/editions.html)

## Architektur
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-architecture"></a>

**Technologie-Stack**
+ Amazon Athena
+ Amazon EventBridge
+ Amazon Quick Sight
+ Amazon Simple Storage Service (Amazon-S3)
+ AWS Glue
+ AWS Identity and Access Management (IAM)
+ AWS Lambda
+ AWS Organizations

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur für die Einrichtung eines Workflows, der IAM-Anmeldedaten von mehreren AWS-Konten erfasst.

![\[Der folgende Screenshot veranschaulicht das Architekturdiagramm\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8724ff28-40f6-4c43-9c65-fbd18bbbfd0f/images/e780916a-4ab7-4fdc-8ecc-c837c7d90d13.png)


1. EventBridge ruft täglich eine Lambda-Funktion auf.

1. Die Lambda-Funktion übernimmt in jedem AWS-Konto im gesamten Unternehmen eine IAM-Rolle. Anschließend erstellt die Funktion den Bericht mit den IAM-Anmeldeinformationen und speichert die Berichtsdaten in einem zentralen S3-Bucket. Sie müssen die Verschlüsselung aktivieren und den öffentlichen Zugriff auf den S3-Bucket deaktivieren.

1. Ein AWS Glue Glue-Crawler crawlt den S3-Bucket täglich und aktualisiert die Athena-Tabelle entsprechend.

1. Quick Sight importiert und analysiert die Daten aus dem Anmeldedatenbericht und erstellt ein Dashboard, das von Stakeholdern visualisiert und mit ihnen geteilt werden kann.

## Tools
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-tools"></a>

**AWS-Services**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, der es einfach macht, Daten in Amazon S3 mithilfe von Standard-SQL zu analysieren.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel Lambda-Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen AWS-Konten.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und Berichte erstellen können. Quick Sight ist eine Kernkomponente von Amazon Quick und bietet interaktive Datenvisualisierung, SPICE-In-Memory-Analysen, eingebettete Analysen und die gemeinsame Nutzung von Dashboards.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

**Code**

Der Code für dieses Muster ist im GitHub [getiamcredsreport-allaccounts-org](https://github.com/aws-samples/getiamcredsreport-allaccounts-org)Repository verfügbar. Sie können den Code aus diesem Repository verwenden, um Berichte über IAM-Anmeldeinformationen für alle AWS-Konten in Organizations zu erstellen und diese an einem zentralen Ort zu speichern.

## Epen
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-epics"></a>

### Richten Sie die Infrastruktur ein
<a name="set-up-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie die Amazon Quick Enterprise Edition ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS-Administrator DevOps, AWS, Cloud-Administrator, Cloud-Architekt | 
| Integrieren Sie Amazon Quick Sight mit Amazon S3 und Athena. | Sie müssen Quick Sight [autorisieren](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-to-datasources.html), Amazon S3 und Athena zu verwenden, bevor Sie den CloudFormation AWS-Stack bereitstellen. | AWS-Administrator DevOps, AWS, Cloud-Administrator, Cloud-Architekt | 

### Stellen Sie die Infrastruktur bereit
<a name="deploy-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das GitHub Repository. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS-Administrator | 
| Stellen Sie die Infrastruktur bereit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS-Administrator | 
| Erstellen Sie eine IAM-Berechtigungsrichtlinie. | [Erstellen Sie eine IAM-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) für jedes AWS-Konto in Ihrer Organisation mit den folgenden Berechtigungen:<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Action": [<br />        "iam:GenerateCredentialReport",<br />        "iam:GetCredentialReport"<br />        ],<br />      "Resource": "*"<br />    }<br />  ]<br />}</pre> | AWS DevOps, Cloud-Administrator, Cloud-Architekt, Dateningenieur | 
| Erstellen Sie eine IAM-Rolle mit einer Vertrauensrichtlinie. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html)<pre>{<br />   "Version": "2012-10-17",		 	 	 <br />   "Statement":[<br />      {<br />         "Effect":"Allow",<br />         "Principal":{<br />            "AWS":[<br />               "arn:aws:iam::<MasterAccountID>:role/<LambdaRole>"<br />            ]<br />         },<br />         "Action":"sts:AssumeRole"<br />      }<br />   ]<br />}</pre>`arn:aws:iam::<MasterAccountID>:role/<LambdaRole>`Ersetzen Sie es durch den ARN der Lambda-Rolle, den Sie zuvor notiert haben.Organizations verwenden in der Regel Automatisierung, um IAM-Rollen für ihre AWS-Konten zu erstellen. Wir empfehlen Ihnen, diese Automatisierung zu verwenden, sofern verfügbar. Alternativ können Sie das `CreateRoleforOrg.py` Skript aus**** dem Code-Repository verwenden. Das Skript erfordert eine bestehende Administratorrolle oder eine andere IAM-Rolle, die berechtigt ist, eine IAM-Richtlinie und -Rolle in jedem AWS-Konto zu erstellen. | Cloud-Administrator, Cloud-Architekt, AWS-Administrator | 
| Konfigurieren Sie Amazon Quick Sight, um die Daten zu visualisieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS DevOps, Cloud-Administrator, Cloud-Architekt, Dateningenieur | 

## Zusätzliche Informationen
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-additional"></a>

**Zusätzliche Überlegungen**

Berücksichtigen Sie dabei Folgendes:
+ Nachdem Sie die Infrastruktur bereitgestellt haben, können Sie warten, CloudFormation bis die Berichte in Amazon S3 erstellt und von Athena analysiert wurden, bis Lambda und AWS Glue gemäß ihren Zeitplänen ausgeführt werden. Alternativ können Sie Lambda manuell ausführen, um die Berichte in Amazon S3 abzurufen, und dann den AWS Glue Glue-Crawler ausführen, um die Athena-Tabelle abzurufen, die aus den Daten erstellt wurde.
+ Quick ist ein leistungsstarkes Tool zur Analyse und Visualisierung von Daten auf der Grundlage Ihrer Geschäftsanforderungen. Sie können [Parameter](https://docs.aws.amazon.com/quicksight/latest/user/parameters-in-quicksight.html) in Quick verwenden, um Widget-Daten auf der Grundlage von Datenfeldern zu steuern, die Sie auswählen. Außerdem können Sie eine Schnellanalyse verwenden, um Parameter (z. B. Konto-, Datum- und Benutzerfelder wie `partition_0``partition_1`, und `user` bzw.) aus Ihrem Datensatz zu erstellen, um Steuerelemente für die Parameter für Konto, Datum und Benutzer hinzuzufügen.
+ Informationen zum Erstellen Ihrer eigenen Quick Sight-Dashboards finden Sie unter [Quick Workshops](https://catalog.workshops.aws/quicksight/en-US) auf der AWS Workshop Studio-Website.
+ Beispiele für Quick Sight-Dashboards finden Sie im GitHub [getiamcredsreport-allaccounts-org](https://github.com/aws-samples/getiamcredsreport-allaccounts-org)Code-Repository.

**Gezielte Geschäftsergebnisse**

Sie können dieses Muster verwenden, um die folgenden gezielten Geschäftsergebnisse zu erzielen:
+ **Identifizieren Sie Sicherheitsvorfälle im Zusammenhang mit IAM-Benutzern** — Untersuchen Sie jeden Benutzer in jedem AWS-Konto in Ihrem Unternehmen über eine zentrale Oberfläche. Sie können den Trend der einzelnen AWS-Regionen eines IAM-Benutzers verfolgen, auf die er zuletzt zugegriffen hat, und die Dienste, die er verwendet hat.
+ **Verfolgen Sie die Migration von IAM-Benutzern zur SSO-Authentifizierung in Echtzeit** — Mithilfe von SSO können sich Benutzer einmal mit einem einzigen Berechtigungsnachweis anmelden und auf mehrere AWS-Konten und -Anwendungen zugreifen. Wenn Sie planen, Ihre IAM-Benutzer zu SSO zu migrieren, kann Ihnen dieses Muster dabei helfen, zu SSO zu wechseln und die gesamte Nutzung der IAM-Benutzeranmeldedaten (z. B. Zugriff auf die AWS-Managementkonsole oder Verwendung von Zugriffsschlüsseln) über alle AWS-Konten hinweg zu verfolgen.
+ **AWS-Regionen nachverfolgen, auf die IAM-Benutzer zugreifen — Sie können den Zugriff von** IAM-Benutzern auf Regionen für verschiedene Zwecke steuern, z. B. für Datenhoheit und Kostenkontrolle. Sie können auch die Nutzung von Regionen durch jeden IAM-Benutzer nachverfolgen.
+ **Bleiben Sie konform** — Wenn Sie dem Prinzip der geringsten Rechte folgen, können Sie nur die spezifischen IAM-Berechtigungen gewähren, die für die Ausführung einer bestimmten Aufgabe erforderlich sind. Außerdem können Sie den Zugriff auf AWS-Services, die AWS-Managementkonsole und die langfristige Nutzung von Anmeldeinformationen verfolgen.
+ **Informationen mit anderen Beteiligten teilen** — Sie können kuratierte Dashboards mit anderen Beteiligten teilen, ohne ihnen Zugriff auf IAM-Anmeldedaten oder AWS-Konten zu gewähren.

# Mehr Muster
<a name="analytics-more-patterns-pattern-list"></a>

**Topics**
+ [Authentifizieren Sie bestehende Benutzer von React-Anwendungen mithilfe von Amazon Cognito und AWS Amplify UI](authenticate-react-app-users-cognito-amplify-ui.md)
+ [Automatisches Extrahieren von Inhalten aus PDF-Dateien mit Amazon Textract](automatically-extract-content-from-pdf-files-using-amazon-textract.md)
+ [Erstellen Sie ein Kaltstart-Prognosemodell, indem Sie DeepAR für Zeitreihen in Amazon SageMaker AI Studio Lab verwenden](build-a-cold-start-forecasting-model-by-using-deepar.md)
+ [Erstellen Sie mit dem AWS Cost Explorer detaillierte Kosten- und Nutzungsberichte für Amazon EMR-Cluster](create-detailed-cost-and-usage-reports-for-amazon-emr-clusters-by-using-aws-cost-explorer.md)
+ [Erstellen Sie detaillierte Kosten- und Nutzungsberichte für Amazon RDS und Amazon Aurora](create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora.md)
+ [Erstellen Sie mit dem AWS Cost Explorer detaillierte Kosten- und Nutzungsberichte für AWS Glue-Jobs](create-detailed-cost-and-usage-reports-for-aws-glue-jobs-by-using-aws-cost-explorer.md)
+ [Stellen Sie DynamoDB-Datensätze mithilfe von Kinesis Data Streams und Firehose an Amazon S3 bereit mit AWS CDK](deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.md)
+ [Stellen Sie einen AWS Glue Glue-Job mit einer AWS CodePipeline CI/CD-Pipeline bereit](deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline.md)
+ [Integrieren Sie visuelle Komponenten von Amazon Quick Sight mithilfe von Amazon Cognito und IaC-Automatisierung in Webanwendungen](embed-quick-sight-visual-components-into-web-apps-cognito-iac.md)
+ [Schätzung der Speicherkosten für eine Amazon DynamoDB-Tabelle](estimate-storage-costs-for-an-amazon-dynamodb-table.md)
+ [Führen Sie Amazon Redshift SQL-Abfragen mithilfe von Terraform aus](execute-redshift-sql-queries-using-terraform.md)
+ [Extrahieren und Abfragen von AWS IoT SiteWise Metadatenattributen in einem Data Lake](extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake.md)
+ [Generieren Sie Dateneinblicke mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Generieren Sie Einblicke in z/OS Db2-Daten mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Geben Sie SageMaker Notebook-Instances temporären Zugriff auf ein CodeCommit Repository in einem anderen AWS-Konto](give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account.md)
+ [Identifizieren und benachrichtigen Sie, wenn Amazon Data Firehose-Ressourcen nicht mit einem AWS KMS Schlüssel verschlüsselt sind](identify-and-alert-when-amazon-data-firehose-resources-are-not-encrypted-with-an-aws-kms-key.md)
+ [Importieren Sie die psycopg2-Bibliothek, AWS Lambda um mit Ihrer PostgreSQL-Datenbank zu interagieren](import-psycopg2-library-lambda.md)
+ [Erfassung und Analyse von AWS-Sicherheitsprotokollen in Microsoft Sentinel](ingest-analyze-aws-security-logs-sentinel.md)
+ [Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL im SSL-Modus mithilfe von AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrieren Sie eine Oracle-Datenbank mithilfe von GoldenGate Oracle-Flatfile-Adaptern zu Amazon RDS for Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon Redshift](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie Daten mithilfe DistCp von AWS PrivateLink für Amazon S3 von einer lokalen Hadoop-Umgebung zu Amazon S3](migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.md)
+ [Migrieren Sie von Couchbase Server zu Couchbase Capella auf AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.md)
+ [Migrieren Sie lokale Cloudera-Workloads zur Cloudera Data Platform auf AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.md)
+ [Multi-AZ-Failover für EMR-Cluster mithilfe von Application Recovery Controller verwalten](multi-az-failover-spark-emr-clusters-arc.md)
+ [Automatisieren Sie blue/green die Bereitstellung globaler Amazon Aurora Aurora-Datenbanken mithilfe von IaC-Prinzipien](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Bereitstellen von AWS Service Catalog Produkten auf der Grundlage von AWS CloudFormation Vorlagen mithilfe von GitHub Aktionen](provision-aws-service-catalog-products-using-github-actions.md)
+ [Führen Sie Komponententests für Python-ETL-Jobs AWS Glue mithilfe des Pytest-Frameworks aus](run-unit-tests-for-python-etl-jobs-in-aws-glue-using-the-pytest-framework.md)
+ [Richten Sie ein Grafana-Überwachungs-Dashboard für AWS ein ParallelCluster](set-up-a-grafana-monitoring-dashboard-for-aws-parallelcluster.md)
+ [Daten aus einem Amazon Redshift Redshift-Cluster kontenübergreifend nach Amazon S3 entladen](unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.md)
+ [Visualisieren Sie AI/ML Modellergebnisse mit Flask und AWS Elastic Beanstalk](visualize-ai-ml-model-results-using-flask-and-aws-elastic-beanstalk.md)