AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data...

336
AWS Data Pipeline Entwicklerhandbuch API-Version 2012-10-29

Transcript of AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data...

Page 1: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data PipelineEntwicklerhandbuch

API-Version 2012-10-29

Page 2: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

AWS Data Pipeline: EntwicklerhandbuchCopyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Table of ContentsWas ist AWS Data Pipeline? ................................................................................................................ 1

Verwandte Dienstleistungen ......................................................................................................... 2Zugriff auf AWS Data Pipeline ...................................................................................................... 3Preise ....................................................................................................................................... 3Unterstützte Instance-Typen für Pipeline-Aktivitäten ......................................................................... 3

Standard-Amazon EC2-Instances nach AWS-Region .............................................................. 4Zusätzliche unterstützte Amazon EC2-Instances ..................................................................... 5Unterstützte Amazon EC2-Instances für Amazon EMR-Cluster ................................................... 5

AWS Data Pipeline-Konzepte ............................................................................................................... 7Pipeline-Definition ....................................................................................................................... 7Pipeline-Komponenten, Instances und Versuche ............................................................................. 8Task Runner .............................................................................................................................. 9Datenknoten ............................................................................................................................. 10Datenbank ............................................................................................................................... 10Aktivitäten ................................................................................................................................ 10Vorbedingungen ........................................................................................................................ 11

Vom System verwaltete Vorbedingungen .............................................................................. 11Benutzerverwaltete Vorbedingungen .................................................................................... 12

Ressourcen .............................................................................................................................. 12Ressourcenlimits ............................................................................................................... 12Unterstützte Plattformen ..................................................................................................... 13Amazon EC2-Spot-Instances mit Amazon EMR-Clustern und AWS Data Pipeline ........................ 13

Aktionen .................................................................................................................................. 14Proaktive Pipeline-Überwachung ......................................................................................... 14

Einrichten ........................................................................................................................................ 15Registrieren bei AWS ................................................................................................................ 15Erstellen der erforderlichen IAM-Rollen (nur für CLI und API) ........................................................... 15Vordefinierten IAM-Rollen eine verwaltete Richtlinie mit PassRole zuweisen ....................................... 16Benutzerdefinierten IAM-Rollen eine Inline-Richtlinie mit PassRole zuweisen ...................................... 17

Erste Schritte mit AWS Data Pipeline .................................................................................................. 19Erstellen Sie die Pipeline ........................................................................................................... 20Überwachen der ausgeführten Pipeline ........................................................................................ 20Anzeigen der Ausgabe .............................................................................................................. 21Löschen der Pipeline ................................................................................................................. 21

Arbeiten mit Pipelines ........................................................................................................................ 22Planen von Pipelines ................................................................................................................. 22

Erstellen eines Zeitplans über die Konsole ............................................................................ 22On-Demand-Instances ....................................................................................................... 23Zeitreihenstil im Vergleich zum Cron-Stil ............................................................................... 24Abgleichen von Aufgaben ................................................................................................... 24Maximale Ressourceneffizienz mithilfe von Zeitplänen ............................................................ 25Schutz vor Überschreiben von Daten ................................................................................... 25

Erstellen einer Pipeline .............................................................................................................. 25Erstellen von Pipelines mithilfe von Konsolenvorlagen ............................................................ 26Manuelles Erstellen von Pipelines über die Konsole ............................................................... 39

Anzeigen Ihrer Pipelines ............................................................................................................ 43Interpretieren der Pipeline-Statuscodes ................................................................................ 43Interpretieren des Pipeline- und Komponenten-Zustands ......................................................... 45Anzeigen Ihrer Pipeline-Definitionen ..................................................................................... 46Anzeigen von Pipeline-Instance Details ................................................................................ 47Anzeigen von Pipeline-Protokollen ....................................................................................... 48

Bearbeiten Ihrer Pipeline ............................................................................................................ 49Einschränkungen .............................................................................................................. 50Bearbeiten einer Pipeline über die Konsole ........................................................................... 50

API-Version 2012-10-29iii

Page 4: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Bearbeiten einer Pipeline über die AWS CLI ......................................................................... 51Klonen Ihrer Pipeline ................................................................................................................. 51Tagging Ihrer Pipeline ............................................................................................................... 52Deaktivieren Ihrer Pipeline ......................................................................................................... 52

Deaktivieren Ihrer Pipeline über die Konsole ......................................................................... 53Deaktivieren Ihrer Pipeline über die AWS CLI ....................................................................... 53

Löschen Ihrer Pipeline ............................................................................................................... 54Staging von Daten und Tabellen mit Aktivitäten ............................................................................. 54

Daten-Staging mit ShellCommandActivity .............................................................................. 55Tabellen-Staging mit Hive und zum Staging fähigen Datenknoten ............................................. 56Tabellen-Staging mit Hive und nicht zum Staging fähigen Datenknoten ...................................... 57

Starten von Ressourcen in einer VPC .......................................................................................... 58Erstellen und Konfigurieren einer VPC ................................................................................. 58Einrichten der Konnektivität zwischen Ressourcen ................................................................. 59Konfigurieren der Ressource .............................................................................................. 61

Verwenden von Spot-Instances in einer Pipeline ............................................................................ 61Verwenden von Ressourcen in mehreren Regionen ....................................................................... 62Kaskadierende Ausfälle und erneute Ausführungen ........................................................................ 63

Aktivitäten ........................................................................................................................ 64Datenknoten und Vorbedingungen ....................................................................................... 64Ressourcen ...................................................................................................................... 64Erneutes Ausführen von Objekte mit fehlgeschlagener Kaskadierung ........................................ 64Kaskadierende Ausfälle und Abgleichungen .......................................................................... 65

Syntax der Pipeline-Definitionsdatei ............................................................................................. 65Dateistruktur ..................................................................................................................... 65Pipeline-Felder ................................................................................................................. 66Benutzerdefinierte Felder ................................................................................................... 67

Arbeiten mit der API .................................................................................................................. 67Installieren des AWS-SDKs ................................................................................................ 67Erstellen einer HTTP-Anforderung an AWS Data Pipeline ........................................................ 68

Steuern des Zugriffs auf Pipelines und Ressourcen ................................................................................ 72IAM-Richtlinien für AWS Data Pipeline ......................................................................................... 72

Richtliniensyntax ............................................................................................................... 73Steuern des Zugriffs auf Pipelines mithilfe von Tags ............................................................... 73Steuern des Zugriffs auf Pipelines mithilfe von Worker-Gruppen ............................................... 75

Beispielrichtlinien für AWS Data Pipeline ...................................................................................... 76Beispiel 1: Gewähren des Lesezugriffs für Benutzer basierend auf einem Tag ............................. 76Beispiel 2: Gewähren des vollständigen Zugriffs für Benutzer basierend auf einem Tag ................. 77Beispiel 3: Gewähren des vollen Zugriffs für Pipeline-Eigentümer ............................................. 77Beispiel 4: Benutzern den Zugriff auf die AWS Data Pipeline-Konsole gewähren ......................... 78

IAM-Rollen ............................................................................................................................... 78Aktualisieren vorhandener IAM-Rollen für AWS Data Pipeline .................................................. 79Ändern von Rollen bei vorhandenen Pipelines ....................................................................... 82

Tutorials .......................................................................................................................................... 83Datenverarbeitung mit Amazon EMR mit Hadoop-Streaming ............................................................ 83

Bevor Sie beginnen ........................................................................................................... 84Über die Konsole .............................................................................................................. 84Verwenden der CLI ........................................................................................................... 88

DynamoDB-Daten importieren und exportieren .............................................................................. 91Teil 1: Importieren von Daten in DynamoDB .......................................................................... 91Teil 2: Exportieren von Daten aus DynamoDB ....................................................................... 96

CSV-Daten von Amazon S3 in Amazon S3 kopieren .................................................................... 100Bevor Sie beginnen ......................................................................................................... 101Über die Konsole ............................................................................................................ 102Verwenden der CLI ......................................................................................................... 106

Exportieren von MySQL-Daten zu Amazon S3 ............................................................................. 111Bevor Sie beginnen ......................................................................................................... 111

API-Version 2012-10-29iv

Page 5: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Über die Konsole ............................................................................................................ 112Verwenden der CLI ......................................................................................................... 115

Kopieren von Daten zu Amazon Redshift .................................................................................... 122Bevor Sie beginnen: Konfigurieren Sie COPY-Optionen ......................................................... 122Bevor Sie beginnen: Einrichten von Pipeline, Sicherheit und Cluster ........................................ 123Über die Konsole ............................................................................................................ 124Verwenden der CLI ......................................................................................................... 127

Pipeline-Ausdrücke und -Funktionen .................................................................................................. 134Einfache Datentypen ................................................................................................................ 134

DateTime ....................................................................................................................... 134Numerischer Wert ........................................................................................................... 134Objektverweise ............................................................................................................... 134Zeitraum ........................................................................................................................ 134Zeichenfolge ................................................................................................................... 135

Ausdrücke .............................................................................................................................. 135Verweisen auf Felder und Objekte ..................................................................................... 135Verschachtelte Ausdrücke ................................................................................................ 136Listen ............................................................................................................................ 136Knotenausdruck .............................................................................................................. 137Ausdrucksauswertung ...................................................................................................... 138

Mathematische Funktionen ....................................................................................................... 138Funktionen für Zeichenfolgen .................................................................................................... 138Datums- und Zeitfunktionen ...................................................................................................... 139Sonderzeichen ........................................................................................................................ 144

Pipeline-Objektreferenz .................................................................................................................... 146Datenknoten ........................................................................................................................... 147

DynamoDBDataNode ....................................................................................................... 147MySqlDataNode .............................................................................................................. 151RedshiftDataNode ........................................................................................................... 156S3DataNode ................................................................................................................... 161SqlDataNode .................................................................................................................. 166

Aktivitäten .............................................................................................................................. 170CopyActivity .................................................................................................................... 171EmrActivity ..................................................................................................................... 176HadoopActivity ................................................................................................................ 182HiveActivity ..................................................................................................................... 189HiveCopyActivity ............................................................................................................. 195PigActivity ...................................................................................................................... 201RedshiftCopyActivity ........................................................................................................ 210ShellCommandActivity ...................................................................................................... 219SqlActivity ...................................................................................................................... 225

Ressourcen ............................................................................................................................ 230Ec2Resource .................................................................................................................. 230EmrCluster ..................................................................................................................... 237HttpProxy ....................................................................................................................... 256

Vorbedingungen ...................................................................................................................... 258DynamoDBDataExists ...................................................................................................... 258DynamoDBTableExists ..................................................................................................... 261Exists ............................................................................................................................ 263S3KeyExists ................................................................................................................... 266S3PrefixNotEmpty ........................................................................................................... 269ShellCommandPrecondition .............................................................................................. 272

Datenbanken .......................................................................................................................... 275JdbcDatabase ................................................................................................................. 275RdsDatabase .................................................................................................................. 276RedshiftDatabase ............................................................................................................ 278

Data Formats ......................................................................................................................... 280

API-Version 2012-10-29v

Page 6: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

CSV-Datenformate .......................................................................................................... 280Custom Data Format ....................................................................................................... 281DynamoDBDataFormat ..................................................................................................... 282DynamoDBExportDataFormat ............................................................................................ 284RegEx Data Format ......................................................................................................... 286TSV-Datenformate ........................................................................................................... 287

Aktionen ................................................................................................................................ 288SnsAlarm ....................................................................................................................... 288Beenden ........................................................................................................................ 289

Plan ...................................................................................................................................... 291Beispiele ........................................................................................................................ 291Syntax ........................................................................................................................... 294

Dienstprogramme .................................................................................................................... 295ShellScriptConfig ............................................................................................................. 296EmrConfiguration ............................................................................................................. 297Eigenschaft .................................................................................................................... 300

Arbeiten mit Task Runner ................................................................................................................. 302Task Runner auf AWS Data Pipeline-verwalteten Ressourcen ........................................................ 302Arbeiten an vorhandenen Ressourcen mit Task Runner ................................................................ 304

Installieren von Task Runner ............................................................................................ 305Task Runner Zugriff auf Amazon RDS gewähren (optional) .................................................... 306Starten von Task Runner ................................................................................................. 307Überprüfen der Task Runner-Protokollierung ....................................................................... 308

Task Runner-Threads und Vorbedingungen ................................................................................. 308Task Runner-Konfigurationsoptionen .......................................................................................... 308Task-Runner mit einem Proxy verwenden ................................................................................... 310Task Runner und benutzerdefinierte AMIs ................................................................................... 310

Fehlerbehebung .............................................................................................................................. 312Suchen von Fehlern in Pipelines ............................................................................................... 312Ermitteln des in der Pipeline verwendeten Amazon EMR-Clusters ................................................... 312Interpretieren der Pipeline-Statusdetails ...................................................................................... 313Lokalisieren von Fehlerprotokollen ............................................................................................. 314

Pipeline-Protokolle ........................................................................................................... 314Hadoop-Auftrags- und Amazon EMR-Schrittprotokolle ........................................................... 315

Beheben typischer Probleme .................................................................................................... 315Pipeline bleibt im Status PENDING .................................................................................... 316Pipeline-Komponente bleibt im Status WAITING_FOR_RUNNER ............................................ 316Pipeline-Komponente bleibt im Status WAITING_ON_DEPENDENCIES ................................... 316Ausführung beginnt nicht zum geplanten Zeitpunkt ............................................................... 317Pipeline-Komponenten werden in der falschen Reihenfolge ausgeführt .................................... 317EMR-Cluster schlägt mit Fehlermeldung fehl: The security token included in the request is invalid . 318Unzureichende Berechtigungen für den Zugriff auf Ressourcen .............................................. 318Statuscode: 400, Fehlercode: PipelineNotFoundException ..................................................... 318Pipeline-Erstellung führt zu einem Sicherheits-Token-Fehler ................................................... 318Pipeline-Details werden nicht in der Konsole angezeigt ......................................................... 318Error in remote runner Status Code: 404, AWS Service: Amazon S3 ....................................... 319Access Denied - Not Authorized to Perform Function datapipeline: .......................................... 319Ältere Amazon EMR-AMIs können für sehr große CSV-Dateien falsche Daten erstellen .............. 319Erhöhen der AWS Data Pipeline-Limits ............................................................................... 320

Protokollieren von AWS Data Pipeline-API-Aufrufen mithilfe von AWS CloudTrail ....................................... 321AWS Data Pipeline-Informationen in CloudTrail ............................................................................ 321Grundlagen zu AWS Data Pipeline-Protokolldateieinträgen ............................................................ 322

Grenzwerte ..................................................................................................................................... 323Kontolimits ............................................................................................................................. 323Limits für Webservice-Aufrufe .................................................................................................... 324Überlegungen zur Skalierung .................................................................................................... 325

AWS Data Pipeline-Ressourcen ........................................................................................................ 326

API-Version 2012-10-29vi

Page 7: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Dokumentverlauf ............................................................................................................................. 327

API-Version 2012-10-29vii

Page 8: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Was ist AWS Data Pipeline?AWS Data Pipeline ist ein Web-Service, mit dem Sie das Verschieben und Transformieren von Datenautomatisieren können. Sie können mit AWS Data Pipeline datengesteuerte Workflows erstellen und damitfestlegen, dass bestimmte Aufgaben nur ausgeführt werden, wenn die vorherigen Aufgaben erfolgreichabgeschlossen wurden. Sie müssen nur die gewünschten Parameter für die Datentransformationenfestlegen. AWS Data Pipeline setzt dann die konfigurierte Logik um.

Die folgenden Komponenten von AWS Data Pipeline sind an der Verwaltung der Daten beteiligt:

• Eine Pipeline-Definition legt die geschäftliche Logik der Datenverwaltung fest. Weitere Informationenfinden Sie unter Syntax der Pipeline-Definitionsdatei (p. 65).

• Mit einer Pipeline werden Aufgaben geplant und ausgeführt, indem Amazon EC2-Instances für definierteAktivitäten erstellt werden. Sie müssen nur die Pipeline-Definition in die Pipeline hochladen und dieseanschließend aktivieren. Sie können auch die Pipeline-Definition einer gerade ausgeführten Pipelinebearbeiten. Sie müssen die Pipeline dann nur erneut aktivieren, damit die Änderungen wirksam werden.Außerdem können Sie die Pipeline deaktivieren, eine Datenquelle ändern und dann die Pipeline erneutaktivieren. Wenn Sie die Pipeline nicht mehr benötigen, können Sie sie löschen.

• Task Runner fragt nach Aufgaben ab und führt diese Aufgaben aus. Task Runner kann beispielsweiseProtokolldateien in Amazon S3 kopieren und Amazon EMR-Cluster starten. Task Runner wirdautomatisch auf den von Ihren Pipeline-Definitionen erstellten Ressourcen installiert und ausgeführt. Siekönnen eine eigene Task Runner-Anwendung erstellen oder die von AWS Data Pipeline bereitgestellteTask Runner-Anwendung verwenden. Weitere Informationen finden Sie unter Task Runner (p. 9).

Sie können AWS Data Pipeline beispielsweise verwenden, um täglich die Protokolle Ihres Webserversauf Amazon Simple Storage Service (Amazon S3) zu archivieren und dann wöchentlich einen AmazonEMR (Amazon EMR)-Cluster über diese Protokolle laufen zu lassen, um Datenverkehrsberichte zuerzeugen. AWS Data Pipeline plant in diesem Fall die täglichen Aufgaben zum Kopieren der Daten und diewöchentliche Aufgabe zum Starten des Amazon EMR-Clusters. AWS Data Pipeline stellt außerdem sicher,dass Amazon EMR mit der Analyse wartet, bis die Daten des letzten Tages in Amazon S3 hochgeladenwurden, selbst wenn es beim Hochladen zu unvorhergesehenen Verzögerungen kommt.

API-Version 2012-10-291

Page 9: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwandte Dienstleistungen

Inhalt• Verwandte Dienstleistungen (p. 2)• Zugriff auf AWS Data Pipeline (p. 3)• Preise (p. 3)• Unterstützte Instance-Typen für Pipeline-Aktivitäten (p. 3)

Verwandte DienstleistungenAWS Data Pipeline arbeitet zum Speichern von Daten mit den folgenden Services zusammen.

• Amazon DynamoDB — Bietet einen vollständig verwalteten NoSQL-Datenbankservice mit schnellerLeistung zu niedrigen Kosten. Weitere Informationen erhalten Sie unter Amazon DynamoDB-Entwicklerhandbuch.

• Amazon RDS — Bietet eine vollständig verwaltete relationale Datenbank, die für große Datenmengenskaliert werden kann. Weitere Informationen erhalten Sie unter Entwicklerhandbuch für AmazonRelational Database Service.

• Amazon Redshift — Bietet einen schnellen, vollständig verwalteten Data Warehouse-Service fürDatenmengen im Petabyte-Bereich, mit dem riesige Datenmengen einfach und wirtschaftlich analysiertwerden können. Weitere Informationen erhalten Sie unter Amazon Redshift Database Developer Guide.

• Amazon S3 — Ein Service zur sicheren, dauerhaften und in hohem Maß skalierbaren Objektspeicherung.Weitere Informationen erhalten Sie unter Entwicklerhandbuch für Amazon Simple Storage Service.

AWS Data Pipeline arbeitet zum Transformieren von Daten mit den folgenden Datenverarbeitungs-Serviceszusammen.

• Amazon EC2 — Stellt Datenverarbeitungskapazitäten—d. h. Server in den Amazon-Rechenzentren—bereit, auf denen Ihre Softwaresysteme erstellt und gehostet werden. Die Größe dieser

API-Version 2012-10-292

Page 10: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchZugriff auf AWS Data Pipeline

Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten Sie unter Amazon EC2-Benutzerhandbuch für Linux-Instances.

• Amazon EMR — Ein Service, mit dem Sie einfach, schnell und kostengünstig mithilfe eines Frameworkswie Apache Hadoop oder Apache Spark riesige Datenmengen auf Amazon EC2-Servern verarbeiten undverteilen können. Weitere Informationen erhalten Sie unter Amazon EMR-Entwicklerhandbuch.

Zugriff auf AWS Data PipelineSie können Ihre Pipelines über die folgenden Schnittstellen erstellen und verwalten:

• AWS Management Console— Bietet eine Webschnittstelle für den Zugriff auf AWS Data Pipeline.• AWS Command Line Interface (AWS CLI) — Bietet Befehle für zahlreiche AWS-Services, wie z. B.

AWS Data Pipeline, und wird unter Windows, MacOS und Linux unterstützt. Weitere Informationen zumInstallieren von AWS CLI finden Sie unter AWS Command Line Interface. Eine Liste der von AWS DataPipeline unterstützten Befehle finden Sie unter datapipeline.

• AWS SDKs — Bietet sprachspezifische APIs und übernimmt viele der Verbindungsdetails, wie zumBeispiel die Berechnung der Signaturen, die Verarbeitung des erneuten Absendens von Anforderungenund die Fehlerbehandlung. Weitere Informationen erhalten Sie unter AWS SDKs.

• Abfrage-API— Low-Level-APIs, die mithilfe von HTTPS-Anforderungen aufgerufen werden. DieVerwendung der Abfrage-API ist der direkteste Weg, um auf AWS Data Pipeline zuzugreifen. Es istjedoch erforderlich, dass Ihre Anwendung mit Details auf unterer Ebene, wie z. B. dem Erstellen desHash-Zeichens zum Signieren der Anforderung sowie der Fehlerbehebung, umgehen kann. WeitereInformationen hierzu finden Sie unter AWS Data Pipeline API Reference.

PreiseMit Amazon Web Services zahlen Sie nur das, was Sie tatsächlich nutzen. Die Pipeline-Kosten bei AWSData Pipeline basieren darauf, für wie oft Ihre Aktivitäten und Vorbedingungen zur Ausführung geplant undwo sie ausgeführt werden. Weitere Informationen dazu finden Sie unter AWS Data Pipeline – Preise.

Wenn Ihr AWS-Konto jünger als 12 Monate ist, sind Sie zur Nutzung des kostenlosen Kontingentsberechtigt. Das kostenlose Kontingent umfasst drei Vorbedingungen mit geringer Häufigkeit und fünfAktivitäten mit geringer Häufigkeit pro Monat. Weitere Informationen finden Sie unter KostenlosesNutzungskontingent für AWS.

Unterstützte Instance-Typen für Pipeline-AktivitätenWenn AWS Data Pipeline eine Pipeline ausführt, werden die Pipeline-Komponenten zu einem Satz anumsetzbaren Amazon EC2-Instances zusammengestellt. Jede Instance enthält alle Informationen, die zumAusführen einer bestimmten Aufgabe benötigt werden. Der komplette Satz an Instances stellt die To-do-Liste der Pipeline dar. AWS Data Pipeline übergibt die Instances zur Verarbeitung an Task Runner.

EC2 Instances haben verschiedene Konfigurationen, die als Instance-Typen bezeichnet werden. JederInstance-Typ verfügt über eine andere CPU, Eingabe/Ausgabe und Speicherkapazität. Zusätzlich zumInstance-Typ für eine Aktivität können Sie verschiedene Kaufoptionen auswählen. Nicht alle Instance-Typen stehen in allen AWS-Regionen zur Verfügung. Wenn ein Instance-Typ nicht verfügbar ist, kannIhre Pipeline möglicherweise nicht bereitgestellt werden oder wird bei der Bereitstellung eingefroren.Weitere Informationen zur Verfügbarkeit von Instances finden Sie auf der Seite der Amazon EC2 – Preise.Öffnen Sie den Link für Ihre Instance-Kaufoptionen und filtern Sie nach Region, um zu sehen, ob ein

API-Version 2012-10-293

Page 11: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchStandard-Amazon EC2-Instances nach AWS-Region

Instance-Typ in dieser Region verfügbar ist. Weitere Informationen zu diesen Instance-Typen, Familien undVirtualisierungstypen finden Sie unter Amazon EC2-Instances und Amazon Linux-AMI-Instance-Typ-Matrix.

Die folgenden Tabellen beschreiben die Instance-Typen, die von AWS Data Pipeline unterstützt werden.Verwenden Sie AWS Data Pipeline, um Amazon EC2-Instances in beliebigen Regionen (auch Regionen,in denen AWS Data Pipeline nicht unterstützt wird) zu starten. Weitere Informationen zu den Regionen, indenen AWS Data Pipeline unterstützt wird, finden Sie unter Regionen und Endpunkte in AWS.

Inhalt• Standard-Amazon EC2-Instances nach AWS-Region (p. 4)• Zusätzliche unterstützte Amazon EC2-Instances (p. 5)• Unterstützte Amazon EC2-Instances für Amazon EMR-Cluster (p. 5)

Standard-Amazon EC2-Instances nach AWS-RegionWenn Sie in Ihrer Pipeline-Definition keinen Instance-Typ angeben, startet AWS Data Pipelinestandardmäßig eine Instance.

Die folgende Tabelle enthält die Amazon EC2-Instances, die AWS Data Pipeline standardmäßig indenjenigen Regionen verwendet, in denen AWS Data Pipeline unterstützt wird.

Name der Region Region Instance-Typ

USA Ost (Nord-Virginia) us-east-1 m1.small

USA West (Oregon) us-west-2 m1.small

Asien-Pazifik (Sydney) ap-southeast-2 m1.small

Asien-Pazifik (Tokio) ap-northeast-1 m1.small

EU (Irland) eu-west-1 m1.small

Die folgende Tabelle enthält die Amazon EC2-Instances, die AWS Data Pipeline standardmäßig indenjenigen Regionen startet, in denen AWS Data Pipeline nicht unterstützt wird.

Name der Region Region Instance-Typ

USA Ost (Ohio) us-east-2 t2.small

USA West (Nordkalifornien) us-west-1 m1.small

Asien-Pazifik (Mumbai) ap-south-1 t2.small

Asien-Pazifik (Singapur) ap-southeast-1 m1.small

Asien-Pazifik (Seoul) ap-northeast-2 t2.small

Kanada (Zentral) ca-central-1 t2.small

EU (Frankfurt) eu-central-1 t2.small

EU (London) eu-west-2 t2.small

EU (Paris) eu-west-3 t2.small

API-Version 2012-10-294

Page 12: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchZusätzliche unterstützte Amazon EC2-Instances

Name der Region Region Instance-Typ

Südamerika (São Paulo) sa-east-1 m1.small

Zusätzliche unterstützte Amazon EC2-InstancesNeben den Standard-Instances, die erstellt werden, wenn Sie in Ihrer Pipeline-Definition keinen Instance-Typ angeben, werden auch die folgenden Instances unterstützt.

Die folgende Tabelle enthält die Amazon EC2-Instances, die von AWS Data Pipeline unterstützt und beiBedarf erstellt werden.

Instance-Klasse Instance-Typen

Allgemeine Zwecke t2.nano | t2.micro | t2.small | t2.medium | t2.large

Für Datenverarbeitung optimiert c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c4.large |c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.xlarge | c5.9xlarge| c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge | c5d.xlarge |c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.18xlarge

RAM-optimiert m3.medium | m3.large | m3.xlarge | m3.2xlarge | m4.large | m4.xlarge| m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16xlarge | m5.xlarge |m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge | m5d.xlarge |m5d.2xlarge | m5d.4xlarge | m5d.12xlarge | m5d.24xlarge

r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.large |r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge

Speicheroptimiert i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | hs1.8xlarge | g2.2xlarge| g2.8xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge

Unterstützte Amazon EC2-Instances für AmazonEMR-ClusterDiese Tabelle enthält die Amazon EC2-Instances, die von AWS Data Pipeline unterstützt und bei Bedarf fürAmazon EMR-Cluster erstellt werden. Weitere Informationen finden Sie unter Unterstützte Instance-Typenim Management Guide für Amazon EMR.

Instance-Klasse Instance-Typen

Allgemeine Zwecke m1.small | m1.medium | m1.large | m1.xlarge | m3.xlarge |m3.2xlarge

Für Datenverarbeitung optimiert c1.medium | c1.xlarge | c3.xlarge | c3.2xlarge | c3.4xlarge |c3.8xlarge | cc1.4xlarge| cc2.8xlarge | c4.large | c4.xlarge |c4.2xlarge| c4.4xlarge | c4.8xlarge | c5.xlarge | c5.9xlarge |c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge | c5d.xlarge |c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.18xlarge

RAM-optimiert m2.xlarge | m2.2xlarge | m2.4xlarge | r3.xlarge | r3.2xlarge |r3.4xlarge | r3.8xlarge | cr1.8xlarge | m4.large | m4.xlarge |m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16large | m5.xlarge |

API-Version 2012-10-295

Page 13: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchUnterstützte Amazon EC2-

Instances für Amazon EMR-Cluster

Instance-Klasse Instance-Typenm5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge | m5d.xlarge |m5d.2xlarge | m5d.4xlarge | m5d.12xlarge | m5d.24xlarge | r4.large |r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge

Speicheroptimiert h1.4xlarge | hs1.2xlarge | hs1.4xlarge| hs1.8xlarge | i2.xlarge |i2.2xlarge | i2.4large | i2.8xlarge | d2.xlarge | d2.2xlarge| d2.4xlarge |d2.8xlarge

Beschleunigtes Computing g2.2xlarge | cg1.4xlarge

API-Version 2012-10-296

Page 14: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPipeline-Definition

AWS Data Pipeline-KonzepteBevor Sie beginnen, lesen Sie die Informationen zu den zentralen Konzepten und Komponenten von AWSData Pipeline.

Inhalt• Pipeline-Definition (p. 7)• Pipeline-Komponenten, Instances und Versuche (p. 8)• Task Runner (p. 9)• Datenknoten (p. 10)• Datenbank (p. 10)• Aktivitäten (p. 10)• Vorbedingungen (p. 11)• Ressourcen (p. 12)• Aktionen (p. 14)

Pipeline-DefinitionEine Pipeline-Definition beschreibt, wie Sie Ihre Geschäftslogik an AWS Data Pipeline übermitteln. Sieumfasst die folgenden Informationen:

• Namen, Speicherorte und Formate der Datenquellen• Aktivitäten, mit denen die Daten transformiert werden• Den Zeitplan für diese Aktivitäten• Ressourcen für die Ausführung Ihrer Aktivitäten und Vorbedingungen• Voraussetzungen, die erfüllt werden müssen, bevor die Aktivitäten geplant werden können• Möglichkeiten zur Information über Statusänderungen beim Fortschreiten der Pipeline-Durchführung

Basierend auf Ihrer Pipeline-Definition bestimmt AWS Data Pipeline die Aufgaben, plant sie und weist sieden Task-Runner-Anwendungen zu. Wenn eine Aufgabe nicht erfolgreich abgeschlossen wurde, versuchtAWS Data Pipeline die Aufgabe entsprechend Ihren Anweisungen erneut durchzuführen, und weist ihr ggf.einen anderen Task Runner zu. Sie können die Pipeline so konfigurieren, dass Sie benachrichtigt werden,wenn die Aufgabe wiederholt fehlschlägt.

Beispielsweise können Sie in der Pipeline-Definition festlegen, dass die von Ihrer Anwendung erstelltenProtokolldateien in jedem Monat des Jahres 2013 in einem Amazon S3-Bucket archiviert werden. AWSData Pipeline erstellt dafür 12 Aufgaben, von denen jede die Daten von mehr als einem Monat kopiert,unabhängig davon, ob der Monat 30, 31, 28 oder 29 Tage umfasst.

Eine Pipeline-Definition können Sie folgendermaßen erstellen:

• Grafisch über die AWS Data Pipeline-Konsole• Textlich, indem Sie eine JSON-Datei in dem von der Befehlszeile verwendeten Format erstellen• Programmgesteuert, indem Sie den Webservice mit einem der AWS-SDKs oder der AWS Data Pipeline-

API aufrufen

Eine Pipeline-Definition kann die folgenden Komponententypen enthalten.

API-Version 2012-10-297

Page 15: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPipeline-Komponenten, Instances und Versuche

Pipeline-Komponenten

Datenknoten (p. 10)

Den Speicherort von Eingabedaten für eine Aufgabe oder der Speicherort, an dem die Ausgabedatengespeichert werden sollen.

Aktivitäten (p. 10)

Eine Definition der Arbeit, die nach einem Zeitplan mit einer Datenverarbeitungsressource und(typischerweise) Eingabe- und Ausgabedatenknoten durchgeführt werden soll.

Vorbedingungen (p. 11)

Eine Bedingungsaussage, die erfüllt sein muss, damit eine Aktion ausgeführt werden kann.Planen von Pipelines (p. 22)

Legt den Zeitplan für ein geplantes Ereignis fest, z. B. die Ausführung einer Aktivität.Ressourcen (p. 12)

Die Datenverarbeitungsressource, die die Arbeit ausführt, die eine Pipeline definiert.Aktionen (p. 14)

Eine Aktion, die ausgelöst wird, wenn bestimmte Bedingungen erfüllt sind, z. B. wenn eine Aktivitätfehlschlägt.

Weitere Informationen finden Sie unter Syntax der Pipeline-Definitionsdatei (p. 65).

Pipeline-Komponenten, Instances und VersucheEs gibt drei Komponententypen im Zusammenhang mit einer geplanten Pipeline:

• Pipeline-Komponenten — Pipeline-Komponenten repräsentieren die Geschäftslogik der Pipeline undwerden in verschiedenen Abschnitten einer Pipeline-Definition dargestellt. Pipeline-Komponenten gebendie Datenquellen, Aktivitäten, den Zeitplan und die Vorbedingungen des Workflows an. Sie könnenEigenschaften von übergeordneten Komponenten übernehmen. Beziehungen zwischen Komponentenwerden durch Verweise definiert. Pipeline-Komponenten definieren die Regeln für die Datenverwaltung.

• Instances — Wenn AWS Data Pipeline eine Pipeline ausführt, werden die Pipeline-Komponenten zueinem Satz an umsetzbaren Instances zusammengestellt. Jede Instance enthält alle Informationen,die zum Ausführen einer bestimmten Aufgabe benötigt werden. Der komplette Satz an Instances stelltdie To-do-Liste der Pipeline dar. AWS Data Pipeline übergibt die Instances zur Verarbeitung an TaskRunner.

• Versuche — Um eine robuste Datenverwaltung sicherzustellen, wiederholt AWS Data Pipelinefehlgeschlagene Vorgänge. Diese Wiederholungen werden durchgeführt, bis die maximal erlaubteAnzahl an Wiederholungsversuchen erreicht ist. Versuchsobjekte verfolgen die einzelnen Versuche,Ergebnisse und ggf. Fehlergründe nach. Im Grunde ist es die Instance mit einem Zähler. AWS DataPipeline führt Wiederholungen mit denselben Ressourcen wie bei den vorhergehenden Versuchen durch,z. B. Amazon EMR-Cluster und EC2-Instances.

Note

Das Wiederholen fehlgeschlagener Aufgaben ist ein wichtiger Bestandteil einerFehlertoleranzstrategie. AWS Data Pipeline-Definitionen stellen Bedingungen und Schwellenwertezur Steuerung der erneuten Versuche bereit. Zu viele erneute Versuche können jedoch dazuführen, dass unwiederbringliche Fehler zu spät erkannt werden, da AWS Data Pipeline Fehlererst dann meldet, wenn die festgelegte Anzahl an Wiederholungsversuchen erreicht wurde. Diese

API-Version 2012-10-298

Page 16: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask Runner

zusätzlichen Wiederholungen können für zusätzliche Gebühren sorgen, wenn sie auf AWS-Ressourcen ausgeführt werden. Daher sollten Sie genau abwägen, wann es sinnvoll ist, die AWSData Pipeline-Standardeinstellungen für die Steuerung von erneuten Versuchen und zugehörigeEinstellungen zu überschreiten.

Task RunnerEin Task Runner ist eine Anwendung, die AWS Data Pipeline-Abfragen nach Aufgaben durchführt unddiese Aufgaben dann ausführt.

Task Runner ist eine standardmäßige Implementierung einer Task-Runner-Anwendung, die von AWSData Pipeline bereitgestellt wird. Wenn Task Runner installiert und konfiguriert ist, fragt er AWS DataPipeline nach Aufgaben ab, die mit aktivierten Pipelines verknüpft sind. Wenn Task Runner eine Aufgabezugewiesen wurde, führt er diese aus und meldet den Status zurück an AWS Data Pipeline.

Das folgende Diagramm illustriert, wie AWS Data Pipeline und ein Task Runner interagieren, um einegeplante Aufgabe zu verarbeiten. Eine Aufgabe ist eine diskrete Arbeitseinheit, die der AWS Data Pipeline-Service mit einem Task Runner gemeinsam nutzt. Sie unterscheidet sich von einer Pipeline, die eineallgemeine Definition von Aktivitäten und Ressourcen ist, die normalerweise zu mehreren Aufgaben führt.

API-Version 2012-10-299

Page 17: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatenknoten

Es gibt zwei Möglichkeiten, wie Sie mit Task Runner Ihre Pipeline verarbeiten können:

• AWS Data Pipeline installiert Task Runner für Sie auf Ressourcen, die vom AWS Data Pipeline-Webservice gestartet und verwaltet werden.

• Sie können Task Runner auf einer Datenverarbeitungsressource installieren, die Sie verwalten, z. B. aufeiner EC2-Instance, die lange ausgeführt wird, oder auf einem Server vor Ort.

Weitere Informationen zur Arbeit mit Task Runner finden Sie unter Arbeiten mit Task Runner (p. 302).

DatenknotenBei AWS Data Pipeline definiert ein Datenknoten den Speicherort und den Typ der Daten, die einePipeline-Aktivität als Eingabe oder Ausgabe verwendet. AWS Data Pipeline unterstützt die folgenden Typenvon Datenknoten:

DynamoDBDataNode (p. 147)

Eine DynamoDB-Tabelle, die Daten für die Verwendung durch HiveActivity (p. 189) oderEmrActivity (p. 176) enthält.

SqlDataNode (p. 166)

Eine SQL-Tabellen- und Datenbankabfrage, die Daten zur Verwendung durch eine Pipeline-Aktivitätrepräsentiert.

Note

Zuvor wurde MySqlDataNode verwendet. Verwenden Sie stattdessen SqlDataNode.RedshiftDataNode (p. 156)

Eine Amazon Redshift-Tabelle, die Daten für die Verwendung durch RedshiftCopyActivity (p. 210)enthält.

S3DataNode (p. 161)

Einen Amazon S3-Speicherort mit einer Datei oder mehreren Dateien, die für eine Pipeline-Aktivitätgenutzt werden.

DatenbankAWS Data Pipeline unterstützt die folgenden Typen von Datenbanken:

JdbcDatabase (p. 275)

Eine JDBC-Datenbank.RdsDatabase (p. 276)

Eine Amazon RDS-Datenbank.RedshiftDatabase (p. 278)

Eine Amazon Redshift-Datenbank.

AktivitätenIn AWS Data Pipeline ist eine Aktivität eine Pipeline-Komponente, die die durchzuführende Arbeit definiert.AWS Data Pipeline bietet mehrere vorkonfigurierte Aktivitäten für gängige Szenarien, z. B. das Verschieben

API-Version 2012-10-2910

Page 18: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVorbedingungen

von Daten von einem Speicherort an einen anderen, das Ausführen von Hive-Abfragen usw. Aktivitätensind erweiterbar, sodass Sie Ihre eigenen benutzerdefinierten Skripts ausführen und so unzähligeKombinationen unterstützen können.

AWS Data Pipeline unterstützt die folgenden Typen von Aktivitäten:

CopyActivity (p. 171)

Kopiert Daten von einem Speicherort zu einem anderen.EmrActivity (p. 176)

Führt einen Amazon EMR-Cluster aus.HiveActivity (p. 189)

Führt eine Hive-Abfrage auf einem Amazon EMR-Cluster aus.HiveCopyActivity (p. 195)

Führt eine Hive-Abfrage auf einen Amazon EMR-Cluster aus, mit Unterstützung von erweitertenDatenfiltern und Unterstützung für S3DataNode (p. 161) und DynamoDBDataNode (p. 147).

PigActivity (p. 201)

Führt ein Pig-Skript auf einem Amazon EMR-Cluster aus.RedshiftCopyActivity (p. 210)

Kopiert Daten in und von Amazon Redshift-Tabellen.ShellCommandActivity (p. 219)

Führt einen benutzerdefinierten UNIX/Linux-Shell-Befehl als Aktivität aus.SqlActivity (p. 225)

Führt eine SQL-Abfrage auf einer Datenbank aus.

Einige Aktivitäten bieten spezielle Unterstützung für Staging-Daten und Datenbanktabellen. WeitereInformationen finden Sie unter Staging von Daten und Tabellen mit Pipeline-Aktivitäten (p. 54).

VorbedingungenIn AWS Data Pipeline ist eine Vorbedingung eine Pipeline-Komponente, die Bedingungsaussagenenthält, die erfüllt sein müssen, bevor eine Aktivität ausgeführt werden kann. Beispielsweise kann eineVorbedingung prüfen, ob Quellendaten vorhanden sind, bevor eine Pipeline-Aktivität versucht, sie zukopieren. AWS Data Pipeline bietet mehrere vorkonfigurierte Vorbedingungen für gängige Szenarien, z. B.die Prüfung, ob eine Datenbanktabelle vorhanden ist, ob ein Amazon S3-Schlüssel vorhanden ist usw.Vorbedingungen sind jedoch erweiterbar, sodass Sie Ihre eigenen benutzerdefinierten Skripts ausführenund so unzählige Kombinationen unterstützen können.

Es gibt zwei Arten von Vorbedingungen: vom System verwaltete Vorbedingungen und benutzerverwalteteVorbedingungen. Vom System verwaltete Vorbedingungen werden vom AWS Data Pipeline-Webservice fürSie durchgeführt und erfordern keine Datenverarbeitungsressource. Benutzerverwaltete Vorbedingungenwerden nur auf der Datenverarbeitungsressource ausgeführt, die Sie im Feld runsOn oder workerGroupfestgelegt haben. Die workerGroup-Ressource ist von der Aktivität abgeleitet, die die Vorbedingung nutzt.

Vom System verwaltete VorbedingungenDynamoDBDataExists (p. 258)

Prüft, ob in einer bestimmten DynamoDB-Tabelle Daten vorhanden sind.

API-Version 2012-10-2911

Page 19: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBenutzerverwaltete Vorbedingungen

DynamoDBTableExists (p. 261)

Prüft, ob eine DynamoDB-Tabelle vorhanden ist.S3KeyExists (p. 266)

Prüft, ob ein Amazon S3-Schlüssel vorhanden ist.S3PrefixNotEmpty (p. 269)

Prüft, ob ein Amazon S3-Präfix leer ist.

Benutzerverwaltete VorbedingungenExists (p. 263)

Prüft, ob ein Datenknoten vorhanden ist.ShellCommandPrecondition (p. 272)

Führt einen Unix-/Linux-Shell-Befehl als Vorbedingung aus.

RessourcenIn AWS Data Pipeline ist eine Ressource die Datenverarbeitungsressource, die die Arbeit ausführt, die einePipeline-Aktivität festlegt. AWS Data Pipeline unterstützt die folgenden Ressourcentypen:

Ec2Resource (p. 230)

Eine EC2 Instance, welche die von einer Pipeline-Aktivität definierte Arbeit ausführt.EmrCluster (p. 237)

Einen Amazon EMR-Cluster, der die von einer Pipeline-Aktivität definierte Arbeit ausführt, z. B.EmrActivity (p. 176).

Ressourcen können in derselben Region mit ihrem Arbeitsdatensatz ausgeführt werden, auch in eineranderen Region als AWS Data Pipeline. Weitere Informationen finden Sie unter Verwenden einer Pipelinemit Ressourcen in mehreren Regionen (p. 62).

RessourcenlimitsAWS Data Pipeline kann skaliert werden, um eine große Anzahl von gleichzeitigen Aufgaben durchführenzu können. Sie können das System so konfigurieren, dass es automatisch die Ressourcen erstellt, diefür die Verarbeitung großer Workloads erforderlich sind. Diese automatisch erstellten Ressourcen sindvon Ihnen steuerbar und zählen bei Ihren Ressourcenlimits für Ihr AWS-Konto mit. Wenn Sie AWS DataPipeline beispielsweise so konfigurieren, dass für die Datenverarbeitung automatisch ein Amazon EMR-Cluster mit 20 Knoten erstellt wird, und das EC2-Instance-Limit für Ihr AWS-Konto auf 20 festgelegtwurde, überschreiten Sie versehentlich Ihre verfügbaren Backfill-Ressourcen. Daher sollten Sie dieseRessourceneinschränkungen bei Ihrem Design berücksichtigen oder Ihre Kontolimits entsprechenderweitern. Weitere Informationen zu Service Limits finden Sie unter AWS Service Limits in der AllgemeinenAWS-Referenz.

Note

Der Grenzwert ist eine Instance pro Ec2Resource Komponentenobjekt.

API-Version 2012-10-2912

Page 20: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchUnterstützte Plattformen

Unterstützte PlattformenPipelines können Ihre Ressourcen in den folgenden Plattformen starten:

EC2-Classic

Ihre Ressourcen werden in einem einzelnen, flachen Netzwerk ausgeführt, das Sie gemeinsam mitanderen Kunden verwenden.

EC2-VPC

Ihre Ressourcen werden in einer Virtual Private Cloud (VPC) ausgeführt, die logisch von Ihrem AWS-Konto isoliert ist.

Ihr AWS-Konto kann Ressourcen auf beiden Plattformen oder nur auf der EC2-VPC starten, jenach Region. Weitere Informationen finden Sie unter Unterstützte Plattformen im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Wenn Ihr AWS-Konto nur EC2-VPC unterstützt, erstellen wir eine Standard-VPC für Sie in jeder AWS-Region. Standardmäßig starten wir Ihre Ressourcen in einem Standard-Subnetz Ihrer Standard-VPC.Alternativ können Sie eine nicht standardmäßige VPC erstellen und bei der Konfiguration Ihrer Ressourceneines ihrer Subnetze angeben. Dann starten wir Ihre Ressourcen in dem angegebenen Subnetz der nichtstandardmäßigen VPC.

Wenn Sie eine Instance in einer VPC starten, müssen Sie eine Sicherheitsgruppe angeben, diespeziell für diese VPC erstellt wurde. Wenn Sie eine Instance in einer VPC starten, können Sie keineSicherheitsgruppe angeben, die Sie für EC2-Classic erstellt haben. Darüber hinaus müssen Sie dieSicherheitsgruppen-ID und nicht den Sicherheitsgruppennamen verwenden, um eine Sicherheitsgruppe füreine VPC festzulegen.

Weitere Informationen zur Verwendung einer VPC mit AWS Data Pipeline finden Sie unter Starten vonRessourcen für Ihre Pipeline in einer VPC (p. 58).

Amazon EC2-Spot-Instances mit Amazon EMR-Clustern und AWS Data PipelinePipelines können Amazon EC2-Spot-Instances für die Aufgabenknoten in ihren Amazon EMR-Cluster-Ressourcen verwenden. Pipelines verwenden standardmäßig On-Demand-Instances. Mit Spot-Instanceskönnen Sie als Reserve vorhandene EC2-Instances verwenden und diese ausführen. Das Spot Instance-Preismodell ergänzt das On-Demand-Preismodell und das Reserved Instance-Preismodell und stelltwomöglich die kosteneffizienteste Option für Rechenkapazität dar, je nach Anwendung. WeitereInformationen finden Sie auf der Produktseite zu Amazon EC2-Spot-Instances.

Wenn Sie Spot-Instances verwenden, übermittelt AWS Data Pipeline Ihren Höchstpreis für die Spot-Instance an Amazon EMR, wenn Ihr Cluster gestartet wird. Es weist die Arbeit des Clusters automatischder Anzahl an Spot-Instance-Aufgabenknoten zu, die Sie im Feld taskInstanceCount definiert haben.AWS Data Pipeline beschränkt Spot-Instances für Aufgabenknoten, um sicherzustellen, dass On-Demand-Core-Knoten verfügbar sind, die Ihre Pipeline ausführen.

Sie können eine fehlgeschlagene oder abgeschlossene Pipeline-Ressourcen-Instance bearbeiten undSpot-Instances hinzufügen. Wenn die Pipeline den Cluster erneut startet, nutzt er die Spot-Instances für dieAufgabenknoten.

Überlegungen zu Spot-InstancesWenn Sie Spot-Instances mit AWS Data Pipeline verwenden, berücksichtigen Sie Folgendes:

API-Version 2012-10-2913

Page 21: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktionen

• Ihre Spot-Instances können beendet werden, wenn der Spot-Instance-Preis Ihren Höchstpreis übersteigt,oder aufgrund von Amazon EC2-Kapazitätsgründen. Sie verlieren Ihre Daten jedoch nicht, da AWSData Pipeline Cluster mit Core-Knoten nutzt, die immer On-Demand-Instances sind und nicht imZusammenhang mit dem Beenden stehen.

• Spot-Instances können mehr Zeit zum Starten benötigen, weil sie Kapazität asynchron bereitstellen.Aus diesem Grund läuft eine Spot-Instance-Pipeline möglicherweise langsamer als eine äquivalente On-Demand-Instance-Pipeline.

• Ihr Cluster wird möglicherweise nicht ausgeführt, wenn Sie Ihre Spot-Instances nicht erhalten,beispielsweise, wenn Ihr Höchstpreis zu niedrig ist.

AktionenAWS Data Pipeline-Aktionen sind Schritte, die eine Pipeline-Komponente ausführt, wenn bestimmteEreignisse eintreten, z. B. bei Erfolg, Fehlern oder verspäteten Aktivitäten. Das Ereignisfeld einerAktivität bezieht sich auf eine Aktion, z. B. einen Verweis auf snsalarm im Feld onLateAction vonEmrActivity.

AWS Data Pipeline stützt sich auf Amazon SNS-Benachrichtigungen als primäre Möglichkeit, den Statusvon Pipelines und ihrer Komponenten in einer unbeaufsichtigten Art anzuzeigen. Weitere Informationenerhalten Sie unter Amazon SNS. Zusätzlich zu den SNS-Benachrichtigungen können Sie über die AWSData Pipeline-Konsole und -CLI Pipeline-Statusinformationen abrufen.

AWS Data Pipeline unterstützt die folgenden Aktionen:

SnsAlarm (p. 288)

Eine Aktion, die eine SNS-Benachrichtigung an ein Thema sendet, basierend auf den EreignissenonSuccess, OnFail und onLateAction.

Beenden (p. 289)

Eine Aktion, die eine Stornierung von ausstehenden oder nicht abgeschlossenen Aktivitäten,Ressourcen oder Datenknoten auslöst. Sie können keine Aktionen beenden, die onSuccess, OnFailoder onLateAction beinhalten.

Proaktive Pipeline-ÜberwachungDie beste Möglichkeit zum Erkennen von Problemen ist die proaktive Überwachung Ihrer Pipelines vonAnfang an. Sie können die Pipeline-Komponenten so konfigurieren, dass Sie über bestimmte Situationenoder Ereignisse informiert werden, z. B. wenn eine Pipeline-Komponente fehlschlägt oder nicht zurgeplanten Startzeit beginnt. AWS Data Pipeline erleichtert das Konfigurieren von Benachrichtigungendurch Ereignisfelder bei Pipeline-Komponenten, die Sie mit Amazon SNS-Benachrichtigungen verknüpfenkönnen, wie beispielsweise onSuccess, OnFail und onLateAction.

API-Version 2012-10-2914

Page 22: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRegistrieren bei AWS

Einrichten für AWS Data PipelineBevor Sie AWS Data Pipeline zum ersten Mal verwenden, führen Sie die folgenden Aufgaben aus:

Aufgaben• Registrieren bei AWS (p. 15)• Erstellen der erforderlichen IAM-Rollen (nur für CLI und API) (p. 15)• Vordefinierten IAM-Rollen eine verwaltete Richtlinie mit PassRole zuweisen (p. 16)• Benutzerdefinierten IAM-Rollen eine Inline-Richtlinie mit PassRole zuweisen (p. 17)

Nachdem Sie diese Aufgaben durchgeführt haben, können Sie mit AWS Data Pipeline arbeiten. Ein Tutorialzum Einstieg finden Sie unter Erste Schritte mit AWS Data Pipeline (p. 19).

Registrieren bei AWSBei der Registrierung für Amazon Web Services (AWS) wird Ihr AWS-Konto automatisch für alle Dienstein AWS, einschließlich AWS Data Pipeline, registriert. Berechnet werden Ihnen aber nur die Services, dieSie nutzen. Weitere Informationen zu den Nutzungsgebühren von AWS Data Pipeline finden Sie unter AWSData Pipeline.

Wenn Sie bereits ein AWS-Konto haben, wechseln Sie zur nächsten Aufgabe. Wenn Sie kein AWS-Kontohaben, befolgen Sie diese Schritte zum Erstellen eines Kontos.

So erstellen Sie ein Amazon-Konto

1. Öffnen Sie https://portal.aws.amazon.com/billing/signup.2. Folgen Sie den Onlineanweisungen.

Der Anmeldeprozess beinhaltet auch einen Telefonanruf und die Eingabe eines Verifizierungscodesüber die Telefontastatur.

Erstellen der erforderlichen IAM-Rollen (nur für CLIund API)

AWS Data Pipeline benötigt IAM-Rollen, um zu bestimmen, welche Aktionen die Pipelines ausführenkönnen und auf welche Ressourcen sie zugreifen dürfen. Außerdem legen IAM-Rollen beim Erstellenvon Ressourcen wie EC2-Instances oder EMR-Clustern durch die Pipeline fest, welche Aktionen dieAnwendungen ausführen und auf welche Ressourcen sie zugreifen können.

Die AWS Data Pipeline-Konsole erstellt die folgenden Rollen für Sie:

• DataPipelineDefaultRole gewährt AWS Data Pipeline Zugriff auf Ihre AWS-Ressourcen• DataPipelineDefaultResourceRole gewährt Anwendungen Ihrer EC2-Instances Zugriff auf Ihre AWS-

Ressourcen.

Wenn Sie bereits mit AWS Data Pipeline gearbeitet und dabei Versionen dieser IAM-Rollen erstellt haben,müssen Sie diese möglicherweise aktualisieren. Weitere Informationen finden Sie unter Aktualisierenvorhandener IAM-Rollen für AWS Data Pipeline (p. 79).

API-Version 2012-10-2915

Page 23: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVordefinierten IAM-Rollen eine verwaltete

Richtlinie mit PassRole zuweisen

Wenn Sie die CLI oder API verwenden und noch keine Pipeline mit der AWS Data Pipeline-Konsole erstellthaben, müssen Sie diese Rollen manuell mit AWS Identity and Access Management (IAM) erstellen.

So erstellen Sie die erforderlichen IAM-Rollen manuell

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.2. Erstellen Sie die Rolle DataPipelineDefaultRole wie folgt:

a. Wählen Sie im Navigationsbereich Roles und Create New Role aus.b. Geben Sie auf der Seite Set Role Name den Rollennamen DataPipelineDefaultRoleein.c. Klicken Sie auf der Seite Select Role Type unter AWS Service Roles in der Zeile für AWS Data

Pipeline auf Select.d. Wählen Sie auf der Seite Attach Policy die AWSDataPipelineRole und Next Step aus.e. Wählen Sie auf der Seite Review Create Role aus.

3. Erstellen Sie die Rolle DataPipelineDefaultResourceRole wie folgt:

a. Wählen Sie im Navigationsbereich Roles und Create New Role aus.b. Geben Sie auf der Seite Set Role Name den Rollennamen

DataPipelineDefaultResourceRoleein.c. Klicken Sie auf der Seite Select Role Type unter AWS Service Roles in der Zeile für Amazon EC2

Role for Data Pipeline auf Select.d. Wählen Sie auf der Seite Attach Policy die AmazonEC2RoleforDataPipelineRole und Next Step

aus.e. Wählen Sie auf der Seite Review Create Role aus.

Alternativ können Sie auch benutzerdefinierte Rollen erstellen und verwenden. Weitere Informationen zumAngeben von benutzerdefinierten Rollen für ein EmrCluster-Objekt finden Sie unter Angepasste IAM-Rollen angeben (p. 240).

Vordefinierten IAM-Rollen eine verwaltete Richtliniemit PassRole zuweisen

Alle Benutzer, die AWS Data Pipeline in Ihrem Konto verwenden, benötigen"Action":"iam:PassRole"-Berechtigungen für die vordefinierten Rollen DataPipelineDefaultRole undDataPipelineDefaultResourceRole oder für alle anderen benutzerdefinierten Rollen, die Sie verwenden, umauf AWS Data Pipeline zuzugreifen.

Der Einfachheit halber können Sie eine Benutzergruppe für diese Benutzer erstellen und ihr eine verwalteteRichtlinie zuweisen, AWSDataPipeline_FullAccess. Diese verwaltete Richtlinie ermöglicht, dass Benutzer"Action":"iam:PassRole"-Berechtigungen für Rollen erhalten, die für AWS Data Pipeline verwendetwerden.

In dieser Aufgabe erstellen Sie eine Benutzergruppe und weisen dieser Gruppe dann die verwalteteRichtlinie AWSDataPipeline_FullAccess zu.

Die Benutzergruppe DataPipelineDevelopers erstellen und ihr die RichtlinieAWSDataPipeline_FullAccess hinzufügen

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.2. Wechseln Sie im Navigationsbereich zu Groups und klicken Sie auf Create New Group.3. , Geben Sie im Feld Group Name:DataPipelineDevelopers einen Namen für die Gruppe ein.

Klicken Sie auf Next Step.

API-Version 2012-10-2916

Page 24: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBenutzerdefinierten IAM-Rollen eine

Inline-Richtlinie mit PassRole zuweisen

4. Wählen Sie in der Richtlinienliste die verwaltete Richtlinie AWSDataPipeline_FullAccess. Klicken Sieauf Next Step.

5. Wählen Sie Create Group.6. Fügen Sie der Gruppe Benutzer hinzu. Wählen Sie Groupsund dann die

DataPipelineDevelopersGruppe aus. Wählen Sie die Registerkarte Users und anschließenddie Option Add Users to Group aus. Wählen Sie die Benutzer aus, die Sie hinzufügen möchten, undklicken Sie dann auf Add Users to Group.

Benutzerdefinierten IAM-Rollen eine Inline-Richtliniemit PassRole zuweisen

Statt die verwaltete Richtlinie AWSDataPipeline_FullAccess mit zwei vordefinierten Rollen für AWS DataPipeline zu verwenden, können Sie alternativ auch zwei verschiedene benutzerdefinierte Rollen für AWSData Pipeline erstellen und jeder dieser Rollen eine Inline-Richtlinie mit "Action":"iam:PassRole"zuweisen.

Erstellen Sie diese beiden verschiedenen benutzerdefinierten Rollen:

• Eine benutzerdefinierte Rolle, mit der Sie Amazon EMR-Cluster über AWS Data Pipeline starten. DieseRolle kann der vordefinierten Rolle DataPipelineDefaultRole ähneln oder über weniger Berechtigungenals die vordefinierte Rolle verfügen. Diese benutzerdefinierte Rolle muss jedoch die Vertrauensstellungmit den beiden von ihr verwendeten Services Amazon EMR und AWS Data Pipeline wie folgt aufweisen:

"Effect": "Allow", "Principal": { "Service": "datapipeline.amazonaws.com" "Service": "elasticmapreduce.amazonaws.com" }

• Eine benutzerdefinierte Rolle, mit der Sie Amazon EC2-Cluster über AWS Data Pipeline starten.Diese Rolle kann der vordefinierten Rolle DataPipelineDefaultResourceRole ähneln oder über wenigerBerechtigungen als die vordefinierte Rolle verfügen. Diese benutzerdefinierte Rolle muss jedoch dieVertrauensstellung mit dem Amazon EC2-Service wie folgt aufweisen:

"Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }

Weitere Informationen finden Sie unter Bearbeiten der Vertrauensstellung für eine vorhandene Rolle.

Weitere Informationen zum Angeben von benutzerdefinierten Rollen für ein EmrCluster-Objekt finden Sieunter Angepasste IAM-Rollen angeben (p. 240).

So erstellen Sie eine eigene Inline-Richtlinie für eine beliebige CUSTOM_ROLE-Rolle, die über Zugriffauf AWS Data Pipeline verfügt. Verwenden Sie dieses Beispiel der Inline-Richtlinie als Leitfaden. Die"Action":"iam:PassRole"ist fürCUSTOM_ROLE angegeben.

{ "Version": "2012-10-17", "Statement": [

API-Version 2012-10-2917

Page 25: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBenutzerdefinierten IAM-Rollen eine

Inline-Richtlinie mit PassRole zuweisen

{ "Action": [ "s3:List*", "dynamodb:DescribeTable", ... ... ], "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/CUSTOM_ROLE" ] }}

API-Version 2012-10-2918

Page 26: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Erste Schritte mit AWS Data PipelineMit AWS Data Pipeline können Sie regelmäßige Arbeitslasten zur Datenverarbeitung sequenzieren, planen,ausführen und verwalten – zuverlässig und kosteneffizient. Dieser Service vereinfacht das Entwerfen vonETL-Aktivitäten (Extract, Transform, Load) mithilfe von strukturierten und unstrukturierten Daten, vor Ortund in der Cloud, basierend auf Ihrer Geschäftslogik.

Um AWS Data Pipeline zu nutzen, erstellen Sie eine Pipeline-Definition, die die Geschäftslogik für dieDatenverarbeitung festlegt. Eine typische Pipeline-Definition besteht aus Aktivitäten (p. 10), die diedurchzuführende Arbeit definieren, Datenknoten (p. 10), die den Speicherort und Typ der Ein- undAusgabedaten beschreiben, und einem Zeitplan (p. 22), der festlegt, zu welchem Zeitpunkt dieAktivitäten durchgeführt werden.

In diesem Tutorial führen Sie ein Shell-Befehlsskript aus, das die Anzahl der GET-Anforderungen inApache-Webserverprotokollen zählt. Diese Pipeline wird alle 15 Minuten eine Stunde lang ausgeführt undschreibt bei jeder Iteration die Ausgabe in Amazon S3.

Voraussetzungen

Bevor Sie beginnen, führen Sie die Aufgaben in Einrichten für AWS Data Pipeline (p. 15) durch.

Pipeline-Objekte

Die Pipeline verwendet die folgenden Objekte:

ShellCommandActivity (p. 219)

Liest die Eingabeprotokolldatei und zählt die Anzahl an Fehlern.S3DataNode (p. 161) (Eingabe)

Der S3-Bucket, der die Eingabeprotokolldatei enthält.S3DataNode (p. 161) (Ausgabe)

Der S3-Bucket für die Ausgabe.Ec2Resource (p. 230)

Die Datenverarbeitungsressource, mit der AWS Data Pipeline die Aktivität ausführt.

Hinweis: Wenn Sie eine große Menge an Protokolldateidaten haben, können Sie Ihre Pipeline sokonfigurieren, dass zum Verarbeiten der Dateien ein EMR-Cluster anstelle einer EC2 Instanceverwendet wird.

Plan (p. 291)

Legt fest, dass die Aktivität alle 15 Minuten eine Stunde lang ausgeführt wird.

Aufgaben• Erstellen Sie die Pipeline (p. 20)• Überwachen der ausgeführten Pipeline (p. 20)• Anzeigen der Ausgabe (p. 21)

API-Version 2012-10-2919

Page 27: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen Sie die Pipeline

• Löschen der Pipeline (p. 21)

Erstellen Sie die PipelineDie schnellste Möglichkeit zum Einstieg in AWS Data Pipeline ist die Verwendung einer Pipeline-Definitionnamens Vorlage.

So erstellen Sie die Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Wählen Sie auf der Navigationsleiste eine Region aus. Sie können unabhängig von Ihrem Standort

jede verfügbare Region auswählen. Viele AWS-Ressourcen sind spezifisch für eine Region, aberAWS Data Pipeline ermöglicht Ihnen die Verwendung von Ressourcen, die zu einer anderen Regiongehören als die Pipeline.

3. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellenRegion erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

4. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.5. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.6. Wählen Sie für Source die Option Build using a template aus und wählen Sie dann folgende Vorlage:

Getting Started using ShellCommandActivity.7. Nach der Auswahl der Vorlage öffnet sich der Abschnitt Parameters. Behalten Sie dort die

Standardwerte für S3 input folder und Shell command to run bei. Klicken Sie neben S3 output folderauf das Ordnersymbol, wählen Sie einen Ihrer Buckets oder Ordner aus und klicken Sie anschließendauf Select.

8. Behalten Sie unter Schedule die Standardwerte bei. Wenn Sie die Pipeline aktivieren, beginnen diePipeline-Ausführungen und werden alle 15 Minuten eine Stunde lang ausgeführt.

Wenn Sie möchten, können Sie stattdessen auch die Option Run once on pipeline activationauswählen.

9. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unterS3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.10. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.11. Klicken Sie auf Activate.

Gegebenenfalls können Sie auch Edit in Architect wählen, um diese Pipeline zu ändern. Sie könnenbeispielsweise Vorbedingungen hinzufügen.

Überwachen der ausgeführten PipelineNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

So überwachen Sie den Fortschritt Ihrer Pipeline

1. Klicken Sie auf Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.

API-Version 2012-10-2920

Page 28: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAnzeigen der Ausgabe

Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) die geplante Start- und Endzeit Ihrer Pipeline abdecken, und klicken Sie dann aufUpdate.

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

Anzeigen der AusgabeÖffnen Sie die Amazon S3-Konsole und navigieren Sie zu Ihrem Bucket. Wenn Sie Ihre Pipeline alle15 Minuten eine Stunde lang ausgeführt haben, sehen Sie vier Unterordner mit Zeitstempeln. JederUnterordner enthält die Ausgabe in einer Datei mit dem Namen output.txt. Da wir das Skript jedes Malauf derselben Eingabedatei ausgeführt haben, sind die Ausgabedateien identisch.

Löschen der PipelineUm zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

Wenn Sie mit der Ausgabe dieses Tutorials fertig sind, löschen Sie die Ausgabeordner aus Ihrem AmazonS3-Bucket.

API-Version 2012-10-2921

Page 29: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPlanen von Pipelines

Arbeiten mit PipelinesSie können Pipelines mit der AWS Data Pipeline-Konsole, einem AWS-SDK oder derBefehlszeilenschnittstelle (CLI) verwalten, erstellen und ändern. Die folgenden Abschnitte beschreiben diegrundlegenden AWS Data Pipeline-Konzepte und veranschaulichen, wie Sie mit Pipelines arbeiten.

Important

Bevor Sie beginnen, sehen Sie sich Einrichten für AWS Data Pipeline (p. 15) an.

Inhalt• Planen von Pipelines (p. 22)• Erstellen einer Pipeline (p. 25)• Anzeigen Ihrer Pipelines (p. 43)• Bearbeiten Ihrer Pipeline (p. 49)• Klonen Ihrer Pipeline (p. 51)• Tagging Ihrer Pipeline (p. 52)• Deaktivieren Ihrer Pipeline (p. 52)• Löschen Ihrer Pipeline (p. 54)• Staging von Daten und Tabellen mit Pipeline-Aktivitäten (p. 54)• Starten von Ressourcen für Ihre Pipeline in einer VPC (p. 58)• Verwenden von Amazon EC2-Spot-Instances in einer Pipeline (p. 61)• Verwenden einer Pipeline mit Ressourcen in mehreren Regionen (p. 62)• Kaskadierende Ausfälle und erneute Ausführungen (p. 63)• Syntax der Pipeline-Definitionsdatei (p. 65)• Arbeiten mit der API (p. 67)

Planen von PipelinesIn AWS Data Pipeline legt ein Zeitplan den Zeitpunkt eines geplanten Ereignisses fest, wie z. B. dieAusführung einer Aktivität. AWS Data Pipeline stellt diese Funktionalität über die Plan (p. 291)-Pipeline-Komponente bereit.

Erstellen eines Zeitplans über die KonsoleMit der AWS Data Pipeline-Konsole können Sie Pipelines planen und erstellen. Dies ist für Prototyping undTests von Pipelines nützlich, bevor sie für Produktions-Workloads eingerichtet werden.

Im Bereich Create Pipeline befinden sich die folgenden Felder:

Feld Action

Name Geben Sie einen Namen für die Pipeline ein.

Beschreibung (Optional) Geben Sie eine Beschreibung für die Pipeline ein.

API-Version 2012-10-2922

Page 30: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchOn-Demand-Instances

Im Bereich Schedule befinden sich die folgenden Felder:

Feld Action

Führen Sie • Wählen Sie on activation, um die Pipeline als On-Demand-Pipeline auszuführen.Dadurch wird eine Pipeline erstellt, die bei ihrer Aktivierung ausgeführt werdenkann.

Run every Geben Sie einen Zeitraum für jede Pipeline-Ausführung ein.

Starting Geben Sie Uhrzeit und Datum des Zeitpunkts ein, an dem die Pipeline startensoll. Alternativ werden Anfangsdatum und Uhrzeit bei der Aktivierung der Pipelineautomatisch ausgewählt.

Ending Geben Sie Uhrzeit und Datum des Zeitpunkts ein, an dem die Pipeline enden soll.Bei Auswahl von never wird Ihre Pipeline unbegrenzt lange ausgeführt.

Im Bereich IAM Roles & Permissions befinden sich die folgenden Optionen:

Feld Action

Standard Wählen Sie diese Option, wenn AWS Data Pipeline die Rollen für Sie bestimmensoll.

Benutzerdefiniert Wählen Sie diese Option, um Ihre eigenen IAM-Rollen festzulegen. Wenn Sie dieseOption auswählen, können Sie die folgenden Rollen auswählen:

• Pipeline-Rolle — die Rolle, die bestimmt, wie AWS Data Pipeline die Ressourcenim Konto nutzen kann.

• EC2-Instance-Rolle — die Rolle, die bestimmt, wie Amazon EC2-Anwendungendie Ressourcen im Konto nutzen können.

On-Demand-InstancesNote

Das Standardobjekt ist auf der Architect-Seite im Bereich Other zu finden.

AWS Data Pipeline stellt einen bedarfsorientierten Zeitplantyp zur Verfügung, um die Ausführungeiner Pipeline bei ihrer Aktivierung zu ermöglichen. Die Pipeline wird als Reaktion auf dieAktivierungsanforderung einmal ausgeführt.

Für On-Demand-Pipelines darf als Planungstyp auf dem Standardobjekt nur ondemand festgelegt werden.Für On-Demand-Pipelines darf kein Zeitplanobjekt verwendet werden und sind mehrere Zeitpläne nichtzulässig. Die maximale Anzahl der gleichzeitigen Ausführungen einer On-Demand-Pipeline kann mitdem Slot maxActiveInstances im Standardobjekt konfiguriert werden. Für On-Demand-Pipelines ist derStandardwert für diesen Slot 1 und ein Höchstwert von 5 zulässig.

Das folgende Standardobjekt verwendet On-Demand-Planung:

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand"

API-Version 2012-10-2923

Page 31: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchZeitreihenstil im Vergleich zum Cron-Stil

}

Zeitreihenstil im Vergleich zum Cron-StilAWS Data Pipeline bietet zwei Arten der periodischen Planung von Pipeline-Komponenten: Planung imZeitreihenstil und Planung im Cron Stil.

Mit dem Zeitplantyp können Sie angeben, ob die Instances der Pipeline-Komponente zu Beginn desIntervalls (auch als Zeitraum bezeichnet) oder am Ende des Intervalls gestartet werden sollen.

Planung im Zeitreihenstil bedeutet, dass Instances am Ende jedes Intervalls und Planung im Cron-Stilbedeutet, dass Instances zu Beginn jedes Intervalls geplant werden. Wenn bei der Planung im Zeitreihenstilals Startzeit 22.00 UTC und als Intervall/Zeitraum 30 Minuten festgelegt sind, dann startet die ersteAusführung der Instance der Pipeline-Komponente nicht um 22.00 UTC, sondern um 22.30 UTC. Wenn Siemöchten, dass die Instance zu Beginn des Zeitraums/Intervalls, wie z. B. um 22.00 UTC, ausgeführt wird,verwenden Sie stattdessen die Planung im Cron-Stil.

Note

Das minimale Planungsintervall ist 15 Minuten.

Note

Das Standardobjekt ist auf der Architect-Seite im Bereich Other zu finden.

Dies ist ein Standardobjekt für Pipelines im Cron-Stil:

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "cron"}

Dies ist ein Standardobjekt für Pipelines im Zeitreihenstil:

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "timeseries"}

Ressourcen ignorieren ZeitplantypAbhängig vom eingestellten Zeitplantyp der Pipeline (Planung im Zeitreihenstil oder Planung im Cron-Stil) erstellt AWS Data Pipeline Aktivitäts- und Datenknoten-Instances am Anfang oder am Ende desZeitplanintervalls. Unabhängig vom Zeitplantyp der Pipeline erstellt AWS Data Pipeline Resource-Instances, wie beispielsweise EC2Resource und EmrCluster, jedoch zu Beginn des Intervalls und legtfür sie als Status WAITING_ON_DEPENDENCIES fest. Die tatsächlich zugrunde liegenden Ressourcenwerden erst instanziiert, wenn eine zugeordnete Aktivität geplant wird.

Abgleichen von AufgabenWenn Sie eine Pipeline mit einem geplanten Startzeitpunkt in der Vergangenheit definieren, gleichtAWS Data Pipeline die Aufgaben in der Pipeline ab. In diesem Fall führt AWS Data Pipeline sofort vieleInstances der Aufgaben in der Pipeline aus, um auf die Anzahl der Ausführungen aufzuholen, die für diese

API-Version 2012-10-2924

Page 32: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchMaximale Ressourceneffizienz mithilfe von Zeitplänen

Aufgaben zwischen dem geplanten Startzeitpunkt und dem aktuellen Zeitpunkt erfolgt wären. Wenn diesgeschieht, sehen Sie, wie Instances der Pipeline-Komponente nacheinander mit größerer Häufigkeit als derZeitraumwert ausgeführt werden, den Sie beim Erstellen der Pipeline festgelegt haben. AWS Data Pipelinestellt für Ihre Pipeline erst dann wieder den definierten Zeitraum ein, wenn es die Anzahl der vergangenenAusführungen nachgeholt hat.

Um Abgleichungen in Ihren Entwicklungs- und Testphasen zu minimieren, verwenden Sie fürstartDateTime..endDateTime ein relativ kurzes Intervall.

AWS Data Pipeline versucht, zufällige Abgleichungen zu verhindern. Dazu wird die Pipeline-Aktivierunggesperrt, wenn die Pipeline-Komponente scheduledStartTime länger als 1 Tag zurückliegt.

Damit Ihre Pipeline sofort gestartet wird, legen Sie für Start Date Time (Startdatum/-uhrzeit) das Datum desVortages fest. AWS Data Pipeline startet dann die "überfälligen" Ausführungen sofort, um den als Problemwahrgenommenen Rückstand an Aufgaben aufzuholen. So müssen Sie nicht eine Stunde warten, bis AWSData Pipeline den ersten Cluster startet.

Maximale Ressourceneffizienz mithilfe von ZeitplänenMit AWS Data Pipelinekann die Effizienz von Ressourcen maximiert werden, indem für eine Ressource undeine zugeordnete Aktivität verschiedene Planungszeiträume unterstützt werden.

Nehmen wir eine Aktivität mit einem Planungszeitraum von 20 Minuten als Beispiel. Wäre für dieRessource der Aktivität ebenfalls ein 20-minütiger Planungszeitraum konfiguriert, dann würde AWS DataPipeline in einer Stunde drei Instances der Ressource erstellen und den für die Aufgabe erforderlichenRessourcenverbrauch verdreifachen.

Stattdessen ermöglicht AWS Data Pipeline Ihnen, die Ressource mit einem anderen Zeitplan zukonfigurieren, z. B. einem einstündigen Zeitplan. Wenn dieser mit einer Aktivität mit einem 20-minütigenZeitplan verknüpft wird, erstellt AWS Data Pipeline nur eine Ressource zur Versorgung aller drei Instancesder Aktivität innerhalb einer Stunde, wodurch die Nutzung der Ressource maximiert wird.

Schutz vor Überschreiben von DatenAngenommen, ein wiederkehrender Importauftrag mittels AWS Data Pipeline wird mehrere Male pro Tagausgeführt und leitet die Ausgabe jeder Ausführung an denselben Amazon S3-Speicherort.

Wenn Sie keinen auf dem Datum basierenden Ausdruck verwenden, könnten Ihre Ausgabedatenversehentlich überschrieben werden. Ein auf dem Datum basierender Ausdruck, wie z. B. s3://myBucket/#{@scheduledStartTime} für Ihren S3Output.DirectoryPath, kann für jeden Zeitraumeinen separaten Verzeichnispfad angeben. Weitere Informationen finden Sie unter Plan (p. 291).

Erstellen einer PipelineAWS Data Pipeline bietet Ihnen mehrere Möglichkeiten zum Erstellen von Pipelines:

• Sie können die Konsole mit einer für Sie bereitgestellten Vorlage verwenden. Weitere Informationenfinden Sie unter Erstellen von Pipelines mithilfe von Konsolenvorlagen (p. 26).

• Sie können über die Konsole einzelne Pipeline-Objekte manuell hinzufügen. Weitere Informationenfinden Sie unter Manuelles Erstellen von Pipelines über die Konsole (p. 39).

• Sie können die AWS Command Line Interface (CLI) zusammen mit einer Pipeline-Definitionsdatei imJSON-Format verwenden.

• Sie können ein AWS SDK mit einer sprachspezifischen API verwenden. Weitere Informationen finden Sieunter Arbeiten mit der API (p. 67).

API-Version 2012-10-2925

Page 33: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

Erstellen von Pipelines mithilfe von KonsolenvorlagenDie AWS Data Pipeline-Konsole bietet mehrere vorkonfigurierte Pipeline-Definitionen, die auch alsVorlagen bezeichnet werden. Sie können Vorlagen für Ihre ersten Schritte mit AWS Data Pipelineverwenden. Sie können auch Vorlagen mit parametrisierten Werten erstellen. Auf diese Weise könnenSie Pipeline-Objekte mit Parametern und vordefinierten Attributen festlegen. Anschließend können Sie miteinem Tool Werte für einen bestimmten Zweck innerhalb der Pipeline erstellen. Auf diese Weise könnenSie Pipeline-Definitionen mit unterschiedlichen Werten wiederverwenden. Weitere Informationen finden Sieunter Erstellen einer Pipeline anhand parametrisierter Vorlagen (p. 36).

Initialisieren, Erstellen und Planen einer PipelineAuf der Seite Create Pipeline der AWS Data Pipeline-Konsole können Sie eine Pipeline auf einfache Weiseerstellen und planen.

So erstellen und planen Sie eine Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Klicken Sie entweder auf Get started now oder auf Create Pipeline.3. Geben Sie einen Namen und eine optionale Beschreibung für die Pipeline ein.4. Wählen Sie Build using Architect zum interaktiven Erstellen und Bearbeiten von Knoten in einer

Pipeline-Definition oder Build using a template, um eine Vorlage auszuwählen. Weitere Informationenzu Vorlagen finden Sie unter Auswahl einer Vorlage (p. 26).

Wenn Sie sich für die Verwendung einer Vorlage entscheiden, zeigt die Konsole unter Parameters einfür diese Vorlage spezifisches Formular an. Füllen Sie das Formular je nach Bedarf aus.

5. Wählen Sie, ob die Pipeline einmal bei Aktivierung oder nach einem Zeitplan ausgeführt werden soll.

Wenn Sie die Pipeline nach einem Zeitplan ausführen möchten:

a. Wählen Sie für Run every den Zeitplan für die Pipeline aus. Start- und Endzeitpunkt müssen einIntervall definieren, das für diesen Zeitraum lang genug ist.

b. Wählen Sie einen Zeitpunkt für Starting aus. Bei Wahl von on pipeline activation verwendet diePipeline den aktuellen Aktivierungszeitpunkt.

c. Wählen Sie einen Zeitpunkt für Ending aus. Bei Wahl von never wird die Pipeline unbegrenztausgeführt.

6. Wählen Sie eine Option für IAM Roles aus. Wenn Sie Default (Standard) wählen, weist AWS DataPipeline seine eigenen Standardrollen zu. Mit der Option Custom können Sie optional andere Rollenfür Ihr Konto auswählen.

7. Klicken Sie auf Edit in Architect oder Activate.

Auswahl einer VorlageBei Auswahl einer Vorlage wird die Seite zum Erstellen einer Pipeline mit den Parametern gefüllt, die in derPipeline-Definition festgelegt sind. Dazu gehören benutzerdefinierte Amazon S3-Verzeichnispfade, AmazonEC2-Schlüsselpaarnamen, Datenbankverbindungs-Zeichenfolgen usw. Sie können diese Informationenbei der Erstellung und bei der Aktivierung der Pipeline angeben. Die folgenden in der Konsole verfügbarenVorlagen können auch vom Amazon S3-Bucket heruntergeladen werden: s3://datapipeline-us-east-1/templates/.

Vorlagen

• Erste Schritte mit ShellCommandActivity (p. 27)• Ausführen eines AWS CLI-Befehls (p. 27)

API-Version 2012-10-2926

Page 34: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

• Exportieren der DynamoDB-Tabelle zu S3 (p. 27)• Importieren von DynamoDB-Sicherungsdaten aus S3 (p. 27)• Ausführung eines Auftrags auf einem Amazon EMR-Cluster (p. 28)• Vollständige Kopie einer Amazon RDS MySQL-Tabelle auf Amazon S3 (p. 28)• Inkrementelle Kopie einer Amazon RDS MySQL-Tabelle auf Amazon S3 (p. 28)• Laden von S3-Daten in eine Amazon RDS MySQL-Tabelle (p. 29)• Vollständige Kopie einer Amazon RDS MySQL-Tabelle auf Amazon Redshift (p. 34)• Inkrementelle Kopie einer Amazon RDS MySQL-Tabelle auf Amazon Redshift (p. 35)• Laden von Daten aus Amazon S3 in Amazon Redshift (p. 35)

Erste Schritte mit ShellCommandActivityDie Vorlage Getting Started using ShellCommandActivity führt ein Shell-Befehlsskript zum Zählen derAnzahl von GET-Anforderungen in einer Protokolldatei aus. Die Ausgabe für jede geplante Ausführung derPipeline wird an einen mit einem Zeitstempel versehenen Amazon S3-Speicherort geschrieben.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• ShellCommandActivity• S3InputNode• S3OutputNode• Ec2Resource

Ausführen eines AWS CLI-BefehlsDiese Vorlage führt einen vom Benutzer angegebenen AWS CLI-Befehl in festgelegten Intervallen aus.

Exportieren der DynamoDB-Tabelle zu S3Die Vorlage Export DynamoDB table to S3 plant für einen Amazon EMR-Cluster das Exportieren von Datenaus einer DynamoDB-Tabelle in einen Amazon S3-Bucket. Diese Vorlage verwendet einen Amazon EMR-Cluster, dessen Größe proportional zu dem Wert des Durchsatzes ist, der für die DynamoDB-Tabelleverfügbar ist. Sie können IOPs in einer Tabelle zwar erhöhen, dies kann aber zu zusätzlichen Kosten beimImportieren und Exportieren führen. Anstelle einer bisher beim Exportieren verwendeten HiveActivity wirdjetzt natives MapReduce genutzt.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• EmrActivity (p. 176)• EmrCluster (p. 237)• DynamoDBDataNode (p. 147)• S3DataNode (p. 161)

Ein Tutorial finden Sie unter DynamoDB-Daten mit AWS Data Pipeline im- und exportieren (p. 91).

Importieren von DynamoDB-Sicherungsdaten aus S3Die Vorlage Import DynamoDB backup data from S3 plant für einen Amazon EMR-Cluster das Ladeneiner zuvor in Amazon S3 erstellten DynamoDB-Sicherung in eine DynamoDB-Tabelle. In der DynamoDB-Tabelle vorhandene Elemente werden durch die aus den Sicherungsdaten aktualisiert und neue Elementewerden zur Tabelle hinzugefügt. Diese Vorlage verwendet einen Amazon EMR-Cluster, dessen Größe

API-Version 2012-10-2927

Page 35: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

proportional zu dem Wert des Durchsatzes ist, der für die DynamoDB-Tabelle verfügbar ist. Sie könnenIOPs in einer Tabelle zwar erhöhen, dies kann aber zu zusätzlichen Kosten beim Importieren undExportieren führen. Anstelle einer bisher beim Importieren verwendeten HiveActivity wird jetzt nativesMapReduce genutzt.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• EmrActivity (p. 176)• EmrCluster (p. 237)• DynamoDBDataNode (p. 147)• S3DataNode (p. 161)• S3PrefixNotEmpty (p. 269)

Ein Tutorial finden Sie unter DynamoDB-Daten mit AWS Data Pipeline im- und exportieren (p. 91).

Ausführung eines Auftrags auf einem Amazon EMR-ClusterDie Vorlage Run Job on an Elastic MapReduce Cluster startet basierend auf den angegebenenParametern einen Amazon EMR-Cluster und beginnt mit der Ausführung von Schritten basierend aufdem angegebenen Zeitplan. Sobald der Auftrag abgeschlossen ist, wird der EMR-Cluster beendet.Optionale Bootstrap-Aktionen können angegeben werden, um zusätzliche Software zu installieren oder dieKonfiguration der Anwendung im Cluster zu ändern.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• EmrActivity (p. 176)• EmrCluster (p. 237)

Vollständige Kopie einer Amazon RDS MySQL-Tabelle aufAmazon S3Die Vorlage Full Copy of RDS MySQL Table to S3 erstellt eine vollständige Kopie einer Amazon RDSMySQL-Tabelle und speichert die Ausgabe an einem Amazon S3-Speicherort. Die Ausgabe wird als CSV-Datei in einem mit einem Zeitstempel versehenen Unterordner am angegebenen Amazon S3-Speicherortabgelegt.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• CopyActivity (p. 171)• Ec2Resource (p. 230)• SqlDataNode (p. 166)• S3DataNode (p. 161)

Inkrementelle Kopie einer Amazon RDS MySQL-Tabelle aufAmazon S3Die Vorlage Incremental Copy of RDS MySQL Table to S3 erstellt eine inkrementelle Kopie der Daten auseiner Amazon RDS MySQL-Tabelle und speichert die Ausgabe an einem Amazon S3-Speicherort. DieAmazon RDS MySQL-Tabelle muss über die Spalte „Last Modified“ verfügen.

Diese Vorlage kopiert alle Änderungen, die ab dem geplanten Startzeitpunkt zwischen festgelegtenIntervallen an der Tabelle vorgenommen werden. Der Zeitplantyp ist time series (p. 24). Wenn eineKopie für eine bestimmte Stunde geplant wurde, kopiert AWS Data Pipeline daher die Tabellenzeilen,

API-Version 2012-10-2928

Page 36: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

deren „Last Modified“-Zeitstempel innerhalb dieser Stunde liegt. Physische Löschvorgänge an der Tabellewerden nicht kopiert. Bei jeder geplanten Ausführung wird die Ausgabe in einen mit einem Zeitstempelversehenen Unterordner am Amazon S3-Speicherort geschrieben.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• CopyActivity (p. 171)• Ec2Resource (p. 230)• SqlDataNode (p. 166)• S3DataNode (p. 161)

Laden von S3-Daten in eine Amazon RDS MySQL-TabelleDie Vorlage Load S3 Data into RDS MySQL Table plant für eine Amazon EC2-Instance das Kopieren derCSV-Datei aus dem unten angegebenen Amazon S3-Dateipfad in eine Amazon RDS MySQL-Tabelle.Die CSV-Datei sollte über keine Kopfzeile verfügen. Die Vorlage aktualisiert vorhandene Einträge in derAmazon RDS MySQL-Tabelle durch diejenigen in den Amazon S3-Daten und fügt neue Einträge aus denAmazon S3-Daten zur Amazon RDS MySQL-Tabelle hinzu. Sie können die Daten in eine vorhandeneTabelle laden oder eine SQL-Abfrage zum Erstellen einer neuen Tabelle bereitstellen.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• CopyActivity (p. 171)• Ec2Resource (p. 230)• SqlDataNode (p. 166)• S3DataNode (p. 161)

Amazon RDS auf Amazon Redshift-VorlagenDie folgenden zwei Vorlagen kopieren Tabellen mithilfe eines Umwandlungsskripts von Amazon RDSMySQL auf Amazon Redshift. Dabei wird anhand des Schemas der Quelltabelle eine Amazon Redshift-Tabelle erstellt, wobei folgende Einschränkungen gelten:

• Wenn kein Verteilungsschlüssel angegeben wird, wird der erste Primärschlüssel aus der Amazon RDS-Tabelle als Verteilungsschlüssel festgelegt.

• Eine in der Amazon RDS MySQL-Tabelle vorhandene Spalte kann beim Kopieren auf Amazon Redshiftnicht ausgelassen werden.

• (Optional) Sie können als einen der Parameter in der Vorlage eine Zuordnung des Spaltendatentyps vonAmazon RDS MySQL auf Amazon Redshift angeben. Wenn eine solche Zuordnung festgelegt ist, wirdsie vom Skript beim Erstellen der Amazon Redshift-Tabelle berücksichtigt.

Wenn der Overwrite_Existing Amazon Redshift-Einfügemodus verwendet wird:

• Wenn kein Verteilungsschlüssel bereitgestellt wird, wird ein Primärschlüssel in der Amazon RDS MySQL-Tabelle verwendet.

• Wenn zusammengesetzte Primärschlüssel für die Tabelle vorhanden sind, wird der erste davon alsVerteilungsschlüssel verwendet, sofern kein Verteilungsschlüssel bereitgestellt wird. Nur der erstezusammengesetzte Schlüssel wird in der Amazon Redshift-Tabelle als Primärschlüssel festgelegt.

• Wenn kein Verteilungsschlüssel bereitgestellt wird und kein Primärschlüssel für die Amazon RDSMySQL-Tabelle vorhanden ist, schlägt der Kopiervorgang fehl.

Weitere Informationen zu Amazon Redshift finden Sie in den folgenden Themen:

API-Version 2012-10-2929

Page 37: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

• Amazon Redshift-Cluster• Amazon Redshift COPY• Verteilungsstile und DISTKEY-Beispiele• Sortierschlüssel

In der folgenden Tabelle wird beschrieben, wie das Skript die Datentypen umwandelt:

Datentyp-Umwandlungen zwischen MySQL und Amazon Redshift

MySQL-Datentyp Amazon Redshift-Datentyp Hinweise

TINYINT,

TINYINT (Größe)

SMALLINT MySQL: -128 bis 127. Diemaximale Anzahl von Ziffernkann in Klammern angegebenwerden.

Amazon Redshift: INT2. 2-Byte-Ganzzahl mit Vorzeichen

TINYINT UNSIGNED,

TINYINT (Größe) UNSIGNED

SMALLINT MySQL: 0 bis 255 UNSIGNED.Die maximale Anzahl von Ziffernkann in Klammern angegebenwerden.

Amazon Redshift: INT2. 2-Byte-Ganzzahl mit Vorzeichen

SMALLINT,

SMALLINT (Größe)

SMALLINT MySQL: -32768 bis 32767normal. Die maximale Anzahlvon Ziffern kann in Klammernangegeben werden.

Amazon Redshift: INT2. 2-Byte-Ganzzahl mit Vorzeichen

SMALLINT UNSIGNED,

SMALLINT(Größe) UNSIGNED,

INTEGER MySQL: 0 bis 65535UNSIGNED*. Die maximaleAnzahl von Ziffern kann inKlammern angegeben werden.

Amazon Redshift: INT4. 4-Byte-Ganzzahl mit Vorzeichen

MEDIUMINT,

MEDIUMINT (Größe)

INTEGER MySQL: 388608 bis 8388607.Die maximale Anzahl von Ziffernkann in Klammern angegebenwerden.

Amazon Redshift: INT4. 4-Byte-Ganzzahl mit Vorzeichen

MEDIUMINT UNSIGNED,

MEDIUMINT (Größe)

UNSIGNED

INTEGER MySQL: 0 bis 16777215. Diemaximale Anzahl von Ziffernkann in Klammern angegebenwerden.

Amazon Redshift: INT4. 4-Byte-Ganzzahl mit Vorzeichen

API-Version 2012-10-2930

Page 38: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

MySQL-Datentyp Amazon Redshift-Datentyp Hinweise

INT,

INT(Größe)

INTEGER MySQL: 147483648 bis2147483647

Amazon Redshift: INT4. 4-Byte-Ganzzahl mit Vorzeichen

INT UNSIGNED,

INT(Größe) UNSIGNED

BIGINT MySQL: 0 bis 4294967295

Amazon Redshift: INT8. 8-Byte-Ganzzahl mit Vorzeichen

BIGINT

BIGINT(Größe)

BIGINT Amazon Redshift: INT8. 8-Byte-Ganzzahl mit Vorzeichen

BIGINT UNSIGNED

BIGINT(Größe) UNSIGNED

VARCHAR(20*4) MySQL: 0 bis18446744073709551615

Amazon Redshift: Keine nativeEntsprechung, daher wird daschar-Array verwendet.

FLOAT

FLOAT(Größe,d)

FLOAT(Größe,d) UNSIGNED

REAL Die maximale Anzahl von Ziffernkann im Größenparameterangegeben werden. Diemaximale Anzahl vonZiffern rechts neben demDezimalzeichen wird im d-Parameter angegeben.

Amazon Redshift: FLOAT4

DOUBLE(Größe,d) DOUBLE PRECISION Die maximale Anzahl von Ziffernkann im Größenparameterangegeben werden. Diemaximale Anzahl vonZiffern rechts neben demDezimalzeichen wird im d-Parameter angegeben.

Amazon Redshift: FLOAT8

DECIMAL(Größe,d) DECIMAL(Größe,d) Als Zeichenfolge gespeichertesDOUBLE, ermöglicht ein festesDezimalzeichen. Die maximaleAnzahl von Ziffern kann imGrößenparameter angegebenwerden. Die maximale Anzahlvon Ziffern rechts neben demDezimalzeichen wird im d-Parameter angegeben.

Amazon Redshift: Keine nativeEntsprechung.

API-Version 2012-10-2931

Page 39: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

MySQL-Datentyp Amazon Redshift-Datentyp Hinweise

CHAR(Größe) VARCHAR(Größe*4) Enthält eine Zeichenfolge festerLänge, die aus Buchstaben,Ziffern und Sonderzeichenbestehen kann. Die festeGröße wird als Parameter inKlammern angegeben. Kann biszu 255 Zeichen speichern.

Rechts aufgefüllt mitLeerzeichen.

Amazon Redshift: CHAR-Datentyp unterstützt keinMehrbyte-Zeichen, daher wirdVARCHAR verwendet.

In Übereinstimmung mitRFC3629 sind maximal proZeichen 4 Byte zulässig, wodurchdie Zeichentabelle auf U+10FFFFeingeschränkt wird.

VARCHAR(Größe) VARCHAR(Größe*4) Kann bis zu 255 Zeichenspeichern.

VARCHAR unterstützt nicht diefolgenden ungültigen UTF-8-Codepunkte: 0xD800 – 0xDFFF,(Bytefolgen: ED A0 80 – ED BFBF), 0xFDD0 – 0xFDEF, 0xFFFEund 0xFFFF, (Bytefolgen: EF B790 – EF B7 AF, EF BF BE undEF BF BF)

TINYTEXT VARCHAR(255*4) Enthält eine Zeichenfolge miteiner maximalen Länge von255 Zeichen.

TEXT VARCHAR(max) Enthält eine Zeichenfolge miteiner maximalen Länge von65.535 Zeichen.

MEDIUMTEXT VARCHAR(max) 0 bis 16.777.215 Zeichen

LONGTEXT VARCHAR(max) 0 bis 4.294.967.295 Zeichen

BOOLEAN

BOOL

TINYINT(1)

BOOLEAN MySQL: Diese Typen sindSynonyme für TINYINT (1).Der Wert Null wird als „false“angesehen. Werte ungleich Nullwerden als „true“ angesehen.

BINARY[(M)] varchar(255) M ist 0 bis 255 Byte, FIXED

VARBINARY(M) VARCHAR(max) 0 bis 65.535 Byte

TINYBLOB VARCHAR(255) 0 bis 255 Byte

API-Version 2012-10-2932

Page 40: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

MySQL-Datentyp Amazon Redshift-Datentyp Hinweise

BLOB VARCHAR(max) 0 bis 65.535 Byte

MEDIUMBLOB VARCHAR(max) 0 bis 16.777.215 Byte

LONGBLOB VARCHAR(max) 0 bis 4.294.967.295 Byte

ENUM VARCHAR(255*2) Die Begrenzung gilt nichtfür die Länge der Literal-Aufzählungszeichenfolge,sondern vielmehr für die in derTabelle definierte Anzahl vonAufzählungswerten.

SET VARCHAR(255*2) Wie enum.

DATUM DATUM (JJJJ-MM-TT)

„1000-01-01“ bis „9999-12-31“

TIME VARCHAR(10*4) (hh:mm:ss)

„-838:59:59“ bis „838:59:59“

DATETIME TIMESTAMP (JJJJ-MM-TT hh:mm:ss)

„1000-01-01 00:00:00“ bis„9999-12-31 23:59:59“

TIMESTAMP TIMESTAMP (JJJJMMTThhmmss)

19700101000000 bis 2037+

YEAR VARCHAR(4*4) (YYYY)

1900 bis 2155

Spalte SERIAL ID-Generierung / Dieses Attributist für ein OLAP-Data Warehousenicht erforderlich, da diese Spaltekopiert wird.

Das Schlüsselwort SERIALwird bei der Umwandlung nichthinzugefügt.

SERIAL ist tatsächlich eineEntität namens SEQUENCE.Sie existiert unabhängig von derrestlichen Tabelle.

Spalte GENERATED BYDEFAULT

entspricht:

CREATE SEQUENCE Name;CREATE TABLE Tabelle ( SpalteINTEGER NOT NULL DEFAULTnextval(Name) );

API-Version 2012-10-2933

Page 41: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

MySQL-Datentyp Amazon Redshift-Datentyp Hinweise

Spalte BIGINT UNSIGNED NOTNULL AUTO_INCREMENTUNIQUE

ID-Generierung / Dieses Attributist für OLAP-Data Warehousenicht erforderlich, da diese Spaltekopiert wird.

Das Schlüsselwort SERIAL wirdbei der Umwandlung daher nichthinzugefügt.

SERIAL ist tatsächlich eineEntität namens SEQUENCE.Sie existiert unabhängig von derrestlichen Tabelle.

Spalte GENERATED BYDEFAULT

entspricht:

CREATE SEQUENCE Name;CREATE TABLE Tabelle ( SpalteINTEGER NOT NULL DEFAULTnextval(Name) );

ZEROFILL Das Schlüsselwort ZEROFILLwird bei der Umwandlung nichthinzugefügt.

INT UNSIGNED ZEROFILL NOTNULL

ZEROFILL füllt den angezeigtenWert des Feldes bis zurAnzeigenbreite in derSpaltendefinition mit Nullenauf. Werte, die länger als dieAnzeigenbreite sind, werdennicht abgeschnitten. BeachtenSie, dass die Syntax vonZEROFILL auch UNSIGNEDimpliziert.

Vollständige Kopie einer Amazon RDS MySQL-Tabelle aufAmazon RedshiftDie Vorlage Full copy of Amazon RDS MySQL table to Amazon Redshift kopiert die gesamte Amazon RDSMySQL-Tabelle in eine Amazon Redshift-Tabelle, indem Daten in einem Amazon S3-Ordner bereitgestelltwerden. Der Amazon S3-Staging-Ordner muss sich in derselben Region wie der Amazon Redshift-Cluster befinden. Es wird eine Amazon Redshift-Tabelle mit demselben Schema wie die Amazon RDSMySQL-Quelltabelle erstellt, sofern noch keine vorhanden ist. Bitte geben Sie alle Überschreibungen desSpaltendatentyps von Amazon RDS MySQL auf Amazon Redshift an, die während der Erstellung derAmazon Redshift-Tabelle übernommen werden sollen.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• CopyActivity (p. 171)• RedshiftCopyActivity (p. 210)• S3DataNode (p. 161)• SqlDataNode (p. 166)• RedshiftDataNode (p. 156)• RedshiftDatabase (p. 278)

API-Version 2012-10-2934

Page 42: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

Inkrementelle Kopie einer Amazon RDS MySQL-Tabelle aufAmazon RedshiftDie Vorlage Incremental copy of Amazon RDS MySQL table to Amazon Redshift kopiert Daten aus einerAmazon RDS MySQL-Tabelle in eine Amazon Redshift-Tabelle, indem Daten in einem Amazon S3-Ordnerbereitgestellt werden.

Der Amazon S3-Staging-Ordner muss sich in derselben Region wie der Amazon Redshift-Cluster befinden.

AWS Data Pipeline erstellt mithilfe eines Umwandlungsskripts eine Amazon Redshift-Tabelle mitdemselben Schema wie die Amazon RDS MySQL-Quelltabelle, sofern noch keine vorhanden ist. Siemüssen alle Überschreibungen des Spaltendatentyps von Amazon RDS MySQL auf Amazon Redshiftangeben, die während der Erstellung der Amazon Redshift-Tabelle übernommen werden sollen.

Diese Vorlage kopiert Änderungen, die ab dem geplanten Startzeitpunkt zwischen festgelegten Intervallenan der Amazon RDS MySQL-Tabelle vorgenommen werden. Physische Löschvorgänge an der AmazonRDS MySQL-Tabelle werden nicht kopiert. Sie müssen den Namen der Spalte angeben, in der derZeitpunkt der letzten Änderung gespeichert wird.

Wenn Sie die Standard-Vorlage zum Erstellen von Pipelines für inkrementelles Kopieren in Amazon RDSverwenden, wird eine Aktivität mit dem Standardnamen RDSToS3CopyActivity erstellt. Sie können sieumbenennen.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• CopyActivity (p. 171)• RedshiftCopyActivity (p. 210)• S3DataNode (p. 161)• SqlDataNode (p. 166)• RedshiftDataNode (p. 156)• RedshiftDatabase (p. 278)

Laden von Daten aus Amazon S3 in Amazon RedshiftDie Vorlage Load data from S3 into Redshift kopiert Daten aus einem Amazon S3-Ordner in eine AmazonRedshift-Tabelle. Sie können die Daten in eine vorhandene Tabelle laden oder eine SQL-Abfrage zumErstellen der Tabelle bereitstellen.

Die Daten werden basierend auf den Amazon Redshift COPY-Optionen kopiert. Die Amazon Redshift-Tabelle muss über dasselbe Schema wie die Daten in Amazon S3 verfügen. Weitere Informationen überdie COPY-Optionen finden Sie unter COPY im Amazon Redshift Datenbankentwicklerhandbuch.

Die Vorlage verwendet die folgenden Pipeline-Objekte:

• CopyActivity (p. 171)• RedshiftCopyActivity (p. 210)• S3DataNode (p. 161)• SqlDataNode (p. 166)• RedshiftDataNode (p. 156)• RedshiftDatabase (p. 278)• Ec2Resource (p. 230)

API-Version 2012-10-2935

Page 43: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

Erstellen einer Pipeline anhand parametrisierter VorlagenSie können eine Pipeline-Definition anhand einer parametrisierten Vorlage anpassen. Auf diese Weisekönnen Sie eine gemeinsame Pipeline-Definition erstellen, aber unterschiedliche Parameter konfigurieren,wenn Sie die Pipeline-Definition zu einer neuen Pipeline hinzufügen.

Inhalt• Hinzufügen von myVariables zur Pipeline-Definition (p. 36)• Definieren von Parameterobjekten (p. 37)• Definieren von Parameterwerten (p. 38)• Senden der Pipeline-Definition (p. 39)

Hinzufügen von myVariables zur Pipeline-Definition

Geben Sie beim Erstellen der Pipeline-Definitionsdatei mithilfe der folgenden Syntax Variablen an:#{myVariable}. Der Variablen muss my vorangestellt werden. So enthält beispielsweise die folgendePipeline, pipeline-definition.json, die folgenden Variablen: myShellCmd, myS3InputLoc undmyS3OutputLoc.

Note

In einer Pipeline-Definition sind maximal 50 Parameter zulässig.

{ "objects": [ { "id": "ShellCommandActivityObj", "input": { "ref": "S3InputLocation" }, "name": "ShellCommandActivityObj", "runsOn": { "ref": "EC2ResourceObj" }, "command": "#{myShellCmd}", "output": { "ref": "S3OutputLocation" }, "type": "ShellCommandActivity", "stage": "true" }, { "id": "Default", "scheduleType": "CRON", "failureAndRerunMode": "CASCADE", "schedule": { "ref": "Schedule_15mins" }, "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "S3InputLocation", "name": "S3InputLocation", "directoryPath": "#{myS3InputLoc}", "type": "S3DataNode" }, {

API-Version 2012-10-2936

Page 44: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

"id": "S3OutputLocation", "name": "S3OutputLocation", "directoryPath": "#{myS3OutputLoc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "type": "S3DataNode" }, { "id": "Schedule_15mins", "occurrences": "4", "name": "Every 15 minutes", "startAt": "FIRST_ACTIVATION_DATE_TIME", "type": "Schedule", "period": "15 Minutes" }, { "terminateAfter": "20 Minutes", "id": "EC2ResourceObj", "name": "EC2ResourceObj", "instanceType":"t1.micro", "type": "Ec2Resource" } ]}

Definieren von Parameterobjekten

Sie können eine separate Datei mit Parameterobjekten erstellen, um die Variablen in Ihrer Pipeline-Definition zu definieren. So enthält beispielsweise die folgende JSON-Datei, parameters.json,Parameterobjekte für die Variablen myShellCmd, myS3InputLoc und myS3OutputLoc der obigenPipeline-Beispielsdefinition.

{ "parameters": [ { "id": "myShellCmd", "description": "Shell command to run", "type": "String", "default": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt" }, { "id": "myS3InputLoc", "description": "S3 input location", "type": "AWS::S3::ObjectKey", "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data" }, { "id": "myS3OutputLoc", "description": "S3 output location", "type": "AWS::S3::ObjectKey" } ]}

Note

Sie können diese Objekte der Pipeline-Definitionsdatei anstatt über eine separate Datei auchdirekt hinzufügen.

Die folgende Tabelle beschreibt die Attribute für Parameterobjekte.

API-Version 2012-10-2937

Page 45: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen von Pipelines mithilfe von Konsolenvorlagen

Parameterattribute

Attribut Typ Beschreibung

id Zeichenfolge Der eindeutige Bezeichner desParameters. Wenn der Wertbei der Eingabe oder Anzeigemaskiert werden soll, fügen Sieals Präfix ein Sternchen ('*')hinzu. Beispiel: *myVariable—.Dabei ist zu beachten, dass derWert dadurch auch verschlüsseltwird, bevor er durch AWS DataPipeline gespeichert wird.

description Zeichenfolge Eine Beschreibung desParameters.

Typ Zeichenfolge, Ganzzahl, Doubleoder AWS:: S3:: ObjectKey

Der Parametertyp zurDefinition des zulässigenBereichs von Eingabewertenund Validierungsregeln.Der Standardwert ist eineZeichenfolge.

optional Boolesch Gibt an, ob der Parameteroptional oder erforderlich ist. DerStandardwert ist false.

allowedValues Liste von Zeichenfolgen Listet alle zulässigen Werte fürden Parameter auf.

default Zeichenfolge Der Standardwert für denParameter. Wenn Sie mithilfevon Parameterwerten einen Wertfür diesen Parameter angeben,wird der Standardwert durch ihnüberschrieben.

isArray Boolesch Gibt an, ob der Parameter einArray ist.

Definieren von Parameterwerten

Sie können eine separate Datei zur Definition von Variablen mithilfe von Parameterwerten erstellen.So enthält beispielsweise die folgende JSON-Datei, file://values.json, den Wert für die VariablemyS3OutputLoc der obigen Pipeline-Beispielsdefinition.

{ "values": { "myS3OutputLoc": "myOutputLocation" }}

API-Version 2012-10-2938

Page 46: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchManuelles Erstellen von Pipelines über die Konsole

Senden der Pipeline-Definition

Wenn Sie Ihre Pipeline-Definition senden, können Sie Parameter, Parameterobjekte und Parameterwerteangeben. Beispiel: Sie können den AWS CLI-Befehl put-pipeline-definition wie folgt verwenden:

$ aws datapipeline put-pipeline-definition --pipeline-id id --pipeline-definition file://pipeline-definition.json \ --parameter-objects file://parameters.json --parameter-values-uri file://values.json

Note

In einer Pipeline-Definition sind maximal 50 Parameter zulässig. Die Größe der Datei fürparameter-values-uri darf maximal 15 kB betragen.

Manuelles Erstellen von Pipelines über die KonsoleSie können eine Pipeline über die AWS Data Pipeline-Konsole erstellen, ohne Vorlagen zu Hilfe zunehmen. Im Pipeline-Beispiel wird mit AWS Data Pipeline eine CSV-Datei nach einem Zeitplan aus einemAmazon S3-Bucket in einen anderen kopiert.

Voraussetzungen

Ein Amazon S3-Bucket für Quelle und Ziel des Datei-Kopiervorgangs. Weitere Informationen finden Sieunter Erstellen eines Buckets im Amazon Simple Storage Service Handbuch Erste Schritte.

Aufgaben• Erstellen der Pipeline-Definition (p. 39)• Definieren von Aktivitäten (p. 40)• Konfigurieren des Zeitplans (p. 41)• Konfigurieren von Datenknoten (p. 41)• Konfigurieren von Ressourcen (p. 41)• Validieren und Speichern der Pipeline (p. 42)• Aktivieren der Pipeline (p. 42)

Erstellen der Pipeline-DefinitionFüllen Sie den anfänglichen Bildschirm der Pipeline-Erstellung aus, um die Pipeline-Definition zu erstellen.

So erstellen Sie Ihre Pipeline-Definition

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Klicken Sie auf Get started now (wenn dies Ihre erste Pipeline ist) oder auf Create new pipeline.3. Geben Sie im Feld Name einen Namen für die Pipeline ein (z. B. CopyMyS3Data).4. Geben Sie im Feld Description eine Beschreibung ein.5. Wählen Sie eine Source für die Pipeline-Definition aus. Sie können eine Vorlage verwenden, eine

vorhandene JSON-basierte Pipeline-Definition aus Ihrem lokalen Dateisystem oder einem Amazon S3-Bucket importieren oder eine Pipeline interaktiv auf der Architect-Seite erstellen.

Vorlagen bieten in AWS Data Pipeline häufig anzutreffende Szenarien. Sie können eine Vorlage durchEingabe der zugehörigen Parameterwerte nach Bedarf anpassen.

API-Version 2012-10-2939

Page 47: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchManuelles Erstellen von Pipelines über die Konsole

Note

Wenn Ihre bestehende Pipeline-Definition mehr als einen Zeitplan enthält, ist der Zeitplanauf der Seite Create Pipeline (Pipeline erstellen) nicht sichtbar. Sie können aber die SeiteArchitect (Architekt) aufrufen, um Ihre Zeitpläne einzusehen.

6. Wenn Sie unter Pipeline Configuration die Protokollierung aktivieren, wählen Sie in Amazon S3 einenBucket zum Speichern von Protokollen für diese Pipeline aus.

7. Übernehmen Sie in den Schedule-Feldern die Standardwerte.8. Übernehmen Sie für IAM roles die Einstellung Default.

Wenn Sie eigene erstellte IAM-Rollen verwenden möchten, klicken Sie alternativ auf Custom undwählen Sie sie aus den Listen Pipeline role und EC2 instance role aus.

9. Klicken Sie auf Create.

Definieren von AktivitätenHinzufügen von Activity-Objekten zur Ihrer Pipeline-Definition. Wenn Sie ein Activity-Objektdefinieren, müssen Sie auch die Objekte definieren, die AWS Data Pipeline zum Ausführen dieser Aktivitätbenötigt.

So definieren Sie Aktivitäten für Ihre Pipeline

1. Klicken Sie auf der Seite der Pipeline auf Add activity.2. Geben Sie im Bereich Activities unter Name einen Namen für die Aktivität ein (z. B. copy-myS3-

data).3. Wählen Sie unter Type die Option CopyActivity aus.4. Wählen Sie unter Schedule die Option Create new: Schedule aus.5. Wählen Sie unter Input die Option Create new: DataNode aus.6. Wählen Sie unter Output die Option Create new: DataNode aus.7. Wählen Sie unter Add an optional field die Option RunsOn aus.8. Wählen Sie unter Runs On die Option Create new: Resource aus.9. Trennen Sie die Symbole im linken Fensterbereich, indem Sie sie auseinander ziehen.

Dies ist eine grafische Darstellung der Pipeline. Die Pfeile zeigen die Verbindung zwischen denverschiedenen Objekten an. Ihre Pipeline sollte ähnlich wie die folgende Abbildung aussehen.

API-Version 2012-10-2940

Page 48: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchManuelles Erstellen von Pipelines über die Konsole

Konfigurieren des ZeitplansKonfigurieren Sie Ausführungsdatum und -uhrzeit für Ihre Pipeline. AWS Data Pipeline unterstützt Datums-und Uhrzeitangaben nur als UTC/GMT-Zeit im Format „YYYY-MM-DDTHH:MM:SS“.

So konfigurieren Sie Datum und Uhrzeit der Ausführung für Ihre Pipeline

1. Erweitern Sie auf der Pipeline-Seite im rechten Navigationsbereich den Bereich Schedules.2. Geben Sie den Namen eines Zeitplans für diese Aktivität ein (z. B. copy-myS3-data-schedule).3. Wählen Sie unter Start Date Time das Datum aus dem Kalender aus. Geben Sie dann die Uhrzeit ein,

zu der die Aktivität gestartet werden soll.4. Geben Sie unter Period die Dauer der Aktivität ein (z. B. 1) ein und wählen Sie dann die Kategorie des

Zeitraums aus (z. B. Days).5. (Optional) Um festzulegen, wann die Aktivität beendet werden soll, wählen Sie unter Add an optional

field die Option End Date Time aus und geben Sie Datum und Uhrzeit ein.

Damit Ihre Pipeline sofort gestartet wird, legen Sie für Start Date Time das Datum des Vortagesfest. AWS Data Pipeline startet dann die „überfälligen“ Ausführungen sofort, um den als Problemwahrgenommenen Rückstand an Aufgaben aufzuholen. So müssen Sie nicht eine Stunde warten, bisAWS Data Pipeline den ersten Cluster startet.

Konfigurieren von DatenknotenKonfigurieren Sie die Eingabe- und Ausgabedatenknoten für Ihre Pipeline.

So konfigurieren Sie die Eingabe- und Ausgabedatenknoten für Ihre Pipeline

1. Klicken Sie im rechten Navigationsbereich auf der Pipeline-Seite auf DataNodes.2. Geben Sie unter DefaultDataNode1 für Name einen Namen für den Amazon S3-Bucket ein, der als

Ihr Eingabeknoten verwendet werden soll (z. B. MyS3Input).3. Wählen Sie unter Type die Option S3DataNode aus.4. Wählen Sie unter Schedule die Option copy-myS3-data-schedule aus.5. Wählen Sie unter Add an optional field die Option File Path aus.6. Geben Sie unter File Path den Pfad zu Ihrem Amazon S3-Bucket ein (z. B s3://my-data-

pipeline-input/data).7. Geben Sie unter DefaultDataNode2 für Name einen Namen für den Amazon S3-Bucket ein, der als

Ihr Ausgabeknoten verwendet werden soll (z. B. MyS3Output).8. Wählen Sie unter Type die Option S3DataNode aus.9. Wählen Sie unter Schedule die Option copy-myS3-data-schedule aus.10. Wählen Sie unter Add an optional field die Option File Path aus.11. Geben Sie unter File Path den Pfad zu Ihrem Amazon S3-Bucket ein (z. B s3://my-data-

pipeline-output/data).

Konfigurieren von RessourcenKonfigurieren Sie die Ressource, die AWS Data Pipeline zum Ausführen der Kopieraktivität verwendenmuss, nämlich eine EC2-Instance.

So konfigurieren Sie eine EC2-Instance für Ihre Pipeline

1. Klicken Sie auf der Pipeline-Seite im rechten Navigationsbereich auf Resources.

API-Version 2012-10-2941

Page 49: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchManuelles Erstellen von Pipelines über die Konsole

2. Geben Sie für Name einen Namen für Ihre Ressource ein (z. B. CopyDataInstance).3. Wählen Sie unter Type die Option Ec2Resource aus.4. [EC2-VPC] Wählen Sie unter Add an optional field die Option Subnet Id aus.5. [EC2-VPC] Geben Sie im Feld Subnet Id die ID des Subnetzes ein.6. Wählen Sie unter Schedule die Option copy-myS3-data-schedule aus.7. Übernehmen Sie für Role und Resource Role deren Standardwerte.

Wenn Sie eigene erstellte IAM-Rollen verwenden möchten, klicken Sie alternativ auf Custom undwählen Sie sie aus den Listen Pipeline role und EC2 instance role aus.

Validieren und Speichern der PipelineSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlendenWerten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Aktivieren der PipelineAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

API-Version 2012-10-2942

Page 50: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAnzeigen Ihrer Pipelines

Anzeigen Ihrer PipelinesSie können Ihre Pipelines über die Konsole oder die Befehlszeilenschnittstelle (CLI) anzeigen.

So zeigen Sie Ihre Pipelines über die Konsole an

1. Öffnen Sie die AWS Data Pipeline-Konsole. Sofern Sie Pipelines in dieser Region erstellt haben, zeigtdie Konsole sie in einer Liste an. Andernfalls sehen Sie eine Willkommensseite.

2. Um Informationen zu einer Pipeline anzuzeigen, klicken Sie auf den Pfeil. Die Konsole zeigtInformationen zu Zeitplan, Aktivitäten und Tags für die Pipeline an. Weitere Informationen zum Zustandfinden Sie unter Interpretieren des Pipeline- und Komponenten-Zustands (p. 45).

So zeigen Sie Ihre Pipelines über die AWS CLI an

• Verwenden Sie den folgenden list-pipelines-Befehl, um Ihre Pipelines aufzulisten:

aws datapipeline list-pipelines

Interpretieren der Pipeline-StatuscodesDie in der AWS Data Pipeline-Konsole und Befehlszeilenschnittstelle (CLI) angezeigten Statuswerte gebenden Zustand einer Pipeline und ihrer Komponenten an. Der Pipeline-Status ist vereinfacht ausgedrücktein Überblick über eine Pipeline. Wenn Sie weitere Informationen benötigen, zeigen Sie den Status dereinzelnen Pipeline-Komponenten an.

Der Status einer Pipeline lautet SCHEDULED, wenn sie bereit ist (die Pipeline-Definition hat die Validierungbestanden), aktuell Arbeiten ausführt oder die Ausführung von Arbeiten beendet hat. Der Status einer

API-Version 2012-10-2943

Page 51: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchInterpretieren der Pipeline-Statuscodes

Pipeline lautet PENDING, wenn sie nicht aktiviert ist oder keine Arbeiten ausführen kann (z. B. hat diePipeline-Definition die Validierung nicht bestanden).

Eine Pipeline gilt als inaktiv, wenn ihr Status PENDING, INACTIVEoder FINISHED lautet. Für inaktivePipelines fallen Gebühren an (weitere Informationen finden Sie unter – Preise).

Statuscodes

ACTIVATING

Die Komponente oder Ressource wird gestartet, z. B. eine EC2-Instance.CANCELED

Die Komponente wurde von einem Benutzer oder AWS Data Pipeline storniert, bevor sie ausgeführtwerden konnte. Dies kann automatisch stattfinden, wenn ein Fehler in einer anderen Komponente oderRessource auftritt, von der dies Komponente abhängig ist.

CASCADE_FAILED

Die Komponente oder Ressource wurde aufgrund eines kaskadierenden Fehlers durch eine derAbhängigkeiten storniert, aber möglicherweise war die Komponente nicht die eigentliche Ursache fürden Fehler.

DEACTIVATING

Die Pipeline wird deaktiviert.FAILED

Für die Komponente oder Ressource ist ein Fehler aufgetreten, und sie funktioniert nicht mehr.Wenn eine Komponente oder Ressource einen Fehler verursacht, kann sie Stornierungen und Fehlerverursachen, die sich in andere, von ihr abhängige Komponenten fortpflanzen.

FINISHED

Die Komponente hat die ihr zugewiesene Aufgabe fertiggestellt.INACTIVE

Die Pipeline wurde deaktiviert.PAUSED

Die Komponente wurde unterbrochen und führt aktuell ihre Arbeit nicht aus.PENDING

Die Pipeline ist bereit für die erste Aktivierung.RUNNING

Die Ressource wird ausgeführt und bereit, Arbeit entgegenzunehmen.SCHEDULED

Die Ressourcenausführung ist geplant.SHUTTING_DOWN

Die Ressource wird geschlossen, nachdem sie ihre Arbeit erfolgreich fertiggestellt hat.SKIPPED

Die Komponente hat Ausführungsintervalle nach der Aktivierung der Pipeline übersprungen, indem sieeinen Zeitstempel verwendet hat, der nach dem aktuellen Zeitplan liegt.

TIMEDOUT

Die Ressource hat den Schwellenwert terminateAfter überschritten und wurde von AWS DataPipeline angehalten. Nachdem die Ressource diesen Status erreicht hat, ignoriert AWS Data Pipeline

API-Version 2012-10-2944

Page 52: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchInterpretieren des Pipeline- und Komponenten-Zustands

die Werte actionOnResourceFailure, retryDelay und retryTimeout für diese Ressource.Dieser Status gilt nur für Ressourcen.

VALIDATING

Die Pipeline-Definition wird von AWS Data Pipeline validiert.WAITING_FOR_RUNNER

Die Komponente wartet auf ihren Worker-Client, um einen Auftrag zu erhalten. Die Beziehungzwischen Komponente und Worker-Client wird durch die Felder runsOn oder workerGroupkontrolliert, die von dieser Komponente definiert sind.

WAITING_ON_DEPENDENCIES

Die Komponente überprüft, ob ihre standardmäßigen und benutzerdefinierten Vorbedingungen erfülltsind, bevor sie ihre Arbeit ausführt.

Interpretieren des Pipeline- und Komponenten-ZustandsJede Pipeline und Komponente innerhalb der betreffenden Pipeline geben als Zustand HEALTHY, ERROR,"-", No Completed Executions oder No Health Information Available zurück. Für einePipeline wird erst dann ein Zustand angegeben, nachdem eine Pipeline-Komponente erstmals ausgeführtwurde oder wenn die Vorbedingungen einer Komponente fehlgeschlagen sind. Der Zustand einzelnerKomponenten wird im Pipeline-Zustand aggregiert. Der Fehlerstatus ist erst sichtbar, wenn Sie IhrePipeline-Ausführungsdetails anzeigen.

Pipeline-Zustände

HEALTHY

Der aggregierte Zustand aller Komponenten ist HEALTHY. Dies bedeutet, dass mindestens eineKomponente erfolgreich abgeschlossen worden sein muss. Sie können auf den Status HEALTHYklicken, um die neueste erfolgreich abgeschlossene Pipeline-Komponenten-Instance auf der SeiteExecution Details zu sehen.

ERROR

Mindestens eine Komponente in der Pipeline verfügt über den Zustand ERROR. Sie können auf denStatus ERROR klicken, um die neueste fehlgeschlagene Pipeline-Komponenten-Instance auf der SeiteExecution Details zu sehen.

No Completed Executions oder No Health Information Available.

Für diese Pipeline wurde kein Zustand gemeldet.

Note

Während Komponenten ihren Zustand beinahe sofort aktualisieren, kann es bis zu fünf Minutendauern, bis der Pipeline-Zustand aktualisiert wird.

Komponenten-Zustand

HEALTHY

Der Zustand einer Komponente (Activity oder DataNode) ist HEALTHY, wenn sie nach einererfolgreichen Ausführung mit dem Status FINISHED oder MARK_FINISHED markiert wurde. Siekönnen auf den Namen der Komponente oder auf den Status HEALTHY klicken, um auf der Seite

API-Version 2012-10-2945

Page 53: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAnzeigen Ihrer Pipeline-Definitionen

Execution Details die neuesten erfolgreich abgeschlossenen Pipeline-Komponenten-Instancesanzuzeigen.

ERROR

Es ist ein Fehler auf Komponentenebene aufgetreten oder eine ihrer Vorbedingungen istfehlgeschlagen. Dieser Fehler wird durch einen Status von FAILED, TIMEOUT oder CANCELEDausgelöst. Sie können auf den Namen der Komponente oder auf den Status ERROR klicken, um auf derSeite Execution Details die neueste fehlgeschlagene Pipeline-Komponenten-Instance anzuzeigen.

No Completed Executions oder No Health Information Available

Für diese Komponente wurde kein Zustand gemeldet.

Anzeigen Ihrer Pipeline-DefinitionenVerwenden Sie die AWS Data Pipeline-Konsole oder die Befehlszeilenschnittstelle (CLI), um Ihre Pipeline-Definition anzuzeigen. Die Konsole zeigt eine grafische Darstellung, während die CLI eine Pipeline-Definitionsdatei im JSON-Format ausgibt. Weitere Informationen zur Syntax und Nutzung von Pipeline-Definitionsdateien finden Sie unter Syntax der Pipeline-Definitionsdatei (p. 65).

So zeigen Sie eine Pipeline-Definition über die Konsole an

1. Klicken Sie auf der Seite List Pipelines auf die Pipeline ID der gewünschten Pipeline, um die SeiteArchitect für die Pipeline anzuzeigen.

2. Klicken Sie auf der Seite Architect der Pipeline auf die Objektsymbole im Design-Bereich, um denentsprechenden Bereich im rechten Navigationsbereich zu erweitern.

Erweitern Sie alternativ einen der Bereiche im rechten Navigationsbereich, um seine Objekte undzugehörigen Felder anzuzeigen.

3. Wenn das Diagramm Ihrer Pipeline-Definition nicht in den Designbereich passt, können Sie dieZeichenfläche mit den Schaltflächen zum Schwenken rechts neben dem Designbereich hin- undherschieben.

4. Durch Klicken auf Export können Sie auch den gesamten Text der Pipeline-Definition anzeigen. Eserscheint ein Dialogfeld mit der JSON-Pipeline-Definition.

Wenn Sie die CLI verwenden, empfiehlt es sich, die Pipeline-Definition zuerst abzurufen, bevor SieÄnderungen senden, da die Möglichkeit besteht, dass ein anderer Benutzer oder Prozess Änderungen ander Pipeline-Definition vorgenommen hat, seit Sie zuletzt an ihr gearbeitet haben. Durch Herunterladeneiner Kopie der aktuellen Definition, auf der Sie Ihre Änderungen basieren, können Sie sicher sein, dassSie an der neuesten Pipeline-Definition arbeiten. Auch wird empfohlen, die Pipeline-Definition nach denvorgenommenen Änderungen erneut abzurufen, um sicherzugehen, dass die Aktualisierung erfolgreichwar.

Wenn Sie die CLI verwenden, können Sie zwei verschiedene Versionen der Pipeline erhalten. DieVersion active ist die Pipeline, die gerade ausgeführt wird. Die Version latest ist eine Kopie, die beimBearbeiten einer gerade ausgeführten Pipeline erstellt wird. Wenn Sie die bearbeitete Pipeline hochladen,ist sie nun die Version active und die vorherige Version active ist nicht mehr verfügbar.

So rufen Sie eine Pipeline-Definition über die AWS CLI ab

API-Version 2012-10-2946

Page 54: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAnzeigen von Pipeline-Instance Details

Zum Abrufen der vollständigen Pipeline-Definition verwenden Sie den Befehl get-pipeline-definition. DiePipeline-Definition wird zur Standardausgabe (stdout) ausgegeben.

Das folgende Beispiel ruft die Pipeline-Definition für die angegebene Pipeline ab.

aws datapipeline get-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE

Zum Abrufen einer bestimmten Version einer Pipeline verwenden Sie die Option --version. Das folgendeBeispiel ruft die Version active der angegebenen Pipeline ab.

aws datapipeline get-pipeline-definition --version active --id df-00627471SOVYZEXAMPLE

Anzeigen von Pipeline-Instance DetailsSie können den Fortschritt Ihrer Pipeline überwachen. Weitere Informationen zum Instance-Status findenSie unter Interpretieren der Pipeline-Statusdetails (p. 313). Weitere Informationen zur Fehlerbehebungbei fehlgeschlagenen oder unvollständigen Instance-Ausführungen Ihrer Pipeline finden Sie unter Behebentypischer Probleme (p. 315).

So überwachen Sie den Fortschritt einer Pipeline über die Konsole

1. Klicken Sie auf der Seite List Pipelines in der Spalte Pipeline ID auf den Pfeil für Ihre Pipeline unddanach auf View execution details.

2. Auf der Seite Execution details werden Name, Typ, Status und Zeitplaninformationen einer jedenKomponente aufgelistet.

Sie können dann auf den Pfeil eines jeden Komponentennamens klicken, umAbhängigkeitsinformationen für die betreffende Komponente anzuzeigen.

In der Inline-Übersicht können Sie Details zur Instance einsehen, eine Aktivität erneut ausführen, sieals FINISHED markieren oder sich über die Kette der Abhängigkeiten informieren.

Note

Wenn keine Ausführungen aufgeführt werden, überprüfen Sie, für wann Ihre Pipeline geplantwurde. Ändern Sie entweder End (in UTC) auf ein späteres Datum oder Start (in UTC) auf einfrüheres Datum. Klicken Sie dann auf Update.

API-Version 2012-10-2947

Page 55: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAnzeigen von Pipeline-Protokollen

3. Wenn die Spalte Status für alle Komponenten in Ihrer Pipeline FINISHED anzeigt, hat Ihre Pipeline dieAktivität erfolgreich durchgeführt. Sie sollten unter dem Konto, das Sie für den Empfang von AmazonSNS-Benachrichtigungen angegeben haben, eine E-Mail zum erfolgreichen Abschluss dieser Aufgabeerhalten.

Sie können auch den Inhalt Ihres Ausgabedatenknotens überprüfen.4. Wenn in der Spalte Status einer Komponente nicht FINISHED angegeben wird, wartet Ihre

Pipeline wegen einer Abhängigkeit oder ist fehlgeschlagen. Führen Sie zur Fehlerbehebung beifehlgeschlagenen oder unvollständigen Instance-Ausführungen die folgenden Schritte durch.

5. Klicken Sie auf das Dreieck neben einer Komponente oder Aktivität.

Wenn der Status einer Instance FAILED lautet, ist im Feld Attempts unter dem neuesten Versucheine Error Message mit dem Grund des Fehlers zu sehen. Beispiel, Status Code: 403, AWSService: Amazon S3, AWS Request ID: 1A3456789ABCD, AWS Error Code: null, AWSError Message: Forbidden. Sie können auch in der Spalte Details auf More... klicken, um dieInstance-Details für diesen Versuch anzuzeigen.

6. Wenn Sie eine Aktion für Ihre unvollständige oder fehlgeschlagene Komponente ausführen möchten,wählen Sie eine Aktionsschaltfläche (Rerun, Mark Finished oder Cancel).

So überwachen Sie den Fortschritt einer Pipeline über die AWS CLI

Um Pipeline-Instance-Details abzurufen, wie z. B. wie oft eine Pipeline ausgeführt wurde, verwenden Sieden Befehl list-runs. Mit diesem Befehl können Sie die Liste der zurückgegebenen Ausführungen nachihrem aktuellem Status oder dem Datumsbereich filtern, in dem sie gestartet wurden. Das Filtern derErgebnisse ist hilfreich, da der Ausführungsverlauf je nach Alter und Zeitplanung der Pipeline groß seinkann.

Das folgende Beispiel ruft Informationen zu allen Ausführungen ab.

aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE

Das folgende Beispiel ruft Informationen zu allen abgeschlossenen Ausführungen ab.

aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE --status finished

Das folgende Beispiel ruft Informationen zu allen in einem bestimmten Zeitrahmen gestartetenAusführungen ab.

aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE --start-interval "2013-09-02","2013-09-11"

Anzeigen von Pipeline-ProtokollenDie Protokollierung auf Pipeline-Ebene kann beim Erstellen der Pipeline eingerichtet werden, indemSie entweder über die Konsole oder mit einem pipelineLogUri im Standardobjekt im SDK/in der CLIeinen Amazon S3-Speicherort angeben. Die Verzeichnisstruktur für jede Pipeline in diesem URI wirdnachstehend beschrieben:

pipelineId -componentName -instanceId -attemptId

API-Version 2012-10-2948

Page 56: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBearbeiten Ihrer Pipeline

Für die Pipeline df-00123456ABC7DEF8HIJK sieht die Verzeichnisstruktur folgendermaßen aus:

df-00123456ABC7DEF8HIJK -ActivityId_fXNzc -@ActivityId_fXNzc_2014-05-01T00:00:00 -@ActivityId_fXNzc_2014-05-01T00:00:00_Attempt=1

Für ShellCommandActivity werden Protokolle für stderr und stdout, die diesen Aktivitätenzugeordnet sind, bei jedem Versuch im Verzeichnis gespeichert.

Für Ressourcen wie EmrCluster mit festgelegtem emrLogUri hat dieser Wert Vorrang. Andernfallsfolgen die Ressourcen (einschließlich TaskRunner-Protokolle für solche Ressourcen) der obigen Pipeline-Protokollierungsstruktur. Sie können diese Protokolle für jede Komponente auf der Seite Execution Detailsfür Ihre Pipeline einsehen, indem Sie die Details einer Komponente anzeigen und auf den Link für dieProtokolle klicken:

Sie können auch Protokolle für jeden Versuch einsehen. Um beispielsweise Protokolle für eineHadoopActivity anzuzeigen, können Sie auf die Pipeline-Registerkarte Attempts für Ihre Aktivitätklicken. Hadoop-Protokolle sind die durch Hadoop-Aufträge erstellten Protokolle.

Bearbeiten Ihrer PipelineWenn Sie bestimmte Aspekte einer Ihrer Pipelines ändern müssen, können Sie die Definition der Pipelineentsprechend aktualisieren. Wenn Änderungen an einer derzeit ausgeführten Pipeline vorgenommenwurden, müssen Sie die Pipeline erneut aktivieren, damit die Änderungen wirksam werden. Zudem ist esmöglich, eine oder mehrere Pipeline-Komponenten erneut auszuführen.

Inhalt• Einschränkungen (p. 50)• Bearbeiten einer Pipeline über die Konsole (p. 50)• Bearbeiten einer Pipeline über die AWS CLI (p. 51)

API-Version 2012-10-2949

Page 57: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEinschränkungen

EinschränkungenWenn sich die Pipeline im PENDING-Status befindet und nicht aktiviert ist, können Sie beliebigeÄnderungen an ihr vornehmen. Nachdem eine Pipeline aktiviert wurde, gelten beim Bearbeiten derPipeline die folgenden Einschränkungen. Die von Ihnen vorgenommenen Änderungen werden für neueAusführungen der Pipeline-Objekte übernommen, nachdem Sie sie speichern und die Pipeline dann erneutaktivieren.

• Ein Objekt kann nicht entfernt werden• Der Planungszeitraum eines vorhandenen Objekts kann nicht geändert werden• Referenzfelder in einem vorhandenen Objekt können nicht hinzugefügt, gelöscht oder abgeändert

werden• In dem Ausgabefeld eines neuen Objekts kann nicht auf ein vorhandenes Objekt verwiesen werden• Das geplante Anfangsdatum eines Objekts kann nicht geändert werden (aktivieren Sie stattdessen die

Pipeline mit bestimmten Angaben für Datum und Uhrzeit)

Bearbeiten einer Pipeline über die KonsoleSie können eine Pipeline über die AWS Management Console bearbeiten.

So bearbeiten Sie eine Pipeline über die Konsole

1. Überprüfen Sie auf der Seite List Pipelines die Spalten Pipeline ID und Name für Ihre Pipeline undklicken Sie auf die Pipeline-ID.

2. So verfahren Sie zum Abschließen oder Ändern Ihrer Pipeline-Definition:

a. Klicken Sie auf der Pipeline-Seite (Architect) auf die Objektbereiche im rechten Navigationsbereichund schließen Sie die Definition der Objekte und Felder Ihrer Pipeline-Definition ab. Wenn Sieeine aktive Pipeline abändern, sind einige Felder ausgegraut und können nicht geändert werden.Je nach den Änderungen, die Sie vornehmen möchten, ist es möglicherweise einfacher, diePipeline zu klonen und die Kopie zu bearbeiten. Weitere Informationen finden Sie unter KlonenIhrer Pipeline (p. 51).

b. Klicken Sie auf Save pipeline. Falls Validierungsfehler auftreten, beheben Sie sie und speichernSie die Pipeline erneut.

3. Nachdem Sie Ihre Pipeline ohne Validierungsfehler gespeichert haben, klicken Sie auf Activate.4. Überprüfen Sie auf der Seite List Pipelines, ob Ihre neu erstellte Pipeline aufgelistet wird und in der

Spalte Schedule State der Wert SCHEDULED zu sehen ist.5. Nach der Bearbeitung einer aktiven Pipeline beschließen Sie möglicherweise, eine oder mehrere

Pipeline-Komponenten erneut auszuführen.

Klicken Sie auf der Seite List Pipelines in der Details-Dropdown-Liste Ihrer Pipeline auf View executiondetails.

a. Wählen Sie auf der Seite Execution details eine Pipeline-Komponente aus der Dropdown-Listeaus, um die Details für eine Komponente anzuzeigen.

b. Klicken Sie auf Rerun.c. Klicken Sie an der Eingabeaufforderung zur Bestätigung auf Continue.

Die geänderte Pipeline-Komponente und alle Abhängigkeiten ändern ihren Status Für Ressourcenändert sich z. B. der Status in CREATING und für Aktivitäten in WAITING_FOR_RUNNER.

API-Version 2012-10-2950

Page 58: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBearbeiten einer Pipeline über die AWS CLI

Bearbeiten einer Pipeline über die AWS CLISie können eine Pipeline mit Befehlszeilen-Tools bearbeiten.

Laden Sie zuerst mit dem Befehl get-pipeline-definition eine Kopie der aktuellen Pipeline-Definitionherunter. Auf diese Weise können Sie sicher sein, dass Sie die neuesten Pipeline-Definition abändern. Indem folgenden Beispiel wird die Pipeline-Definition zur Standardausgabe (stdout) ausgegeben.

aws datapipeline get-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE

Speichern Sie die Pipeline-Definition in einer Datei und bearbeiten Sie sie nach Bedarf. AktualisierenSie die Pipeline-Definition mit dem Befehl put-pipeline-definition. Im folgenden Beispiel wird die Pipeline-Definitionsdatei hochgeladen.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Sie können die Pipeline-Definition mit dem Befehl get-pipeline-definition erneut abrufen, umsicherzustellen, dass die Aktualisierung erfolgreich war. Verwenden Sie zum Aktivieren der Pipeline denfolgenden activate-pipeline-Befehl:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Wenn Sie möchten, können Sie die Pipeline ab einem bestimmten Datum und einer bestimmten Uhrzeitaktivieren. Verwenden Sie hierzu folgendermaßen die Option --start-timestamp:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --start-timestamp YYYY-MM-DDTHH:MM:SSZ

Mit dem Befehl set-status können Sie eine oder mehrere Pipeline-Komponenten erneut ausführen.

Klonen Ihrer PipelineKlonen erstellt eine Kopie einer Pipeline und ermöglicht Ihnen einen Namen für die neue Pipelineanzugeben. Pipelines können in jedem Zustand geklont werden, sogar mit Fehlern. Die neue Pipelineverbleibt jedoch im Zustand PENDING, bis Sie sie manuell aktivieren. Der Clone-Vorgang verwendet für dieneue Pipeline die neueste Version der ursprünglichen Pipeline-Definition und nicht die aktive Version. Beidem Klonvorgang wird nicht der vollständige Zeitplan aus der ursprünglichen Pipeline in die neue Pipelinekopiert, sondern nur der festgelegte Zeitraum.

Note

Pipelines können nicht über die Befehlszeilenschnittstelle (CLI) geklont werden.

So klonen Sie eine Pipeline über die Konsole

1. Wählen Sie auf der Seite List Pipelines die zu klonende Pipeline aus.2. Klicken Sie auf Actions und danach auf Clone.3. Geben Sie im Dialogfeld Clone a Pipeline einen Namen für die neue Pipeline ein, und klicken Sie auf

Clone.4. Geben Sie im Bereich Schedule einen Zeitplan für die neue Pipeline an.5. Um die neue Pipeline zu aktivieren, klicken Sie auf Actionsund danach auf Activate.

API-Version 2012-10-2951

Page 59: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTagging Ihrer Pipeline

Tagging Ihrer PipelineTags sind Schlüssel/Wert-Paare mit Unterscheidung nach Groß-/Kleinschreibung, die aus einem Schlüsselund einem optionalen Wert bestehen, die beide vom Benutzer definiert wurden. Sie können auf jedePipeline bis zu 10 Tags anwenden. Tag-Schlüssel müssen für jede Pipeline eindeutig sein. Wenn Sie einTag mit einem Schlüssel hinzufügen, der der Pipeline bereits zugeordnet ist, ändert sich der Wert diesesTags.

Wenn Sie ein Tag auf eine Pipeline anwenden, werden die Tags auch auf die zugrunde liegendenRessourcen (wie z. B. Amazon EMR-Cluster und Amazon EC2-Instances) übertragen. Diese Tagswerden allerdings nicht auf Ressourcen im Zustand FINISHED oder in einem anderen beendeten Zustandübertragen. Sie können mit der CLI bei Bedarf Tags auf diese Ressourcen anwenden.

Wenn Sie ein Tag nicht mehr benötigen, können Sie es von Ihrer Pipeline entfernen.

So versehen Sie Ihre Pipeline mit Tags über die Konsole

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Klicken Sie auf der Seite List Pipelines in der Spalte Pipeline ID auf den Erweiterungspfeil neben Ihrer

Pipeline und danach unter Tags auf View all/Edit.3. Führen Sie im Dialogfeld View all / Edit die folgenden Schritte aus:

a. Geben Sie einen Schlüssel und einen Wert für jeden Tag an, den Sie hinzufügen möchten.b. Klicken Sie auf das Löschen-Symbol aller der Tags, die Sie entfernen möchten.c. Klicken Sie auf Speichern.

So versehen Sie Ihre Pipeline mit Tags über die AWS CLI

Um Tags zu einer neuen Pipeline hinzuzufügen, fügen Sie dem Befehl create-pipeline die Option --tagshinzu. Die folgende Option erstellt z. B. eine Pipeline mit zwei Tags, einem environment-Tag mit demWert production und einem owner-Tag mit dem Wert sales.

--tags key=environment,value=production key=owner,value=sales

Um Tags zu einer vorhandenen Pipeline hinzuzufügen, verwenden Sie den Befehl add-tagsfolgendermaßen:

aws datapipeline add-tags --pipeline-id df-00627471SOVYZEXAMPLE --tags key=environment,value=production key=owner,value=sales

Um Tags von einer vorhandenen Pipeline zu entfernen, verwenden Sie den Befehl remove-tagsfolgendermaßen:

aws datapipeline remove-tags --pipeline-id df-00627471SOVYZEXAMPLE --tag-keys environment owner

Deaktivieren Ihrer PipelineWenn eine gerade ausgeführte Pipeline deaktiviert wird, wird die Ausführung der Pipeline angehalten. Umdie Ausführung der Pipeline fortzusetzen, können Sie die Pipeline aktivieren. Dies ermöglicht Ihnen, diefolgenden Änderungen vorzunehmen. Wenn Sie beispielsweise Daten in eine Datenbank schreiben, für dieeine Wartung geplant ist, können Sie die Pipeline deaktivieren, und warten, bis die Wartung abgeschlossenist, und die Pipeline dann aktivieren.

API-Version 2012-10-2952

Page 60: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDeaktivieren Ihrer Pipeline über die Konsole

Beim Deaktivieren der Pipeline können Sie den Umgang mit laufenden Aktivitäten festlegen.Standardmäßig werden diese Aktivitäten sofort abgebrochen. Alternativ können Sie AWS Data Pipelineveranlassen, mit dem Deaktivieren der Pipeline zu warten, bis die Aktivitäten abgeschlossen wurden.

Beim Aktivieren einer deaktivierten Pipeline können Sie festlegen, wann sie fortgesetzt wird. Beispielsweisekönnen Sie sie über die AWS Management Console nach der letzten abgeschlossenen Ausführung, abder aktuellen Uhrzeit oder ab dem angegebenen Datum und der angegebenen Uhrzeit fortsetzen. Über dieAWS CLI oder die API wird die Pipeline standardmäßig ab der letzten Ausführung fortgesetzt. Sie könnenauch angeben, an welchem Datum und um welche Uhrzeit die Pipeline fortgesetzt werden soll.

Inhalt• Deaktivieren Ihrer Pipeline über die Konsole (p. 53)• Deaktivieren Ihrer Pipeline über die AWS CLI (p. 53)

Deaktivieren Ihrer Pipeline über die KonsoleFühren Sie die folgenden Schritte aus, um eine laufende Pipeline zu deaktivieren.

So deaktivieren Sie eine Pipeline

1. Wählen Sie auf der Seite List Pipelines die zu deaktivierende Pipeline aus.2. Klicken Sie auf Actions und danach auf Deactivate.3. Wählen Sie im Dialogfeld Deactivate a Pipeline eine Option aus und klicken Sie auf Deactivate.4. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Deactivate.

Wenn Sie bereit sind, die Ausführungen der Pipeline fortzusetzen, aktivieren Sie die deaktivierte Pipelinemit dem folgenden Verfahren.

So aktivieren Sie eine Pipeline

1. Wählen Sie auf der Seite List Pipelines die zu aktivierende Pipeline aus.2. Klicken Sie auf Actions und danach auf Activate.3. Wählen Sie im Dialogfeld Activate a Pipeline eine Option aus und klicken Sie auf Activate.

Deaktivieren Ihrer Pipeline über die AWS CLIVerwenden Sie den folgenden deactivate-pipeline-Befehl zum Deaktivieren einer Pipeline:

aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Um die Pipeline erst nach der Ausführung aller Aktivitäten zu deaktivieren, fügen Sie die Option --no-cancel-active wie folgt hinzu:

aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --no-cancel-active

Wenn Sie bereit sind, können Sie die Ausführung der Pipeline mit dem folgenden activate-pipeline-Befehlan der Stelle fortsetzen, an der sie unterbrochen wurde:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

API-Version 2012-10-2953

Page 61: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchLöschen Ihrer Pipeline

Um die Pipeline ab einem bestimmten Datum und einer bestimmten Uhrzeit zu starten, fügen Sie dieOption --start-timestamp wie folgt hinzu:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --start-timestamp YYYY-MM-DDTHH:MM:SSZ

Löschen Ihrer PipelineWenn Sie eine Pipeline nicht mehr benötigen, z. B. eine Pipeline, die beim Testen der Anwendung erstelltwurde, sollten Sie sie löschen, damit sie nicht mehr aktiv genutzt wird. Beim Löschen wird eine Pipeline inden gelöschten Zustand versetzt. Im gelöschten Zustand besitzen Pipelines keine Pipeline-Definition undkeinen Ausführungsverlauf mehr. Für solche Pipeline können daher keine Vorgänge mehr durchgeführtwerden, einschließlich deren Beschreibung.

Important

Gelöschte Pipelines können nicht wiederhergestellt werden. Stellen Sie daher sicher, dass Sie diePipeline zukünftig nicht mehr benötigen, bevor Sie sie löschen.

So löschen Sie eine Pipeline über die Konsole

1. Wählen Sie auf der Seite List Pipelines die betreffende Pipeline aus.2. Klicken Sie auf Actions und danach auf Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Delete.

So löschen Sie eine Pipeline über die AWS CLI

Verwenden Sie zum Löschen einer Pipeline den Befehl delete-pipeline. Der folgende Befehl löscht dieangegebene Pipeline.

aws datapipeline delete-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Staging von Daten und Tabellen mit Pipeline-Aktivitäten

AWS Data Pipeline kann Eingabe- und Ausgabedaten in Ihren Pipelines bereitstellen, so dass bestimmteAktivitäten, wie z. B ShellCommandActivity und HiveActivity, leichter zu verwenden sind.

Daten-Staging gibt Ihnen die Möglichkeit, Daten von einem Eingabedatenknoten in die Ressourcezu kopieren, die die Aktivität ausführt, und anschließend genauso von der Resource in denAusgabedatenknoten.

Die bereitgestellten Daten in der Amazon EMR- oder der Amazon EC2-Ressource sind mithilfe speziellerVariablen in Shell-Befehlen oder Hive-Skripts der Aktivität verfügbar.

Tabellen-Staging ist mit Daten-Staging vergleichbar, außer dass die Daten speziell in Form vonDatenbanktabellen bereitgestellt werden.

AWS Data Pipeline unterstützt die folgenden Staging-Szenarien:

• Daten-Staging mit ShellCommandActivity• Tabellen-Staging mit Hive und zum Staging fähigen Datenknoten

API-Version 2012-10-2954

Page 62: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDaten-Staging mit ShellCommandActivity

• Tabellen-Staging mit Hive und nicht zum Staging fähigen Datenknoten

Note

Staging funktioniert nur, wenn das Feld stage für eine Aktivität wie etwaShellCommandActivity auf true festgelegt ist. Weitere Informationen finden Sie unterShellCommandActivity (p. 219).

Darüber hinaus sind zwischen Datenknoten und Aktivitäten vier verschiedene Beziehungen möglich:

Staging von Daten lokal auf einer Ressource

Die Eingabedaten werden automatisch in das lokale Dateisystem der Ressource kopiert. DieAusgabedaten werden automatisch aus dem lokalen Dateisystem auf den Ausgabedatenknotenkopiert. Wenn Sie z. B. ShellCommandActivity-Eingaben und -Ausgaben mit Staging = truekonfigurieren, sind die Eingabedaten als INPUTx_STAGING_DIR und die Ausgabedaten alsOUTPUTx_STAGING_DIR verfügbar, wobei x die Anzahl der Ein- oder Ausgaben ist.

Staging von Eingabe- und -Ausgabedefinitionen für eine Aktivität

Das Format der Eingabedaten (Spaltennamen und Tabellennamen) wird automatisch auf dieRessource der Aktivität kopiert. Beispielsweise, wenn Sie HiveActivity mit Staging = truekonfigurieren. Das auf dem Eingabedatenknoten S3DataNode angegebene Datenformat wird zumBereitstellen der Tabellendefinition aus der Hive-Tabelle verwendet.

Staging nicht aktiviert

Die Eingabe- und Ausgabe-Objekte und ihre Felder sind für die Aktivität zwar verfügbar, die Datenselbst jedoch nicht. Dies trifft z. B. bei EmrActivity standardmäßig zu. Andere Aktivitäten müssenSie dazu mit Staging = false konfigurieren. In einer solchen Konfiguration sind die Datenfelderverfügbar und die Aktivität kann mit der AWS Data Pipeline-Ausdruckssyntax auf sie verweisen, soferndie Abhängigkeit erfüllt ist. Dies dient alleinig der Abhängigkeitsprüfung. Der Code in der Aktivitätveranlasst das Kopieren der Daten von der Eingabe auf die Ressource, auf der die Aktivität ausgeführtwird.

Abhängigkeitsbeziehung zwischen Objekten

Zwischen zwei Objekten besteht eine Abhängigkeitsbeziehung, die zu einer ähnlichen Situation führt,wie wenn Staging nicht aktiviert ist. In diesem Fall fungiert ein Datenknoten oder eine Aktivität alsVorbedingung für die Ausführung einer anderen Aktivität.

Daten-Staging mit ShellCommandActivityStellen Sie sich ein Szenario mit einer ShellCommandActivity mit S3DataNode-Objekten alsDateneingabe und -ausgabe vor. AWS Data Pipeline stellt die Datenknoten mit den Umgebungsvariablen${INPUT1_STAGING_DIR} und ${OUTPUT1_STAGING_DIR} automatisch bereit, um sie für denShell-Befehl zugänglich zu machen, als ob sie lokale Dateiordner wären. Dies wird im folgendenBeispiel veranschaulicht. Der numerische Teil der Variablen namens INPUT1_STAGING_DIR undOUTPUT1_STAGING_DIR wird abhängig von der Anzahl der Datenknoten erhöht, auf die Ihre Aktivitätverweist.

Note

Dieses Szenario funktioniert nur wie beschrieben, wenn Ihre Dateneingabe- und -ausgabenS3DataNode-Objekte sind. Außerdem ist das Staging von Ausgabedaten nur zulässig, wenn fürdas S3DataNode-Ausgabeobjekt directoryPath festgelegt ist.

{ "id": "AggregateFiles",

API-Version 2012-10-2955

Page 63: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTabellen-Staging mit Hive und

zum Staging fähigen Datenknoten

"type": "ShellCommandActivity", "stage": "true", "command": "cat ${INPUT1_STAGING_DIR}/part* > ${OUTPUT1_STAGING_DIR}/aggregated.csv", "input": { "ref": "MyInputData" }, "output": { "ref": "MyOutputData" }},{ "id": "MyInputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://my_bucket/source/#{format(@scheduledStartTime,'YYYY-MM-dd_HHmmss')}/items" }}, { "id": "MyOutputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://my_bucket/destination/#{format(@scheduledStartTime,'YYYY-MM-dd_HHmmss')}" }},...

Tabellen-Staging mit Hive und zum Staging fähigenDatenknotenStellen Sie sich ein Szenario mit einer HiveActivity mit S3DataNode-Objekten als Dateneingabe und-ausgabe vor. AWS Data Pipeline stellt die Datenknoten mit den Variablen ${input1} und ${output1}automatisch bereit, um sie für das Hive-Skript zugänglich zu machen, als ob sie Hive-Tabellen wären. Dieswird im folgenden Beispiel für HiveActivity veranschaulicht. Der numerische Teil der Variablen namensinput und output wird abhängig von der Anzahl der Datenknoten erhöht, auf die Ihre Aktivität verweist.

Note

Dieses Szenario funktioniert nur wie beschrieben, wenn die Dateneingaben und -ausgabenS3DataNode- oder MySqlDataNode-Objekte sind. Tabelle-Staging wird für DynamoDBDataNodenicht unterstützt.

{ "id": "MyHiveActivity", "type": "HiveActivity", "schedule": { "ref": "MySchedule" }, "runsOn": { "ref": "MyEmrResource" }, "input": { "ref": "MyInputData" }, "output": { "ref": "MyOutputData"

API-Version 2012-10-2956

Page 64: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTabellen-Staging mit Hive und nichtzum Staging fähigen Datenknoten

}, "hiveScript": "INSERT OVERWRITE TABLE ${output1} select * from ${input1};"},{ "id": "MyInputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://test-hive/input" }}, { "id": "MyOutputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://test-hive/output" }},...

Tabellen-Staging mit Hive und nicht zum Stagingfähigen DatenknotenAngenommen, eine HiveActivity wird für die Dateneingabe mit DynamoDBDataNode und für dieDatenausgabe mit einem S3DataNode-Objekt verwendet. Da für DynamoDBDataNode kein Stagingverfügbar ist, müssen Sie die Tabelle zuerst manuell innerhalb Ihres Hive-Skripts erstellen. Verweisen Siedabei unter dem Variablennamen #{input.tableName} auf die DynamoDB-Tabelle. Wenn die Ausgabein Form einer DynamoDB-Tabelle erfolgt, gilt eine ähnliche Nomenklatur, außer dass Sie die Variable#{output.tableName} verwenden. Da in diesem Beispiel für das Ausgabeobjekt S3DataNode Stagingverfügbar ist, können Sie unter ${output1} auf den Ausgabedatenknoten verweisen.

Note

In diesem Beispiel verfügt die Variable für den Tabellennamen über das #-(Hash-)Zeichen alsPräfix, da AWS Data Pipeline zum Zugriff auf tableName oder directoryPath Ausdrückeverwendet. Weitere Informationen darüber, wie die Ausdrucksauswertung in AWS Data Pipelinefunktioniert, finden Sie unter Ausdrucksauswertung (p. 138).

{ "id": "MyHiveActivity", "type": "HiveActivity", "schedule": { "ref": "MySchedule" }, "runsOn": { "ref": "MyEmrResource" }, "input": { "ref": "MyDynamoData" }, "output": { "ref": "MyS3Data" }, "hiveScript": "-- Map DynamoDB TableSET dynamodb.endpoint=dynamodb.us-east-1.amazonaws.com;SET dynamodb.throughput.read.percent = 0.5;CREATE EXTERNAL TABLE dynamodb_table (item map<string,string>)STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'

API-Version 2012-10-2957

Page 65: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchStarten von Ressourcen in einer VPC

TBLPROPERTIES ("dynamodb.table.name" = "#{input.tableName}"); INSERT OVERWRITE TABLE ${output1} SELECT * FROM dynamodb_table;"},{ "id": "MyDynamoData", "type": "DynamoDBDataNode", "schedule": { "ref": "MySchedule" }, "tableName": "MyDDBTable"}, { "id": "MyS3Data", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://test-hive/output" }},...

Starten von Ressourcen für Ihre Pipeline in einerVPC

Pipelines können Amazon EC2-Instances und Amazon EMR-Cluster in einer Virtual Private Cloud (VPC)starten.

• Zuerst erstellen Sie eine VPC und Subnetze mit Amazon VPC. Konfigurieren Sie die VPC, sodassInstances in der VPC auf den AWS Data Pipeline-Endpunkt und Amazon S3 zugreifen können.

• Als Nächstes richten Sie eine Sicherheitsgruppe ein, die Task Runner-Zugriff auf Ihre Datenquellengewährt.

• Schließlich geben Sie ein Subnetz von der VPC an, wenn Sie Ihre Instances und Cluster konfigurierenund Ihre Datenquellen erstellen.

Wenn Sie über eine Standard-VPC in einer Region verfügen, ist zu beachten, dass sie bereits für denZugriff auf andere AWS-Services konfiguriert ist. Wenn Sie eine Ressource starten ,wird sie automatisch inIhrer Standard-VPC gestartet.

Weitere Informationen zur VPCs finden Sie im Amazon VPC Benutzerhandbuch.

Inhalt• Erstellen und Konfigurieren einer VPC (p. 58)• Einrichten der Konnektivität zwischen Ressourcen (p. 59)• Konfigurieren der Ressource (p. 61)

Erstellen und Konfigurieren einer VPCEine von Ihnen erstellte VPC muss über ein Subnetz, ein Internet-Gateway und eine Routing-Tabelle fürdas Subnetz mit einer Weiterleitung zum Internet-Gateway verfügen, sodass Instances in der VPC aufAmazon S3 zugreifen können. (Wenn Sie über eine Standard-VPC verfügen, ist sie bereits auf diese Weisekonfiguriert.) Die einfachste Möglichkeit zum Erstellen und Konfigurieren Ihrer VPC ist mithilfe des VPC-Assistenten, wie im folgenden Verfahren veranschaulicht.

API-Version 2012-10-2958

Page 66: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEinrichten der Konnektivität zwischen Ressourcen

So erstellen und konfigurieren Sie Ihre VPC und den VPC-Assistenten

1. Öffnen Sie die Amazon VPC-Konsole unter der Adresse https://console.aws.amazon.com/vpc/.2. Wählen Sie mit der Regionsauswahl auf der Navigationsleiste die Region für Ihre VPC aus. Da Sie

alle Instances und Cluster in dieser VPC starten, wählen Sie die Region aus, die für Ihre Pipeline amsinnvollsten ist.

3. Klicken Sie in der Navigationsleiste auf VPC Dashboard.4. Klicken Sie im Bereich Your Virtual Private Cloud des Dashboards auf Get started creating a VPC,

wenn Sie über keine VPC-Ressourcen verfügen. Klicken Sie andernfalls auf Start VPC Wizard.5. Wählen Sie die erste Option, VPC with a Single Public Subnet Only, und klicken Sie dann auf

Continue.6. Auf der Bestätigungsseite werden die CIDR-Bereiche und Einstellungen angezeigt, die Sie ausgewählt

haben. Vergewissern Sie sich, dass Enable DNS hostnames auf Yes eingestellt ist. Nehmen Sie alleanderen erforderlichen Änderungen vor und klicken Sie dann auf Create VPC, um VPC, Subnetz,Internet-Gateway und Routing-Tabelle zu erstellen.

7. Nachdem die VPC erstellt wurde, klicken Sie in der Navigationsleiste auf Your VPCs und wählen SieIhre VPC aus der Liste aus.

• Vergewissern Sie sich auf der Registerkarte Summary davon, dass sowohl DNS resolution als auchDNS hostnames auf yes eingestellt sind.

• Klicken Sie auf den Bezeichner der DHCP-Optionsliste. Stellen Sie sicher, dass domain-name-servers auf AmazonProvidedDNS und domain-name auf ec2.internal für die Region USA Ost(Nord-Virginia) und auf region-name.compute.internal für alle anderen Regionen gesetzt ist.Erstellen Sie andernfalls eine neue Optionsliste mit diesen Einstellungen und ordnen Sie sie derVPC zu. Weitere Informationen finden Sie unter Arbeiten mit DHCP-Optionslisten im Amazon VPCBenutzerhandbuch.

Wenn Sie es vorziehen, VPC, Subnetz, Internet-Gateway und Routing-Tabelle manuell zu erstellen, findenSie weitere Informationen unter Erstellen einer VPC und Hinzufügen eines Internet-Gateways zu Ihrer VPCim Amazon VPC Benutzerhandbuch.

Einrichten der Konnektivität zwischen RessourcenSicherheitsgruppen fungieren als virtuelle Firewall für Ihre Instances zur Steuerung des ein- undausgehenden Datenverkehrs. Sie müssen Ihren Datenquellen Task Runner-Zugriff gewähren.

Weitere Informationen zu Sicherheitsgruppen finden Sie unter Sicherheitsgruppen für Ihre VPC im AmazonVPC Benutzerhandbuch.

Bestimmen Sie zuerst, welche Sicherheitsgruppe oder IP-Adresse von der Ressource verwendet wird, aufder Task Runner ausgeführt wird.

• Bei Ressourcen vom Typ EmrCluster (p. 237) wird Task Runner auf dem Cluster standardmäßigausgeführt. Beim Starten des Clusters werden die Sicherheitsgruppen namens ElasticMapReduce-master und ElasticMapReduce-slave erstellt. Sie benötigen die IDs dieser Sicherheitsgruppenspäter wieder.

So fordern Sie die IDs der Sicherheitsgruppen für einen Cluster in einer VPC an

1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.2. Klicken Sie im Navigationsbereich auf Security Groups.3. Wenn die Liste der Sicherheitsgruppen umfangreich ist, können Sie auf die Spalte Name klicken, um

Ihre Sicherheitsgruppen nach Namen zu sortieren. Falls die Spalte Name nicht zu sehen ist, klickenSie auf das Symbol Show/Hide Columns und danach auf Name.

API-Version 2012-10-2959

Page 67: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEinrichten der Konnektivität zwischen Ressourcen

4. Beachten Sie die IDs der Sicherheitsgruppen ElasticMapReduce-master undElasticMapReduce-slave.

• Bei Ressourcen vom Typ Ec2Resource (p. 230) wird Task Runner auf der EC2-Instancestandardmäßig ausgeführt. Erstellen Sie eine Sicherheitsgruppe für die VPC und geben Sie sie beimStarten der EC2-Instance an. Sie benötigen die ID dieser Sicherheitsgruppe später wieder.

So erstellen Sie eine Sicherheitsgruppe für eine EC2-Instance in einer VPC

1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.2. Klicken Sie im Navigationsbereich auf Security Groups.3. Klicken Sie auf Create Security Group.4. Geben Sie einen Namen und eine Beschreibung für die Sicherheitsgruppe an.5. Wählen Sie Ihre VPC aus der Liste aus und klicken Sie auf Create.6. Beachten Sie die ID der neuen Sicherheitsgruppe.

• Wenn Sie Task Runner auf Ihrem eigenen Computer ausführen, beachten Sie seine öffentliche IP-Adresse in der CIDR-Schreibweise. Wenn sich der Computer hinter einer Firewall befindet, beachten Sieden gesamte Adressbereich seines Netzwerks. Sie benötigen diese Adresse später wieder.

Erstellen Sie als Nächstes Regeln in den Ressourcen-Sicherheitsgruppen, die eingehenden Datenverkehrfür die Datenquellen zulassen, auf die Task Runner zugreifen muss. Wenn Task Runner z. B. auf einenAmazon Redshift-Cluster zugreifen muss, muss die Sicherheitsgruppe des Amazon Redshift-Clusterseingehenden Datenverkehr von der Ressource zulassen.

So fügen Sie eine Regel zur Sicherheitsgruppe für eine Amazon RDS-Datenbank hinzu

1. Öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/.2. Klicken Sie im Navigationsbereich auf Instances.3. Klicken Sie auf das Detailsymbol für die DB-Sicherheitsgruppe. Klicken Sie unter Security and

Network auf den Link zu der Sicherheitsgruppe. Daraufhin wird die Amazon EC2-Konsole aufgerufen.Wenn Sie das alte Konsolendesign für Sicherheitsgruppen verwenden, wechseln Sie zum neuenKonsolendesign, indem Sie auf das Symbol klicken, das oben auf der Konsolenseite angezeigt wird.

4. Klicken Sie auf der Registerkarte Inbound auf Edit und danach auf Add Rule. Geben Sie denDatenbankanschluss an, den Sie beim Starten der DB-Instance verwendet haben. Beginnen Sie, unterSource die ID der Sicherheitsgruppe oder IP-Adresse einzugeben, die von der Ressource verwendetwird, auf der Task Runner ausgeführt wird.

5. Klicken Sie auf Speichern.

So fügen Sie eine Regel zur Sicherheitsgruppe eines Amazon Redshift-Clusters hinzu

1. Öffnen Sie die Amazon Redshift-Konsole unter https://console.aws.amazon.com/redshift/.2. Klicken Sie im Navigationsbereich auf Clusters.3. Klicken Sie auf das Detailsymbol für den Cluster. Beachten Sie unter Cluster Properties den Namen

oder die ID der Sicherheitsgruppe und klicken Sie dann auf View VPC Security Groups, um dieAmazon EC2-Konsole aufzurufen. Wenn Sie das alte Konsolendesign für Sicherheitsgruppenverwenden, wechseln Sie zum neuen Konsolendesign, indem Sie auf das Symbol klicken, das obenauf der Konsolenseite angezeigt wird.

4. Wählen Sie die Sicherheitsgruppe für den Cluster aus.5. Klicken Sie auf der Registerkarte Inbound auf Edit und danach auf Add Rule. Geben Sie den Typ, das

Protokoll und den Portbereich an. Beginnen Sie, unter Source die ID der Sicherheitsgruppe oder IP-Adresse einzugeben, die von der Ressource verwendet wird, auf der Task Runner ausgeführt wird.

6. Klicken Sie auf Speichern.

API-Version 2012-10-2960

Page 68: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchKonfigurieren der Ressource

Konfigurieren der RessourceUm eine Ressource in einem Subnetz einer nicht standardmäßigen VPC oder in einem nichtstandardmäßigen Subnetz einer Standard-VPC zu starten, müssen Sie beim Konfigurieren der Ressourcedas Subnetz im Feld subnetId festlegen. Wenn Sie bei einer Standard-VPC keine Angabe für subnetIdmachen, wird die Ressource im Standard-Subnetz der Standard-VPC gestartet.

Beispiel EmrClusterDas folgende Beispielobjekt startet einen Amazon EMR-Cluster in einer nicht standardmäßigen VPC.

{ "id" : "MyEmrCluster", "type" : "EmrCluster", "keyPair" : "my-key-pair", "masterInstanceType" : "m1.xlarge", "coreInstanceType" : "m1.small", "coreInstanceCount" : "10", "taskInstanceType" : "m1.small", "taskInstanceCount": "10", "subnetId": "subnet-12345678"}

Weitere Informationen finden Sie unter EmrCluster (p. 237).

Beispiel Ec2ResourceDas folgende Beispielobjekt startet eine EC2-Instance in einer nicht standardmäßigen VPC. Beachten Sie,dass Sicherheitsgruppen für eine Instance in einer nicht standardmäßigen VPC unter deren IDs und nichtderen Namen angegeben werden müssen.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "role" : "test-role", "resourceRole" : "test-role", "instanceType" : "m1.medium", "securityGroupIds" : "sg-12345678", "subnetId": "subnet-1a2b3c4d", "associatePublicIpAddress": "true", "keyPair" : "my-key-pair"}

Weitere Informationen finden Sie unter Ec2Resource (p. 230).

Verwenden von Amazon EC2-Spot-Instances ineiner Pipeline

Pipelines können Amazon EC2-Spot-Instances für die Aufgabenknoten in ihren Amazon EMR-Cluster-Ressourcen verwenden. Pipelines verwenden standardmäßig Amazon EC2-On-Demand-Instances.Darüber hinaus können Sie Spot-Instances verwenden. Mit Spot-Instances können Sie als Reservevorhandene Amazon EC2-Instances verwenden und ausführen. Das Spot Instance-Preismodell

API-Version 2012-10-2961

Page 69: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden von Ressourcen in mehreren Regionen

ergänzt das On-Demand-Preismodell und das Reserved Instance-Preismodell und stellt womöglich diekosteneffizienteste Option für Rechenkapazität dar, je nach Anwendung. Weitere Informationen finden Sieunter Spot-Instances für Amazon EC2 auf der Amazon EC2-Produktseite.

So nutzen Sie Spot-Instances in Ihrer Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Öffnen Sie Ihre Pipeline in Architect.3. Navigieren Sie im Bereich Resources zum EMR-Cluster. Wählen Sie unter Add an optional field

die Option Task Instance Bid Price aus. Legen Sie für Task Instance Bid Price den Höchstpreis fürIhre Spot-Instance pro Stunde fest. Dies ist der maximale Gesamtbetrag, den Sie zahlen, und ist einDezimalwert zwischen 0 und 20,00 (ausschließlich).

Weitere Informationen finden Sie unter EmrCluster (p. 237).

Verwenden einer Pipeline mit Ressourcen inmehreren Regionen

Standardmäßig werden die Ressourcen Ec2Resource und EmrCluster in derselben Region wieAWS Data Pipeline ausgeführt. AWS Data Pipeline unterstützt jedoch die Möglichkeit, Datenflüsse übermehrere Regionen hinweg zu orchestrieren, wie beispielsweise das Ausführen von Ressourcen in einerRegion, die Eingabedaten aus einer anderen Region konsolidieren. Da Sie Ressourcen die Ausführungin einer bestimmten Region erlauben können, haben Sie auch die Flexibilität, Ressourcen zusammen mitihren abhängigen Datensätzen in derselben Region anzusiedeln und die Leistung zu maximieren, indemLatenzen verringert und Kosten für regionsübergreifende Datenübertragungen vermieden werden. Siekönnen mit dem Feld region in Ec2Resource und EmrCluster Ressourcen so konfigurieren, dass sie ineiner anderen Region als AWS Data Pipeline ausgeführt werden.

Die JSON-Datei des folgenden Pipeline-Beispiels veranschaulicht, wie eine EmrCluster-Ressource inder Region EU (Irland) ausgeführt wird, vorausgesetzt, dass in derselben Region eine große Datenmengezur Verarbeitung durch den Cluster vorhanden ist. In diesem Beispiel ist der einzige Unterschied zu einertypischen Pipeline, dass der Wert des Feldes region für EmrCluster auf eu-west-1 eingestellt ist.

{ "objects": [ { "id": "Hourly", "type": "Schedule", "startDateTime": "2014-11-19T07:48:00", "endDateTime": "2014-11-21T07:48:00", "period": "1 hours" }, { "id": "MyCluster", "type": "EmrCluster", "masterInstanceType": "m3.medium", "region": "eu-west-1", "schedule": { "ref": "Hourly" } }, { "id": "MyEmrActivity", "type": "EmrActivity", "schedule": { "ref": "Hourly"

API-Version 2012-10-2962

Page 70: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchKaskadierende Ausfälle und erneute Ausführungen

}, "runsOn": { "ref": "MyCluster" }, "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output,s3://eu-west-1-bucket/wordcount/output/#{@scheduledStartTime},-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate" } ]}

In der folgenden Tabelle werden die Regionen aufgelistet, die Sie auswählen können, sowie die im Feldregion zu verwendenden zugehörigen Regionscodes.

Note

Die folgende Liste enthält Regionen, in denen AWS Data Pipeline Workflows orchestrierenund Amazon EMR- oder Amazon EC2-Ressourcen starten kann. AWS Data Pipeline wirdmöglicherweise in diesen Regionen nicht unterstützt. Weitere Informationen zu den Regionen, indenen AWS Data Pipeline unterstützt wird, finden Sie unter Regionen und Endpunkte in AWS.

Name der Region Regionscode

USA Ost (Nord-Virginia) us-east-1

USA Ost (Ohio) us-east-2

USA West (Nordkalifornien) us-west-1

USA West (Oregon) us-west-2

Kanada (Zentral) ca-central-1

EU (Irland) eu-west-1

EU (London) eu-west-2

EU (Frankfurt) eu-central-1

Asien-Pazifik (Singapur) ap-southeast-1

Asien-Pazifik (Sydney) ap-southeast-2

Asien-Pazifik (Mumbai) ap-south-1

Asien-Pazifik (Tokio) ap-northeast-1

Asien-Pazifik (Seoul) ap-northeast-2

Südamerika (São Paulo) sa-east-1

Kaskadierende Ausfälle und erneute AusführungenMit AWS Data Pipeline können Sie konfigurieren, wie sich Pipeline-Objekte verhalten, wenn eineAbhängigkeit ausfällt oder von einem Benutzer storniert wird. Sie können sicherstellen, dass Ausfälle zuanderen Pipeline-Objekten (Verbrauchern) kaskadieren, um ein unendlich langes Warten zu verhindern.Für alle Aktivitäten, Datenknoten und Vorbedingungen ist ein Feld namens failureAndRerunMode mitdem Standardwert none vorhanden. Um das Kaskadieren von Ausfällen zu aktivieren, stellen Sie das FeldfailureAndRerunMode auf cascade ein.

API-Version 2012-10-2963

Page 71: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktivitäten

Wenn dieses Feld aktiviert ist, treten kaskadierende Ausfälle auf, wenn ein Pipeline-Objekt im ZustandWAITING_ON_DEPENDENCIES blockiert wird und alle Abhängigkeiten ohne ausstehenden Befehlfehlgeschlagen sind. Während eines kaskadierenden Ausfalls treten die folgenden Ereignisse ein:

• Wenn ein Objekt fehlschlägt, wird für seine Verbraucher CASCADE_FAILED eingestellt und für dieVorbedingungen des Originalobjekts und seiner Verbraucher wird CANCELED festgelegt.

• Alle Objekte, die sich bereits im Zustand FINISHED, FAILEDoder CANCELED befinden, werden ignoriert.

Das Kaskadieren von Ausfällen funktioniert nicht bei Abhängigkeiten (stromaufwärts) eines ausgefallenenObjekts, außer bei zugehörigen Vorbedingungen des ursprünglichen ausgefallenen Objekts. Pipeline-Objekte, die vom Kaskadieren eines Ausfalls betroffen sind, können beliebig viele Wiederholungen oderPost-Aktionen, wie z. B. onFail, auslösen.

Die detaillierten Auswirkungen eines kaskadierenden Ausfalls sind vom Objekttyp abhängig.

AktivitätenDer Zustand einer Aktivität ändert sich in CASCADE_FAILED, wenn irgendwelche seiner Abhängigkeitenausfallen, und es löst anschließend einen kaskadierenden Ausfall bei den Verbrauchern der Aktivität aus.Falls eine Ressource ausfällt, von der die Aktivität abhängig ist, befindet sich die Aktivität im ZustandCANCELED und der Zustand aller Verbraucher ändert sich in CASCADE_FAILED.

Datenknoten und VorbedingungenWenn als Ausgabe einer ausgefallenen Aktivität ein Datenknoten konfiguriert ist, ändert sich der Zustanddes Datenknotens in CASCADE_FAILED. Der Ausfall eines Datenknotens wird auf alle zugehörigenVorbedingungen übertragen, deren Zustand sich in CANCELED ändert.

RessourcenWenn sich die Objekte, die von einer Ressource abhängig sind, im Zustand FAILED befinden, währendsich die Ressource im Zustand WAITING_ON_DEPENDENCIES befindet, dann ändert sich der Zustand derRessource in FINISHED.

Erneutes Ausführen von Objekte mit fehlgeschlagenerKaskadierungStandardmäßig wird bei der erneuten Ausführung einer Aktivität oder eines Datenknotens nur diezugehörige Ressource erneut ausgeführt. Wird jedoch das Feld failureAndRerunMode in einemPipeline-Objekt auf cascade eingestellt, ermöglicht dies unter den folgenden Bedingungen, dass dieerneute Ausführung auf einem Zielobjekt auf alle Verbraucher übertragen wird:

• Die Verbraucher des Zielobjekts befinden sich im Zustand CASCADE_FAILED.• Für die Abhängigkeiten des Zielobjekts stehen keine Befehle für eine erneute Ausführung an.• Die Abhängigkeiten des Zielobjekts befinden sich nicht im Zustand FAILED, CASCADE_FAILED oderCANCELED.

Bei dem Versuch, ein CASCADE_FAILED-Objekt erneut auszuführen, bei dem sich irgendwelche seinerAbhängigkeiten im Zustand FAILED, CASCADE_FAILED oder CANCELED befinden, schlägt die erneuteAusführung fehl und das Objekt kehrt wieder in den Zustand CASCADE_FAILED zurück. Zur erfolgreichenerneuten Ausführung des ausgefallenen Objekts müssen Sie den Ausfall in der Kette der Abhängigkeitennach oben verfolgen, um die ursprüngliche Quelle des Ausfalls zu finden, und statt dessen das betreffende

API-Version 2012-10-2964

Page 72: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchKaskadierende Ausfälle und Abgleichungen

Objekt erneut ausführen. Wenn Sie den Befehl für eine erneute Ausführung auf einer Ressource ausgeben,versuchen Sie, alle von ihr abhängigen Ressourcen ebenfalls erneut auszuführen.

Kaskadierende Ausfälle und AbgleichungenWenn Sie kaskadierende Ausfälle aktivieren und eine Pipeline viele Abgleichungen erstellt, kann esaufgrund von Laufzeitfehlern der Pipeline sein, dass Ressourcen in rascher Abfolge erstellt und gelöschtwerden, ohne effektive Arbeit zu leisten. AWS Data Pipeline versucht, Sie beim Speichern einer Pipelinemit der folgenden Warnmeldung auf diese Situation aufmerksam zu machen: Pipeline_object_namehas 'failureAndRerunMode' field set to 'cascade' and you are about to create abackfill with scheduleStartTime start_time. This can result in rapid creationof pipeline objects in case of failures. Dies geschieht, da kaskadierende Ausfälle schnellals Zustand von Downstream-Aktivitäten CASCADE_FAILED einstellen und nicht mehr benötigte EMR-Cluster und EC2-Ressourcen herunterfahren können. Wir empfehlen, dass Sie Pipelines mit kurzenZeitbereichen testen, um die Auswirkungen dieser Situation zu begrenzen.

Syntax der Pipeline-DefinitionsdateiDie Anleitungen in diesem Abschnitt sind für das manuelle Arbeiten mit Pipeline-Definitionsdateien überdie AWS Data Pipeline-Befehlszeilenschnittstelle (CLI) bestimmt. Dies ist eine Alternative zur interaktivenEntwicklung einer Pipeline über die AWS Data Pipeline-Konsole.

Sie können Pipeline-Definitionsdateien mit jedem beliebigen Texteditor manuell erstellen, der dasSpeichern von Dateien im UTF-8-Dateiformat und das Senden der Dateien über die AWS Data Pipeline-Befehlszeilenschnittstelle unterstützt.

AWS Data Pipeline unterstützt in Pipeline-Definitionen auch eine Vielzahl von komplexen Ausdrücken undFunktionen. Weitere Informationen finden Sie unter Pipeline-Ausdrücke und -Funktionen (p. 134).

DateistrukturDer erste Schritt bei der Erstellung einer Pipeline besteht darin, Pipeline-Definitionsobjekte in einerPipeline-Definitionsdatei zu verfassen. Im folgenden Beispiel wird die allgemeine Struktur einer Pipeline-Definitionsdatei veranschaulicht. Diese Datei definiert zwei Objekte, die durch '{' und '}' begrenzt und durchein Komma getrennt werden.

Im folgenden Beispiel definiert das erste Objekt zwei Namen-Wert-Paare, die als Felder bezeichnetwerden. Das zweite Objekt definiert drei Felder.

{ "objects" : [ { "name1" : "value1", "name2" : "value2" }, { "name1" : "value3", "name3" : "value4", "name4" : "value5" } ]}

Beim Erstellen einer Pipeline-Definitionsdatei müssen Sie die erforderlichen Typen von Pipeline-Objektenauswählen, sie der Pipeline-Definitionsdatei hinzufügen und dann die entsprechenden Felder hinzufügen.Weitere Informationen zu Pipeline-Objekten finden Sie unter Pipeline-Objektreferenz (p. 146).

API-Version 2012-10-2965

Page 73: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPipeline-Felder

So können Sie beispielsweise ein Pipeline-Definitionsobjekt für einen Eingabedatenknoten und ein anderesfür den Ausgabedatenknoten erstellen. Anschließend erstellen Sie mithilfe von Amazon EMR ein weiteresPipeline-Definitionsobjekt für eine Aktivität, wie z. B. die Verarbeitung der Eingabedaten.

Pipeline-FelderWenn Sie wissen, welche Objekttypen in Ihre Pipeline-Definitionsdatei aufzunehmen sind, fügen Siedie betreffenden Felder zur Definition der einzelnen Pipeline-Objekte hinzu. Feldnamen stehen inAnführungszeichen und sind wie im folgenden Beispiel veranschaulicht durch ein Leerzeichen, einenDoppelpunkt und ein Leerzeichen von den Feldwerten getrennt.

"name" : "value"

Bei dem Feldwert kann es sich um eine Zeichenfolge, einen Verweis auf ein anderes Objekt, einenFunktionsaufruf, einen Ausdruck oder eine geordnete Liste beliebiger der oben genannten Typen handeln.Weitere Informationen über die Arten von Daten, die für Feldwerte verwendet werden können, findenSie unter Einfache Datentypen (p. 134). Weitere Informationen zu Funktionen, die zur Auswertung vonFeldwerten verwendet werden können, finden Sie unter Ausdrucksauswertung (p. 138).

Felder sind auf 2048 Zeichen begrenzt. Da die Größe von Objekten 20 KB betragen kann, können einemObjekt nicht viele große Feder hinzugefügt werden.

Jedes Pipeline-Objekt muss die folgenden Felder enthalten: id und type, wie im folgenden Beispieldargestellt. Je nach Objekttyp werden möglicherweise noch andere Felder benötigt. Wählen Sie einen Wertfür id aus, der für Sie bedeutsam und in der Pipeline-Definition eindeutig ist. Der Wert für type gibt denTyp des Objekts an. Geben Sie einen der unterstützten Objekttypen für die Pipeline-Definition ein, die imThema Pipeline-Objektreferenz (p. 146) aufgelistet werden.

{ "id": "MyCopyToS3", "type": "CopyActivity"}

Weitere Informationen zu den erforderlichen und optionalen Feldern eines jeden Objekts finden Sie in derDokumentation für das Objekt.

Wenn Sie Felder aus einem Objekt in ein anderes Objekt einschließen möchten, verwenden Sie das Feldparent mit einem Verweis auf das Objekt. Beispiel: Objekt „B“ enthält seine Felder, „B1“ und „B2“, sowiedie Felder von Objekt „A“, „A1“ und „A2“.

{ "id" : "A", "A1" : "value", "A2" : "value"},{ "id" : "B", "parent" : {"ref" : "A"}, "B1" : "value", "B2" : "value"}

Sie können gemeinsame Felder in einem Objekt mit der ID „Default“ definieren. Diese Felder werdenautomatisch in die Pipeline-Definitionsdatei eines jeden Objekts eingeschlossen, sofern für das Feldparent nicht ausdrücklich ein Verweis auf ein anderes Objekt festgelegt ist.

{

API-Version 2012-10-2966

Page 74: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBenutzerdefinierte Felder

"id" : "Default", "onFail" : {"ref" : "FailureNotification"}, "maximumRetries" : "3", "workerGroup" : "myWorkerGroup"}

Benutzerdefinierte FelderSie können für Ihre Pipeline-Komponenten benutzerdefinierte Felder erstellen und mit Ausdrücken aufsie verweisen. Das folgende Beispiel zeigt ein benutzerdefiniertes Feld namens myCustomField undmy_customFieldReference, das einem S3DataNode-Objekt hinzugefügt wurde:

{ "id": "S3DataInput", "type": "S3DataNode", "schedule": {"ref": "TheSchedule"}, "filePath": "s3://bucket_name", "myCustomField": "This is a custom value in a custom field.", "my_customFieldReference": {"ref":"AnotherPipelineComponent"} },

Der Name eines benutzerdefinierten Feldes muss als Präfix das Wort „my“ in Kleinbuchstaben gefolgt voneinem Großbuchstaben und einem Unterstrich besitzen. Darüber hinaus kann ein benutzerdefiniertes Feldwie im voranstehenden myCustomField-Beispiel ein Zeichenfolgenwert oder wie im voranstehendenmy_customFieldReference-Beispiel ein Verweis auf eine andere Pipeline-Komponente sein.

Note

AWS Data Pipeline prüft benutzerdefinierte Felder nur auf gültige Verweise auf anderePipeline-Komponenten und nicht auf von Ihnen in benutzerdefinierten Feldern hinzugefügteZeichenfolgenwerte.

Arbeiten mit der APINote

Wenn Sie keine Anwendungen programmieren, die mit AWS Data Pipeline interagieren, müssenSie keine AWS-SDKs installieren. Sie können über die Konsole oder die Befehlszeile Pipelineserstellen und ausführen. Weitere Informationen finden Sie unter Einrichten für AWS DataPipeline (p. 15)

Am einfachsten können Sie Anwendungen programmieren, die mit AWS Data Pipeline interagieren,oder einen benutzerdefinierten Task Runner implementieren, indem Sie einen AWS-SDK verwenden.Die Funktionen der AWS-SDKs vereinfachen das Aufrufen der Web-Service-APIs von Ihrer bevorzugtenProgrammierumgebung. Weitere Informationen finden Sie unter Installieren des AWS-SDKs (p. 67).

Installieren des AWS-SDKsDie AWS-SDKs stellen Wrapper-Funktionen für die API bereit und übernehmen viele derVerbindungsdetails, wie Berechnen der Signaturen, Umgang mit Anforderungswiederholungen undFehlerbehandlung. Die SDKs enthalten außerdem Beispiel-Code, Tutorials und weitere Ressourcen, dieSie beim Schreiben von Anwendungen unterstützen. die AWS aufrufen. Durch Aufrufen der Wrapper-Funktionen in einem SDK kann der Prozess zum Schreiben einer AWS-Anwendung erheblich vereinfachtwerden. Weitere Informationen zum Herunterladen und Verwenden von AWS-SDKs finden Sie unterBeispiel-Code und Bibliotheken.

API-Version 2012-10-2967

Page 75: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen einer HTTP-Anforderung an AWS Data Pipeline

AWS Data Pipeline-Unterstützung ist in SDKs für die folgenden Plattformen verfügbar:

• AWS SDK für Java• AWS SDK for Node.js• AWS SDK für PHP• AWS SDK für Python (Boto)• AWS SDK für Ruby• AWS SDK für .NET

Erstellen einer HTTP-Anforderung an AWS DataPipelineEine vollständige Beschreibung der programmgesteuerten Objekte in AWS Data Pipeline finden Sie in derAWS Data Pipeline-API-Referenz.

Wenn Sie keinen AWS-SDK verwenden, können Sie AWS Data Pipeline-Operationen über HTTPausführen, indem Sie die POST-Anforderungsmethode verwenden. Bei der POST-Methode müssen Sieden Vorgang im Header der Anforderung festlegen und im Anforderungstext die Daten für den Vorgang imJSON-Format angeben.

Inhalt des HTTP-HeadersAWS Data Pipeline benötigt die folgenden Informationen im Header einer HTTP-Anforderung:

• host Den AWS Data Pipeline-Endpunkt.

Weitere Informationen zu Endpunkten finden Sie unter Regionen und Endpunkte.• x-amz-date Sie müssen den Zeitstempel entweder im HTTP-Datums-Header oder im AWS-x-amz-

date-Header angeben. (Einige HTTP-Client-Bibliotheken lassen den Datums-Header nicht zu.) Ist der x-amz-date-Header vorhanden, ignoriert das System bei der Anforderungsauthentifizierung alle Datums-Header.

Das Datum muss in einem der folgenden drei Formate angegeben werden, wie in HTTP/1.1 RFCfestgelegt:• Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, aktualisiert durch RFC 1123)• Sunday, 06-Nov-94 08:49:37 GMT (RFC 850, abgelöst durch RFC 1036)• Sun Nov 6 08:49:37 1994 (ANSI C asctime()-Format)

• Authorization Der Satz an Autorisierungsparametern, mit denen AWS die Gültigkeit und Authentizitätder Anforderung sicherstellt. Weitere Informationen zum Aufbau dieses Headers finden Sie unterSignature Version 4-Signaturprozess.

• x-amz-target Der Zieldienst der Anforderung und des Vorgangs für die Daten, in folgendem Format:<<serviceName>>_<<API version>>.<<operationName>>

Beispiel, DataPipeline_20121129.ActivatePipeline• content-type Gibt JSON und die Version an. Beispiel, Content-Type: application/x-amz-json-1.0

Nachfolgend finden Sie einen Beispiel-Header für eine HTTP-Anforderung zum Aktivieren einer Pipeline.

POST / HTTP/1.1host: https://datapipeline.us-east-1.amazonaws.com

API-Version 2012-10-2968

Page 76: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen einer HTTP-Anforderung an AWS Data Pipeline

x-amz-date: Mon, 12 Nov 2012 17:49:52 GMTx-amz-target: DataPipeline_20121129.ActivatePipelineAuthorization: AuthParamsContent-Type: application/x-amz-json-1.1Content-Length: 39Connection: Keep-Alive

HTTP-TextinhaltDer Textkörper einer HTTP-Anforderung enthält die Daten für den Vorgang, der im Header der HTTP-Anforderung festgelegt ist. Die Daten müssen für jede AWS Data Pipeline-API entsprechend dem JSON-Datenschema formatiert werden. Das AWS Data Pipeline-JSON-Datenschema definiert die Datentypenund Parameter (z. B. Vergleichsoperatoren und Aufzählungskonstanten), die für die einzelnen Vorgängeverfügbar sind.

Format des Textkörpers einer HTTP-Anforderung

Verwenden Sie das JSON-Datenformat zur gleichzeitigen Übermittlung von Datenwerten und -strukturen.Elemente können mit der Klammerschreibweise innerhalb anderer Elemente verschachtelt werden. Dasfolgende Beispiel zeigt eine Anforderung für das Erstellen einer Pipeline-Definition, die aus drei Objektenund ihren entsprechenden Slots besteht.

{ "pipelineId": "df-00627471SOVYZEXAMPLE", "pipelineObjects": [ {"id": "Default", "name": "Default", "slots": [ {"key": "workerGroup", "stringValue": "MyWorkerGroup"} ] }, {"id": "Schedule", "name": "Schedule", "slots": [ {"key": "startDateTime", "stringValue": "2012-09-25T17:00:00"}, {"key": "type", "stringValue": "Schedule"}, {"key": "period", "stringValue": "1 hour"}, {"key": "endDateTime", "stringValue": "2012-09-25T18:00:00"} ] }, {"id": "SayHello", "name": "SayHello", "slots": [ {"key": "type", "stringValue": "ShellCommandActivity"}, {"key": "command", "stringValue": "echo hello"}, {"key": "parent", "refValue": "Default"}, {"key": "schedule", "refValue": "Schedule"}

API-Version 2012-10-2969

Page 77: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen einer HTTP-Anforderung an AWS Data Pipeline

] } ]}

Handhaben der HTTP-Antwort

Nachfolgend finden Sie einige wichtige Header in der HTTP-Antwort und Informationen dazu, wie Sie dieseHeader in Ihrer Anwendung behandeln sollten:

• HTTP/1.1—Diesem Header folgt ein Statuscode. Ein Code-Wert von 200 gibt an, dass ein Vorgangerfolgreich war. Jeder andere Wert weist auf einen Fehler hin.

• x-amzn-RequestId— Dieser Header enthält eine Anforderungs-ID, die Sie für die Fehlerbehebungeiner Anfrage an AWS Data Pipeline nutzen können. Ein Beispiel für eine Anforderungs-ID istK2QH8DNOU907N97FNA2GDLL8OBVV4KQNSO5AEMVJF66Q9ASUAAJG.

• x-amz-crc32—AWS Data Pipeline berechnet eine CRC32-Prüfsumme der HTTP-Nutzlast und gibt diesePrüfsumme an den x-amz-crc32-Header zurück. Wir empfehlen Ihnen, Ihre eigene CRC32-Prüfsummeclientseitig zu berechnen und sie mit dem x-amz-crc32-Header zu vergleichen. Wenn die Prüfsummennicht übereinstimmen, kann dies ein Hinweis darauf sein, dass die Daten während der Übertragungbeschädigt wurden. Wenn dies der Fall ist, sollten Sie Ihre Anforderung erneut übermitteln.

AWS-SDK-Benutzer müssen diese Verifizierung nicht manuell ausführen, da die SDKs die Prüfsummejeder Antwort von Amazon DynamoDB berechnen und den Versuch automatisch wiederholen, wenn keineÜbereinstimmung vorliegt.

Beispiel AWS Data Pipeline, JSON-Anforderung und -Antwort

Die folgenden Beispiele zeigen eine Anforderung zum Erstellen einer neuen Pipeline. Anschließend wirddie AWS Data Pipeline-Antwort angezeigt, einschließlich der Pipeline-ID der neu erstellten Pipeline.

HTTP-POST-Anforderung

POST / HTTP/1.1host: https://datapipeline.us-east-1.amazonaws.comx-amz-date: Mon, 12 Nov 2012 17:49:52 GMTx-amz-target: DataPipeline_20121129.CreatePipelineAuthorization: AuthParamsContent-Type: application/x-amz-json-1.1Content-Length: 50Connection: Keep-Alive

{"name": "MyPipeline", "uniqueId": "12345ABCDEFG"}

AWS Data Pipeline-Antwort

HTTP/1.1 200 x-amzn-RequestId: b16911ce-0774-11e2-af6f-6bc7a6be60d9x-amz-crc32: 2215946753Content-Type: application/x-amz-json-1.0Content-Length: 2Date: Mon, 16 Jan 2012 17:50:53 GMT

{"pipelineId": "df-00627471SOVYZEXAMPLE"}

API-Version 2012-10-2970

Page 78: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErstellen einer HTTP-Anforderung an AWS Data Pipeline

API-Version 2012-10-2971

Page 79: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchIAM-Richtlinien für AWS Data Pipeline

Steuern des Zugriffs auf Pipelinesund Ressourcen

Mit Ihren Sicherheitsanmeldeinformationen identifizieren Sie sich bei den Services in AWS und erhaltenunbegrenzten Zugriff auf die AWS-Ressourcen, wie etwa Ihre Pipelines. Sie können mithilfe bestimmterFunktionen in AWS Data Pipeline und AWS Identity and Access Management (IAM) AWS DataPipeline und anderen Benutzern den Zugriff auf AWS Data Pipeline-Ressourcen gestatten, ohne IhreAnmeldeinformationen weitergeben zu müssen.

In Unternehmen können bestimmte Pipelines für mehrere Mitarbeiter freigegeben werden, damit diesegemeinsam damit arbeiten können. Allerdings sollten in diesem Fall Maßnahmen wie die folgendenergriffen werden:

• Steuern des IAM-Benutzerzugriffs auf bestimmte Pipelines• Schützen einer Produktions-Pipeline vor versehentlichen Änderungen• Erlauben des Lesezugriffs von Auditoren auf Pipelines und gleichzeitiges Verhindern von Änderungen

AWS Data Pipeline ist in AWS Identity and Access Management (IAM) integriert, das eine breite Palettevon Funktionen anbietet:

• Erstellen von Benutzern und Gruppen für Ihr AWS-Konto• Einfache Freigabe Ihrer AWS-Ressourcen unter den Benutzern Ihres AWS-Kontos.• Zuweisen eindeutiger Sicherheitsanmeldeinformationen zu jedem Benutzer.• Kontrollieren des Zugriffs jedes Benutzers auf Services und Ressourcen.• Abrufen einer einzigen Abrechnung für alle Benutzer Ihres AWS-Kontos.

Wenn Sie IAM zusammen mit AWS Data Pipeline verwenden, können Sie steuern, ob Benutzer imUnternehmen Aufgaben mit bestimmten API-Aktionen ausführen und spezifische AWS-Ressourcenverwenden können. Sie können mithilfe von auf Pipeline-Tags und Worker-Gruppen basierenden IAM-Richtlinien Pipelines für andere Benutzer freigeben und deren Zugriff darauf steuern.

Inhalt• IAM-Richtlinien für AWS Data Pipeline (p. 72)• Beispielrichtlinien für AWS Data Pipeline (p. 76)• IAM-Rollen für AWS Data Pipeline (p. 78)

IAM-Richtlinien für AWS Data PipelineIAM-Benutzer sind standardmäßig nicht berechtigt, AWS-Ressourcen zu erstellen oder zu ändern. DamitIAM-Benutzer Ressourcen erstellen oder ändern und Aufgaben ausführen können, müssen Sie IAM-Richtlinien erstellen und so den IAM-Benutzern die Berechtigung zur Nutzung der benötigten Ressourcenund API-Aktionen erteilen. Diese Richtlinien ordnen Sie dann den IAM-Benutzern oder -Gruppen zu, diediese Berechtigungen benötigen.

Wenn Sie einem Benutzer oder einer Benutzergruppe eine Richtlinie zuordnen, wird den Benutzern dieAusführung der angegebenen Aufgaben für die angegebenen Ressourcen gestattet oder verweigert.Allgemeine Informationen zu IAM-Richtlinien finden Sie unter Berechtigungen und Richtlinien im IAM-Benutzerhandbuch. Weitere Informationen zum Verwalten und Erstellen von benutzerdefinierten IAM-Richtlinien finden Sie unter Verwalten von IAM-Richtlinien.

API-Version 2012-10-2972

Page 80: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRichtliniensyntax

Inhalt• Richtliniensyntax (p. 73)• Steuern des Zugriffs auf Pipelines mithilfe von Tags (p. 73)• Steuern des Zugriffs auf Pipelines mithilfe von Worker-Gruppen (p. 75)

RichtliniensyntaxEine IAM-Richtlinie ist ein JSON-Dokument, das eine oder mehrere Anweisungen enthält. Jede Anweisungist folgendermaßen strukturiert:

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"*", "Condition":{ "condition":{ "key":"value" } } } ]}

Eine Anweisung in einer Richtlinie besteht aus folgenden Elementen:

• Effect: Der effect-Wert kann Allow oder Deny lauten. IAM-Benutzer verfügen standardmäßig nichtüber die Berechtigung zur Verwendung von Ressourcen und API-Aktionen. Daher werden alle Anfragenabgelehnt. Dieser Standardwert kann durch eine explizite Zugriffserlaubnis überschrieben werden. Eineexplizite Zugriffsverweigerung überschreibt jedwede Zugriffserlaubnis.

• Action: Mit action wird die API-Aktion spezifiziert, für die Sie Berechtigungen erteilen oder verweigern.Eine Liste der Aktionen für AWS Data Pipeline finden Sie unter Aktionen in der AWS Data Pipeline APIReference.

• Resource: Die von einer Aktion betroffene Ressource. Der einzige hier zulässige Wert lautet "*".• Condition: Bedingungen sind optional. Mit ihrer Hilfe können Sie bestimmen, wann Ihre Richtlinie

wirksam wird.

AWS Data Pipeline implementiert die AWS-weiten Kontextschlüssel (siehe Verfügbare Schlüssel fürBedingungen) und zusätzlich die folgenden servicespezifischen Schlüssel.• datapipeline:PipelineCreator — Hiermit wird dem Benutzer, der die Pipeline erstellt hat,

der Zugriff gewährt. Ein Beispiel hierzu finden Sie unter Gewähren des vollen Zugriffs für Pipeline-Eigentümer (p. 77).

• datapipeline:Tag — Hiermit wird der Zugriff auf Basis der Pipeline-Tags gewährt. WeitereInformationen finden Sie unter Steuern des Zugriffs auf Pipelines mithilfe von Tags (p. 73).

• datapipeline:workerGroup — Hiermit wird der Zugriff auf Basis des Namens der Worker-Gruppe gewährt. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Pipelines mithilfe vonWorker-Gruppen (p. 75).

Steuern des Zugriffs auf Pipelines mithilfe von TagsSie können IAM-Richtlinien erstellen, die auf die Tags von Pipelines verweisen. Dadurch lässt sich mithilfevon Pipeline-Tags Folgendes durchführen:

API-Version 2012-10-2973

Page 81: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSteuern des Zugriffs auf Pipelines mithilfe von Tags

• Gewähren des Lesezugriffs auf eine Pipeline• Gewähren des Lese-/Schreibzugriffs auf eine Pipeline• Blockieren des Zugriffs auf eine Pipeline

Nehmen wir an, dass es in einem Unternehmen zwei Pipeline-Umgebungen (Produktion und Entwicklung)und für jede Umgebung eine IAM-Gruppe gibt. Der zuständige Manager gewährt für die Pipelines in derProduktionsumgebung den Benutzern in der IAM-Produktionsgruppe Lese-/Schreibzugriff, den Benutzern inder IAM-Entwicklungsgruppe jedoch lediglich Lesezugriff. Für die Pipelines in der Entwicklungsumgebunggewährt der Manager hingegen den Benutzern der IAM-Produktions- und -Entwicklungsgruppe Lese-/Schreibzugriff.

Dazu markiert der Manager die Produktions-Pipelines mit dem Tag "environment=production" und ordnetder IAM-Entwicklungsgruppe die folgende Richtlinie zu. Die erste Anweisung gewährt Lesezugriff aufalle Pipelines. Die zweite Anweisung gewährt Lese-/Schreibzugriff auf Pipelines, die nicht mit dem Tag"environment=production" gekennzeichnet sind.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:ListPipelines", "datapipeline:GetPipelineDefinition", "datapipeline:QueryObjects" ], "Resource": "*" }, { "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*", "Condition": { "StringNotEquals": {"datapipeline:Tag/environment": "production"} } } ]}

Außerdem ordnet der Manager der IAM-Produktionsgruppe die folgende Richtlinien zu. Diese Anweisunggewährt vollständigen Zugriff auf alle Pipelines.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*" } ]}

Weitere Beispiele finden Sie unter Gewähren des Lesezugriffs für Benutzer basierend auf einemTag (p. 76) und Gewähren des vollständigen Zugriffs für Benutzer basierend auf einem Tag (p. 77).

API-Version 2012-10-2974

Page 82: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSteuern des Zugriffs auf Pipelines

mithilfe von Worker-Gruppen

Steuern des Zugriffs auf Pipelines mithilfe von Worker-GruppenSie können IAM-Richtlinien erstellen, die auf die Namen von Worker-Gruppen verweisen.

Nehmen wir an, dass es in einem Unternehmen zwei Pipeline-Umgebungen (Produktion und Entwicklung)und für jede Umgebung eine IAM-Gruppe gibt. Außerdem sind drei Datenbankserver mit Task Runner-Anwendungen für die Produktions-, die Vorproduktions- und die Entwicklungsumgebung vorhanden. Derzuständige Manager möchte nun sicherstellen, dass die Benutzer in der IAM-Produktionsgruppe Pipelineszur Ausführung von Aufgaben mit Produktionsressourcen und die Benutzer in der IAM-EntwicklungsgruppePipelines zur Ausführung von Aufgaben mit Vorproduktions- und Entwicklerressourcen erstellen können.

Um dies zu erreichen, installiert er Task Runner auf den Produktionsressourcen mit denAnmeldeinformationen der Produktionsgruppe und weist workerGroup den Wert "prodresource"zu. Außerdem installiert der Manager Task Runner auf den Entwicklungsressourcen mit denAnmeldeinformationen der Entwicklungsgruppe und weist workerGroup die Werte "pre-production" und"development" zu. Danach ordnet der Manager der IAM-Entwicklungsgruppe die folgende Richtlinie zu, umden Zugriff auf "prodresource"-Ressourcen zu blockieren. Die erste Anweisung gewährt Lesezugriff auf allePipelines. Die zweite Anweisung erteilt der Worker-Gruppe mit dem Namenspräfix "dev" oder "pre-prod"den Lese-/Schreibzugriff auf die Pipelines.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:ListPipelines", "datapipeline:GetPipelineDefinition", "datapipeline:QueryObjects" ], "Resource": "*" }, { "Action": "datapipeline:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "datapipeline:workerGroup": ["dev*","pre-prod*"] } } } ]}

Zudem ordnet der Manager der IAM-Produktionsgruppe die folgende Richtlinie zu, um Zugriff auf"prodresource"-Ressourcen zu gewähren. Die erste Anweisung gewährt Lesezugriff auf alle Pipelines. Diezweite Anweisung gewährt der Worker-Gruppe mit dem Namenspräfix "prod" den Lese-/Schreibzugriff.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:ListPipelines",

API-Version 2012-10-2975

Page 83: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeispielrichtlinien für AWS Data Pipeline

"datapipeline:GetPipelineDefinition", "datapipeline:QueryObjects" ], "Resource": "*" }, { "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*", "Condition": { "StringLike": {"datapipeline:workerGroup": "prodresource*"} } } ]}

Beispielrichtlinien für AWS Data PipelineDie folgenden Beispiele zeigen, wie Sie Benutzern vollständigen oder eingeschränkten Zugriff auf Pipelinesgewähren.

Inhalt• Beispiel 1: Gewähren des Lesezugriffs für Benutzer basierend auf einem Tag (p. 76)• Beispiel 2: Gewähren des vollständigen Zugriffs für Benutzer basierend auf einem Tag (p. 77)• Beispiel 3: Gewähren des vollen Zugriffs für Pipeline-Eigentümer (p. 77)• Beispiel 4: Benutzern den Zugriff auf die AWS Data Pipeline-Konsole gewähren (p. 78)

Beispiel 1: Gewähren des Lesezugriffs für Benutzerbasierend auf einem TagDie folgende Richtlinie gestattet Benutzern die Verwendung von AWS Data Pipeline-API-Aktionen, dieLesezugriffe durchführen, allerdings nur bei Pipelines mit dem Tag "environment=production".

Die API-Aktion ListPipelines unterstützt keine Tag-basierte Autorisierung.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:GetPipelineDefinition", "datapipeline:ValidatePipelineDefinition", "datapipeline:QueryObjects" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "datapipeline:Tag/environment": "production" } } }

API-Version 2012-10-2976

Page 84: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeispiel 2: Gewähren des vollständigen

Zugriffs für Benutzer basierend auf einem Tag

]}

Beispiel 2: Gewähren des vollständigen Zugriffs fürBenutzer basierend auf einem TagDie folgende Richtlinie gestattet Benutzern die Verwendung aller AWS Data Pipeline-API-Aktionen mitAusnahme von ListPipelines, allerdings nur bei Pipelines mit dem Tag "environment=test".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "datapipeline:Tag/environment": "test" } } } ]}

Beispiel 3: Gewähren des vollen Zugriffs für Pipeline-EigentümerDie folgende Richtlinie gestattet Benutzern die Verwendung aller AWS Data Pipeline-API-Aktionen,allerdings nur bei ihren eigenen Pipelines.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "datapipeline:PipelineCreator": "${aws:userid}" } } } ]}

API-Version 2012-10-2977

Page 85: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeispiel 4: Benutzern den Zugriff auf dieAWS Data Pipeline-Konsole gewähren

Beispiel 4: Benutzern den Zugriff auf die AWS DataPipeline-Konsole gewährenDie folgende Richtlinie gestattet Benutzern, mit der AWS Data Pipeline-Konsole eine Pipeline zu erstellenund zu verwalten.

Die Richtlinie enthält die Aktion für PassRole-Berechtigungen für spezifische Ressourcen, die an denroleARN gebunden sind, den AWS Data Pipeline benötigt. Weitere Informationen zur identitätsbasiertenPassRole-Berechtigung (IAM) finden Sie im Blog-Beitrag Gewähren von Berechtigungen zum Starten vonEC2-Instances mit IAM-Rollen (PassRole-Berechtigung).

{"Version": "2012-10-17","Statement": [{"Action": ["cloudwatch:*","datapipeline:*","dynamodb:DescribeTable","elasticmapreduce:AddJobFlowSteps","elasticmapreduce:ListInstance*","iam:AddRoleToInstanceProfile","iam:CreateInstanceProfile","iam:GetInstanceProfile","iam:GetRole","iam:GetRolePolicy","iam:ListInstanceProfiles","iam:ListInstanceProfilesForRole","iam:ListRoles","rds:DescribeDBInstances","rds:DescribeDBSecurityGroups","redshift:DescribeClusters","redshift:DescribeClusterSecurityGroups","s3:List*","sns:ListTopics"],"Effect": "Allow","Resource": ["*"]},{"Action": "iam:PassRole","Effect": "Allow","Resource": ["arn:aws:iam::*:role/DataPipelineDefaultResourceRole","arn:aws:iam::*:role/DataPipelineDefaultRole"]}]}

IAM-Rollen für AWS Data PipelineAWS Data Pipeline benötigt IAM-Rollen, um zu bestimmen, welche Aktionen die Pipelines ausführenkönnen und auf welche Ressourcen sie zugreifen dürfen. Außerdem legen IAM-Rollen beim Erstellenvon Ressourcen wie EC2-Instances oder EMR-Clustern durch die Pipeline fest, welche Aktionen dieAnwendungen ausführen und auf welche Ressourcen sie zugreifen können.

API-Version 2012-10-2978

Page 86: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktualisieren vorhandener IAM-

Rollen für AWS Data Pipeline

Die AWS Data Pipeline-Konsole erstellt die folgenden Rollen für Sie:

• DataPipelineDefaultRole – Gewährt AWS Data Pipeline Zugriff auf Ihre AWS-Ressourcen• DataPipelineDefaultResourceRole: Gewährt Anwendungen Zugriff auf AWS-Ressourcen.

Wenn Sie die CLI oder API verwenden und noch keine Pipeline mit der AWS Data Pipeline-Konsole erstellthaben, müssen Sie diese Rollen manuell mit AWS Identity and Access Management (IAM) erstellen.Weitere Informationen finden Sie unter Erstellen der erforderlichen IAM-Rollen (nur für CLI und API) (p. 15).

Alternativ können Sie auch benutzerdefinierte Rollen erstellen. Ein Beispiel für das Definieren dieser Rollenfür ein EmrCluster-Objekt finden Sie unter Festlegen benutzerdefinierter IAM-Rollen (p. 240).

Aktualisieren vorhandener IAM-Rollen für AWS DataPipelineWenn die Rollen DataPipelineDefaultRole und DataPipelineDefaultResourceRole mithilfe vonInlinerichtlinien und nicht von verwalteten Richtlinien erstellt wurden, können sie vom AWS-Kontoinhaberfür die Verwendung verwalteter Richtlinien aktualisiert werden. Nach der Aktualisierung für die Verwendungeiner von AWS verwalteten Richtlinie werden die Rollen künftig automatisch aktualisiert.

Sie können die Rollen DataPipelineDefaultRole und DataPipelineDefaultResourceRole wie nachfolgendbeschrieben aktualisieren.

So aktualisieren Sie vorhandene IAM-Rollen für die Verwendung verwalteter Richtlinien

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.2. Aktualisieren Sie die Rolle DataPipelineDefaultRole wie folgt:

a. Klicken Sie im Navigationsbereich auf Roles und dann auf die Zeile mit der RolleDataPipelineDefaultRole.

b. Klicken Sie unter Permissions für die Inlinerichtlinie auf Remove Policy. Wenn Sie zur Bestätigungaufgefordert werden, klicken Sie auf Remove.

c. Klicken Sie unter Permissions auf Attach Policy.d. Klicken Sie auf der Seite Attach Policy auf das Feld neben der Richtlinie AWSDataPipelineRole

und anschließend auf Attach Policy.3. Aktualisieren Sie die Rolle DataPipelineDefaultResourceRole wie folgt:

a. Klicken Sie im Navigationsbereich auf Roles und dann auf die Zeile mit der RolleDataPipelineDefaultResourceRole.

b. Klicken Sie unter Permissions für die Inlinerichtlinie auf Remove Policy. Wenn Sie zur Bestätigungaufgefordert werden, klicken Sie auf Remove.

c. Klicken Sie unter Permissions auf Attach Policy.d. Klicken Sie auf der Seite Attach Policy auf das Feld neben der Richtlinie

AmazonEC2RoleforDataPipelineRole und anschließend auf Attach Policy.

Wenn Sie die Inlinerichtlinie selbst pflegen möchten, gehen Sie wie folgt vor.

So aktualisieren Sie vorhandene IAM-Rollen für die Verwendung von Inlinerichtlinien

1. Aktualisieren Sie DataPipelineDefaultRole für die Verwendung der folgenden Richtlinie:

{ "Version": "2012-10-17",

API-Version 2012-10-2979

Page 87: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktualisieren vorhandener IAM-

Rollen für AWS Data Pipeline

"Statement": [{ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:DescribeObjects", "datapipeline:EvaluateExpression", "dynamodb:BatchGetItem", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateTable", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteTags", "ec2:Describe*", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:AuthorizeSecurityGroupEgress", "ec2:DeleteSecurityGroup", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DetachNetworkInterface", "elasticmapreduce:*", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListInstanceProfiles", "iam:PassRole", "rds:DescribeDBInstances", "rds:DescribeDBSecurityGroups", "redshift:DescribeClusters", "redshift:DescribeClusterSecurityGroups", "s3:CreateBucket", "s3:DeleteObject", "s3:Get*", "s3:List*", "s3:Put*", "sdb:BatchPutAttributes", "sdb:Select*", "sns:GetTopicAttributes", "sns:ListTopics", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:Delete*", "sqs:GetQueue*", "sqs:PurgeQueue", "sqs:ReceiveMessage" ], "Resource": ["*"] }, { "Effect": "Allow",

API-Version 2012-10-2980

Page 88: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktualisieren vorhandener IAM-

Rollen für AWS Data Pipeline

"Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": ["elasticmapreduce.amazonaws.com","spot.amazonaws.com"] } } }] }

2. Aktualisieren Sie DataPipelineDefaultRole für die Verwendung der folgendenvertrauenswürdigen Entitäten:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "elasticmapreduce.amazonaws.com", "datapipeline.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

3. Aktualisieren Sie DataPipelineDefaultResourceRole für die Verwendung der folgendenRichtlinie:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:Describe*", "elasticmapreduce:ListInstance*", "rds:Describe*", "redshift:DescribeClusters", "redshift:DescribeClusterSecurityGroups", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": ["*"] }]}

4. Aktualisieren Sie DataPipelineDefaultResourceRole für die Verwendung der folgendenvertrauenswürdigen Entitäten:

{ "Version": "2012-10-17", "Statement": [

API-Version 2012-10-2981

Page 89: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÄndern von Rollen bei vorhandenen Pipelines

{ "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

Ändern von Rollen bei vorhandenen PipelinesWenn Sie eine benutzerdefinierte Rolle für eine vorhandene Pipeline verwenden möchten, können Siediese wie folgt in der AWS Data Pipeline-Konsole bearbeiten:

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Wählen Sie die zu bearbeitende Pipeline aus, indem Sie auf deren ID klicken.3. Klicken Sie auf Edit Pipeline.4. Klicken Sie auf die Dropdownliste Others und geben Sie die betreffende Role und Resource Role ein.

API-Version 2012-10-2982

Page 90: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatenverarbeitung mit Amazon EMR mit Hadoop-Streaming

TutorialsDie folgenden Tutorials führen Sie Schritt für Schritt durch die Erstellung und Verwendung von Pipelines mitAWS Data Pipeline.

Tutorials• Datenverarbeitung mit Amazon EMR mit Hadoop-Streaming (p. 83)• DynamoDB-Daten mit AWS Data Pipeline im- und exportieren (p. 91)• CSV-Daten mit AWS Data Pipeline zwischen Amazon S3-Buckets kopieren (p. 100)• Exportieren von MySQL-Daten zu Amazon S3 mithilfe von AWS Data Pipeline (p. 111)• Kopieren von Daten zu Amazon Redshift mit AWS Data Pipeline (p. 122)

Datenverarbeitung mit Amazon EMR mit Hadoop-Streaming

Sie können AWS Data Pipeline verwenden, um Ihre Amazon EMR-Cluster verwalten. Mit AWS DataPipeline können Sie Vorbedingungen definieren, die erfüllt sein müssen, bevor der Cluster gestartet wird(z. B. soll sichergestellt werden, dass die Daten von heute zu Amazon S3 hochgeladen wurden), einenZeitplan für die wiederholte Ausführung des Clusters festlegen und angeben, welche Cluster-Konfigurationverwendet werden soll. Das folgende Tutorial führt Sie durch den Start eines einfachen Clusters.

In diesem Tutorial erstellen Sie eine Pipeline für einen einfachen Amazon EMR-Cluster, die einen bereitsvorhandenen Hadoop-Streaming-Auftrag von Amazon EMR ausführt und nach erfolgreichem Abschließender Aufgabe eine Amazon SNS-Benachrichtigung sendet. Für diese Aufgabe verwenden Sie die vonAmazon EMR bereitgestellte AWS Data Pipeline-Cluster-Ressource. Die Beispielanwendung hat denNamen „WordCount“ und kann auch manuell über die Amazon EMR-Konsole ausgeführt werden. BeachtenSie, dass von AWS Data Pipeline in Ihrem Namen erzeugte Cluster in der Amazon EMR-Konsole angezeigtund Ihrem AWS-Konto in Rechnung gestellt werden.

Pipeline-Objekte

Die Pipeline verwendet die folgenden Objekte:

EmrActivity (p. 176)

Definiert die Arbeit, die in der Pipeline durchgeführt werden soll (Ausführen eines bereits vorhandenenHadoop-Streaming-Auftrags von Amazon EMR).

EmrCluster (p. 237)

Die Ressource, die AWS Data Pipelineum Ausführen dieser Aktivität verwendet.

Ein Cluster ist eine Reihe von Amazon EC2-Instances. AWS Data Pipeline startet den Cluster undbeendet ihn, nachdem die Aufgabe abgeschlossen wurde.

Plan (p. 291)

Startdatum, Uhrzeit und Dauer dieser Aktivität. Sie können optional das Enddatum und die Endzeitangeben.

API-Version 2012-10-2983

Page 91: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBevor Sie beginnen

SnsAlarm (p. 288)

Sendet eine Amazon SNS-Benachrichtigung an das angegebene Thema, nachdem die Aufgabeerfolgreich beendet wurde.

Inhalt• Bevor Sie beginnen (p. 84)• Einen Cluster über die AWS Data Pipeline-Konsole starten (p. 84)• Einen Cluster über die Befehlszeile starten (p. 88)

Bevor Sie beginnenStellen Sie sicher, dass Sie die folgenden Schritte ausgeführt haben.

• Führen Sie die Aufgaben unter Einrichten für AWS Data Pipeline (p. 15) aus.• (Optional) Richten Sie eine VPC für den Cluster und eine Sicherheitsgruppe für die VPC ein. Weitere

Informationen finden Sie unter Starten von Ressourcen für Ihre Pipeline in einer VPC (p. 58).• Erstellen Sie ein Thema zum Senden einer E-Mail-Benachrichtigung und notieren Sie sich das Thema

Amazon-Ressourcenname (ARN). Weitere Informationen dazu erhalten Sie unter Erstellen eines Themasim Amazon Simple Notification Service Handbuch Erste Schritte.

Einen Cluster über die AWS Data Pipeline-KonsolestartenSie können eine Pipeline erstellen, die einen Cluster für die Analyse von Webprotokollen oderwissenschaftlichen Daten startet.

Aufgaben• Erstellen Sie die Pipeline (p. 84)• Ihre Pipeline speichern und validieren (p. 86)• Ihre Pipeline aktivieren (p. 87)• Überwachen der Pipeline-Runs (p. 87)• (Optional) Löschen Ihrer Pipeline (p. 87)

Erstellen Sie die PipelineErstellen Sie zunächst die Pipeline.

So erstellen Sie Ihre Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellen

Region erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

3. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.

API-Version 2012-10-2984

Page 92: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

4. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.5. Für Quelle wählen Sie Bauen mit dem Architekten.6. Wählen Sie unter Schedule den Eintrag on pipeline activation (bei der Pipeline-Aktivierung).7. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unter

S3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.8. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.9. Klicken Sie auf Edit in Architect.

Als nächstes fügen Sie eine Aktivität zu Ihrer Pipeline-Definition hinzu. Damit definieren Sie auch dieweiteren Objekte, die AWS Data Pipeline zum Ausführen dieser Aktivität verwenden muss.

So konfigurieren Sie die Aktivität

1. Klicken Sie auf Aktivität hinzufügen.2. Klicken Sie im Bereich Activities auf:

a. Geben Sie im Feld Name den Namen für die Aktivität ein (z. B. MyEMRActivity).b. Wählen Sie für Typ die Option EmrActivity aus.c. Geben Sie unter Step Folgendes ein:

/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output,s3://example-bucket/wordcount/output/#{@scheduledStartTime},-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate

d. Wählen Sie unter Add an optional field die Option Runs On aus. Legen Sie den Wert auf Createnew: EmrCluster fest.

e. Wählen Sie unter Add an optional field die Option On Success aus. Legen Sie den Wert aufCreate new: Action fest.

Konfigurieren Sie als Nächstes die Ressource, die AWS Data Pipeline zur Ausführung des Amazon EMR-Auftrags verwendet.

So konfigurieren Sie die Ressource

1. Wählen Sie im rechten Bereich Resources aus.

API-Version 2012-10-2985

Page 93: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

2. Geben Sie im Feld Name den Namen für den Amazon EMR-Cluster ein (z. B. MyEMRCluster).3. Belassen Sie den Wert für Type auf EmrCluster.4. [EC2-VPC] (Optional) Wählen Sie unter Add an optional field die Option Subnet Id aus. Legen Sie den

Wert auf die ID des Subnetzes fest.5. (Optional) Wählen Sie unter Add an optional field die Option Enable Debugging aus. Legen Sie den

Wert auf true fest.

Note

Durch diese Option können zusätzliche Kosten für den Protokolldatenspeicher anfallen.Verwenden Sie diese Option selektiv, beispielsweise für Prototypen oder die Fehlerbehebung.

6. (Optional) Wählen Sie im rechten Bereich Others aus. Wählen Sie unter Default von Add an optionalfield die Option Pipeline Log Uri aus. Legen Sie den Wert auf einen Amazon S3-Bucket für die AmazonEMR-Protokolle fest. Beispiel, s3://examples-bucket/emrlogs.

Note

Durch diese Option können zusätzliche Kosten für den Protokolldateispeicher anfallen.Verwenden Sie diese Option selektiv, beispielsweise für Prototypen oder die Fehlerbehebung.

Konfigurieren Sie als nächstes die Amazon SNS-Benachrichtigungsaktion, die AWS Data Pipeline ausführt,nachdem der Amazon EMR-Auftrag erfolgreich abgeschlossen wurde.

So konfigurieren Sie die Benachrichtigungsaktion

1. Klicken Sie im rechten Bereich auf Others.2. Führen Sie im Bereich DefaultAction1 die folgenden Schritte aus:

a. Geben Sie den Namen für Ihre Benachrichtigung ein (z. B. MyEMRJobNotice).b. Auf der Seite Typ, wählen Sie SnsAlarm.c. Geben Sie im Feld Betreff die Betreffzeile für Ihre Benachrichtigung ein.d. Geben Sie im Feld Topic Arn den ARN Ihres Themas ein (siehe Erstellen eines Themas).e. Geben Sie bei Message den Inhalt der Nachricht ein.f. Behalten Sie für Role den Standardwert bei.

Ihre Pipeline speichern und validierenSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlendenWerten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

API-Version 2012-10-2986

Page 94: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Ihre Pipeline aktivierenAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

Überwachen der Pipeline-RunsNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

Überwachung des Fortschritts Ihrer Pipeline-Ausführungen

1. Wählen Sie Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) den planmäßigen Start und das Ende Ihrer Pipeline abdecken, und wählen Sie dannUpdate.

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt. Wenn Sie eine SNS-Benachrichtigung erstellt haben, sollten Sie eine E-Mailüber die erfolgreiche Fertigstellung dieser Aufgabe erhalten.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

(Optional) Löschen Ihrer PipelineUm zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.

API-Version 2012-10-2987

Page 95: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

Einen Cluster über die Befehlszeile startenWenn Sie regelmäßig einen Amazon EMR-Cluster ausführen, um Webprotokolle oder wissenschaftlicheDaten zu analysieren, können Sie AWS Data Pipeline verwenden, um Ihre Amazon EMR-Cluster zuverwalten. Mit AWS Data Pipeline können Sie Vorbedingungen definieren, die erfüllt sein müssen, bevorder Cluster gestartet wird (z. B. soll sichergestellt werden, dass die Daten von heute zu Amazon S3hochgeladen wurden). In diesem Tutorial erfahren Sie, wie Sie einen Cluster als Modell für eine einfacheAmazon EMR-basierte Pipeline oder als Teil einer umfassenderen Pipeline starten.

Voraussetzungen

Bevor Sie die Befehlszeile zum ersten Mal verwenden können, müssen Sie die folgenden Schritteausführen:

1. Installieren und Konfigurieren einer Befehlszeilenschnittstelle (CLI, Command Line Interface). WeitereInformationen finden Sie unter Zugriff auf AWS Data Pipeline (p. 3).

2. Stellen Sie sicher, dass die IAM-Rollen DataPipelineDefaultRole undDataPipelineDefaultResourceRole existieren. Die AWS Data Pipeline-Konsole erstellt diese Rollenautomatisch für Sie. Wenn Sie die AWS Data Pipeline-Konsole nicht mindestens einmal benutzthaben, müssen Sie diese Rollen manuell erstellen. Weitere Informationen finden Sie unter IAM-Rollenfür AWS Data Pipeline (p. 78).

Aufgaben• Erstellen der Pipeline-Definitionsdatei (p. 88)• Hochladen und Aktivieren der Pipeline-Definition (p. 89)• Überwachen der Pipeline-Runs (p. 90)

Erstellen der Pipeline-DefinitionsdateiDer folgende Code ist die Pipeline-Definitionsdatei für einen einfachen Amazon EMR-Cluster, der einenvorhandenen Hadoop-Streaming-Auftrag von Amazon EMR ausführt. Diese Beispielanwendung hat denNamen „WordCount“ und kann auch manuell über die Amazon EMRKonsole ausgeführt werden.

Kopieren Sie diesen Code in eine Textdatei, und speichern Sie sie unterMyEmrPipelineDefinition.json. Sie sollten den Speicherort des Amazon S3-Buckets mit demNamen eines Amazon S3-Buckets ersetzen, den Sie besitzen. Sie sollten auch das Start- und dasEnddatum ersetzen. Um Cluster sofort zu starten, legen Sie startDateTime auf einen Tag früher in derVergangenheit und endDateTime auf einen Tag später in der Zukunft fest. AWS Data Pipeline startetdann die „überfälligen“ Cluster sofort, um den als Problem wahrgenommenen Rückstand an Aufgabenaufzuholen. So müssen Sie nicht eine Stunde warten, bis AWS Data Pipeline den ersten Cluster startet.

{ "objects": [ { "id": "Hourly", "type": "Schedule", "startDateTime": "2012-11-19T07:48:00", "endDateTime": "2012-11-21T07:48:00", "period": "1 hours" }, { "id": "MyCluster", "type": "EmrCluster", "masterInstanceType": "m1.small",

API-Version 2012-10-2988

Page 96: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

"schedule": { "ref": "Hourly" } }, { "id": "MyEmrActivity", "type": "EmrActivity", "schedule": { "ref": "Hourly" }, "runsOn": { "ref": "MyCluster" }, "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output,s3://myawsbucket/wordcount/output/#{@scheduledStartTime},-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate" } ]}

Diese Pipeline hat drei Objekte:

• Hourly, was den Zeitplan für die Arbeit repräsentiert. Sie können einen Zeitplan als eines der Felderfür eine Aktivität festlegen. Wenn Sie das tun, wird die Aktivität gemäß diesem Zeitplan ausgeführt, indiesem Fall stündlich.

• MyCluster, das den Satz von Amazon EC2-Instances repräsentiert, mit denen der Cluster ausgeführtwird. Sie können die Größe und die Anzahl an EC2-Instances festlegen, die als Cluster ausgeführtwerden sollen. Wenn Sie die Anzahl an Instances nicht festlegen, startet der Cluster mit zwei Instances,einem Master-Knoten und einem Aufgabenknoten. Sie können ein Subnetz angeben, in dem der Clustergestartet werden soll. Sie können zusätzliche Konfigurationen zum Cluster hinzufügen, z. B. Bootstrap-Aktionen, um zusätzliche Software auf den von Amazon EMR bereitgestellten AMI zu laden.

• MyEmrActivity stellt die Berechnung dar, die vom Cluster verarbeitet werden soll. Amazon EMRunterstützt verschiedene Typen von Clustern, darunter Streaming, Cascading und Scripted Hive. DasFeld runsOn bezieht sich wieder auf MyCluster und nutzt dies als Spezifikation für das Fundament desClusters.

Hochladen und Aktivieren der Pipeline-DefinitionSie müssen Ihre Pipeline-Definition hochladen und Ihre Pipeline aktivieren. Ersetzen Sie in den folgendenBefehlen pipeline_name durch eine Bezeichnung Ihrer Pipeline, und pipeline_file durch denvollständig qualifizierten Pfad für die .json-Datei mit der Pipeline-Definition.

AWS CLI

Um Ihre Pipeline-Definition zu erstellen und Ihre Pipeline zu aktivieren, verwenden Sie den Befehlcreate-pipeline. Notieren Sie sich die ID Ihrer Pipeline, weil Sie diesen Wert in den meisten CLI-Befehlenbrauchen.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Um Ihre Pipeline-Definition hochzuladen, verwenden Sie den Befehl put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

API-Version 2012-10-2989

Page 97: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

Wenn Ihre Pipeline erfolgreich validiert wurde, ist das Feld validationErrors leer. Etwaige Warnungensollten Sie überprüfen.

Um Ihre Pipeline-Definition zu aktivieren, verwenden Sie den Befehl activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Mit dem Befehl list-pipelines können Sie überprüfen, ob Ihre Pipeline in der Pipeline-Liste aufgeführt ist.

aws datapipeline list-pipelines

Überwachen der Pipeline-RunsSie können von AWS Data Pipeline gestartete Cluster über die Amazon EMR-Konsole und denAusgabeordner über die Amazon S3-Konsole anzeigen.

So überprüfen Sie den Fortschritt der von AWS Data Pipeline gestarteten Cluster

1. Öffnen Sie die Amazon EMR-Konsole.2. Die Namen der von AWS Data Pipeline erzeugten Cluster weisen folgendes Format auf: <pipeline-

identifier>_@<emr-cluster-name>_<launch-time>.

3. Nachdem eine der Ausführungen abgeschlossen wurde, öffnen Sie die Amazon S3-Konsole undprüfen, ob der mit einem Zeitstempel versehene Ausgabeordner vorhanden ist und die erwartetenErgebnisse des Clusters enthält.

API-Version 2012-10-2990

Page 98: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDB-Daten importieren und exportieren

DynamoDB-Daten mit AWS Data Pipeline im- undexportieren

Diese Tutorials zeigen, wie Sie mithilfe von AWS Data Pipeline schemafreie Daten in und aus AmazonDynamoDB verschieben. Schließen Sie den ersten Teil ab, bevor Sie mit dem zweiten Teil fortfahren.

Tutorials• Teil 1: Importieren von Daten in DynamoDB (p. 91)• Teil 2: Exportieren von Daten aus DynamoDB (p. 96)

Teil 1: Importieren von Daten in DynamoDBIm ersten Teil dieses Tutorials wird gezeigt, wie Sie eine AWS Data Pipeline für den Abruf von Daten auseiner tabulatorgetrennten Datei in Amazon S3 zur Ausfüllung einer DynamoDB-Tabelle definieren, dieTransformationsschritte definieren und einen Amazon EMR-Cluster erstellen, um die Aufgabe auszuführen.

Aufgaben• Bevor Sie beginnen (p. 91)• Schritt 1: Erstellen der Pipeline (p. 93)• Schritt 2: Speichern und Überprüfen der Pipeline (p. 94)• Schritt 3: Aktivieren der Pipeline (p. 94)• Schritt 4: Überwachen der Pipeline-Ausführungen (p. 94)• Schritt 5: Überprüfen des Datenimports (p. 95)• Schritt 6: Löschen Ihrer Pipeline (optional) (p. 95)

Bevor Sie beginnenStellen Sie sicher, dass Sie die folgenden Schritte abschließen:

• Führen Sie die Aufgaben unter Einrichten für AWS Data Pipeline (p. 15) aus.• (Optional) Richten Sie eine VPC für den Cluster und eine Sicherheitsgruppe für die VPC ein. Weitere

Informationen finden Sie unter Starten von Ressourcen für Ihre Pipeline in einer VPC (p. 58).• Erstellen Sie ein Thema und abonnieren Sie dieses, um Benachrichtigungen zum Status der Pipeline-

Komponenten von AWS Data Pipeline zu erhalten. Weitere Informationen finden Sie unter Erstellen einesThemas im Handbuch „Erste Schritte” für Amazon Simple Notification Service.

• Erstellen Sie eine DynamoDB-Tabelle zum Speichern von Daten. Weitere Informationen finden Sie unterEine DynamoDB-Tabelle erstellen (p. 92).

Achten Sie auf Folgendes:

• Importe können Daten in Ihrer DynamoDB-Tabelle löschen. Wenn Sie Daten von Amazon S3importieren, kann der Import Einträge in Ihrer DynamoDB-Tabelle überschreiben. Stellen Sie sicher, dassSie die richtigen Daten in die richtige Tabelle importieren. Achten Sie darauf, nicht versehentlich einePipeline mit wiederholten Importen einzurichten, die dieselben Daten mehrfach importiert.

• Exporte können Daten in Ihrem Amazon S3-Bucket löschen. Wenn Sie Daten in Amazon S3 exportieren,überschreiben Sie möglicherweise vorhergehende Importe, wenn Sie in denselben Bucket-Pfadschreiben. Standardmäßig fügt die Vorlage Export DynamoDB to S3 (DynamoDB nach S3 exportieren)

API-Version 2012-10-2991

Page 99: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 1: Importieren von Daten in DynamoDB

die eingeplante Zeit für den Auftrag dem Amazon S3-Bucket-Pfad hinzu. Dies kann Ihnen dabei helfen,dieses Problem zu vermeiden.

• Import- und Export-Aufträge verbrauchen einen Teil der bereitgestellten Durchsatzkapazität IhrerDynamoDB-Tabelle. In diesem Abschnitt wird erläutert, wie mit Amazon EMRein Import- bzw. Export-Auftrag eingeplant wird. Der Amazon EMR-Cluster verbraucht bei Exports Lesekapazität bzw. bei ImportsSchreibkapazität. Mit den Einstellungen yImportJob.myDynamoDBWriteThroughputRatio undMyExportJob.myDynamoDBReadThroughputRatio können Sie den Prozentsatz der bereitgestelltenKapazität steuern, die die Import/Export-Aufträge verbrauchen. Beachten Sie, dass diese Einstellungenzu Beginn des Import/Export-Prozesses festlegen, wie viel Kapazität verbraucht wird, und sich nichtin Echtzeit anpassen, wenn Sie während des Prozesses die für Ihre Tabelle bereitgestellte Kapazitätändern.

• Achten Sie auf die Kosten. AWS Data Pipeline verwaltet den Import/Export-Prozess für Sie, aber Siezahlen weiterhin für die zugrunde liegenden AWS-Services, die verwendet werden. Die Import- undExport-Pipelines erstellen Amazon EMR-Cluster, um Daten zu lesen und zu schreiben, und es entstehenGebühren für jeden Knoten im Cluster pro Instance. Weitere Informationen finden Sie unter AmazonEMR-Preise. Die standardmäßige Cluster-Konfiguration ist ein m1.small instance-Master-Knoten undein m1.xlarge-Instance-Aufgabenknoten, aber Sie können diese Konfiguration innerhalb der Pipeline-Definition ändern. Außerdem entstehen auch für AWS Data Pipeline Gebühren. Weitere Informationenfinden Sie unter AWS Data Pipeline-Preise und Amazon S3-Preise.

• Wenn eine Tabelle für On-Demand-Kapazität konfiguriert ist, ändern Sie die Tabelle wieder aufdie bereitgestellte Kapazität, bevor Sie die Export- oder Import-Vorgänge ausführen. Mit der On-Demand-Kapazität wird der bereitgestellte Durchsatz entfernt und die Pipeline benötigt ein Durchsatz-Verhältnis, um die zu verwendenden Ressourcen aus der DynamoDB-Tabelle zu berechnen. Siekönnen CloudWatch-Metriken dazu verwenden, um die Aggregierung des von der Tabelle verwendetenDurchsatzes auszuwerten und die Durchsatzleistung entsprechend bereitzustellen.

Eine DynamoDB-Tabelle erstellen

Sie können die DynamoDB-Tabelle erstellen, die für dieses Tutorial erforderlich ist. Wenn Sie bereits eineDynamoDB-Tabelle haben, können Sie dieses Erstellungsverfahren überspringen.

Weitere Informationen finden Sie unter Arbeiten mit Tabellen in DynamoDB im Amazon DynamoDB-Entwicklerhandbuch.

Sie erstellen eine DynamoDB-Tabelle wie folgt:

1. Öffnen Sie die DynamoDB-Konsole unter der Adresse https://console.aws.amazon.com/dynamodb/.2. Klicken Sie auf Create Table.3. Geben Sie im Feld Table Name einen eindeutigen Namen für die Tabelle ein.4. Geben Sie im Feld Primary Key: Partition Key die Nummer Id ein.5. Klicken Sie auf Continue, um die optionale Seite Add Indexes zu überspringen.6. Führen Sie auf der Seite Provisioned Throughput Capacity Folgendes aus. Beachten Sie, dass

diese Werte niedrig sind, weil die Beispieldaten einen geringen Umfang haben. Informationen zurBerechnung der erforderlichen Größe für Ihre eigenen Daten finden Sie im Abschnitt BereitgestellterDurchsatz in Amazon DynamoDB im Amazon DynamoDB-Entwicklerhandbuch.

a. Geben Sie in Read Capacity Units den Wert 5 ein.b. Erfassen Sie im Feld Write Capacity Units den Wert 5.c. Klicken Sie auf Weiter.

7. Geben Sie auf der Seite Throughput Alarms Ihre E-Mail-Adresse in das Textfeld Send notification toein und klicken Sie auf Continue.

8. Klicken Sie auf der Seite Review auf Create.

API-Version 2012-10-2992

Page 100: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 1: Importieren von Daten in DynamoDB

Schritt 1: Erstellen der PipelineErstellen Sie zunächst die Pipeline.

So erstellen Sie die Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellen

Region erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

3. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.4. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.5. Wählen Sie bei Source die Option Build using a template aus. Klicken Sie auf die folgende Vorlage:

Import DynamoDB backup data from S3.6. Setzen Sie unter Parameter den Wert für Input S3 folder (S3-Eingabeordner) auf s3://

elasticmapreduce/samples/Store/ProductCatalog, ein Verzeichnis, das dieBeispieldatenquelle enthält, ProductCatalog.txt, und setzen Sie DynamoDB-Tabellenname aufden Namen Ihrer Tabelle.

7. Wählen Sie unter Schedule den Eintrag on pipeline activation (bei der Pipeline-Aktivierung).8. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unter

S3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.9. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.10. Klicken Sie auf Edit in Architect.

Konfigurieren Sie als Nächstes die Amazon SNS-Benachrichtigungsaktionen, die AWS Data Pipeline jenach Ergebnis der Aktivität ausführt.

So konfigurieren Sie erfolgreiche und fehlgeschlagene Aktionen

1. Klicken Sie im rechten Bereich auf Activities.2. Wählen Sie unter Add an optional field die Option On Success aus.3. Legen Sie für das neu hinzugefügte Feld On Success die Option Create new: Action fest.4. Wählen Sie unter Add an optional field die Option On Fail aus.5. Legen Sie für das neu hinzugefügte Feld On Fail die Option Create new: Action fest.6. Klicken Sie im rechten Bereich auf Others.7. Als DefaultAction1 führen Sie Folgendes aus:

a. Ändern Sie den Namen in SuccessSnsAlarm.b. Wählen Sie für Type die Option SnsAlarm aus.c. Geben Sie im Feld Topic Arn (Thema-ARN) den ARN des von Ihnen erstellten Themas ein (siehe

Amazon-Ressourcennamen (ARNs) für Amazon SNS).d. Geben Sie einen Betreff und eine Nachricht ein.

8. Als DefaultAction2 führen Sie Folgendes aus:

a. Ändern Sie den Namen in FailureSnsAlarm.

API-Version 2012-10-2993

Page 101: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 1: Importieren von Daten in DynamoDB

b. Wählen Sie für Type die Option SnsAlarm aus.c. Geben Sie im Feld Topic Arn (Thema-ARN) den ARN des von Ihnen erstellten Themas ein (siehe

Amazon-Ressourcennamen (ARNs) für Amazon SNS).d. Geben Sie einen Betreff und eine Nachricht ein.

Schritt 2: Speichern und Überprüfen der PipelineSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlendenWerten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Schritt 3: Aktivieren der PipelineAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

Schritt 4: Überwachen der Pipeline-AusführungenNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

API-Version 2012-10-2994

Page 102: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 1: Importieren von Daten in DynamoDB

Überwachung des Fortschritts Ihrer Pipeline-Ausführungen

1. Wählen Sie Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.

Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) den planmäßigen Start und das Ende Ihrer Pipeline abdecken, und wählen Sie dannUpdate.

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt. Wenn Sie eine SNS-Benachrichtigung erstellt haben, sollten Sie eine E-Mailüber die erfolgreiche Fertigstellung dieser Aufgabe erhalten.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

Schritt 5: Überprüfen des DatenimportsÜberprüfen Sie als Nächstes, ob der Datenimport erfolgreich war. Untersuchen Sie dazu die Daten in derTabelle mithilfe der DynamoDB-Konsole.

So überprüfen Sie die DynamoDB-Tabelle

1. Öffnen Sie die DynamoDB-Konsole.2. Klicken Sie im Bildschirm Tables auf Ihre DynamoDB-Tabelle und dann auf Explore Table (Tabelle

erkunden).3. Die Spalten, die der Dateneingabedatei entsprechen (z. B. "Id", "Price", "ProductCategory"), sollten

auf der Registerkarte Browse Items angezeigt werden, wie in der folgenden Abbildung gezeigt. Daranerkennen Sie, dass die Importoperation aus der Datei in die DynamoDB-Tabelle erfolgreich war.

Schritt 6: Löschen Ihrer Pipeline (optional)Um zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

API-Version 2012-10-2995

Page 103: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 2: Exportieren von Daten aus DynamoDB

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

Teil 2: Exportieren von Daten aus DynamoDBIn diesem zweiten Teil eines zweiteiligen Tutorials wird gezeigt, wie Sie mehrere AWS-Funktionenkombinieren, um Probleme in der Praxis skalierbar über ein gängiges Szenario zu lösen: Verschieben Sieschemafreie Daten in und aus DynamoDB mithilfe von AWS Data Pipeline.

Aufgaben• Bevor Sie beginnen (p. 96)• Schritt 1: Erstellen der Pipeline (p. 97)• Schritt 2: Speichern und Überprüfen der Pipeline (p. 99)• Schritt 3: Aktivieren der Pipeline (p. 99)• Schritt 4: Überwachen der Pipeline-Ausführungen (p. 99)• Schritt 5: Überprüfen der Datenexportdatei (p. 100)• Schritt 6: Löschen Ihrer Pipeline (optional) (p. 100)

Bevor Sie beginnenSie müssen den ersten Teil dieses Tutorials abgeschlossen haben, damit Ihre DynamoDB-Tabelle die fürdie Schritte in diesem Abschnitt erforderlichen Daten enthält. Weitere Informationen finden Sie unter Teil 1:Importieren von Daten in DynamoDB (p. 91).

Stellen Sie außerdem sicher, dass Sie die folgenden Schritte ausgeführt haben:

• Führen Sie die Aufgaben unter Einrichten für AWS Data Pipeline (p. 15) aus.• Erstellen Sie ein Thema und abonnieren Sie dieses, um Benachrichtigungen von AWS Data Pipeline zum

Status der Pipeline-Komponenten zu erhalten. Weitere Informationen dazu erhalten Sie unter Erstelleneines Themas im Amazon SNS Handbuch "Erste Schritte".

• Stellen Sie sicher, dass Sie über die DynamoDB-Tabelle verfügen, die im ersten Teil dieses Tutorialserstellt und mit Daten aufgefüllt wurde. Diese Tabelle dient im zweiten Teil des Tutorials als Datenquelle.Weitere Informationen finden Sie unter Teil 1: Importieren von Daten in DynamoDB (p. 91).

Achten Sie auf Folgendes:

• Importe können Daten in Ihrer DynamoDB-Tabelle löschen. Wenn Sie Daten von Amazon S3importieren, kann der Import Einträge in Ihrer DynamoDB-Tabelle überschreiben. Stellen Sie sicher, dassSie die richtigen Daten in die richtige Tabelle importieren. Achten Sie darauf, nicht versehentlich einePipeline mit wiederholten Importen einzurichten, die dieselben Daten mehrfach importiert.

• Exporte können Daten in Ihrem Amazon S3-Bucket löschen. Wenn Sie Daten in Amazon S3 exportieren,überschreiben Sie möglicherweise vorhergehende Importe, wenn Sie in denselben Bucket-Pfadschreiben. Standardmäßig fügt die Vorlage Export DynamoDB to S3 (DynamoDB nach S3 exportieren)die eingeplante Zeit für den Auftrag dem Amazon S3-Bucket-Pfad hinzu. Dies kann Ihnen dabei helfen,dieses Problem zu vermeiden.

• Import- und Export-Aufträge verbrauchen einen Teil der bereitgestellten Durchsatzkapazität IhrerDynamoDB-Tabelle. In diesem Abschnitt wird erläutert, wie mit Amazon EMRein Import- bzw. Export-

API-Version 2012-10-2996

Page 104: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 2: Exportieren von Daten aus DynamoDB

Auftrag eingeplant wird. Der Amazon EMR-Cluster verbraucht bei Exports Lesekapazität bzw. bei ImportsSchreibkapazität. Mit den Einstellungen yImportJob.myDynamoDBWriteThroughputRatio undMyExportJob.myDynamoDBReadThroughputRatio können Sie den Prozentsatz der bereitgestelltenKapazität steuern, die die Import/Export-Aufträge verbrauchen. Beachten Sie, dass diese Einstellungenzu Beginn des Import/Export-Prozesses festlegen, wie viel Kapazität verbraucht wird, und sich nichtin Echtzeit anpassen, wenn Sie während des Prozesses die für Ihre Tabelle bereitgestellte Kapazitätändern.

• Achten Sie auf die Kosten. AWS Data Pipeline verwaltet den Import/Export-Prozess für Sie, aber Siezahlen weiterhin für die zugrunde liegenden AWS-Services, die verwendet werden. Die Import- undExport-Pipelines erstellen Amazon EMR-Cluster, um Daten zu lesen und zu schreiben, und es entstehenGebühren für jeden Knoten im Cluster pro Instance. Weitere Informationen finden Sie unter AmazonEMR-Preise. Die standardmäßige Cluster-Konfiguration ist ein m1.small instance-Master-Knoten undein m1.xlarge-Instance-Aufgabenknoten, aber Sie können diese Konfiguration innerhalb der Pipeline-Definition ändern. Außerdem entstehen auch für AWS Data Pipeline Gebühren. Weitere Informationenfinden Sie unter AWS Data Pipeline-Preise und Amazon S3-Preise.

• Wenn eine Tabelle für On-Demand-Kapazität konfiguriert ist, ändern Sie die Tabelle wieder aufdie bereitgestellte Kapazität, bevor Sie die Export- oder Import-Vorgänge ausführen. Mit der On-Demand-Kapazität wird der bereitgestellte Durchsatz entfernt und die Pipeline benötigt ein Durchsatz-Verhältnis, um die zu verwendenden Ressourcen aus der DynamoDB-Tabelle zu berechnen. Siekönnen CloudWatch-Metriken dazu verwenden, um die Aggregierung des von der Tabelle verwendetenDurchsatzes auszuwerten und die Durchsatzleistung entsprechend bereitzustellen.

Schritt 1: Erstellen der PipelineErstellen Sie zunächst die Pipeline.

So erstellen Sie die Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellen

Region erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

3. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.4. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.5. Wählen Sie bei Source die Option Build using a template aus. Klicken Sie auf die folgende Vorlage:

Export DynamoDB table to S3.6. Legen Sie unter Parameters für DynamoDB table name den Namen Ihrer Tabelle fest. Klicken Sie auf

das Ordnersymbol neben Output S3 folder (S3-Ausgabeordner), markieren Sie einen Ihrer AmazonS3-Buckets und wählen Sie dann Select (Auswählen) aus.

7. Wählen Sie unter Schedule den Eintrag on pipeline activation (bei der Pipeline-Aktivierung).8. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unter

S3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.9. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.10. Klicken Sie auf Edit in Architect.

API-Version 2012-10-2997

Page 105: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 2: Exportieren von Daten aus DynamoDB

Konfigurieren Sie als Nächstes die Amazon SNS-Benachrichtigungsaktionen, die AWS Data Pipeline jenach Ergebnis der Aktivität ausführt.

So konfigurieren Sie erfolgreiche, fehlgeschlagene und verspätete Aktionen

1. Klicken Sie im rechten Bereich auf Activities.2. Wählen Sie unter Add an optional field die Option On Success aus.3. Legen Sie für das neu hinzugefügte Feld On Success die Option Create new: Action fest.4. Wählen Sie unter Add an optional field die Option On Fail aus.5. Legen Sie für das neu hinzugefügte Feld On Fail die Option Create new: Action fest.6. Wählen Sie unter Add an optional field die Option On Late Action aus.7. Legen Sie für das neu hinzugefügte Feld On Late Action die Option Create new: Action fest.8. Klicken Sie im rechten Bereich auf Others.9. Als DefaultAction1 führen Sie Folgendes aus:

a. Ändern Sie den Namen in SuccessSnsAlarm.b. Wählen Sie für Type die Option SnsAlarm aus.c. Geben Sie im Feld Topic Arn (Thema ARN) den ARN des von Ihnen erstellten Themas ein. Siehe

Amazon-Ressourcennamen für Amazon SNS.d. Geben Sie einen Betreff und eine Nachricht ein.

10. Als DefaultAction2 führen Sie Folgendes aus:

a. Ändern Sie den Namen in FailureSnsAlarm.b. Wählen Sie für Type die Option SnsAlarm aus.c. Geben Sie im Feld Topic Arn (Thema-ARN) den ARN des von Ihnen erstellten Themas ein (siehe

Amazon-Ressourcennamen (ARNs) für Amazon SNS).d. Geben Sie einen Betreff und eine Nachricht ein.

11. Als DefaultAction3 führen Sie Folgendes aus:

API-Version 2012-10-2998

Page 106: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTeil 2: Exportieren von Daten aus DynamoDB

a. Ändern Sie den Namen in LateSnsAlarm.b. Wählen Sie für Type die Option SnsAlarm aus.c. Geben Sie im Feld Topic Arn (Thema-ARN) den ARN des von Ihnen erstellten Themas ein (siehe

Amazon-Ressourcennamen (ARNs) für Amazon SNS).d. Geben Sie einen Betreff und eine Nachricht ein.

Schritt 2: Speichern und Überprüfen der PipelineSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlendenWerten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Schritt 3: Aktivieren der PipelineAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

Schritt 4: Überwachen der Pipeline-AusführungenNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

API-Version 2012-10-2999

Page 107: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCSV-Daten von Amazon S3 in Amazon S3 kopieren

Überwachung des Fortschritts Ihrer Pipeline-Ausführungen

1. Wählen Sie Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.

Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) den planmäßigen Start und das Ende Ihrer Pipeline abdecken, und wählen Sie dannUpdate.

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt. Wenn Sie eine SNS-Benachrichtigung erstellt haben, sollten Sie eine E-Mailüber die erfolgreiche Fertigstellung dieser Aufgabe erhalten.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

Schritt 5: Überprüfen der DatenexportdateiVergewissern Sie sich als Nächstes, dass der Datenexport erfolgreich ausgeführt wurde, indem Sie sichden Inhalt der Ausgabedatei ansehen.

So sehen Sie sich den Inhalt der Exportdatei an

1. Öffnen Sie die Amazon S3-Konsole.2. Klicken Sie im Bereich Buckets auf den Amazon S3-Bucket, der die Dateiausgabe enthält (die

Beispiel-Pipeline verwendet den Ausgabepfad s3://mybucket/output/MyTable). Öffnen Sie dieAusgabedatei in Ihrem bevorzugten Text-Editor. Der Ausgabedateiname ist ein Bezeichnerwert ohneErweiterung, wie in diesem Beispiel: ae10f955-fb2f-4790-9b11-fbfea01a871e_000000.

3. Zeigen Sie den Inhalt der Ausgabedatei im gewünschten Text-Editor an. Stellen Sie sicher, dass eseine Datendatei gibt, die der DynamoDB-Quelltabelle entspricht. Das Vorhandensein dieser Textdateizeigt, dass die Exportoperation aus DynamoDB in die Ausgabedatei erfolgreich war.

Schritt 6: Löschen Ihrer Pipeline (optional)Um zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

CSV-Daten mit AWS Data Pipeline zwischenAmazon S3-Buckets kopieren

Nachdem Sie Was ist AWS Data Pipeline? (p. 1) gelesen und entschieden haben, dass Sie AWS DataPipeline verwenden möchten, um die Bewegung und Transformation Ihrer Daten zu automatisieren, ist esan der Zeit, mit der Erstellung von Datenpipelines zu beginnen. Um Ihnen die Funktionsweise von AWSData Pipeline näher zu bringen, hier ein Beispiel für eine einfache Aufgabe.

API-Version 2012-10-29100

Page 108: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBevor Sie beginnen

In diesem Tutorial erfahren Sie, wie Sie eine Datenpipeline erstellen, um Daten von einem Amazon S3-Bucket in einen anderen zu kopieren und nachdem die Kopieraktivität erfolgreich abgeschlossen wurde,eine Amazon SNS-Benachrichtigung zu versenden. Sie verwenden eine EC2-Instance, die von AWS DataPipeline für diese Kopieraktivität verwaltet wird.

Pipeline-Objekte

Die Pipeline verwendet die folgenden Objekte:

CopyActivity (p. 171)

Die Aktivität, die AWS Data Pipeline für diese Pipeline durchführt (Kopieren von CSV-Daten von einemAmazon S3-Bucket in einen anderen).

Important

Es gibt Einschränkungen bei der Verwendung des CSV-Dateiformats mit CopyActivity undS3DataNode. Weitere Informationen finden Sie unter CopyActivity (p. 171).

Plan (p. 291)

Das Startdatum, die Uhrzeit und die Wiederholung für diese Aktivität. Sie können optional dasEnddatum und die Endzeit angeben.

Ec2Resource (p. 230)

Die Ressource (eine EC2-Instance), die AWS Data Pipeline verwendet, um diese Aktivitätauszuführen.

S3DataNode (p. 161)

Die Eingabe- und Ausgabeknoten (Amazon S3-Buckets) für diese Pipeline.SnsAlarm (p. 288)

Die Aktion AWS Data Pipeline muss ausgeführt werden, wenn die angegebenen Bedingungenerfüllt sind (Senden von Amazon SNS-Benachrichtigungen zu einem Thema, nachdem die Aufgabeerfolgreich abgeschlossen wurde).

Inhalt• Bevor Sie beginnen (p. 101)• Kopieren von CSV-Daten mithilfe der AWS Data Pipeline-Konsole (p. 102)• CSV-Daten mithilfe der Befehlszeile kopieren (p. 106)

Bevor Sie beginnenStellen Sie sicher, dass Sie die folgenden Schritte ausgeführt haben.

• Führen Sie die Aufgaben unter Einrichten für AWS Data Pipeline (p. 15) aus.• (Optional) Richten Sie eine VPC für die Instance und eine Sicherheitsgruppe für die VPC ein. Weitere

Informationen finden Sie unter Starten von Ressourcen für Ihre Pipeline in einer VPC (p. 58).• Erstellen Sie einen Amazon S3-Bucket als Datenquelle.

Weitere Informationen finden Sie unter Bucket erstellen im Amazon Simple Storage Service HandbuchErste Schritte.

• Laden Sie Ihre Daten in Ihren Amazon S3-Bucket hoch.

Weitere Informationen finden Sie unter Objekte in einen Bucket einfügen im Amazon Simple StorageService Handbuch Erste Schritte.

API-Version 2012-10-29101

Page 109: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

• Erstellen Sie einen weiteren Amazon S3-Bucket als Datenziel.• Erstellen Sie ein Thema zum Senden einer E-Mail-Benachrichtigung und notieren Sie sich das Thema

Amazon-Ressourcenname (ARN). Weitere Informationen finden Sie unter Erstellen eines Themas imHandbuch „Erste Schritte” für Amazon Simple Notification Service.

• (Optional) Dieses Tutorial verwendet die Standard-IAM-Rollenrichtlinien, die von AWS Data Pipelineerstellt wurden. Wenn Sie lieber Ihre eigenen IAM-Rollenrichtlinien und Vertrauensbeziehungen erstellenund konfigurieren möchten, folgen Sie den Anweisungen in IAM-Rollen für AWS Data Pipeline (p. 78).

Kopieren von CSV-Daten mithilfe der AWS DataPipeline-KonsoleSie können Pipelines erstellen und verwenden, um Daten von einem Amazon S3-Bucket in einen anderenzu kopieren.

Aufgaben• Erstellen Sie die Pipeline (p. 102)• Ihre Pipeline speichern und validieren (p. 104)• Ihre Pipeline aktivieren (p. 105)• Überwachen der Pipeline-Runs (p. 105)• (Optional) Löschen Ihrer Pipeline (p. 106)

Erstellen Sie die PipelineErstellen Sie zunächst die Pipeline.

So erstellen Sie die Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellen

Region erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

3. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.4. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.5. Für Quelle wählen Sie Bauen mit dem Architekten.6. Wählen Sie unter Schedule den Eintrag on pipeline activation (bei der Pipeline-Aktivierung).7. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unter

S3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.8. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.9. Klicken Sie auf Edit in Architect.

Als nächstes definieren Sie das Activity-Objekt in Ihrer Pipeline-Definition. Wenn Sie das Activity-Objekt definieren, definieren Sie auch die Objekte, die AWS Data Pipeline zur Ausführung dieser Aktivitätverwenden muss.

API-Version 2012-10-29102

Page 110: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

So konfigurieren Sie die Aktivität für Ihre Pipeline

1. Klicken Sie auf Aktivität hinzufügen.2. Klicken Sie im Bereich Activities auf:

a. Geben Sie im Feld Name einen Namen für die Aktivität ein, z. B. copy-myS3-data.b. Von Typ, wählen Sie CopyActivity.c. Wählen Sie aus Ausgang Neu anlegen: DataNode.d. Wählen Sie aus Plan Neu erstellen: Plan.e. Wählen Sie aus Eingang Neu anlegen: DataNode.f. Wählen Sie auf der Seite "Ein optionales Feld hinzufügen Ausführung auf.g. Wählen Sie in der neu hinzugefügten Betreibt On: Erstellen Sie neue Ressourcen.h. Wählen Sie auf der Seite "Ein optionales Feld hinzufügen Ausführung auf.i. Wählen Sie in der neu hinzugefügten Betreibt On: Neu erstellen: Action.

3. Trennen Sie die Symbole im linken Fensterbereich, indem Sie sie auseinander ziehen. Dies ist einegrafische Darstellung Ihrer Pipeline. Die Pfeile zeigen die Verbindungen zwischen den Objekten an.

Als nächstes konfigurieren Sie die Eingabe- und Ausgabedaten der Knoten für Ihre Pipeline.

So konfigurieren Sie die Eingangs- und Ausgangsdatenknoten für Ihre Pipeline

1. Klicken Sie im rechten Bereich auf DataNodes.API-Version 2012-10-29

103

Page 111: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

2. Bei DefaultDataNode1das Ihre Datenquelle darstellt, führen Sie die folgenden Schritte aus:

a. Geben Sie einen Namen für Ihren Eingangsknoten ein (z. B. MyS3Input).b. Von Typ, wählen Sie S3DataNode.c. Wählen Sie aus PlanIhren Plan aus (z. B. copy-S3data-schedule).d. Wählen Sie auf der Seite "Ein optionales Feld hinzufügen Dateipfad.e. Geben Sie im Feld Dateipfad den Pfad in Amazon S3 für Ihre Datenquelle ein.

3. Bei DefaultDataNode2das Ihre Datenquelle darstellt, führen Sie die folgenden Schritte aus:

a. Geben Sie einen Namen für Ihren Ausgangsknoten ein (z. B. MyS3Output).b. Von Typ, wählen Sie S3DataNode.c. Wählen Sie aus PlanIhren Plan aus (z. B. copy-S3data-schedule).d. Wählen Sie auf der Seite "Ein optionales Feld hinzufügen Dateipfad.e. Geben Sie im Feld Dateipfad den Pfad in Amazon S3 für Ihr Datenziel ein.

Konfigurieren Sie als Nächstes die Ressource, die AWS Data Pipeline zum Durchführen der Kopieraktivitätverwenden muss.

So konfigurieren Sie die Ressource

1. Klicken Sie im rechten Bereich auf Ressourcen.2. Geben Sie einen Namen für Ihre Ressource ein (z. B. CopyDataInstance).3. Von Typ, wählen Sie Ec2Resource.4. Wählen Sie aus PlanIhren Plan aus (z. B. copy-S3data-schedule).5. Lassen Sie Ressourcen-Rolle und Rolle auf ihren Standardwerten.

Wenn Sie Ihre eigenen IAM-Rollen erstellt haben, können Sie diese nach Wunsch auswählen.

Konfigurieren Sie als Nächstes die Amazon SNS-Benachrichtigungsaktion, die AWS Data Pipelineausführen soll, nachdem die Kopieraktivität erfolgreich abgeschlossen wurde.

So konfigurieren Sie die Benachrichtigungsaktion

1. Klicken Sie im rechten Bereich auf Others.2. Führen Sie im Bereich DefaultAction1 die folgenden Schritte aus:

a. Geben Sie einen Namen für Ihren Benachrichtigung ein (z. B. CopyDataNotice).b. Auf der Seite Typ, wählen Sie SnsAlarm.c. Geben Sie im Feld Betreff die Betreffzeile für Ihre Benachrichtigung ein.d. Geben Sie im Feld Topic Arn den ARN Ihres Themas ein.e. Geben Sie im Feld Nachricht den Inhalt der Nachricht ein:f. Lassen Sie Rolle auf dem Standardwert gesetzt.

Ihre Pipeline speichern und validierenSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlendenWerten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

API-Version 2012-10-29104

Page 112: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Ihre Pipeline aktivierenAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

Überwachen der Pipeline-RunsNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

Überwachung des Fortschritts Ihrer Pipeline-Ausführungen

1. Wählen Sie Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.

Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) den planmäßigen Start und das Ende Ihrer Pipeline abdecken, und wählen Sie dannUpdate.

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt. Wenn Sie eine SNS-Benachrichtigung erstellt haben, sollten Sie eine E-Mailüber die erfolgreiche Fertigstellung dieser Aufgabe erhalten.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

API-Version 2012-10-29105

Page 113: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

(Optional) Löschen Ihrer PipelineUm zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

CSV-Daten mithilfe der Befehlszeile kopierenSie können Pipelines erstellen und verwenden, um Daten von einem Amazon S3-Bucket in einen anderenzu kopieren.

Voraussetzungen

Bevor Sie beginnen, müssen Sie die folgenden Schritte ausführen:

1. Installieren und Konfigurieren einer Befehlszeilenschnittstelle (CLI, Command Line Interface). WeitereInformationen finden Sie unter Zugriff auf AWS Data Pipeline (p. 3).

2. Stellen Sie sicher, dass die IAM-Rollen DataPipelineDefaultRole undDataPipelineDefaultResourceRole existieren. Die AWS Data Pipeline-Konsole erstellt diese Rollenautomatisch für Sie. Wenn Sie die AWS Data Pipeline-Konsole nicht mindestens einmal benutzthaben, müssen Sie diese Rollen manuell erstellen. Weitere Informationen finden Sie unter IAM-Rollenfür AWS Data Pipeline (p. 78).

Aufgaben• Definieren Sie eine Pipeline im JSON-Format (p. 106)• Hochladen und Aktivieren der Pipeline-Definition (p. 110)

Definieren Sie eine Pipeline im JSON-FormatDieses Beispielszenario zeigt, wie Sie JSON-Pipeline-Definitionen und die AWS Data Pipeline-CLIverwenden, um das Kopieren von Daten zwischen zwei Amazon S3-Buckets innerhalb eines bestimmtenZeitrahmens zu planen. Dies ist die vollständige Pipeline-Definition-JSON-Datei, gefolgt von einerErläuterung für jeden ihrer Abschnitte.

Note

Wir empfehlen, dass Sie einen Texteditor verwenden, mit dem Sie die Syntax von JSON-formatierten Dateien überprüfen und die Datei mit der Dateierweiterung .json benennen können.

In diesem Beispiel überspringen wir aus Gründen der Übersichtlichkeit die optionalen Felder und zeigen nurerforderliche Felder an. Die vollständige Pipeline-JSON-Datei für dieses Beispiel lautet:

{ "objects": [ { "id": "MySchedule", "type": "Schedule", "startDateTime": "2013-08-18T00:00:00", "endDateTime": "2013-08-19T00:00:00", "period": "1 day" },

API-Version 2012-10-29106

Page 114: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

{ "id": "S3Input", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/source/inputfile.csv" }, { "id": "S3Output", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/destination/outputfile.csv" }, { "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": { "ref": "MySchedule" }, "instanceType": "m1.medium", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "MyCopyActivity", "type": "CopyActivity", "runsOn": { "ref": "MyEC2Resource" }, "input": { "ref": "S3Input" }, "output": { "ref": "S3Output" }, "schedule": { "ref": "MySchedule" } } ]}

PlanDie Pipeline definiert einen Zeitplan mit einem Start- und Enddatum sowie einem Zeitraum, um zubestimmen, wie häufig die Aktivität in dieser Pipeline ausgeführt wird.

{ "id": "MySchedule", "type": "Schedule", "startDateTime": "2013-08-18T00:00:00", "endDateTime": "2013-08-19T00:00:00", "period": "1 day"},

Amazon S3-DatenknotenAls Nächstes definiert die Eingabe-S3DataNode-Pipelinekomponente einen Speicherort für dieEingabedateien; in diesem Fall einen Amazon S3-Bucket-Speicherort. The input S3DataNode component isdefined by the following fields:

API-Version 2012-10-29107

Page 115: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

{ "id": "S3Input", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/source/inputfile.csv"},

Id

Der benutzerdefinierte Name für den Eingabestandort (eine Bezeichnung nur für Ihre Referenz).Typ

Der Pipelinekomponententyp, der „S3DataNode“ heißt und mit dem Speicherort, an dem die Datenabgelegt sind, innerhalb eines Amazon S3-Buckets übereinstimmen muss.

Plan

Ein Verweis auf die Zeitplankomponente, die wir in den vorhergehenden Zeilen der JSON-Datei mitdem Namen "MySchedule" erstellt haben.

Pfad

Der Pfad zu den Daten, die dem Datenknoten zugeordnet sind. Die Syntax für einen Datenknoten wirdvon seinem Typ bestimmt. Beispielsweise folgt die Syntax für einen Amazon S3-Pfad einer anderenSyntax, die für eine Datenbanktabelle geeignet ist.

Als nächstes definiert die Ausgabe-S3DataNode-Komponente den Ausgabezielort für die Daten. Es folgtdem Format, in dem Eingabe S3DataNode Komponente außer den Namen der Komponente und einenanderen Pfad mit dem Ziel-Datei.

{ "id": "S3Output", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/destination/outputfile.csv"},

Ressource

Dies ist eine Definition der Rechenressource, die die Kopieroperation ausführt. In diesem Beispiel sollteAWS Data Pipeline automatisch eine EC2-Instance erstellen, um die Kopieraufgabe auszuführen und dieRessource zu beenden, nachdem die Aufgabe abgeschlossen wurde. Die hier definierten Felder steuerndie Erstellung und Funktion der EC2 Instance, die die Arbeit erledigt. Die EC2Resource ist durch folgendeFelder definiert:

{ "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": { "ref": "MySchedule" }, "instanceType": "m1.medium", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole"

API-Version 2012-10-29108

Page 116: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

},

Id

Der benutzerdefinierte Name für den Pipeline-Zeitplan, der nur für Ihre Referenz gilt.Typ

Die Art der Rechenressource zur Ausführung der Arbeit; in diesem Fall eine EC2 Instance. Es sindandere Ressourcentypen verfügbar, z. B. ein EmrCluster-Typ.

Plan

Der Zeitplan für die Erstellung dieser Rechenressource.instanceType

Die Größe der zu erstellenden EC2 Instance. Stellen Sie sicher, dass Sie die geeignete Größe derEC2-Instance festgelegt haben, die der Last der Arbeit am besten entspricht, die Sie mit AWS DataPipeline durchführen möchten. In diesem Fall setzen wir eine m1.medium EC2 Instance. WeitereInformationen zu den verschiedenen Instance-Typen und deren Verwendung finden Sie im ThemaAmazon EC2-Instance-Typen unter http://aws.amazon.com/ec2/instance-types/.

Rolle

Die IAM-Rolle des Kontos für den Zugriff auf Ressourcen, beispielsweise auf einen Amazon S3-Bucketzum Abrufen von Daten.

resourceRole

Die IAM-Rolle des Kontos, das Ressourcen erstellt, z. B. für Sie eine EC2-Instance erstellt undkonfiguriert. Rolle und ResourceRole können die gleiche Rolle sein, bieten jedoch eine größereGranularität in Ihrer Sicherheitskonfiguration.

Aktivität

Der letzte Abschnitt in der JSON-Datei ist die Definition der Aktivität, die die auszuführende Arbeit darstellt.In diesem Beispiel wird CopyActivity verwendet, um Daten aus einer CSV-Datei in einem Bucketunter http://aws.amazon.com/ec2/instance-types/ in einen anderen zu kopieren. Die CopyActivity-Komponente ist durch folgende Felder definiert:

{ "id": "MyCopyActivity", "type": "CopyActivity", "runsOn": { "ref": "MyEC2Resource" }, "input": { "ref": "S3Input" }, "output": { "ref": "S3Output" }, "schedule": { "ref": "MySchedule" }}

Id

Der benutzerdefinierte Name für die Aktivität, der nur für Ihre Referenz eine Bezeichnung ist.

API-Version 2012-10-29109

Page 117: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

Typ

Die Art der auszuführenden Aktivität, z. B. MyCopyActivity.runsOn

Die Datenverarbeitungsressource, die die Arbeit ausführt, die diese Aktivität definiert. In diesemBeispiel stellen wir einen Verweis auf die zuvor definierte EC2 Instance bereit. Durch die Verwendungdes Felds runsOn wird AWS Data Pipeline veranlasst, die EC2-Instance für Sie zu erstellen. DasFeld runsOn zeigt an, dass die Ressource in der AWS-Infrastruktur vorhanden ist, während derWert workerGroup angibt, dass Sie Ihre eigenen lokalen Ressourcen zur Ausführung der Arbeitverwenden möchten.

Eingabe

Der Speicherort der zu kopierenden Daten.Ausgabe

Die Zielortdaten.Plan

Der Zeitplan für die Ausführung dieser Aktivität.

Hochladen und Aktivieren der Pipeline-DefinitionSie müssen Ihre Pipeline-Definition hochladen und Ihre Pipeline aktivieren. Ersetzen Sie in den folgendenBefehlen pipeline_name durch eine Bezeichnung Ihrer Pipeline, und pipeline_file durch denvollständig qualifizierten Pfad für die .json-Datei mit der Pipeline-Definition.

AWS CLI

Um Ihre Pipeline-Definition zu erstellen und Ihre Pipeline zu aktivieren, verwenden Sie den Befehlcreate-pipeline. Notieren Sie sich die ID Ihrer Pipeline, weil Sie diesen Wert in den meisten CLI-Befehlenbrauchen.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Um Ihre Pipeline-Definition hochzuladen, verwenden Sie den Befehl put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Wenn Ihre Pipeline erfolgreich validiert wurde, ist das Feld validationErrors leer. Etwaige Warnungensollten Sie überprüfen.

Um Ihre Pipeline-Definition zu aktivieren, verwenden Sie den Befehl activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Mit dem Befehl list-pipelines können Sie überprüfen, ob Ihre Pipeline in der Pipeline-Liste aufgeführt ist.

aws datapipeline list-pipelines

API-Version 2012-10-29110

Page 118: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchExportieren von MySQL-Daten zu Amazon S3

Exportieren von MySQL-Daten zu Amazon S3mithilfe von AWS Data Pipeline

In diesem Tutorial erfahren Sie, wie Sie eine Daten-Pipeline erstellen, mit der Sie Daten (Zeilen) auseiner MySQL-Datenbanktabelle in eine CSV-Datei in einem Amazon S3-Bucket kopieren, und nacherfolgreichem Abschließen der Kopieraktion eine Amazon SNS-Benachrichtigung senden. Für dieseKopieraktivität verwenden Sie eine von AWS Data Pipeline bereitgestellte EC2-Instance.

Pipeline-Objekte

Die Pipeline verwendet die folgenden Objekte:

• CopyActivity (p. 171)• Ec2Resource (p. 230)• MySqlDataNode (p. 151)• S3DataNode (p. 161)• SnsAlarm (p. 288)

Inhalt• Bevor Sie beginnen (p. 111)• Kopieren von MySQL-Daten über die AWS Data Pipeline-Konsole (p. 112)• MySQL-Daten über die Befehlszeile kopieren (p. 115)

Bevor Sie beginnenStellen Sie sicher, dass Sie die folgenden Schritte ausgeführt haben.

• Führen Sie die Aufgaben unter Einrichten für AWS Data Pipeline (p. 15) aus.• (Optional) Richten Sie eine VPC für die Instance und eine Sicherheitsgruppe für die VPC ein. Weitere

Informationen finden Sie unter Starten von Ressourcen für Ihre Pipeline in einer VPC (p. 58).• Erstellen Sie einen Amazon S3-Bucket als Datenausgabe.

Weitere Informationen finden Sie unter Bucket erstellen im Amazon Simple Storage Service HandbuchErste Schritte.

• Erstellen und starten Sie eine MySQL-Datenbank-Instance als Datenquelle.

Weitere Informationen finden Sie unter Starten einer DB-Instance im Amazon RDS Getting StartedGuide. Wenn Sie eine Amazon RDS-Instance haben, lesen Sie Erstellen einer Tabelle in der MySQL-Dokumentation.

Note

Notieren Sie sich den Benutzernamen und das Passwort, das Sie beim Erstellen der MySQL-Instance verwendet haben. Nachdem Sie Ihre MySQL-Datenbank-Instance gestartet haben,notieren Sie sich den Endpunkt der Instance. Sie benötigen diese Informationen später wieder.

• Stellen Sie eine Verbindung mit der MySQL-Datenbank-Instance her, erstellen Sie eine Tabelle undfügen Sie die Testdatenwerte zur neu erstellten Tabelle hinzu.

Zur Verdeutlichung und Unterstützung haben wir dieses Tutorial erstellt, mit einer MySQL-Tabellemit der folgenden Konfiguration und Beispieldaten. Der folgende Screenshot stammt von MySQLWorkbench 5.2 CE:

API-Version 2012-10-29111

Page 119: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

Weitere Informationen finden Sie unter Erstellen einer Tabelle in der MySQL-Dokumentation und auf derMySQL Workbench-Produktseite.

• Erstellen Sie ein Thema zum Senden einer E-Mail-Benachrichtigung und notieren Sie sich das ThemaAmazon-Ressourcenname (ARN). Weitere Informationen finden Sie unter Erstellen eines Themas imHandbuch „Erste Schritte” für Amazon Simple Notification Service.

• (Optional) Dieses Tutorial verwendet die Standard-IAM-Rollenrichtlinien, die von AWS Data Pipelineerstellt wurden. Wenn Sie eigene IAM-Rollenrichtlinien und -Vertrauensstellungen erstellen undkonfigurieren möchten, folgen Sie den Anweisungen unter IAM-Rollen für AWS Data Pipeline (p. 78).

Kopieren von MySQL-Daten über die AWS DataPipeline-KonsoleSie können eine Pipeline erstellen, um Daten aus einer MySQL-Tabelle in eine Datei in einem Amazon S3-Bucket zu kopieren.

Aufgaben• Erstellen Sie die Pipeline (p. 112)• Ihre Pipeline speichern und validieren (p. 114)• Verifizieren Ihrer Pipeline-Definition (p. 114)• Ihre Pipeline aktivieren (p. 115)• Überwachen der Pipeline-Runs (p. 115)• (Optional) Löschen Ihrer Pipeline (p. 115)

Erstellen Sie die PipelineErstellen Sie zunächst die Pipeline. Die Pipeline muss in derselben Region erstellt werden wie Ihre RDS-Ziel-Instance.

So erstellen Sie Ihre Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellen

Region erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

API-Version 2012-10-29112

Page 120: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

3. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.4. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.5. Wählen Sie bei Source die Option Build using a template aus. Klicken Sie auf die folgende Vorlage:

Full copy of RDS MySQL table to S3.6. Nach der Auswahl der Vorlage öffnet sich der Abschnitt Parameters. Gehen Sie hier wie folgt vor:

a. Geben Sie bei DBInstance ID den DB-Instance-Namen der Aurora-DB-Instance an, mit der SieDaten aus dem Aurora-Cluster kopieren möchten.

Informationen zum Auffinden der Endpunktdetails für Ihre DB-Instance finden Sie unter Verbindenmit einer DB-Instance auf einer MySQL-Datenbank-Engine im Amazon RDS-Benutzerhandbuch.

b. Geben Sie bei RDS MySQL username den Benutzernamen ein, den Sie beim Erstellen derMySQL-DB-Instance verwendet haben.

c. Geben Sie im Feld RDS MySQL password das Passwort ein, das Sie beim Erstellen der DB-Instance verwendet haben.

d. Geben Sie im Feld EC2 instance type den Instance-Typ für Ihre EC2 Instance ein.e. Klicken Sie neben Output S3 folder auf das Ordnersymbol, wählen Sie einen Ihrer Buckets oder

Ordner aus und klicken Sie anschließend auf Select.7. Wählen Sie unter Schedule den Eintrag on pipeline activation (bei der Pipeline-Aktivierung).8. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unter

S3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.9. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.10. Klicken Sie auf Edit in Architect.11. Trennen Sie die Symbole im linken Fensterbereich, indem Sie sie auseinander ziehen. Dies ist eine

grafische Darstellung Ihrer Pipeline. Die Pfeile zeigen die Verbindungen zwischen den Objekten an.

Als Nächstes konfigurieren Sie die Einstellung für den Datenbanknamen, die derzeit nicht in derverfügbaren Vorlage vorhanden ist.

1. Klicken Sie im linken Bereich auf RDSDatabase.2. Wählen Sie im rechten Bereich unterhalb des RDS-MySQL-Abschnitts für Add an optional field... die

Option Database Name aus.3. Geben Sie unter Database Name den Namen Ihrer Zieldatenbank ein und fügen Sie optionale Felder

hinzu.

Sie können die Amazon SNS-Benachrichtigungsaktion konfigurieren, die AWS Data Pipeline nach demerfolgreichen Abschluss der Kopieraktivität durchführt.

So konfigurieren Sie die Amazon SNS-Benachrichtigungsaktion

1. Klicken Sie im rechten Bereich auf Activities.2. Wählen Sie unter Add an optional field die Option On Success aus.

API-Version 2012-10-29113

Page 121: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

3. Legen Sie für das neu hinzugefügte Feld On Success die Option Create new: Action fest.4. Klicken Sie im rechten Bereich auf Others.5. Führen Sie im Bereich DefaultAction1 die folgenden Schritte aus:

a. Geben Sie einen Namen für Ihren Benachrichtigung ein (z. B. CopyDataNotice).b. Auf der Seite Typ, wählen Sie SnsAlarm.c. Geben Sie im Feld Nachricht den Inhalt der Nachricht ein:d. Geben Sie im Feld Betreff die Betreffzeile für Ihre Benachrichtigung ein.e. Geben Sie im Feld Topic Arn den ARN Ihres Themas ein.f. Lassen Sie Rolle auf dem Standardwert gesetzt.

Ihre Pipeline speichern und validierenSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlendenWerten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Verifizieren Ihrer Pipeline-DefinitionSie müssen unbedingt sicherstellen, dass Ihre Pipeline aus Ihren Definitionen korrekt initialisiert wurde,bevor Sie sie aktivieren.

Verifizieren Ihrer Pipeline-Definition

1. Suchen Sie auf der Seite List Pipelines nach Ihrer neu erstellten Pipeline.

AWS Data Pipeline hat eine eindeutige Pipeline ID für Ihre Pipeline-Definition erstellt.

In der Spalte Schedule State der Zeile, in der Ihre Pipeline aufgelistet ist, sollte PENDING stehen.2. Wählen Sie das Dreieckssymbol neben Ihrer Pipeline aus. Die Details Ihrer Pipeline-Ausführungen

werden in einem zusammenfassenden Feld darunter angezeigt. Ihre Pipeline ist noch nicht aktiviert,deshalb sehen Sie wahrscheinlich noch keine Ausführungsdetails. Sie sehen jedoch die Konfigurationder Pipeline-Definition.

API-Version 2012-10-29114

Page 122: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

Ihre Pipeline aktivierenAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

Überwachen der Pipeline-RunsNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

Überwachung des Fortschritts Ihrer Pipeline-Ausführungen

1. Wählen Sie Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.

Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) den planmäßigen Start und das Ende Ihrer Pipeline abdecken, und wählen Sie dannUpdate.

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt. Wenn Sie eine SNS-Benachrichtigung erstellt haben, sollten Sie eine E-Mailüber die erfolgreiche Fertigstellung dieser Aufgabe erhalten.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

(Optional) Löschen Ihrer PipelineUm zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

MySQL-Daten über die Befehlszeile kopierenSie können eine Pipeline erstellen, um Daten aus einer MySQL-Tabelle in eine Datei in einem Amazon S3-Bucket zu kopieren.

API-Version 2012-10-29115

Page 123: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

Voraussetzungen

Bevor Sie beginnen, müssen Sie die folgenden Schritte ausführen:

1. Installieren und Konfigurieren einer Befehlszeilenschnittstelle (CLI, Command Line Interface). WeitereInformationen finden Sie unter Zugriff auf AWS Data Pipeline (p. 3).

2. Stellen Sie sicher, dass die IAM-Rollen DataPipelineDefaultRole undDataPipelineDefaultResourceRole existieren. Die AWS Data Pipeline-Konsole erstellt diese Rollenautomatisch für Sie. Wenn Sie die AWS Data Pipeline-Konsole nicht mindestens einmal benutzthaben, müssen Sie diese Rollen manuell erstellen. Weitere Informationen finden Sie unter IAM-Rollenfür AWS Data Pipeline (p. 78).

3. Richten Sie einen Amazon S3-Bucket und eine Amazon RDS-Instance ein. Weitere Informationenfinden Sie unter Bevor Sie beginnen (p. 111).

Aufgaben• Definieren Sie eine Pipeline im JSON-Format (p. 116)• Hochladen und Aktivieren der Pipeline-Definition (p. 121)

Definieren Sie eine Pipeline im JSON-FormatDieses Beispiel zeigt, wie Sie mit JSON-Pipeline-Definitionen und der AWS Data Pipeline-CLI nach einemvorgegebenen Zeitintervall Daten (Zeilen) aus einer Tabelle in einer MySQL-Datenbank in eine CSV-Dateiin einem Amazon S3-Bucket kopieren können.

Dies ist die vollständige Pipeline-Definition-JSON-Datei, gefolgt von einer Erläuterung für jeden ihrerAbschnitte.

Note

Wir empfehlen, dass Sie einen Texteditor verwenden, mit dem Sie die Syntax von JSON-formatierten Dateien überprüfen und die Datei mit der Dateierweiterung .json benennen können.

{ "objects": [ { "id": "ScheduleId113", "startDateTime": "2013-08-26T00:00:00", "name": "My Copy Schedule", "type": "Schedule", "period": "1 Days" }, { "id": "CopyActivityId112", "input": { "ref": "MySqlDataNodeId115" }, "schedule": { "ref": "ScheduleId113" }, "name": "My Copy", "runsOn": { "ref": "Ec2ResourceId116" }, "onSuccess": { "ref": "ActionId1" }, "onFail": { "ref": "SnsAlarmId117"

API-Version 2012-10-29116

Page 124: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

}, "output": { "ref": "S3DataNodeId114" }, "type": "CopyActivity" }, { "id": "S3DataNodeId114", "schedule": { "ref": "ScheduleId113" }, "filePath": "s3://example-bucket/rds-output/output.csv", "name": "My S3 Data", "type": "S3DataNode" }, { "id": "MySqlDataNodeId115", "username": "my-username", "schedule": { "ref": "ScheduleId113" }, "name": "My RDS Data", "*password": "my-password", "table": "table-name", "connectionString": "jdbc:mysql://your-sql-instance-name.id.region-name.rds.amazonaws.com:3306/database-name", "selectQuery": "select * from #{table}", "type": "SqlDataNode" }, { "id": "Ec2ResourceId116", "schedule": { "ref": "ScheduleId113" }, "name": "My EC2 Resource", "role": "DataPipelineDefaultRole", "type": "Ec2Resource", "resourceRole": "DataPipelineDefaultResourceRole" }, { "message": "This is a success message.", "id": "ActionId1", "subject": "RDS to S3 copy succeeded!", "name": "My Success Alarm", "role": "DataPipelineDefaultRole", "topicArn": "arn:aws:sns:us-east-1:123456789012:example-topic", "type": "SnsAlarm" }, { "id": "Default", "scheduleType": "timeseries", "failureAndRerunMode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "message": "There was a problem executing #{node.name} at for period #{node.@scheduledStartTime} to #{node.@scheduledEndTime}", "id": "SnsAlarmId117", "subject": "RDS to S3 copy failed", "name": "My Failure Alarm", "role": "DataPipelineDefaultRole", "topicArn": "arn:aws:sns:us-east-1:123456789012:example-topic", "type": "SnsAlarm" }

API-Version 2012-10-29117

Page 125: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

]}

MySQL-Datenknoten

Die MySqlDataNode-Pipeline-Eingabekomponente definiert einen Speicherort für die Eingabedaten, indiesem Fall eine Amazon RDS-Instance. Die Eingabe-MySqlDataNode-Komponente wird durch folgendeFelder definiert:

{ "id": "MySqlDataNodeId115", "username": "my-username", "schedule": { "ref": "ScheduleId113" }, "name": "My RDS Data", "*password": "my-password", "table": "table-name", "connectionString": "jdbc:mysql://your-sql-instance-name.id.region-name.rds.amazonaws.com:3306/database-name", "selectQuery": "select * from #{table}", "type": "SqlDataNode"},

Id

Den benutzerdefinierten Namen, der nur als Referenz dient.Benutzername

Der Benutzername des Datenbank-Kontos, das über ausreichend Berechtigungen verfügt, umDaten aus der Datenbanktabelle abzurufen. Ersetzen Sie my-username durch den Namen IhresBenutzerkontos.

Plan

Ein Verweis auf die Zeitplankomponente, die wir in den vorhergehenden Zeilen der JSON-Datei erstellthaben.

Name

Den benutzerdefinierten Namen, der nur als Referenz dient.*Passwort

Das Passwort für das Datenbankkonto mit dem Sternchen-Präfix, das darauf hinweist, dass AWSData Pipeline den Passwortwert verschlüsseln muss. Ersetzen Sie my-password durch das richtigePasswort für Ihr Benutzerkonto. Dem Passwortfeld ist das Sternchen-Sonderzeichen vorangestellt.Weitere Informationen finden Sie unter Sonderzeichen (p. 144).

Tabelle

Der Name der Datenbanktabelle, die die zu kopierenden Daten enthält. Ersetzen Sie table-namedurch den Namen Ihrer Datenbanktabelle.

connectionString

Die JDBC-Verbindungszeichenfolge für das CopyActivity-Objekt, um eine Verbindung mit derDatenbank herzustellen.

selectQuery

Eine gültige SQL-SELECT-Abfrage, die festlegt, welche Daten aus der Datenbanktabellekopiert werden sollen. Beachten Sie, dass #{table} ein Ausdruck ist, der den Tabellennamen

API-Version 2012-10-29118

Page 126: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

wiederverwendet, der in den vorhergehenden Zeilen der JSON-Datei durch die Variable "table"angegeben wird.

Typ

Der SqlDataNode-Typ; dieser ist eine Amazon RDS-Instance, die in diesem Beispiel MySQL nutzt.

Note

Der MySqlDataNode-Typ ist veraltet. Sie können MySqlDataNode zwar nach wie vorverwenden, doch wir empfehlen, stattdessen SqlDataNode zu nutzen.

Amazon S3-Datenknoten

Als Nächstes definiert die S3Output-Pipelinekomponente einen Speicherort für die Ausgabedatei, in diesemFall eine CSV-Datei an einem Amazon S3-Bucket-Speicherort. Die Ausgabe-S3DataNode-Komponentewird durch folgende Felder definiert:

{ "id": "S3DataNodeId114", "schedule": { "ref": "ScheduleId113" }, "filePath": "s3://example-bucket/rds-output/output.csv", "name": "My S3 Data", "type": "S3DataNode"},

Id

Die benutzerdefinierte ID, die nur als Referenz dient.Plan

Ein Verweis auf die Zeitplankomponente, die wir in den vorhergehenden Zeilen der JSON-Datei erstellthaben.

filePath

Den Pfad zu den Daten, die mit dem Datenknoten verknüpft sind, der in diesem Beispiel eine CSV-Ausgabedatei ist.

Name

Den benutzerdefinierten Namen, der nur als Referenz dient.Typ

Den Pipeline-Objekttyp, der ein mit dem Speicherort der Daten übereinstimmender S3DataNode ist, ineinem Amazon S3-Bucket.

Ressource

Dies ist eine Definition der Rechenressource, die die Kopieroperation ausführt. In diesem Beispiel sollteAWS Data Pipeline automatisch eine EC2-Instance erstellen, um die Kopieraufgabe auszuführen und dieRessource zu beenden, nachdem die Aufgabe abgeschlossen wurde. Die hier definierten Felder steuerndie Erstellung und Funktion der EC2 Instance, die die Arbeit erledigt. Die EC2Resource ist durch folgendeFelder definiert:

{

API-Version 2012-10-29119

Page 127: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

"id": "Ec2ResourceId116", "schedule": { "ref": "ScheduleId113" }, "name": "My EC2 Resource", "role": "DataPipelineDefaultRole", "type": "Ec2Resource", "resourceRole": "DataPipelineDefaultResourceRole"},

Id

Die benutzerdefinierte ID, die nur als Referenz dient.Plan

Der Zeitplan für die Erstellung dieser Rechenressource.Name

Den benutzerdefinierten Namen, der nur als Referenz dient.Rolle

Die IAM-Rolle des Kontos für den Zugriff auf Ressourcen, beispielsweise auf einen Amazon S3-Bucketzum Abrufen von Daten.

Typ

Die Art der Rechenressource zur Ausführung der Arbeit; in diesem Fall eine EC2 Instance. Es sindandere Ressourcentypen verfügbar, z. B. ein EmrCluster-Typ.

resourceRole

Die IAM-Rolle des Kontos, das Ressourcen erstellt, z. B. für Sie eine EC2-Instance erstellt undkonfiguriert. Rolle und ResourceRole können die gleiche Rolle sein, bieten jedoch eine größereGranularität in Ihrer Sicherheitskonfiguration.

Aktivität

Der letzte Abschnitt in der JSON-Datei ist die Definition der Aktivität, die die auszuführende Arbeit darstellt.In diesem Fall verwenden wir eine CopyActivity-Komponente, um Daten aus einer Datei in einem AmazonS3-Bucket in eine andere Datei zu kopieren. Die CopyActivity-Komponente wird durch folgende Felderdefiniert:

{ "id": "CopyActivityId112", "input": { "ref": "MySqlDataNodeId115" }, "schedule": { "ref": "ScheduleId113" }, "name": "My Copy", "runsOn": { "ref": "Ec2ResourceId116" }, "onSuccess": { "ref": "ActionId1" }, "onFail": { "ref": "SnsAlarmId117" },

API-Version 2012-10-29120

Page 128: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

"output": { "ref": "S3DataNodeId114" }, "type": "CopyActivity"},

Id

Die benutzerdefinierte ID, die nur als Referenz dientEingabe

Den Speicherort der zu kopierenden MySQL-DatenPlan

Den Zeitplan für die Ausführung dieser AktivitätName

Den benutzerdefinierten Namen, der nur als Referenz dientrunsOn

Die Datenverarbeitungsressource, die die Arbeit ausführt, die diese Aktivität definiert. In diesemBeispiel stellen wir einen Verweis auf die zuvor definierte EC2 Instance bereit. Durch die Verwendungdes Felds runsOn wird AWS Data Pipeline veranlasst, die EC2-Instance für Sie zu erstellen. DasFeld runsOn zeigt an, dass die Ressource in der AWS-Infrastruktur vorhanden ist, während der WertworkerGroup angibt, dass Sie Ihre eigenen lokalen Ressourcen zur Ausführung der Arbeit verwendenmöchten.

onSuccess

Den SnsAlarm (p. 288), der versendet werden soll, wenn die Aktivität erfolgreich abgeschlossenwurde.

onFail

Den SnsAlarm (p. 288), der versendet werden soll, wenn die Aktivität fehlschlägt.Ausgabe

Der Amazon S3-Speicherort der CSV-AusgabedateiTyp

Den Typ der Aktivität, die durchgeführt werden soll.

Hochladen und Aktivieren der Pipeline-DefinitionSie müssen Ihre Pipeline-Definition hochladen und Ihre Pipeline aktivieren. Ersetzen Sie in den folgendenBefehlen pipeline_name durch eine Bezeichnung Ihrer Pipeline, und pipeline_file durch denvollständig qualifizierten Pfad für die .json-Datei mit der Pipeline-Definition.

AWS CLI

Um Ihre Pipeline-Definition zu erstellen und Ihre Pipeline zu aktivieren, verwenden Sie den Befehlcreate-pipeline. Notieren Sie sich die ID Ihrer Pipeline, weil Sie diesen Wert in den meisten CLI-Befehlenbrauchen.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{

API-Version 2012-10-29121

Page 129: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchKopieren von Daten zu Amazon Redshift

"pipelineId": "df-00627471SOVYZEXAMPLE"}

Um Ihre Pipeline-Definition hochzuladen, verwenden Sie den Befehl put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Wenn Ihre Pipeline erfolgreich validiert wurde, ist das Feld validationErrors leer. Etwaige Warnungensollten Sie überprüfen.

Um Ihre Pipeline-Definition zu aktivieren, verwenden Sie den Befehl activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Mit dem Befehl list-pipelines können Sie überprüfen, ob Ihre Pipeline in der Pipeline-Liste aufgeführt ist.

aws datapipeline list-pipelines

Kopieren von Daten zu Amazon Redshift mit AWSData Pipeline

In diesem Tutorial erfahren Sie, wie Sie eine Pipeline erstellen, mit der Sie regelmäßig Daten aus AmazonS3 zu Amazon Redshift verschieben können; entweder über die Vorlage Copy to Redshift (Zu Redshiftkopieren) in der AWS Data Pipeline-Konsole oder mit einer Pipeline-Definitionsdatei über die AWS DataPipeline-Befehlszeile.

Amazon S3 ist ein Webservice, mit dem Sie Daten in der Cloud speichern können. Weitere Informationenhierzu finden Sie unter Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

Amazon Redshift ist ein Data-Warehouse-Service in der Cloud. Weitere Informationen hierzu finden Sieunter Amazon Redshift Cluster Management Guide.

Für dieses Tutorial gibt es mehrere Voraussetzungen. Nachdem Sie die folgenden Schritte ausgeführthaben, können Sie das Tutorial über die Konsole oder die Befehlszeile fortsetzen.

Inhalt• Bevor Sie beginnen: Konfigurieren Sie COPY-Optionen und laden Sie Daten (p. 122)• Einrichten einer Pipeline, Erstellen einer Sicherheitsgruppe und Erstellen eines Amazon Redshift-

Clusters (p. 123)• Daten zu Amazon Redshift über die AWS Data Pipeline-Konsole kopieren (p. 124)• Daten über die Befehlszeile zu Amazon Redshift kopieren (p. 127)

Bevor Sie beginnen: Konfigurieren Sie COPY-Optionen und laden Sie DatenStellen Sie vor dem Kopieren von Daten zu Amazon Redshift innerhalb von AWS Data Pipeline sicher,dass Sie:

API-Version 2012-10-29122

Page 130: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBevor Sie beginnen: Einrichten von

Pipeline, Sicherheit und Cluster

• Daten aus Amazon S3 laden.• Die COPY-Aktivität in Amazon Redshift einrichten.

Wenn Sie diese Optionen aktiviert und erfolgreich Daten geladen haben, übertragen Sie diese Optionen inAWS Data Pipeline, um den Kopiervorgang darin auszuführen.

Weitere Informationen über die COPY-Optionen finden Sie unter COPY im Amazon RedshiftDatenbankentwicklerhandbuch.

Informationen zu den Schritten für das Laden von Daten aus Amazon S3 finden Sie unter Laden von Datenaus Amazon S3 im Amazon Redshift Datenbankentwicklerhandbuch.

Beispielsweise erstellt der folgende SQL-Befehl in Amazon Redshift eine neue Tabelle mit dem NamenLISTING und kopiert Beispieldaten aus einem öffentlich verfügbaren Bucket in Amazon S3.

Ersetzen Sie den <iam-role-arn> und die Region durch Ihre eigenen Werte.

Weitere Informationen zu diesem Beispiel finden Sie unter Laden von Beispieldaten aus Amazon S3 imAmazon Redshift Handbuch Erste Schritte.

create table listing( listid integer not null distkey, sellerid integer not null, eventid integer not null, dateid smallint not null sortkey, numtickets smallint not null, priceperticket decimal(8,2), totalprice decimal(8,2), listtime timestamp);

copy listing from 's3://awssampledbuswest2/tickit/listings_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region 'us-west-2';

Einrichten einer Pipeline, Erstellen einerSicherheitsgruppe und Erstellen eines AmazonRedshift-ClustersSo richten Sie Ihr System für das Tutorial ein

1. Führen Sie die Aufgaben unter Einrichten für AWS Data Pipeline (p. 15) aus.2. Erstellen einer Sicherheitsgruppe.

a. Öffnen Sie die Amazon EC2-Konsole.b. Klicken Sie im Navigationsbereich auf Security Groups.c. Klicken Sie auf Create Security Group.d. Geben Sie einen Namen und eine Beschreibung für die Sicherheitsgruppe an.e. [EC2-Classic] Wählen Sie für VPC No VPC aus.f. [EC2-VPC] Wählen Sie für VPC die ID Ihres VPC aus.g. Klicken Sie auf Create.

3. [EC2-Classic] Erstellen Sie eine Amazon Redshift-Cluster-Sicherheitsgruppe und geben Sie dieAmazon EC2-Sicherheitsgruppe an.

a. Öffnen Sie die Amazon Redshift-Konsole.

API-Version 2012-10-29123

Page 131: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

b. Klicken Sie im Navigationsbereich auf Security Groups.c. Klicken Sie auf Create Cluster Security Group.d. Geben Sie im Dialogfeld Create Cluster Security Group einen Namen und eine Beschreibung für

die Cluster-Sicherheitsgruppe an.e. Klicken Sie auf den Namen der neuen Cluster-Sicherheitsgruppe.f. Klicken Sie auf Add Connection Type.g. Wählen Sie im Dialogfeld Add Connection Type die Option EC2 Security Group unter Connection

Type aus, wählen Sie die Sicherheitsgruppe aus, die Sie von EC2 Security Group Name erstellthaben, und klicken Sie dann auf Authorize.

4. [EC2-VPC] Erstellen Sie eine Amazon Redshift-Cluster-Sicherheitsgruppe und geben Sie die VPC-Sicherheitsgruppe an.

a. Öffnen Sie die Amazon EC2-Konsole.b. Klicken Sie im Navigationsbereich auf Security Groups.c. Klicken Sie auf Create Security Group.d. Geben Sie im Dialogfeld Create Security Group einen Namen und eine Beschreibung für die

Sicherheitsgruppe an und wählen Sie für VPC die ID Ihres VPC aus.e. Klicken Sie auf Add Rule. Geben Sie den Typ, das Protokoll und den Portbereich an und geben

Sie die ID der Sicherheitsgruppe in Source ein. Wählen Sie die Sicherheitsgruppe aus, die Sie imzweiten Schritt erstellt haben.

f. Klicken Sie auf Create.5. Nachfolgend finden Sie eine kurze Zusammenfassung der Schritte.

Wenn Sie bereits einen Amazon Redshift-Cluster haben, notieren Sie die Cluster-ID.

Um einen neuen Cluster zu erstellen und Beispieldaten zu laden, befolgen Sie die Schritte inErsteSchritte mit Amazon Redshift. Weitere Informationen über das Erstellen von Clustern finden Sie unterErstellen eines Clusters im Amazon Redshift Cluster Management Guide.

a. Öffnen Sie die Amazon Redshift-Konsole.b. Klicken Sie auf Launch Cluster.c. Geben Sie die erforderlichen Details für Ihren Cluster an und klicken Sie dann auf Continue.d. Geben Sie die Knotenkonfiguration an und klicken Sie dann auf Continue.e. Wählen Sie auf der Seite für zusätzliche Konfigurationsdaten die von Ihnen erstellte Cluster-

Sicherheitsgruppe aus und klicken Sie dann auf Continue.f. Überprüfen Sie die Spezifikationen für Ihren Cluster und klicken Sie dann auf Launch Cluster.

Daten zu Amazon Redshift über die AWS DataPipeline-Konsole kopierenSie können eine Pipeline erstellen, um Daten aus Amazon S3 zu Amazon Redshift zu kopieren. Sieerstellen eine neue Tabelle in Amazon Redshift. Anschließend übertragen Sie mit AWS Data PipelineDaten aus einem öffentlichen Amazon S3-Bucket, der Beispieleingabedateien im CSV-Format enthält, zudieser Tabelle. Die Protokolle werden in einem Amazon S3-Bucket gespeichert, den Sie besitzen.

Amazon S3 ist ein Webservice, mit dem Sie Daten in der Cloud speichern können. Weitere Informationenhierzu finden Sie unter Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

Amazon Redshift ist ein Data-Warehouse-Service in der Cloud. Weitere Informationen hierzu finden Sieunter Amazon Redshift Cluster Management Guide.

Voraussetzungen

API-Version 2012-10-29124

Page 132: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

Bevor Sie mit diesem Tutorial beginnen, schaffen Sie die Voraussetzungen, wie in Bevor Sie beginnen:Konfigurieren Sie COPY-Optionen und laden Sie Daten (p. 122) und Einrichten einer Pipeline, Erstelleneiner Sicherheitsgruppe und Erstellen eines Amazon Redshift-Clusters (p. 123) beschrieben.

Aufgaben• Erstellen Sie die Pipeline (p. 125)• Ihre Pipeline speichern und validieren (p. 125)• Ihre Pipeline aktivieren (p. 126)• Überwachen der Pipeline-Runs (p. 126)• (Optional) Löschen Ihrer Pipeline (p. 127)

Erstellen Sie die PipelineErstellen Sie zunächst die Pipeline.

Diese Pipeline stützt sich auf die Optionen der Syntax (p. 213).

Sie verwendet die Vorlage Copy to Redshift (Zu Redshift kopieren) in der AWS Data Pipeline-Konsole.Informationen zu dieser Vorlage finden Sie unter Laden von Daten aus Amazon S3 in AmazonRedshift (p. 35).

So erstellen Sie die Pipeline

1. Öffnen Sie die AWS Data Pipeline-Konsole unter https://console.aws.amazon.com/datapipeline/.2. Welchen Bildschirm Sie als ersten sehen, ist davon abhängig, ob Sie eine Pipeline in der aktuellen

Region erstellt haben.

a. Wenn Sie keine Pipeline in dieser Region erstellt haben, zeigt die Konsole einenBegrüßungsbildschirm an. Wählen Sie Get started now.

b. Wenn Sie bereits eine Pipeline in dieser Region erstellt haben, zeigt die Konsole eine Seite an, aufder Ihre Pipelines für die Region aufgelistet werden. Wählen Sie Create new pipeline aus.

3. Geben Sie in das Feld Name einen Namen für Ihre Pipeline ein.4. (Optional) Geben Sie in das Feld Description eine Beschreibung für Ihre Pipeline ein.5. Wählen Sie bei Source die Option Build using a template aus. Wählen Sie die folgende Vorlage aus:

Load data from S3 into Redshift.6. Geben Sie unter Parameters (Parameter) Informationen zu Ihrem Eingabeordner in Amazon S3 und

der von Ihnen erstellten Amazon Redshift-Datenbank ein.7. Wählen Sie unter Schedule den Eintrag on pipeline activation (bei der Pipeline-Aktivierung).8. Behalten Sie unter Pipeline Configuration die Protokollierung bei. Wählen Sie das Ordnersymbol unter

S3 location for logs, wählen Sie einen Ihrer Buckets oder Ordner aus, und wählen Sie dann Select.

Gegebenenfalls können Sie die Protokollierung auch deaktivieren.9. Behalten Sie unter Security/Access für IAM roles die Einstellung Default bei.10. Klicken Sie auf Activate.

Gegebenenfalls können Sie auch Edit in Architect wählen, um diese Pipeline zu ändern. Sie könnenbeispielsweise Vorbedingungen hinzufügen.

Ihre Pipeline speichern und validierenSie können zu jedem Zeitpunkt innerhalb des Erstellungsprozesses Ihre Pipeline-Definition speichern.Sobald Sie Ihre Pipeline-Definition speichern, sucht AWS Data Pipeline nach Syntaxfehlern und fehlenden

API-Version 2012-10-29125

Page 133: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜber die Konsole

Werten in Ihrer Pipeline-Definition. Wenn Ihre Pipeline unvollständig oder fehlerhaft ist, erzeugt AWSData Pipeline Validierungsfehler und Warnungen. Warnmeldungen dienen nur Ihrer Information, aber diein Fehlermeldungen beschriebenen Fehler müssen behoben werden, damit Sie Ihre Pipeline aktivierenkönnen.

Ihre Pipeline speichern und validieren

1. Wählen Sie Save pipeline.2. AWS Data Pipeline validiert Ihre Pipeline-Definition und gibt entweder eine Erfolgs- oder eine

Fehlermeldung oder Warnmeldungen zurück. Wenn Sie eine Fehlermeldung erhalten, wählen SieClose und wählen dann im Feld auf der rechten Seite den Eintrag Errors/Warnings.

3. Im Feld Errors/Warnings werden die Objekte aufgelistet, die die Validierung nicht bestanden haben.Klicken Sie auf das Plussymobl (+) neben den Objektnamen und achten Sie auf rot ausgezeichneteFehlermeldungen.

4. Wenn eine Fehlermeldung angezeigt wird, gehen Sie in das spezifische Objektfeld, für dasdie Fehlermeldung angezeigt wird, und korrigieren den Fehler. Wenn Sie beispielsweise eineFehlermeldung im DataNodes-Objekt sehen, gehen Sie in das Feld DataNodes, um den Fehler zubeheben.

5. Nachdem Sie die im Feld Errors/Warnings aufgelisteten Fehler korrigiert haben, wählen Sie SavePipeline.

6. Wiederholen Sie dieses Verfahren, bis Ihre Pipeline erfolgreich validiert wurde.

Ihre Pipeline aktivierenAktivieren Sie Ihre Pipeline, um Ausführungen zu erstellen und zu verarbeiten. Die Pipeline startetbasierend auf dem Zeitplan und dem Zeitbereich in Ihrer Pipeline-Definition.

Important

Wenn die Aktivierung erfolgreich ist, wird Ihre Pipeline ausgeführt, und es könnennutzungsabhängige Gebühren anfallen. Weitere Informationen finden Sie unter AWS DataPipeline-Preise. Um zu verhindern, dass weitere nutzungsabhängige Gebühren für AWS DataPipeline anfallen, löschen Sie Ihre Pipeline.

Ihre Pipeline aktivieren

1. Wählen Sie Activate.2. Wählen Sie im Bestätigungsdialogfeld Close.

Überwachen der Pipeline-RunsNachdem Sie Ihre Pipeline aktiviert haben, können Sie auf die Seite Execution details gehen, wo Sie denFortschritt Ihrer Pipeline überwachen können.

Überwachung des Fortschritts Ihrer Pipeline-Ausführungen

1. Wählen Sie Update oder drücken Sie F5, um den angezeigten Status zu aktualisieren.

Tip

Wenn keine Ausführungen aufgelistet sind, stellen Sie sicher, dass Start (in UTC) und End(in UTC) den planmäßigen Start und das Ende Ihrer Pipeline abdecken, und wählen Sie dannUpdate.

API-Version 2012-10-29126

Page 134: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

2. Wenn der Status jedes Objekt in der Pipeline FINISHED ist, hat Ihre Pipeline die geplanten Taskserfolgreich fertiggestellt. Wenn Sie eine SNS-Benachrichtigung erstellt haben, sollten Sie eine E-Mailüber die erfolgreiche Fertigstellung dieser Aufgabe erhalten.

3. Wenn Ihre Pipeline nicht erfolgreich abgeschlossen wurde, überprüfen Sie Ihre Pipeline-Einstellungenauf Probleme. Weitere Informationen zur Fehlerbehebung bei fehlgeschlagenen oder unvollständigenInstance-Ausführungen Ihrer Pipeline finden Sie unter Beheben typischer Probleme (p. 315).

(Optional) Löschen Ihrer PipelineUm zu verhindern, dass weitere nutzungsabhängige Gebühren, löschen Sie Ihre Pipeline. Wenn Sie IhrePipeline löschen, werden die Pipeline-Definition und alle zugeordneten Objekte gelöscht.

Löschen Ihrer Pipeline

1. Wählen Sie auf der Seite List Pipelines Ihre Pipeline aus.2. Klicken Sie auf Actions und wählen Sie anschließend Delete.3. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete.

Daten über die Befehlszeile zu Amazon RedshiftkopierenIn diesem Tutorial wird gezeigt, wie Sie Daten von Amazon S3 zu Amazon Redshift kopieren. Sie erstelleneine neue Tabelle in Amazon Redshift. Anschließend übertragen Sie mit AWS Data Pipeline Daten auseinem öffentlichen Amazon S3-Bucket, der Beispieleingabedateien im CSV-Format enthält, zu dieserTabelle. Die Protokolle werden in einem Amazon S3-Bucket gespeichert, den Sie besitzen.

Amazon S3 ist ein Webservice, mit dem Sie Daten in der Cloud speichern können. Weitere Informationenfinden Sie unter Konsolenbenutzerhandbuch für Amazon Simple Storage Service. Amazon Redshift ist einData-Warehouse-Serivce in der Cloud. Weitere Informationen hierzu finden Sie unter Amazon RedshiftCluster Management Guide.

Voraussetzungen

Bevor Sie beginnen, müssen Sie die folgenden Schritte ausführen:

1. Installieren und Konfigurieren einer Befehlszeilenschnittstelle (CLI, Command Line Interface). WeitereInformationen finden Sie unter Zugriff auf AWS Data Pipeline (p. 3).

2. Stellen Sie sicher, dass die IAM-Rollen DataPipelineDefaultRole undDataPipelineDefaultResourceRole existieren. Die AWS Data Pipeline-Konsole erstellt diese Rollenautomatisch für Sie. Wenn Sie die AWS Data Pipeline-Konsole nicht mindestens einmal benutzthaben, müssen Sie diese Rollen manuell erstellen. Weitere Informationen finden Sie unter IAM-Rollenfür AWS Data Pipeline (p. 78).

3. Richten Sie den COPY-Befehl in Amazon Redshift ein, da Sie dieselben Optionen benötigen, wenn Sieden Kopiervorgang in AWS Data Pipeline ausführen. Weitere Informationen finden Sie unter Bevor Siebeginnen: Konfigurieren Sie COPY-Optionen und laden Sie Daten (p. 122).

4. Richten Sie eine Amazon Redshift-Datenbank ein. Weitere Informationen finden Sie unterEinrichten einer Pipeline, Erstellen einer Sicherheitsgruppe und Erstellen eines Amazon Redshift-Clusters (p. 123).

Aufgaben• Definieren Sie eine Pipeline im JSON-Format (p. 128)

API-Version 2012-10-29127

Page 135: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

• Hochladen und Aktivieren der Pipeline-Definition (p. 133)

Definieren Sie eine Pipeline im JSON-FormatDieses Beispielszenario zeigt, wie Sie Daten von einem Amazon S3-Bucket zu Amazon Redshift kopieren.

Dies ist die vollständige Pipeline-Definition-JSON-Datei, gefolgt von einer Erläuterung für jeden ihrerAbschnitte. Wir empfehlen, dass Sie einen Texteditor verwenden, mit dem Sie die Syntax von JSON-formatierten Dateien überprüfen können, und die Datei mit der Dateierweiterung .json benennen.

{ "objects": [ { "id": "CSVId1", "name": "DefaultCSV1", "type": "CSV" }, { "id": "RedshiftDatabaseId1", "databaseName": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterId": "redshiftclusterId" }, { "id": "Default", "scheduleType": "timeseries", "failureAndRerunMode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "RedshiftDataNodeId1", "schedule": { "ref": "ScheduleId1" }, "tableName": "orders", "name": "DefaultRedshiftDataNode1", "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));", "type": "RedshiftDataNode", "database": { "ref": "RedshiftDatabaseId1" } }, { "id": "Ec2ResourceId1", "schedule": { "ref": "ScheduleId1" }, "securityGroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "logUri": "s3://myLogs", "resourceRole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" }, { "id": "ScheduleId1", "startDateTime": "yyyy-mm-ddT00:00:00",

API-Version 2012-10-29128

Page 136: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

"name": "DefaultSchedule1", "type": "Schedule", "period": "period", "endDateTime": "yyyy-mm-ddT00:00:00" }, { "id": "S3DataNodeId1", "schedule": { "ref": "ScheduleId1" }, "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataFormat": { "ref": "CSVId1" }, "type": "S3DataNode" }, { "id": "RedshiftCopyActivityId1", "input": { "ref": "S3DataNodeId1" }, "schedule": { "ref": "ScheduleId1" }, "insertMode": "KEEP_EXISTING", "name": "DefaultRedshiftCopyActivity1", "runsOn": { "ref": "Ec2ResourceId1" }, "type": "RedshiftCopyActivity", "output": { "ref": "RedshiftDataNodeId1" } } ]}

Weitere Informationen zu diesen Objekten finden Sie in der folgenden Dokumentation.

Objekte• Datenknoten (p. 129)• Ressource (p. 131)• Aktivität (p. 132)

Datenknoten

Bei diesem Beispiel werden ein Eingabedatenknoten, ein Ausgabedatenknoten und eine Datenbankverwendet.

Eingabedatenknoten

Die S3DataNode-Pipeline-Eingabekomponente definiert den Speicherort der Eingabedaten in Amazon S3und das Datenformat der Eingabedaten. Weitere Informationen finden Sie unter S3DataNode (p. 161).

Diese Eingabekomponente wird durch folgende Felder definiert:

{ "id": "S3DataNodeId1", "schedule": { "ref": "ScheduleId1"

API-Version 2012-10-29129

Page 137: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

}, "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataFormat": { "ref": "CSVId1" }, "type": "S3DataNode"},

id

Die benutzerdefinierte ID, die nur als Referenz dient.schedule

Einen Verweis auf die Zeitplankomponente.filePath

Den Pfad zu den Daten, die mit dem Datenknoten verknüpft sind, der in diesem Beispiel eine CSV-Eingabedatei ist.

name

Den benutzerdefinierten Namen, der nur als Referenz dient.dataFormat

Einen Verweis auf das Format der Daten für die Aktivitätsverarbeitung.

Ausgabedatenknoten

Die RedshiftDataNode-Pipeline-Ausgabekomponente definiert einen Speicherort für die Ausgabedaten;in diesem Fall eine Tabelle in einer Amazon Redshift-Datenbank. Weitere Informationen finden Sie unterRedshiftDataNode (p. 156). Diese Ausgabekomponente wird durch folgende Felder definiert:

{ "id": "RedshiftDataNodeId1", "schedule": { "ref": "ScheduleId1" }, "tableName": "orders", "name": "DefaultRedshiftDataNode1", "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));", "type": "RedshiftDataNode", "database": { "ref": "RedshiftDatabaseId1" }},

id

Die benutzerdefinierte ID, die nur als Referenz dient.schedule

Einen Verweis auf die Zeitplankomponente.tableName

Den Namen der Amazon Redshift-Tabellename

Den benutzerdefinierten Namen, der nur als Referenz dient.

API-Version 2012-10-29130

Page 138: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

createTableSql

Einen SQL-Ausdruck, der die Tabelle in der Datenbank erstellt.database

Einen Verweis auf die Amazon Redshift-Datenbank

Datenbank

Die RedshiftDatabase-Komponente wird durch folgende Felder definiert: Weitere Informationen findenSie unter RedshiftDatabase (p. 278).

{ "id": "RedshiftDatabaseId1", "databaseName": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterId": "redshiftclusterId"},

id

Die benutzerdefinierte ID, die nur als Referenz dient.databaseName

Den Namen der logischen Datenbank.username

Den Benutzernamen für die Verbindung zur Datenbank.name

Den benutzerdefinierten Namen, der nur als Referenz dient.password

Das Passwort für die Verbindung zur Datenbank.clusterId

Die ID des Redshift-Clusters.

Ressource

Dies ist eine Definition der Rechenressource, die die Kopieroperation ausführt. In diesem Beispiel sollteAWS Data Pipeline automatisch eine EC2-Instance erstellen, um die Kopieraufgabe auszuführen und dieInstance zu beenden, nachdem die Aufgabe abgeschlossen wurde. Die hier definierten Felder steuerndie Erstellung und Funktion der Instance, die die Arbeit erledigt. Weitere Informationen finden Sie unterEc2Resource (p. 230).

Die Ec2Resource wird durch folgende Felder definiert:

{ "id": "Ec2ResourceId1", "schedule": { "ref": "ScheduleId1" }, "securityGroups": "MySecurityGroup",

API-Version 2012-10-29131

Page 139: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

"name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "logUri": "s3://myLogs", "resourceRole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource"},

id

Die benutzerdefinierte ID, die nur als Referenz dient.schedule

Der Zeitplan für die Erstellung dieser Rechenressource.securityGroups

Die Sicherheitsgruppe, die für die Instances im Ressourcenpool verwendet werden soll.name

Den benutzerdefinierten Namen, der nur als Referenz dient.role

Die IAM-Rolle des Kontos für den Zugriff auf Ressourcen, beispielsweise den Zugriff auf einen AmazonS3-Bucket zum Abrufen von Daten.

logUri

Den Amazon S3-Ziel-Pfad, um Task-Runner-Protokolle von der Ec2Resource zu sichern.resourceRole

Die IAM-Rolle des Kontos, das Ressourcen erstellt, z. B. für Sie eine EC2 Instance erstellt undkonfiguriert. Rolle und ResourceRole können die gleiche Rolle sein, bieten jedoch eine größereGranularität in Ihrer Sicherheitskonfiguration.

Aktivität

Der letzte Abschnitt in der JSON-Datei ist die Definition der Aktivität, die die auszuführende Arbeit darstellt.In diesem Fall verwenden wir eine RedshiftCopyActivity-Komponente zum Kopieren von Daten ausAmazon S3 zu Amazon Redshift. Weitere Informationen finden Sie unter RedshiftCopyActivity (p. 210).

Die RedshiftCopyActivity-Komponente ist durch folgende Felder definiert:

{ "id": "RedshiftCopyActivityId1", "input": { "ref": "S3DataNodeId1" }, "schedule": { "ref": "ScheduleId1" }, "insertMode": "KEEP_EXISTING", "name": "DefaultRedshiftCopyActivity1", "runsOn": { "ref": "Ec2ResourceId1" }, "type": "RedshiftCopyActivity", "output": { "ref": "RedshiftDataNodeId1" }},

API-Version 2012-10-29132

Page 140: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerwenden der CLI

id

Die benutzerdefinierte ID, die nur als Referenz dient.input

Ein Verweis auf die Amazon S3-Quelldatei.schedule

Der Zeitplan für die Ausführung dieser Aktivität.insertMode

Der Einfügetyp (KEEP_EXISTING, OVERWRITE_EXISTING oder TRUNCATE).name

Den benutzerdefinierten Namen, der nur als Referenz dient.runsOn

Die Datenverarbeitungsressource, die die Arbeit ausführt, die diese Aktivität definiert.output

Ein Verweis auf die Amazon Redshift-Zieltabelle.

Hochladen und Aktivieren der Pipeline-DefinitionSie müssen Ihre Pipeline-Definition hochladen und Ihre Pipeline aktivieren. Ersetzen Sie in den folgendenBefehlen pipeline_name durch eine Bezeichnung Ihrer Pipeline, und pipeline_file durch denvollständig qualifizierten Pfad für die .json-Datei mit der Pipeline-Definition.

AWS CLI

Um Ihre Pipeline-Definition zu erstellen und Ihre Pipeline zu aktivieren, verwenden Sie den Befehlcreate-pipeline. Notieren Sie sich die ID Ihrer Pipeline, weil Sie diesen Wert in den meisten CLI-Befehlenbrauchen.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Um Ihre Pipeline-Definition hochzuladen, verwenden Sie den Befehl put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Wenn Ihre Pipeline erfolgreich validiert wurde, ist das Feld validationErrors leer. Etwaige Warnungensollten Sie überprüfen.

Um Ihre Pipeline-Definition zu aktivieren, verwenden Sie den Befehl activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Mit dem Befehl list-pipelines können Sie überprüfen, ob Ihre Pipeline in der Pipeline-Liste aufgeführt ist.

aws datapipeline list-pipelines

API-Version 2012-10-29133

Page 141: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEinfache Datentypen

Pipeline-Ausdrücke und -FunktionenDieser Abschnitt enthält Informationen zur Syntax der in Pipelines verwendeten Ausdrücke und Funktionensowie zu den zugehörigen Datentypen.

Einfache DatentypenDie folgenden Datentypen sind als Feldwerte zulässig.

Typen• DateTime (p. 134)• Numerischer Wert (p. 134)• Objektverweise (p. 134)• Zeitraum (p. 134)• Zeichenfolge (p. 135)

DateTimeAWS Data Pipeline unterstützt Datums- und Uhrzeitangaben nur als UTC/GMT-Zeit im Format "JJJJ-MM-TTTHH:MM:SS". Im folgenden Beispiel wird dem Feld startDateTime eines Schedule-Objekts der Wert1/15/2012, 11:59 p.m. in der UTC/GMT-Zeitzone zugewiesen.

"startDateTime" : "2012-01-15T23:59:00"

Numerischer WertAWS Data Pipeline unterstützt sowohl Ganzzahlen als auch Gleitkommazahlen.

ObjektverweiseDies ist ein Objekt in der Pipeline-Definition. Dabei kann es sich um das aktuelle Objekt, um den Nameneines woanders in der Pipeline definierten Objekts oder um ein Objekt mit einem Feld handeln, in demmit dem Schlüsselwort node auf das aktuelle Objekt verwiesen wird. Mehr über node erfahren Sie unterVerweisen auf Felder und Objekte (p. 135). Weitere Informationen zu den Pipeline-Objekttypen finden Sieunter Pipeline-Objektreferenz (p. 146).

ZeitraumGibt an, wie oft ein geplantes Ereignis ausgeführt werden soll. Die Angabe erfolgt im Format "N[years|months|weeks|days|hours|minutes]", wobei N eine positive Ganzzahl ist.

Der Mindestzeitraum beträgt 15 Minuten und der maximale Zeitraum beträgt 3 Jahre.

Im folgenden Beispiel wird das Feld period des Objekts Schedule auf 3 Stunden eingestellt. Dadurchwird ein geplantes Ereignis alle drei Stunden ausgeführt.

"period" : "3 hours"

API-Version 2012-10-29134

Page 142: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchZeichenfolge

ZeichenfolgeStandard-Zeichenfolgenwerte. Zeichenfolgen müssen in Anführungszeichen (") eingeschlossen werden.Der umgekehrte Schrägstrich (\) kann als Escape-Zeichen in einer Zeichenfolge verwendet werden.Mehrzeilige Zeichenfolgen werden nicht unterstützt.

Die folgenden Beispiele sind gültige Zeichenfolgenwerte für das Feld id.

"id" : "My Data Object"

"id" : "My \"Data\" Object"

Zeichenfolgen können auch Ausdrücke enthalten, die zu Zeichenfolgenwerten ausgewertet werden. DieseAusdrücke müssen in der Zeichenfolge zwischen den Trennzeichen "#{" und "}" stehen. Im folgendenBeispiel wird mit einem Ausdruck der Name des aktuellen Objekts in einen Pfad eingefügt.

"filePath" : "s3://myBucket/#{name}.csv"

Weitere Informationen zur Arbeit mit Ausdrücken finden Sie unter Verweisen auf Felder undObjekte (p. 135) und Ausdrucksauswertung (p. 138).

AusdrückeAusdrücke ermöglichen die Nutzung eines Werts in mehreren zusammengehörigen Objekten. Ausdrückewerden vom AWS Data Pipeline-Web-Service zur Laufzeit verarbeitet. Dadurch wird sichergestellt, dassalle Ausdrücke durch deren Werte ersetzt werden.

Ausdrücke müssen in die "#{" und "}" Trennzeichen eingeschlossen werden. Ein Ausdruck kann in jedemPipeline-Definitionsobjekt verwendet werden, in dem Zeichenfolgen zulässig sind. Wenn ein Slot einVerweis ist bzw. den Typ ID, NAME, TYPE oder SPHERE hat, wird sein Wert nicht ausgewertet und er wirdunverändert übernommen.

Der folgende Ausdruck ruft eine der AWS Data Pipeline-Funktionen auf. Weitere Informationen finden Sieunter Ausdrucksauswertung (p. 138).

#{format(myDateTime,'YYYY-MM-dd hh:mm:ss')}

Verweisen auf Felder und ObjekteAusdrücke können Felder des aktuellen Objekts, in dem sie sich befinden, oder Felder eines anderenObjekts verwenden, das durch einen Verweis verknüpft ist.

Ein Slot-Format besteht aus einem Zeitpunkt der Erstellung, gefolgt von dem Zeitpunkt derObjekterstellung, z. B. @S3BackupLocation_2018-01-31T11:05:33.

Sie können auch auf die genaue Slot-ID verweisen, die in der Pipeline-Definition angegeben ist, wie zumBeispiel die Slot-ID des Amazon S3-Sicherungsspeicherorts. Um auf die Slot-ID zu verweisen, verwendenSie #{parent.@id}.

Im folgenden Beispiel verweist das Feld filePath auf das Feld id desselben Objekts, umeinen Dateinamen zu bilden. Der Wert von filePath ergibt sich als „s3://mybucket/ExampleDataNode.csv“.

{

API-Version 2012-10-29135

Page 143: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVerschachtelte Ausdrücke

"id" : "ExampleDataNode", "type" : "S3DataNode", "schedule" : {"ref" : "ExampleSchedule"}, "filePath" : "s3://mybucket/#{parent.@id}.csv", "precondition" : {"ref" : "ExampleCondition"}, "onFail" : {"ref" : "FailureNotify"}}

Um auf das Feld eines anderen, durch einen Verweis verknüpften Objekts zuzugreifen, muss dasSchlüsselwort node angegeben werden. Dieses Schlüsselwort ist nur für Alarm- und Vorbedingungsobjekteverfügbar.

Zurück zum obigen Beispiel: Ein Ausdruck in einem SnsAlarm-Objekt kann auf den Datums- undUhrzeitbereich in einem Schedule-Objekt zugreifen, da das S3DataNode-Objekt auf beide verweist.

Insbesondere kann im FailureNotify-Objekt das Feld message die Laufzeitfelder@scheduledStartTime und @scheduledEndTime von ExampleSchedule verwenden, da imExampleDataNode-Objekt das Feld onFail auf FailureNotify und das Feld schedule aufExampleSchedule verweist.

{ "id" : "FailureNotify", "type" : "SnsAlarm", "subject" : "Failed to run pipeline component", "message": "Error for interval #{node.@scheduledStartTime}..#{node.@scheduledEndTime}.", "topicArn":"arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic"},

Note

Sie können Pipelines erstellen, die Abhängigkeiten enthalten, wie z. B. Pipeline-Aufgaben, dievon der Verarbeitung anderer Systeme oder Aufgaben abhängen. Wenn Ihre Pipeline bestimmteRessourcen erfordert, fügen Sie diese Abhängigkeiten mithilfe von Vorbedingungen hinzu, dieSie dann den gewünschten Datenknoten und Aufgaben zuordnen. Die Pipeline lässt sich danneinfacher debuggen und ist weniger fehleranfällig. Verwenden Sie die Abhängigkeiten möglichst ineiner einzigen Pipeline, da die Pipeline-übergreifende Fehlersuche schwierig ist.

Verschachtelte AusdrückeSie können in AWS Data Pipeline Werte verschachteln, um komplexere Ausdrücke zu erstellen. Umbeispielsweise eine Zeitberechnung durchzuführen (30 Minuten von scheduledStartTime subtrahieren)und das Ergebnis für die Verwendung in einer Pipeline-Definition zu formatieren, könnten Sie folgendenAusdruck in einer Aktivität benutzen

#{format(minusMinutes(@scheduledStartTime,30),'YYYY-MM-dd hh:mm:ss')}

und das Präfix node angeben, wenn der Ausdruck Teil eines SnsAlarm- oder Precondition-Objekts ist:

#{format(minusMinutes(node.@scheduledStartTime,30),'YYYY-MM-dd hh:mm:ss')}

ListenIn Ausdrücken können auch Listen verwendet werden. Gehen wir von dieser Listendefinition aus:"myList":["one","two"]. Wenn Sie diese Liste nun im Ausdruck #{'this is ' + myList}verwenden, wird sie zu ["this is one", "this is two"] ausgewertet. Wenn zwei Listen vorhandensind, werden diese von Data Pipeline bei der Auswertung "abgeflacht" (flattened). Ist beispielsweise

API-Version 2012-10-29136

Page 144: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchKnotenausdruck

myList1 als [1,2] definiert und myList2 als [3,4], dann wird der Ausdruck [#{myList1},#{myList2}] zu [1,2,3,4] ausgewertet.

KnotenausdruckAWS Data Pipeline verwendet den Ausdruck #{node.*} in SnsAlarm oder PreCondition alsRückverweis auf das übergeordnete Objekt einer Pipeline-Komponente. Da der Verweis auf SnsAlarm undPreCondition in einer Aktivität oder Ressource ohne Rückverweis aus diesen Objekten erfolgt, bietetnode die Möglichkeit, das verweisende Objekt zu referenzieren. In der folgenden Pipeline-Definition wirdbeispielsweise gezeigt, wie in einer Fehlerbenachrichtigung mit node auf deren übergeordnetes Objekt(ShellCommandActivity) verwiesen und wie dessen geplante Start- und Endzeit in die SnsAlarm-Nachricht eingefügt werden. Dem scheduledStartTime-Verweis im ShellCommandActivity-Objekt muss dasPräfix node nicht hinzugefügt werden, da scheduledStartTime auf sich selbst verweist.

Note

Die mit dem Zeichen "@" beginnenden Felder sind Laufzeitfelder.

{ "id" : "ShellOut", "type" : "ShellCommandActivity", "input" : {"ref" : "HourlyData"}, "command" : "/home/userName/xxx.sh #{@scheduledStartTime} #{@scheduledEndTime}", "schedule" : {"ref" : "HourlyPeriod"}, "stderr" : "/tmp/stderr:#{@scheduledStartTime}", "stdout" : "/tmp/stdout:#{@scheduledStartTime}", "onFail" : {"ref" : "FailureNotify"},},{ "id" : "FailureNotify", "type" : "SnsAlarm", "subject" : "Failed to run pipeline component", "message": "Error for interval #{node.@scheduledStartTime}..#{node.@scheduledEndTime}.", "topicArn":"arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic"},

AWS Data Pipeline unterstützt transitive Verweise bei benutzerdefinierten Felder, jedoch nicht beiLaufzeitfeldern. Ein transitiver Verweis ist ein Verweis zwischen zwei Pipeline-Komponenten, die von eineranderen als "Vermittler" dienenden Pipeline-Komponente abhängen. Das folgende Beispiel zeigt einenVerweis auf ein transitives benutzerdefiniertes Feld und einen Verweis auf ein nichttransitives Laufzeitfeld.Beide Verweise sind zulässig. Weitere Informationen finden Sie unter Benutzerdefinierte Felder (p. 67).

{ "name": "DefaultActivity1", "type": "CopyActivity", "schedule": {"ref": "Once"}, "input": {"ref": "s3nodeOne"}, "onSuccess": {"ref": "action"}, "workerGroup": "test", "output": {"ref": "s3nodeTwo"}},{ "name": "action", "type": "SnsAlarm", "message": "S3 bucket '#{node.output.directoryPath}' succeeded at #{node.@actualEndTime}.", "subject": "Testing", "topicArn": "arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic", "role": "DataPipelineDefaultRole"}

API-Version 2012-10-29137

Page 145: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAusdrucksauswertung

AusdrucksauswertungAWS Data Pipeline stellt eine Reihe von Funktionen bereit, mit denen der Wert eines Feldesberechnet werden kann. Im folgenden Beispiel wird die Funktion makeDate verwendet, um dem FeldstartDateTime eines Schedule-Objekts die GMT/UTC-Zeit "2011-05-24T0:00:00" zuzuweisen.

"startDateTime" : "makeDate(2011,5,24)"

Mathematische FunktionenDie folgenden Funktionen sind für die Arbeit mit numerischen Werten verfügbar.

Funktion Beschreibung

+ Addition.

Beispiel: #{1 + 2}

Ergebnis: 3

– Subtraktion.

Beispiel: #{1 - 2}

Ergebnis: -1

* Multiplikation.

Beispiel: #{1 * 2}

Ergebnis: 2

/ Division. Wenn Sie zwei Ganzzahlen dividieren,werden die Nachkommastellen abgeschnitten.

Beispiel: #{1 / 2}, Ergebnis: 0

Beispiel: #{1.0 / 2}, Ergebnis: .5

^ Exponent.

Beispiel: #{2 ^ 2}

Ergebnis: 4.0

Funktionen für ZeichenfolgenDie folgenden Funktionen sind für die Arbeit mit Zeichenfolgen verfügbar.

Funktion Beschreibung

+ Verkettung. Werte mit einemanderen Typ werden zuerst inZeichenfolgen konvertiert.

API-Version 2012-10-29138

Page 146: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatums- und Zeitfunktionen

Funktion BeschreibungBeispiel: #{"hel" + "lo"}

Ergebnis: "hello"

Datums- und ZeitfunktionenDie folgenden Funktionen sind für die Arbeit mit DateTime-Werten verfügbar. In den Beispielen hatmyDateTime den Wert May 24, 2011 @ 5:10 pm GMT.

Note

Das Datums-/Uhrzeitformat für AWS Data Pipeline ist Joda-Time. Dabei handelt es sich um einenErsatz für die Datums- und Zeitklassen von Java. Weitere Informationen finden Sie unter JodaTime - Class DateTimeFormat.

Funktion Beschreibung

int day(DateTime myDateTime) Gibt den Tag des angegebenenDateTime-Wertes als Ganzzahlzurück.

Beispiel: #{day(myDateTime)}

Ergebnis: 24

int dayOfYear(DateTime myDateTime) Gibt den Tag des Jahres desangegebenen DateTime-Wertesals Ganzzahl zurück.

Beispiel:#{dayOfYear(myDateTime)}

Ergebnis: 144

DateTime firstOfMonth(DateTime myDateTime) Erstellt ein DateTime-Objektfür den Monatsbeginn imangegebenen DateTime-Wert.

Beispiel:#{firstOfMonth(myDateTime)}

Ergebnis:"2011-05-01T17:10:00z"

String format(DateTime myDateTime,String format) Konvertiert das angegebeneDateTime-Objekt entsprechendder übergebenenFormatzeichenfolge understellt aus dem Ergebnis einZeichenfolgenobjekt.

Beispiel:#{format(myDateTime,'YYYY-MM-dd HH:mm:ss z')}

API-Version 2012-10-29139

Page 147: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatums- und Zeitfunktionen

Funktion BeschreibungErgebnis:"2011-05-24T17:10:00UTC"

int hour(DateTime myDateTime) Gibt die Stunde desangegebenen DateTime-Wertesals Ganzzahl zurück.

Beispiel:#{hour(myDateTime)}

Ergebnis: 17

DateTime makeDate(int year,int month,int day) Erstellt ein DateTime-Objekt(UTC) mit dem angegebenenJahr, Monat und Tag umMitternacht.

Beispiel:#{makeDate(2011,5,24)}

Ergebnis:"2011-05-24T0:00:00z"

DateTime makeDateTime(int year,int month,intday,int hour,int minute)

Erstellt ein DateTime-Objekt(UTC) mit den angegebenenWerten für Jahr, Monat, Tag,Stunde und Minute.

Beispiel:#{makeDateTime(2011,5,24,14,21)}

Ergebnis:"2011-05-24T14:21:00z"

DateTime midnight(DateTime myDateTime) Erstellt ein DateTime-Objekt fürdie aktuelle Mitternacht relativzum angegebenen DateTime-Wert. Hat beispielsweiseMyDateTime den Wert2011-05-25T17:10:00z,lautet das Ergebnis wie folgt.

Beispiel:#{midnight(myDateTime)}

Ergebnis:"2011-05-25T0:00:00z"

API-Version 2012-10-29140

Page 148: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatums- und Zeitfunktionen

Funktion Beschreibung

DateTime minusDays(DateTime myDateTime,intdaysToSub)

Subtrahiert die angegebeneAnzahl von Tagen vomübergebenen DateTime-Wertund erstellt aus dem Ergebnis einDateTime-Objekt.

Beispiel:#{minusDays(myDateTime,1)}

Ergebnis:"2011-05-23T17:10:00z"

DateTime minusHours(DateTime myDateTime,inthoursToSub)

Subtrahiert die angegebeneAnzahl von Stunden vomübergebenen DateTime-Wertund erstellt aus dem Ergebnis einDateTime-Objekt.

Beispiel:#{minusHours(myDateTime,1)}

Ergebnis:"2011-05-24T16:10:00z"

DateTime minusMinutes(DateTime myDateTime,intminutesToSub)

Subtrahiert die angegebeneAnzahl von Minuten vomübergebenen DateTime-Wertund erstellt aus dem Ergebnis einDateTime-Objekt.

Beispiel:#{minusMinutes(myDateTime,1)}

Ergebnis:"2011-05-24T17:09:00z"

DateTime minusMonths(DateTime myDateTime,intmonthsToSub)

Subtrahiert die angegebeneAnzahl von Monaten vomübergebenen DateTime-Wertund erstellt aus dem Ergebnis einDateTime-Objekt.

Beispiel:#{minusMonths(myDateTime,1)}

Ergebnis:"2011-04-24T17:10:00z"

API-Version 2012-10-29141

Page 149: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatums- und Zeitfunktionen

Funktion Beschreibung

DateTime minusWeeks(DateTime myDateTime,intweeksToSub)

Subtrahiert die angegebeneAnzahl von Wochen vomübergebenen DateTime-Wertund erstellt aus dem Ergebnis einDateTime-Objekt.

Beispiel:#{minusWeeks(myDateTime,1)}

Ergebnis:"2011-05-17T17:10:00z"

DateTime minusYears(DateTime myDateTime,intyearsToSub)

Subtrahiert die angegebeneAnzahl von Jahren vomübergebenen DateTime-Wertund erstellt aus dem Ergebnis einDateTime-Objekt.

Beispiel:#{minusYears(myDateTime,1)}

Ergebnis:"2010-05-24T17:10:00z"

int minute(DateTime myDateTime) Gibt die Minute desangegebenen DateTime-Wertesals Ganzzahl zurück.

Beispiel:#{minute(myDateTime)}

Ergebnis: 10

int month(DateTime myDateTime) Gibt den Monat desangegebenen DateTime-Wertesals Ganzzahl zurück.

Beispiel:#{month(myDateTime)}

Ergebnis: 5

DateTime plusDays(DateTime myDateTime,intdaysToAdd)

Addiert die angegebene Anzahlvon Tagen zum übergebenenDateTime-Wert und erstellt ausdem Ergebnis ein DateTime-Objekt.

Beispiel:#{plusDays(myDateTime,1)}

Ergebnis:"2011-05-25T17:10:00z"

API-Version 2012-10-29142

Page 150: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatums- und Zeitfunktionen

Funktion Beschreibung

DateTime plusHours(DateTime myDateTime,inthoursToAdd)

Addiert die angegebene Anzahlvon Stunden zum übergebenenDateTime-Wert und erstellt ausdem Ergebnis ein DateTime-Objekt.

Beispiel:#{plusHours(myDateTime,1)}

Ergebnis:"2011-05-24T18:10:00z"

DateTime plusMinutes(DateTime myDateTime,intminutesToAdd)

Addiert die angegebene Anzahlvon Minuten zum übergebenenDateTime-Wert und erstellt ausdem Ergebnis ein DateTime-Objekt.

Beispiel:#{plusMinutes(myDateTime,1)}

Ergebnis: "2011-05-2417:11:00z"

DateTime plusMonths(DateTime myDateTime,intmonthsToAdd)

Addiert die angegebene Anzahlvon Monaten zum übergebenenDateTime-Wert und erstellt ausdem Ergebnis ein DateTime-Objekt.

Beispiel:#{plusMonths(myDateTime,1)}

Ergebnis:"2011-06-24T17:10:00z"

DateTime plusWeeks(DateTime myDateTime,intweeksToAdd)

Addiert die angegebene Anzahlvon Wochen zum übergebenenDateTime-Wert und erstellt ausdem Ergebnis ein DateTime-Objekt.

Beispiel:#{plusWeeks(myDateTime,1)}

Ergebnis:"2011-05-31T17:10:00z"

API-Version 2012-10-29143

Page 151: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSonderzeichen

Funktion Beschreibung

DateTime plusYears(DateTime myDateTime,intyearsToAdd)

Addiert die angegebene Anzahlvon Jahren zum übergebenenDateTime-Wert und erstellt ausdem Ergebnis ein DateTime-Objekt.

Beispiel:#{plusYears(myDateTime,1)}

Ergebnis:"2012-05-24T17:10:00z"

DateTime sunday(DateTime myDateTime) Erstellt ein DateTime-Objekt fürden vorherigen Sonntag relativzum angegebenen DateTime-Wert. Wenn der angegebeneDateTime-Wert ein Sonntag ist,wird dieser zurückgegeben.

Beispiel:#{sunday(myDateTime)}

Ergebnis: "2011-05-2217:10:00 UTC"

int year(DateTime myDateTime) Gibt das Jahr des angegebenenDateTime-Wertes als Ganzzahlzurück.

Beispiel:#{year(myDateTime)}

Ergebnis: 2011

DateTime yesterday(DateTime myDateTime) Erstellt ein DateTime-Objekt fürden vorherigen Tag relativ zumangegebenen DateTime-Wert.Das Ergebnis ist identisch mitminusDays(1).

Beispiel:#{yesterday(myDateTime)}

Ergebnis:"2011-05-23T17:10:00z"

SonderzeichenIn AWS Data Pipeline werden die in der folgenden Tabelle beschriebenen Sonderzeichen verwendet, die inPipeline-Definitionen eine spezielle Bedeutung haben.

Sonderzeichen Beschreibung Beispiele

@ Laufzeitfeld. Wenn diesesZeichen dem Namen eines

@actualStartTime

API-Version 2012-10-29144

Page 152: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSonderzeichen

Sonderzeichen Beschreibung BeispieleFeldes vorangestellt wird,ist dieses nur während derAusführung der Pipelineverfügbar.

@failureReason

@resourceStatus

# Ausdruck. Ausdrücke werdenin die Trennzeichen "#{" und"}" eingeschlossen. Der Inhaltder geschweiften Klammernwird dann von AWS DataPipeline ausgewertet. WeitereInformationen finden Sie unterAusdrücke (p. 135).

#{format(myDateTime,'JJJJ-MM-TT hh:mm:ss')}

s3://mybucket/#{id}.csv

* Verschlüsseltes Feld. Wenndieses Zeichen dem Nameneines Feldes vorangestelltwird, verschlüsselt AWS DataPipeline dessen Inhalt bei derÜbertragung zwischen derKonsole oder CLI und dem AWSData Pipeline-Service.

*Passwort

API-Version 2012-10-29145

Page 153: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Pipeline-ObjektreferenzSie können die folgenden Pipeline-Objekte und -Komponenten in Ihrer Pipeline-Definitionsdatei verwenden.

Inhalt• Datenknoten (p. 147)• Aktivitäten (p. 170)• Ressourcen (p. 230)• Vorbedingungen (p. 258)• Datenbanken (p. 275)• Data Formats (p. 280)• Aktionen (p. 288)• Plan (p. 291)• Dienstprogramme (p. 295)

Note

Ein Beispiel für eine Anwendung, die das AWS Data Pipeline Java-SDK nutzt, finden Sie unterData Pipeline DynamoDB Export-Java-Beispiel auf GitHub.

Folgendes ist die Objekthierarchie für AWS Data Pipeline.

API-Version 2012-10-29146

Page 154: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatenknoten

DatenknotenNachfolgend sind die AWS Data Pipeline-Datenknotenobjekte aufgelistet:

Objekte• DynamoDBDataNode (p. 147)• MySqlDataNode (p. 151)• RedshiftDataNode (p. 156)• S3DataNode (p. 161)• SqlDataNode (p. 166)

DynamoDBDataNodeDefiniert mit DynamoDB einen Datenknoten, der als Eingabe für ein HiveActivity- oder EMRActivity-Objekt festgelegt ist.

Note

Das DynamoDBDataNode-Objekt unterstützt die Vorbedingung Exists nicht.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Dieses Objekt verweist auf zwei andere Objekte, die Sie inderselben Pipeline-Definitionsdatei definieren. CopyPeriod ist ein Schedule-Objekt und Ready ist einVorbedingungsobjekt.

{ "id" : "MyDynamoDBTable", "type" : "DynamoDBDataNode", "schedule" : { "ref" : "CopyPeriod" }, "tableName" : "adEvents", "precondition" : { "ref" : "Ready" }}

Syntax

Pflichtfelder Beschreibung Slot-Typ

tableName Die DynamoDB-Tabelle Zeichenfolge

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-

Referenzobjekt,z. B. „schedule“:{"ref":"myScheduleId"}

API-Version 2012-10-29147

Page 155: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataNode

Objektaufruf-Felder Beschreibung Slot-TypPipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenZeitplankonfigurationen finden Sie unter Zeitplan.

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn dieses Feld aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

dataFormat Datenformat für die von diesem Datenknotenbeschriebenen Daten. Derzeit unterstützt fürHiveActivity und HiveCopyActivity.

Referenzobjekt,„dataFormat“:{"ref":"myDynamoDBDataFormatId"}

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

API-Version 2012-10-29148

Page 156: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataNode

Optionale Felder Beschreibung Slot-Typ

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

readThroughputPercent Legt die Rate der Lesevorgänge so fest, dass Ihrevon DynamoDB bereitgestellte Durchsatzrate imfür Ihre Tabelle zugewiesenen Bereich liegt. DerWert ist zweistellig und liegt zwischen 0,1 und 1,0(einschließlich).

Double

Region Der Code für die Region, in der die DynamoDB-Tabelle vorhanden ist. Beispiel: us-east-1. Dieswird von HiveActivity beim Staging für DynamoDB-Tabellen in Hive genutzt.

Aufzählung

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispiel: Amazon EC2 Instanceoder Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

API-Version 2012-10-29149

Page 157: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataNode

Optionale Felder Beschreibung Slot-Typ

writeThroughputPercent Legt die Rate der Schreibvorgänge so fest, dassIhre von DynamoDB bereitgestellte Durchsatzrateim für Ihre Tabelle zugewiesenen Bereich liegt. DerWert ist zweistellig und liegt zwischen .1 und 1.0(einschließlich).

Double

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Zuständigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

API-Version 2012-10-29150

Page 158: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchMySqlDataNode

Laufzeitfelder Beschreibung Slot-Typ

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

MySqlDataNodeLegt ein Datenknoten mit MySQL fest.

Note

Der MySqlDataNode-Typ ist veraltet. Stattdessen empfehlen wir, SqlDataNode (p. 166) zuverwenden.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Dieses Objekt verweist auf zwei andere Objekte, die Sie inderselben Pipeline-Definitionsdatei definieren. CopyPeriod ist ein Schedule-Objekt und Ready ist einVorbedingungsobjekt.

{

API-Version 2012-10-29151

Page 159: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchMySqlDataNode

"id" : "Sql Table", "type" : "MySqlDataNode", "schedule" : { "ref" : "CopyPeriod" }, "table" : "adEvents", "username": "user_name", "*password": "my_password", "connectionString": "jdbc:mysql://mysqlinstance-rds.example.us-east-1.rds.amazonaws.com:3306/database_name", "selectQuery" : "select * from #{table} where eventTime >= '#{@scheduledStartTime.format('YYYY-MM-dd HH:mm:ss')}' and eventTime < '#{@scheduledEndTime.format('YYYY-MM-dd HH:mm:ss')}'", "precondition" : { "ref" : "Ready" }}

Syntax

Pflichtfelder Beschreibung Slot-Typ

table Der Name der Tabelle in der MySQL-Datenbank. Zeichenfolge

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

createTableSql Ein SQL-Tabellenerstellungsausdruck, der dieTabelle erstellt.

Zeichenfolge

API-Version 2012-10-29152

Page 160: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchMySqlDataNode

Optionale Felder Beschreibung Slot-Typ

database Name der Datenbank. Referenzobjekt,z. B. „database“:{"ref":"myDatabaseId"}

dependsOn Gibt eine Abhängigkeit von einem anderenausführbaren Objekt an.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

insertQuery Eine SQL-Anweisung zum Einfügen von Daten indie Tabelle.

Zeichenfolge

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

API-Version 2012-10-29153

Page 161: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchMySqlDataNode

Optionale Felder Beschreibung Slot-Typ

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispiel: Amazon EC2 Instanceoder Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

schemaName Der Name des Schemas für die Tabelle. Zeichenfolge

selectQuery Eine SQL-Anweisung zum Abrufen von Daten ausder Tabelle.

Zeichenfolge

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

API-Version 2012-10-29154

Page 162: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchMySqlDataNode

Laufzeitfelder Beschreibung Slot-Typ

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29155

Page 163: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDataNode

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• S3DataNode (p. 161)

RedshiftDataNodeLegt einen Datenknoten mit Amazon Redshift fest. RedshiftDataNode stellt die Eigenschaften der Datenin einer Datenbank, z. B. einer Datentabelle, dar, die von Ihrer Pipeline verwendet werden.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyRedshiftDataNode", "type" : "RedshiftDataNode", "database": { "ref": "MyRedshiftDatabase" }, "tableName": "adEvents", "schedule": { "ref": "Hour" }}

Syntax

Pflichtfelder Beschreibung Slot-Typ

database Die Datenbank, in der die Tabelle gespeichert ist. Referenzobjekt,z. B. „database“:{"ref":"myRedshiftDatabaseId"}

tableName Der Name der Amazon Redshift-Tabelle.Die Tabelle wird erstellt, wenn sie noch nichtvorhanden ist und Sie createTableSql angegebenhaben.

Zeichenfolge

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um die

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29156

Page 164: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDataNode

Objektaufruf-Felder Beschreibung Slot-TypAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

createTableSql Ein SQL-Ausdruck, der die Tabelle in derDatenbank erstellt. Wir empfehlen Ihnen dieAngabe des Schemas, in dem die Tabelle erstelltwerden soll, beispielsweise CREATE TABLEmySchema.myTable (bestColumn varchar(25)primary key distkey, numberOfWins integersortKey). AWS Data Pipeline führt das Skriptim Feld createTableSql aus, wenn die durchtableName angegebene Tabelle nicht in demSchema vorhanden ist, das im Feld schemaNameangegeben ist. Wenn Sie beispielsweisefür "schemaName" "mySchema" angeben,"mySchema" aber nicht im Feld "createTableSql"eingeben, wird die Tabelle im falschen Schemaerstellt (standardmäßig im Schema ÖFFENTLICH).Dies passiert, da AWS Data Pipeline die CREATE-TABLE-Anweisungen nicht parst.

Zeichenfolge

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartet

Zeitraum

API-Version 2012-10-29157

Page 165: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDataNode

Optionale Felder Beschreibung Slot-Typwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

primaryKeys Wenn Sie für eine Zieltabelle inRedShiftCopyActivity keine primaryKeysfestlegen, können Sie eine Liste der Spaltenangeben, die primaryKeys nutzen, die alsmergeKey fungieren. Wenn Sie jedoch über einenin einer Amazon Redshift-Tabelle definiertenprimaryKey verfügen, überschreibt dieseEinstellung den vorhandenen Schlüssel.

Zeichenfolge

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispiel: Amazon EC2 Instanceoder Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

API-Version 2012-10-29158

Page 166: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDataNode

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

schemaName In diesem optionalen Feld wird der Name desSchemas für die Amazon Redshift-Tabellefestgelegt. Wenn kein Name festgelegt wird,ist der Schemaname ÖFFENTLICH, was dasStandardschema bei Amazon Redshift ist. WeitereInformationen finden Sie im Amazon RedshiftDatabase Developer Guide.

Zeichenfolge

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

API-Version 2012-10-29159

Page 167: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDataNode

Laufzeitfelder Beschreibung Slot-Typ

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29160

Page 168: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3DataNode

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

S3DataNodeLegt einen Datenknoten mit Amazon S3 fest. Standardmäßig nutzt S3DataNode serverseitigeVerschlüsselung. Wenn Sie diese deaktivieren möchten, setzen Sie s3EncryptionType auf NONE.

Note

Wenn Sie einen S3DataNode als Eingabe für CopyActivity nutzen, werden nur dieDatenformate CSV und TSV unterstützt.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Dieses Objekt verweist auf ein anderes Objekt, das Sie inderselben Pipeline-Definitionsdatei definieren. CopyPeriod ist ein Schedule-Objekt.

{ "id" : "OutputData", "type" : "S3DataNode", "schedule" : { "ref" : "CopyPeriod" }, "filePath" : "s3://myBucket/#{@scheduledStartTime}.csv"}

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unter

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29161

Page 169: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3DataNode

Objektaufruf-Felder Beschreibung Slot-Typhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

Kompression Der Typ der Kompression für die durchS3DataNode beschriebenen Daten. „none“bedeutet keine Kompression und „gzip“ ist eineKompression mit dem gzip-Algorithmus. DiesesFeld wird nur für die Verwendung mit AmazonRedshift und die Verwendung von S3DataNode mitCopyActivity unterstützt.

Aufzählung

dataFormat Datenformat für die von diesem S3DataNodebeschriebenen Daten.

Referenzobjekt, z.B. „dataFormat“:{"ref":"myDataFormatId"}

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

directoryPath Amazon S3-Verzeichnispfad als URI: s3://my-bucket/my-key-for-directory. Sie müssen entwedereinen Dateipfad (filePath) oder einen Wert fürdirectoryPath angeben.

Zeichenfolge

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

filePath Der Pfad für das Objekt in Amazon S3 alsURI, z. B.: s3://my-bucket/my-key-for-file. Siemüssen entweder einen Dateipfad (filePath)oder einen Wert für directoryPath angeben.Diese repräsentieren einen Ordner und einenDateinamen. Mit dem directoryPath-Wert könnenSie mehrere Dateien in einem Verzeichnisunterbringen.

Zeichenfolge

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

manifestFilePath Der Amazon S3-Pfad zu einer Manifestdatei imvon Amazon Redshift unterstützten Format. AWSData Pipeline verwendet die Manifestdatei, um dieangegebenen Amazon S3-Dateien in die Tabellezu kopieren. Dieses Feld ist nur gültig, wenn

Zeichenfolge

API-Version 2012-10-29162

Page 170: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3DataNode

Optionale Felder Beschreibung Slot-Typeine RedShiftCopyActivity auf den S3DataNodeverweist.

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispiel: Amazon EC2 Instanceoder Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

s3EncryptionType Überschreibt den Amazon S3-Verschlüsselungstyp.Die Werte sind SERVER_SIDE_ENCRYPTIONoder NONE. Die serverseitige Verschlüsselung iststandardmäßig aktiviert.

Aufzählung

API-Version 2012-10-29163

Page 171: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3DataNode

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

API-Version 2012-10-29164

Page 172: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3DataNode

Laufzeitfelder Beschreibung Slot-Typ

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

API-Version 2012-10-29165

Page 173: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlDataNode

Weitere Informationen finden Sie auch unter:• MySqlDataNode (p. 151)

SqlDataNodeLegt ein Datenknoten mit SQL fest.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Dieses Objekt verweist auf zwei andere Objekte, die Sie inderselben Pipeline-Definitionsdatei definieren. CopyPeriod ist ein Schedule-Objekt und Ready ist einVorbedingungsobjekt.

{ "id" : "Sql Table", "type" : "SqlDataNode", "schedule" : { "ref" : "CopyPeriod" }, "table" : "adEvents", "database":"myDataBaseName", "selectQuery" : "select * from #{table} where eventTime >= '#{@scheduledStartTime.format('YYYY-MM-dd HH:mm:ss')}' and eventTime < '#{@scheduledEndTime.format('YYYY-MM-dd HH:mm:ss')}'", "precondition" : { "ref" : "Ready" }}

Syntax

Pflichtfelder Beschreibung Slot-Typ

table Der Name der Tabelle in der SQL-Datenbank. Zeichenfolge

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unter

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29166

Page 174: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlDataNode

Objektaufruf-Felder Beschreibung Slot-Typhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

createTableSql Ein SQL-Tabellenerstellungsausdruck, der dieTabelle erstellt.

Zeichenfolge

database Name der Datenbank. Referenzobjekt,z. B. „database“:{"ref":"myDatabaseId"}

dependsOn Gibt die Abhängigkeit von einem anderenausführbaren Objekt an.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

insertQuery Eine SQL-Anweisung zum Einfügen von Daten indie Tabelle.

Zeichenfolge

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

API-Version 2012-10-29167

Page 175: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlDataNode

Optionale Felder Beschreibung Slot-Typ

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispiel: Amazon EC2 Instanceoder Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

schemaName Der Name des Schemas für die Tabelle. Zeichenfolge

selectQuery Eine SQL-Anweisung zum Abrufen von Daten ausder Tabelle.

Zeichenfolge

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

API-Version 2012-10-29168

Page 176: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlDataNode

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

API-Version 2012-10-29169

Page 177: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktivitäten

Laufzeitfelder Beschreibung Slot-Typ

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

Weitere Informationen finden Sie auch unter:• S3DataNode (p. 161)

AktivitätenNachfolgend sind die AWS Data Pipeline-Aktivitätsobjekte aufgelistet:

Objekte• CopyActivity (p. 171)• EmrActivity (p. 176)• HadoopActivity (p. 182)• HiveActivity (p. 189)• HiveCopyActivity (p. 195)• PigActivity (p. 201)• RedshiftCopyActivity (p. 210)• ShellCommandActivity (p. 219)• SqlActivity (p. 225)

API-Version 2012-10-29170

Page 178: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCopyActivity

CopyActivityKopiert Daten von einem Speicherort zu einem anderen. CopyActivity unterstütztS3DataNode (p. 161) und SqlDataNode (p. 166) als Ein- und Ausgabe und der Kopiervorgang wirdnormalerweise für einen Datensatz nach dem anderen durchgeführt. Allerdings ermöglicht CopyActivityeinen leistungsstarken Kopiervorgang von Amazon S3 zu Amazon S3, wenn alle folgenden Bedingungenerfüllt sind:

• Die Eingabe und Ausgabe sind S3DataNodes.• Das Feld dataFormat ist für Ein- und Ausgabe dasselbe.

Wenn Sie die komprimierten Daten als Eingabe verwenden und dies nicht über as Feld compressionauf den S3-Datenknoten angeben, kann CopyActivity möglicherweise fehlschlagen. In diesem Fallerkennt CopyActivity das Ende Datensatzzeichens nicht ordnungsgemäß und der Vorgang schlägt fehl.Außerdem unterstützt CopyActivity das Kopieren von einem Verzeichnis in ein anderes Verzeichnisund das Kopieren einer Datei in ein Verzeichnis, aber wenn ein Verzeichnis in eine Datei kopiert wird,wird ein Datensatz nach dem anderen kopiert. Auch unterstützt CopyActivity nicht das Kopieren vonmehrteiligen Amazon S3-Dateien.

Bei CopyActivity gibt es bestimmte Einschränkungen der CSV-Unterstützung. Wenn Sie einenS3DataNode als Eingabe für CopyActivity verwenden, können Sie für die Amazon S3-Eingabe- und -Ausgabefelder nur eine Unix-/Linux-Variante des CSV-Dateiformats nutzen. Die Unix-/Linux-Variante setztFolgendes voraus:

• Das Trennzeichen muss ein Komma (,) sein.• Die Datensätze werden nicht in Anführungszeichen gesetzt.• Das Standard-Escape-Zeichen ist ASCII-Wert 92 (Backslash).• Das Datensatzende-Identifier ist ASCII-Wert 10 (oder "\n").

Windows-basierte Systeme verwenden normalerweise eine andere Zeichenfolge am Ende desDatensatzes: eine Zeilenumschaltung und ein Zeilenvorschub zusammen (ASCII-Wert 13 und ASCII-Wert 10). Sie müssen diesen Unterschied mit einem zusätzlichen Mechanismus ausgleichen, z. B. einemSkript zum Ändern der Eingabedaten vor dem Kopieren, um sicherzustellen, dass CopyActivity dasDatensatzende korrekt erkennt. Andernfalls schlägt CopyActivity wiederholt fehl.

Wenn Sie mit CopyActivity einen Exportvorgang von einem PostgreSQL-RDS-Objekt in das TSV-Datenformat durchführen, ist das Standard-NULL-Zeichen \n.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Dieses Objekt verweist auf drei andere Objekte, die Sie inderselben Pipeline-Definitionsdatei definieren. CopyPeriod ist ein Schedule-Objekt und InputData undOutputData sind Datenknotenobjekte.

{ "id" : "S3ToS3Copy", "type" : "CopyActivity", "schedule" : { "ref" : "CopyPeriod" }, "input" : { "ref" : "InputData" }, "output" : { "ref" : "OutputData" }, "runsOn" : { "ref" : "MyEc2Resource" }}

API-Version 2012-10-29171

Page 179: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCopyActivity

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispiel: Amazon EC2 Instanceoder Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

API-Version 2012-10-29172

Page 180: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCopyActivity

Optionale Felder Beschreibung Slot-Typ

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

input Die Eingangsdatenquelle. Referenzobjekt,z. B. "input":{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

output Die Eingangsdatenquelle. Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

API-Version 2012-10-29173

Page 181: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCopyActivity

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Zuständigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

API-Version 2012-10-29174

Page 182: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCopyActivity

Laufzeitfelder Beschreibung Slot-Typ

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)

API-Version 2012-10-29175

Page 183: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrActivity

• EmrActivity (p. 176)• Exportieren von MySQL-Daten zu Amazon S3 mithilfe von AWS Data Pipeline (p. 111)

EmrActivityFührt einen EMR-Cluster.

AWS Data Pipeline verwendet ein anderes Format für Schritte als Amazon EMR, z. B. nutzt AWS DataPipeline durch Komma getrennte Argumente nach dem JAR-Namen im Feld zum Schritt EmrActivity.Das folgende Beispiel zeigt einen für Amazon EMR formatierten Schritt, gefolgt von dem entsprechendenfür AWS Data Pipeline formatierten Schritt:

s3://example-bucket/MyWork.jar arg1 arg2 arg3

"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"

BeispieleEs folgt ein Beispiel für diesen Objekttyp. In diesem Beispiel werden ältere Versionen von Amazon EMRverwendet. Überprüfen Sie, ob dieses Beispiel für Ihre Version des Amazon EMR-Clusters funktioniert.

Dieses Objekt verweist auf drei andere Objekte, die Sie in derselben Pipeline-Definitionsdatei definieren.MyEmrCluster ist ein EmrCluster-Objekt und MyS3Input und MyS3Output sind S3DataNode-Objekte.

Note

In diesem Beispiel können Sie das Feld step mit der gewünschten Cluster-Zeichenfolge ersetzen.Hierbei kann es sich u. a. um ein Pig-Skript, ein Hadoop-Streaming-Cluster oder Ihre eigenebenutzerdefinierte JAR-Datei mit ihren Parametern handeln.

Hadoop 2.x (AMI 3.x)

{ "id" : "MyEmrActivity", "type" : "EmrActivity", "runsOn" : { "ref" : "MyEmrCluster" }, "preStepCommand" : "scp remoteFiles localFiles", "step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."], "postStepCommand" : "scp localFiles remoteFiles", "input" : { "ref" : "MyS3Input" }, "output" : { "ref" : "MyS3Output" }}

Note

Um in einem Schritt Argumente an eine Anwendung zu übergeben, müssen Sie die Region imPfad des Skripts angeben, wie im folgenden Beispiel gezeigt: Darüber hinaus müssen Sie fürdie zu übergebenden Argumente möglicherweise ein Escape-Zeichen verwenden. Wenn Siebeispielsweise mit script-runner.jar ein Shell-Skript ausführen und Argumente an das Skriptübergeben möchten, müssen Sie für die Kommas, die als Trennzeichen dienen, Escape-Zeichenverwenden. Der folgende Schritt-Slot veranschaulicht die entsprechende Vorgehensweise:

"step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"

API-Version 2012-10-29176

Page 184: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrActivity

Dieser Schritt verwendet script-runner.jar, um das Shell-Skript echo.sh auszuführen,und übergibt a, b und c als einzelne Argumente an das Skript. Die erste Escape-Zeichen wirdvom resultierenden Argument entfernt, weshalb Sie möglicherweise erneut ein Escape-Zeichenverwenden müssen. Wenn Sie beispielsweise File\.gz als Argument in JSON verwendethaben, können Sie als Escape-Zeichen File\\\\.gz verwenden. Da das erste Escape-Zeichenjedoch verworfen wird, müssen Sie File\\\\\\\\.gz verwenden.

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesZeitplanintervalls aufgerufen. Sie müssen einenZeitplanverweis auf ein anderes Objekt angeben,um die Abhängigkeitsausführungsreihenfolgefür dieses Objekt festzulegen. Sie könnendiese Anforderung erfüllen, indem Sie expliziteinen Zeitplan für das Objekt festlegen, indemsie beispielsweise "schedule": {"ref":"DefaultSchedule"} angeben. In den meistenFällen ist es besser, den Zeitplanverweis aufdas Standard-Pipeline-Objekt zu setzen, damitalle Objekte diesen Zeitplan erben. Wenn diePipeline über einen Baum mit Zeitplänen verfügt(Zeitpläne innerhalb des Hauptplans), können Sieein übergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. „schedule“:{"ref":"myScheduleId"}

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn Der Amazon EMR-Cluster, auf dem dieser Auftragausgeführt wird.

Referenzobjekt,z. B. „runsOn“:{"ref":"myEmrClusterId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist,wird ignoriert.workerGroup

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

API-Version 2012-10-29177

Page 185: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrActivity

Optionale Felder Beschreibung Slot-Typ

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt.

Referenzobjekt,z. B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

input Der Speicherort der Eingabedaten. Referenzobjekt,z. B. „input“:{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt,z. B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt,z. B. „onSuccess“:{"ref":"myActionId"}

output Der Speicherort der Ausgabedaten. Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Das übergeordnetes Objekt des aktuellen Objekts,aus dem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der Amazon S3-URI (z. B. „s3://BucketName/Prefix/“) zum Hochladen von Protokollen für diePipeline.

Zeichenfolge

postStepCommand Shell-Skripts, die nach Abschluss aller Schritteausgeführt werden. Wenn Sie mehrere Skriptsangeben möchten (maximal 255), fügen Sie dieentsprechende Anzahl von postStepCommand-Feldern hinzu.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt,z. B. „precondition“:{"ref":"myPreconditionId"}

API-Version 2012-10-29178

Page 186: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrActivity

Optionale Felder Beschreibung Slot-Typ

preStepCommand Shell-Skripts, die vor allen Schritten ausgeführtwerden. Wenn Sie mehrere Skripts angebenmöchten (maximal 255), fügen Sie dieentsprechende Anzahl von preStepCommand-Feldern hinzu.

Zeichenfolge

reportProgressTimeout Das Timeout für aufeinanderfolgende Aufrufevon reportProgress durch Remote-Arbeit.Wenn diese Option aktiviert ist, werdenRemote-Aktivitäten, die den Fortschritt fürden angegebenen Zeitraum nicht melden, alsfehlgeschlagen angesehen und es wird erneutversucht.

Zeitraum

resizeClusterBeforeRunningÄndern Sie die Größe des Clusters, bevor Siediese Aktivität ausführen, um DynamoDB-Tabellenaufzunehmen, die als Eingaben oder Ausgabenangegeben sind.

Note

Wenn Ihre EmrActivity einenDynamoDBDataNode als Eingabe- oderAusgabedatenknoten verwendet undSie resizeClusterBeforeRunningauf TRUE festlegen, beginnt AWSData Pipeline mit der Verwendung vonm3.xlarge-Instance-Typen. Dadurchwird Ihre Auswahl an Instance-Typen mitm3.xlarge überschrieben, wodurch Ihremonatlichen Kosten ansteigen könnten.

Boolesch

resizeClusterMaxInstancesEin Limit für die maximale Anzahl von Instances,die vom Resize-Algorithmus angefordert werdenkönnen.

Ganzzahl

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

API-Version 2012-10-29179

Page 187: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrActivity

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Werte sind cron, ondemandund timeseries. Die timeseries-Planungbedeutet, dass Instances am Ende jedes Intervallsgeplant sind. Die cron-Planung bedeutet, dassInstances am Anfang jedes Intervalls geplantsind. Ein ondemand-Zeitplan ermöglicht esIhnen, eine Pipeline einmal pro Aktivierungauszuführen. Sie müssen die Pipeline nicht klonenoder neu erstellen, um sie erneut auszuführen.Wenn Sie einen ondemand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um ondemand-Pipelines zu verwenden, rufen Sie einfachden ActivatePipeline-Vorgang für jedennachfolgenden Lauf auf.

Aufzählung

Schritt Einzelne oder mehrere vom Clusterauszuführende Schritte. Wenn Sie mehrereSchritte angeben möchten (maximal 255),fügen Sie die entsprechende Anzahl vonstep-Feldern hinzu. Verwenden Sie durchKomma getrennte Argumente nach dem JAR-Namen, z. B. "s3://example-bucket/MyWork.jar,arg1,arg2,arg3".

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog Amazon EMR-Schrittprotokolle sind nur für EMR-Aktivitätsversuchen verfügbar.

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagenist.

Zeichenfolge

API-Version 2012-10-29180

Page 188: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrActivity

Laufzeitfelder Beschreibung Slot-Typ

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für das Objekt einplanen. DateTime

@scheduledStartTime Startzeit für das Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

API-Version 2012-10-29181

Page 189: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

Systemfelder Beschreibung Slot-Typ

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)• CopyActivity (p. 171)• EmrCluster (p. 237)

HadoopActivityFührt einen MapReduce-Auftrag in einem Cluster aus. Der Cluster kann ein EMR-Cluster sein, der vonAWS Data Pipeline verwaltet wird, oder eine andere Ressource, wenn Sie TaskRunner verwenden.Verwenden Sie HadoopActivity, wenn Sie parallel Arbeiten ausführen möchten. Damit können Sie diePlanungsressourcen des YARN-Frameworks oder die MapReduce-Ressourcenverhandlung von Hadoop 1verwenden. Wenn Sie Arbeiten nacheinander mit der Amazon EMR-Schrittaktion ausführen möchten,können Sie weiterhin EmrActivity (p. 176) verwenden.

BeispieleHadoopActivity nutzt einen EMR-Cluster, der von AWS Data Pipeline verwaltet wird

Das folgende HadoopActivity-Objekt verwendet eine EmrCluster-Ressource, um ein Programmauszuführen:

{ "name": "MyHadoopActivity", "schedule": {"ref": "ResourcePeriod"}, "runsOn": {"ref": “MyEmrCluster”}, "type": "HadoopActivity", "preActivityTaskConfig":{"ref":"preTaskScriptConfig”}, "jarUri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar", "argument": [ "-files", “s3://elasticmapreduce/samples/wordcount/wordSplitter.py“, "-mapper", "wordSplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input/", "-output", “s3://test-bucket/MyHadoopActivity/#{@pipelineId}/#{format(@scheduledStartTime,'YYYY-MM-dd')}" ], "maximumRetries": "0", "postActivityTaskConfig":{"ref":"postTaskScriptConfig”}, "hadoopQueue" : “high” }

Hier ist das entsprechende MyEmrCluster, welches den FairScheduler konfiguriert und in derWarteschlange bei YARN für Hadoop 2-basierte AMIs steht:

API-Version 2012-10-29182

Page 190: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

{ "id" : "MyEmrCluster", "type" : "EmrCluster", "hadoopSchedulerType" : "PARALLEL_FAIR_SCHEDULING", “amiVersion” : “3.7.0”, "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low\,high\,default,-z,yarn.scheduler.capacity.root.high.capacity=50,-z,yarn.scheduler.capacity.root.low.capacity=10,-z,yarn.scheduler.capacity.root.default.capacity=30”]}

Dies ist der EmrCluster, mit dem Sie FairScheduler in Hadoop 1 konfigurieren:

{ "id": "MyEmrCluster", "type": "EmrCluster", "hadoopSchedulerType": "PARALLEL_FAIR_SCHEDULING", "amiVersion": "2.4.8", "bootstrapAction": "s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-m,mapred.queue.names=low\\\\,high\\\\,default,-m,mapred.fairscheduler.poolnameproperty=mapred.job.queue.name" }

Der folgende EmrCluster konfiguriert den CapacityScheduler für Hadoop 2-basierte AMIs:

{ "id": "MyEmrCluster", "type": "EmrCluster", "hadoopSchedulerType": "PARALLEL_CAPACITY_SCHEDULING", "amiVersion": "3.7.0", "bootstrapAction": "s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low\\\\,high,-z,yarn.scheduler.capacity.root.high.capacity=40,-z,yarn.scheduler.capacity.root.low.capacity=60" }

HadoopActivity nutzt einen vorhandenen EMR-Cluster

Bei diesem Beispiel nutzen Sie Worker-Gruppen und einen TaskRunner, um ein Programm auf einemvorhandenen EMR-Cluster auszuführen. Die folgende Pipeline-Definition nutzt HadoopActivity, umFolgendes zu tun:

• Ein MapReduce-Programm wird nur auf myWorkerGroup--Ressourcen ausgeführt. WeitereInformationen zu Worker-Gruppen finden Sie unter Arbeiten an vorhandenen Ressourcen mit TaskRunner (p. 304).

• Es werden preActivityTaskConfig und postActivityTaskConfig ausgeführt.

{ "objects": [ { "argument": [ "-files", "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "-mapper", "wordSplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input/",

API-Version 2012-10-29183

Page 191: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

"-output", "s3://test-bucket/MyHadoopActivity/#{@pipelineId}/#{format(@scheduledStartTime,'YYYY-MM-dd')}" ], "id": "MyHadoopActivity", "jarUri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar", "name": "MyHadoopActivity", "type": "HadoopActivity" }, { "id": "SchedulePeriod", "startDateTime": "start_datetime", "name": "SchedulePeriod", "period": "1 day", "type": "Schedule", "endDateTime": "end_datetime" }, { "id": "ShellScriptConfig", "scriptUri": "s3://test-bucket/scripts/preTaskScript.sh", "name": "preTaskScriptConfig", "scriptArgument": [ "test", "argument" ], "type": "ShellScriptConfig" }, { "id": "ShellScriptConfig", "scriptUri": "s3://test-bucket/scripts/postTaskScript.sh", "name": "postTaskScriptConfig", "scriptArgument": [ "test", "argument" ], "type": "ShellScriptConfig" }, { "id": "Default", "scheduleType": "cron", "schedule": { "ref": "SchedulePeriod" }, "name": "Default", "pipelineLogUri": "s3://test-bucket/logs/2015-05-22T18:02:00.343Z642f3fe415", "maximumRetries": "0", "workerGroup": "myWorkerGroup", "preActivityTaskConfig": { "ref": "preTaskScriptConfig" }, "postActivityTaskConfig": { "ref": "postTaskScriptConfig" } } ] }

API-Version 2012-10-29184

Page 192: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

Syntax

Pflichtfelder Beschreibung Slot-Typ

jarUri Speicherort einer JAR-Datei in Amazon S3 oderim lokalen Dateisystem des Clusters, die mitHadoopActivity ausgeführt werden soll.

Zeichenfolge

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn EMR-Cluster, auf dem dieser Auftrag ausgeführtwird.

Referenzobjekt,z. B. "runsOn":{"ref":"myEmrClusterId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wertangeben und workerGroup vorhanden ist, wirdworkerGroup ignoriert.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

argument Argumente, die an die JAR-Dateien übergebenwerden.

Zeichenfolge

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

API-Version 2012-10-29185

Page 193: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

Optionale Felder Beschreibung Slot-Typ

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

hadoopQueue Der Name der Hadoop-Scheduler-Warteschlange,an die die Aktivität übergeben wird.

Zeichenfolge

input Speicherort der Eingabedaten. Referenzobjekt,z. B. "input":{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

mainClass Die Hauptklasse der JAR-Datei, die Sie mitHadoopActivity ausführen.

Zeichenfolge

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

output Speicherort der Ausgabedaten. Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

API-Version 2012-10-29186

Page 194: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

Optionale Felder Beschreibung Slot-Typ

postActivityTaskConfig Post-Activity-Konfigurationsskript, das ausgeführtwerden soll. Dieses besteht aus einer URI desShell-Skripts in Amazon S3 und einer Liste vonArgumenten.

Referenzobjekt, z. B.„postActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

preActivityTaskConfig Pre-Activity-Konfigurationsskript, das ausgeführtwerden soll. Dieses besteht aus einer URI desShell-Skripts in Amazon S3 und einer Liste vonArgumenten.

Referenzobjekt, z. B.„preActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

API-Version 2012-10-29187

Page 195: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoopActivity

Laufzeitfelder Beschreibung Slot-Typ

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

API-Version 2012-10-29188

Page 196: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveActivity

Laufzeitfelder Beschreibung Slot-Typ

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)• CopyActivity (p. 171)• EmrCluster (p. 237)

HiveActivityFührt eine Hive-Abfrage auf einem EMR-Cluster aus. HiveActivity erleichtert die Einrichtung einerAmazon EMR-Aktivität und erstellt automatisch Hive-Tabellen basierend auf Eingabedaten von AmazonS3 oder Amazon RDS. Sie müssen lediglich die HiveQL angeben, die auf den Quellendaten ausgeführtwerden soll. AWS Data Pipeline erstellt automatisch Hive-Tabellen mit ${input1}, ${input2} und soweiter, basierend auf den Eingabefeldern im HiveActivity-Objekt.

Für Amazon S3-Eingaben wird das Feld dataFormat zum Erstellen der Hive-Spaltennamen verwendet.

Für MySQL-Eingaben (Amazon RDS-Eingaben) werden die Spaltennamen für die SQL-Abfrage zumErstellen der Hive-Spaltennamen verwendet.

Note

Diese Aktivität verwendet den CSV-Serde von Hive.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Dieses Objekt verweist auf drei andere Objekte, die Sie inderselben Pipeline-Definitionsdatei definieren. MySchedule ist ein Schedule-Objekt und MyS3Input undMyS3Output sind Datenknotenobjekte.

{ "name" : "ProcessLogData", "id" : "MyHiveActivity",

API-Version 2012-10-29189

Page 197: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveActivity

"type" : "HiveActivity", "schedule" : { "ref": "MySchedule" }, "hiveScript" : "INSERT OVERWRITE TABLE ${output1} select host,user,time,request,status,size from ${input1};", "input" : { "ref": "MyS3Input" }, "output" : { "ref": "MyS3Output" }, "runsOn" : { "ref": "MyEmrCluster" }}

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesZeitplanintervalls aufgerufen. Sie müssen einenZeitplanverweis auf ein anderes Objekt angeben,um die Abhängigkeitsausführungsreihenfolgefür dieses Objekt festzulegen. Sie könnendiese Anforderung erfüllen, indem Sie expliziteinen Zeitplan für das Objekt festlegen,indem Sie beispielsweise "schedule": {"ref":"DefaultSchedule"} angeben. In den meistenFällen ist es besser, den Zeitplanverweis aufdas Standard-Pipeline-Objekt zu setzen, damitalle Objekte diesen Zeitplan erben. Wenn diePipeline über einen Baum mit Zeitplänen verfügt(Zeitpläne innerhalb des Hauptplans), können Sieein übergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

hiveScript Das auszuführende Hive-Skript. Zeichenfolge

scriptUri Der Speicherort des auszuführenden Hive-Skripts(z. B. s3://scriptLocation).

Zeichenfolge

Erforderliche Gruppe Beschreibung Slot-Typ

runsOn Der EMR-Cluster, auf dem diese HiveActivityausgeführt wird

Referenzobjekt,z. B. "runsOn":{"ref":"myEmrClusterId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist,wird ignoriert.workerGroup

Zeichenfolge

API-Version 2012-10-29190

Page 198: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveActivity

Erforderliche Gruppe Beschreibung Slot-Typ

input Die Eingangsdatenquelle. Referenzobjekt,z. B. „input“:{"ref":"myDataNodeId"}

output Die Eingangsdatenquelle. Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

hadoopQueue Der Name der Hadoop-Scheduler-Warteschlange,in der der Auftrag übermittelt wird.

Zeichenfolge

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

API-Version 2012-10-29191

Page 199: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveActivity

Optionale Felder Beschreibung Slot-Typ

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

postActivityTaskConfig Post-Activity-Konfigurationsskript, das ausgeführtwerden soll. Dieses besteht aus einem URI desShell-Skripts in Amazon S3 und einer Liste vonArgumenten.

Referenzobjekt, z. B.„postActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

preActivityTaskConfig Pre-Activity-Konfigurationsskript, das ausgeführtwerden soll. Dieses besteht aus einem URI desShell-Skripts in Amazon S3 und einer Liste vonArgumenten.

Referenzobjekt, z. B.„preActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. „precondition“:{"ref":"myPreconditionId"}

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

resizeClusterBeforeRunningÄndern Sie die Größe des Clusters, bevorSie diese Aktivität ausführen, um DynamoDB-Datenknoten aufzunehmen, die als Eingaben oderAusgaben angegeben sind.

Note

Wenn Ihre Aktivität einenDynamoDBDataNode als Eingabe- oderAusgabedatenknoten verwendet undSie resizeClusterBeforeRunningauf TRUE festlegen, beginnt AWS DataPipeline, m3.xlarge-Instance-Typen zuverwenden. Dadurch wird Ihre Auswahlan Instance-Typen mit m3.xlargeüberschrieben, wodurch Ihre monatlichenKosten ansteigen könnten.

Boolesch

resizeClusterMaxInstancesEin Limit für die maximale Anzahl von Instances,die vom Resize-Algorithmus angefordert werdenkönnen.

Ganzzahl

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

API-Version 2012-10-29192

Page 200: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveActivity

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

scriptVariable Legt Skriptvariablen für Amazon EMR-Variablen fest, die während der Ausführungeines Skripts an Hive übergeben werden. Imfolgenden Beispiel etwa würden Skriptvariableneine SAMPLE- und FILTER_DATE-Variablean Hive übergeben: SAMPLE=s3://elasticmapreduce/samples/hive-ads und FILTER_DATE=#{format(@scheduledStartTime,'YYYY-MM-dd')}%. Dieses Feld akzeptiert mehrere Werteund funktioniert sowohl mit script- als auch mitscriptUri-Feldern. Darüber hinaus funktioniertscriptVariable unabhängig davon, ob "stage"auf true oder false festgelegt ist. Dieses Feldist besonders nützlich, um mithilfe von AWS DataPipeline-Ausdrücken und -Funktionen dynamischeWerte an Hive zu senden.

Zeichenfolge

stage Legt fest, ob vor oder nach dem Ausführen desSkripts Staging aktiviert wird. Ist nicht mit Hive 11zulässig. Verwenden Sie daher eine Amazon EMR-AMI in der Version 3.2.0 oder höher.

Boolesch

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

API-Version 2012-10-29193

Page 201: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveActivity

Laufzeitfelder Beschreibung Slot-Typ

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog Amazon EMR-Schrittprotokolle sind nur für EMR-Aktivitätsversuchen verfügbar.

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für ein Objekt einplanen DateTime

@scheduledStartTime Startzeit für ein Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

API-Version 2012-10-29194

Page 202: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveCopyActivity

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)• EmrActivity (p. 176)

HiveCopyActivityFührt eine Hive-Abfrage auf einem EMR-Cluster aus. HiveCopyActivity erleichtert das Kopieren vonDaten zwischen DynamoDB-Tabellen. HiveCopyActivity akzeptiert eine HiveQL-Anweisung zum Filternvon Eingabedaten von DynamoDB auf Spalten- und Zeilenebene.

BeispielDas folgende Beispiel zeigt, wie Sie mit HiveCopyActivity und DynamoDBExportDataFormatDaten von einem DynamoDBDataNode auf einen anderen kopieren können, während gleichzeitig Datenbasierend auf einem Zeitstempel gefiltert werden.

{ "objects": [ { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timeStamp BIGINT" }, { "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" }, { "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tableName" : "item_mapped_table_restore_temp",

API-Version 2012-10-29195

Page 203: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveCopyActivity

"schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "restore_table", "region" : "us_west_1", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.2" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.xlarge", "coreInstanceCount" : "4" }, { "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" :{ "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startDateTime" : "2013-06-04T00:00:00", "endDateTime" : "2013-06-04T01:00:00" } ]}

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer ein

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29196

Page 204: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveCopyActivity

Objektaufruf-Felder Beschreibung Slot-Typübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn Geben Sie den Cluster an, auf dem ausgeführtwerden soll.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist,wird ignoriert.workerGroup

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Der zuletzt gemeldete Status von der Remote-Aktivität.

Zeichenfolge

attemptTimeout Das Timeout für die Fertigstellung der Remote-Arbeit. Wenn diese Option aktiviert ist, kanneine Remote-Aktivität, die nicht innerhalb derfestgelegten Startzeit abgeschlossen wird,wiederholt werden.

Zeitraum

dependsOn Gibt die Abhängigkeit von einem anderenausführbaren Objekt an.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

filterSql Ein Hive-SQL-Anweisungsfragment, das einenTeilbereich von DynamoDB- oder Amazon S3-Daten zum Kopieren filtert. Der Filter darf nurPrädikate enthalten und nicht mit einer WHERE-Klausel beginnen, da AWS Data Pipeline dieseautomatisch hinzufügt.

Zeichenfolge

input Die Eingangsdatenquelle. Dies muss einS3DataNode oder DynamoDBDataNode sein.Wenn Sie DynamoDBNode verwenden, geben Sieein DynamoDBExportDataFormat an.

Referenzobjekt,z. B. "input":{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartet

Zeitraum

API-Version 2012-10-29197

Page 205: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveCopyActivity

Optionale Felder Beschreibung Slot-Typwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

output Die Eingangsdatenquelle. Wenn dieEingabe S3DataNode ist, muss diese aufDynamoDBDataNode festgelegt sein. Andernfallskann dies S3DataNode oder DynamoDBDataNodesein. Wenn Sie DynamoDBNode verwenden, gebenSie ein DynamoDBExportDataFormat an.

Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Das übergeordnetes Objekt des aktuellen Objekts,aus dem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der Amazon S3-URI, z. B. 's3://BucketName/Key/', für das Hochladen von Protokollen für diePipeline.

Zeichenfolge

postActivityTaskConfig Das Post-Activity-Konfigurationsskript, dasausgeführt werden soll. Dieses besteht aus einemURI des Shell-Skripts in Amazon S3 und einer Listevon Argumenten.

Referenzobjekt, z. B.„postActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

preActivityTaskConfig Das Pre-Activity-Konfigurationsskript, dasausgeführt werden soll. Dieses besteht aus einemURI des Shell-Skripts in Amazon S3 und einer Listevon Argumenten.

Referenzobjekt, z. B.„preActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

precondition Definiert optional eine Vorbedingung. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Das Timeout für aufeinanderfolgende Aufrufevon reportProgress durch Remote-Arbeit.Wenn diese Option aktiviert ist, werdenRemote-Aktivitäten, die den Fortschritt fürden angegebenen Zeitraum nicht melden, alsfehlgeschlagen angesehen und es wird erneutversucht.

Zeitraum

API-Version 2012-10-29198

Page 206: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveCopyActivity

Optionale Felder Beschreibung Slot-Typ

resizeClusterBeforeRunningÄndern Sie die Größe des Clusters, bevorSie diese Aktivität ausführen, um DynamoDB-Datenknoten aufzunehmen, die als Eingaben oderAusgaben angegeben sind.

Note

Wenn Ihre Aktivität einenDynamoDBDataNode als Eingabe- oderAusgabedatenknoten verwendet undSie resizeClusterBeforeRunningauf TRUE festlegen, beginnt AWS DataPipeline, m3.xlarge-Instance-Typen zuverwenden. Dadurch wird Ihre Auswahlan Instance-Typen mit m3.xlargeüberschrieben, wodurch Ihre monatlichenKosten ansteigen könnten.

Boolesch

resizeClusterMaxInstancesEin Limit für die maximale Anzahl von Instances,die vom Resize-Algorithmus angefordert werdenkönnen.

Ganzzahl

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

API-Version 2012-10-29199

Page 207: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHiveCopyActivity

Laufzeitfelder Beschreibung Slot-Typ

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog Amazon EMR-Schrittprotokolle sind nur für EMR-Aktivitätsversuchen verfügbar.

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

API-Version 2012-10-29200

Page 208: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

Laufzeitfelder Beschreibung Slot-Typ

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Sphäre eines Objekts bezeichnet seinePosition im Lebenszyklus: Komponentenobjekteergeben Instance-Objekte, die ein Versuchsobjektausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)• EmrActivity (p. 176)

PigActivityPigActivity bietet native Unterstützung für Pig-Skripte in AWS Data Pipeline, ohne die Notwendigkeit,ShellCommandActivity oder EmrActivityzu verwenden. Darüber hinaus unterstützt PigActivityDaten-Staging. Wenn das Stage-Feld auf „true“ festgelegt wurde, arrangiert AWS Data Pipeline dieEingabedaten ohne zusätzlichen Code des Benutzers als Schema in Pig.

BeispielIm folgenden Pipeline-Beispiel wird gezeigt, wie PigActivity verwendet wird. Die Beispiel-Pipeline führtdie folgenden Schritte aus:

• MyPigActivity1 lädt Daten von Amazon S3 und führt ein Pig-Skript aus, das einige Datenspalten auswähltund zu Amazon S3 hochlädt.

• MyPigActivity2 lädt die erste Ausgabe, wählt einige Spalten und drei Datenzeilen aus, und lädt sie alszweite Ausgabe zu Amazon S3 hoch.

• MyPigActivity3 lädt die zweiten Ausgabedaten und fügt zwei Datenzeilen und nur die Spalte mit demNamen „5.“ in Amazon RDS ein.

• MyPigActivity4 lädt Amazon RDS-Daten, wählt die erste Datenzeile aus, und lädt sie zu Amazon S3hoch.

{ "objects": [ { "id": "MyInputData1",

API-Version 2012-10-29201

Page 209: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

"schedule": { "ref": "MyEmrResourcePeriod" }, "directoryPath": "s3://example-bucket/pigTestInput", "name": "MyInputData1", "dataFormat": { "ref": "MyInputDataType1" }, "type": "S3DataNode" }, { "id": "MyPigActivity4", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyOutputData3" }, "pipelineLogUri": "s3://example-bucket/path/", "name": "MyPigActivity4", "runsOn": { "ref": "MyEmrResource" }, "type": "PigActivity", "dependsOn": { "ref": "MyPigActivity3" }, "output": { "ref": "MyOutputData4" }, "script": "B = LIMIT ${input1} 1; ${output1} = FOREACH B GENERATE one;", "stage": "true" }, { "id": "MyPigActivity3", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyOutputData2" }, "pipelineLogUri": "s3://example-bucket/path", "name": "MyPigActivity3", "runsOn": { "ref": "MyEmrResource" }, "script": "B = LIMIT ${input1} 2; ${output1} = FOREACH B GENERATE Fifth;", "type": "PigActivity", "dependsOn": { "ref": "MyPigActivity2" }, "output": { "ref": "MyOutputData3" }, "stage": "true" }, { "id": "MyOutputData2", "schedule": { "ref": "MyEmrResourcePeriod" }, "name": "MyOutputData2", "directoryPath": "s3://example-bucket/PigActivityOutput2", "dataFormat": {

API-Version 2012-10-29202

Page 210: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

"ref": "MyOutputDataType2" }, "type": "S3DataNode" }, { "id": "MyOutputData1", "schedule": { "ref": "MyEmrResourcePeriod" }, "name": "MyOutputData1", "directoryPath": "s3://example-bucket/PigActivityOutput1", "dataFormat": { "ref": "MyOutputDataType1" }, "type": "S3DataNode" }, { "id": "MyInputDataType1", "name": "MyInputDataType1", "column": [ "First STRING", "Second STRING", "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING", "Ninth STRING", "Tenth STRING" ], "inputRegEx": "^(\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+)", "type": "RegEx" }, { "id": "MyEmrResource", "region": "us-east-1", "schedule": { "ref": "MyEmrResourcePeriod" }, "keyPair": "example-keypair", "masterInstanceType": "m1.small", "enableDebugging": "true", "name": "MyEmrResource", "actionOnTaskFailure": "continue", "type": "EmrCluster" }, { "id": "MyOutputDataType4", "name": "MyOutputDataType4", "column": "one STRING", "type": "CSV" }, { "id": "MyOutputData4", "schedule": { "ref": "MyEmrResourcePeriod" }, "directoryPath": "s3://example-bucket/PigActivityOutput3", "name": "MyOutputData4", "dataFormat": { "ref": "MyOutputDataType4" }, "type": "S3DataNode" },

API-Version 2012-10-29203

Page 211: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

{ "id": "MyOutputDataType1", "name": "MyOutputDataType1", "column": [ "First STRING", "Second STRING", "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING" ], "columnSeparator": "*", "type": "Custom" }, { "id": "MyOutputData3", "username": "___", "schedule": { "ref": "MyEmrResourcePeriod" }, "insertQuery": "insert into #{table} (one) values (?)", "name": "MyOutputData3", "*password": "___", "runsOn": { "ref": "MyEmrResource" }, "connectionString": "jdbc:mysql://example-database-instance:3306/example-database", "selectQuery": "select * from #{table}", "table": "example-table-name", "type": "MySqlDataNode" }, { "id": "MyOutputDataType2", "name": "MyOutputDataType2", "column": [ "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING" ], "type": "TSV" }, { "id": "MyPigActivity2", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyOutputData1" }, "pipelineLogUri": "s3://example-bucket/path", "name": "MyPigActivity2", "runsOn": { "ref": "MyEmrResource" }, "dependsOn": { "ref": "MyPigActivity1" }, "type": "PigActivity", "script": "B = LIMIT ${input1} 3; ${output1} = FOREACH B GENERATE Third, Fourth, Fifth, Sixth, Seventh, Eighth;",

API-Version 2012-10-29204

Page 212: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

"output": { "ref": "MyOutputData2" }, "stage": "true" }, { "id": "MyEmrResourcePeriod", "startDateTime": "2013-05-20T00:00:00", "name": "MyEmrResourcePeriod", "period": "1 day", "type": "Schedule", "endDateTime": "2013-05-21T00:00:00" }, { "id": "MyPigActivity1", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyInputData1" }, "pipelineLogUri": "s3://example-bucket/path", "scriptUri": "s3://example-bucket/script/pigTestScipt.q", "name": "MyPigActivity1", "runsOn": { "ref": "MyEmrResource" }, "scriptVariable": [ "column1=First", "column2=Second", "three=3" ], "type": "PigActivity", "output": { "ref": "MyOutputData1" }, "stage": "true" } ]}

Der Inhalt von pigTestScript.q ist wie folgt:

B = LIMIT ${input1} $three; ${output1} = FOREACH B GENERATE $column1, $column2, Third, Fourth, Fifth, Sixth, Seventh, Eighth;

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführungeines Zeitplanintervalls aufgerufen.Benutzer müssen einen Zeitplanverweisauf ein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Benutzer können dieseAnforderung erfüllen, indem sie explizit einenZeitplan für das Objekt festlegen, indem siebeispielsweise "schedule" angeben: {"ref":

Referenzobjekt,z. B. „schedule“:{"ref":"myScheduleId"}

API-Version 2012-10-29205

Page 213: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

Objektaufruf-Felder Beschreibung Slot-Typ"DefaultSchedule"}. In den meisten Fällen ist esbesser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objektediesen Zeitplan erben. Wenn die Pipeline übereinen Baum mit Zeitplänen verfügt (Zeitpläneinnerhalb des Hauptplans), können Benutzer einübergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

script Das auszuführende Pig-Skript. Zeichenfolge

scriptUri Der Speicherort des auszuführenden Pig-Skripts(z. B. s3://scriptLocation).

Zeichenfolge

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn EMR-Cluster, auf dem diese PigActivity ausgeführtwird.

Referenzobjekt,z. B. „runsOn“:{"ref":"myEmrClusterId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist,wird ignoriert.workerGroup

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Der zuletzt gemeldete Status von der Remote-Aktivität.

Zeichenfolge

attemptTimeout Das Timeout für die Fertigstellung der Remote-Arbeit. Wenn diese Option aktiviert ist, kanneine Remote-Aktivität, die nicht innerhalb derfestgelegten Startzeit abgeschlossen wird,wiederholt werden.

Zeitraum

dependsOn Gibt die Abhängigkeit von einem anderenausführbaren Objekt an.

Referenzobjekt,z. B. „dependsOn“:{"ref":"myActivityId"}

API-Version 2012-10-29206

Page 214: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

Optionale Felder Beschreibung Slot-Typ

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

input Die Eingangsdatenquelle. Referenzobjekt,z. B. „input“:{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt,z. B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt,z. B. „onSuccess“:{"ref":"myActionId"}

output Die Eingangsdatenquelle. Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der Amazon S3-URI (z. B. s3://BucketName/Key/“)zum Hochladen von Protokollen für die Pipeline.

Zeichenfolge

postActivityTaskConfig Post-Activity-Konfigurationsskript, das ausgeführtwerden soll. Dieses besteht aus einem URI desShell-Skripts in Amazon S33 und einer Liste vonArgumenten.

Referenzobjekt, z. B.„postActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

preActivityTaskConfig Pre-Activity-Konfigurationsskript, das ausgeführtwerden soll. Dieses besteht aus einem URI desShell-Skripts in Amazon S3 und einer Liste vonArgumenten.

Referenzobjekt, z. B.„preActivityTaskConfig“:{"ref":"myShellScriptConfigId"}

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt,z. B. „precondition“:{"ref":"myPreconditionId"}

API-Version 2012-10-29207

Page 215: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

Optionale Felder Beschreibung Slot-Typ

reportProgressTimeout Das Timeout für aufeinanderfolgende Aufrufevon reportProgress durch Remote-Arbeit.Wenn diese Option aktiviert ist, werdenRemote-Aktivitäten, die den Fortschritt fürden angegebenen Zeitraum nicht melden, alsfehlgeschlagen angesehen und es wird erneutversucht.

Zeitraum

resizeClusterBeforeRunningÄndern Sie die Größe des Clusters, bevorSie diese Aktivität ausführen, um DynamoDB-Datenknoten aufzunehmen, die als Eingaben oderAusgaben angegeben sind.

Note

Wenn Ihre Aktivität einenDynamoDBDataNode als Eingabe- oderAusgabedatenknoten verwendet undSie resizeClusterBeforeRunningauf TRUE festlegen, beginnt AWS DataPipeline, m3.xlarge-Instance-Typen zuverwenden. Dadurch wird Ihre Auswahlan Instance-Typen mit m3.xlargeüberschrieben, wodurch Ihre monatlichenKosten ansteigen könnten.

Boolesch

resizeClusterMaxInstancesEin Limit für die maximale Anzahl von Instances,die vom Resize-Algorithmus angefordert werdenkönnen.

Ganzzahl

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Zeitreihenstilplanung bedeutet, dassInstances am Ende jedes Intervalls geplant werdenund Cron-Stil-Planung bedeutet, dass Instanceszu Beginn jedes Intervalls geplant werden. EinOn-Demand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen On-Demand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sie einfach denActivatePipeline-Vorgang für jeden nachfolgendenLauf auf. Die Werte sind: cron, ondemand undtimeseries.

Aufzählung

scriptVariable Die Argumente, die an das Pig-Skript übergebenwerden sollen. Sie können scriptVariable mit scriptoder scriptUri verwenden.

Zeichenfolge

API-Version 2012-10-29208

Page 216: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPigActivity

Optionale Felder Beschreibung Slot-Typ

stage Legt fest, ob Staging aktiviert ist, und gewährtIhrem Pig-Skript den Zugriff auf Staging-Daten-Tabellen, z. B. ${INPUT1} und ${OUTPUT1}.

Boolesch

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z. B."activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog Amazon EMR-Schrittprotokolle sind nur für EMR-Aktivitätsversuchen verfügbar.

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

API-Version 2012-10-29209

Page 217: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Laufzeitfelder Beschreibung Slot-Typ

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für das Objekt einplanen. DateTime

@scheduledStartTime Startzeit für das Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)• EmrActivity (p. 176)

RedshiftCopyActivityKopiert Daten von DynamoDB oder Amazon S3 zu Amazon Redshift. Sie können Daten in eine neueTabelle laden oder Daten in einer vorhandenen Tabelle einfach zusammenführen.

Hier finden Sie eine Übersicht über einen Anwendungsfall, in dem RedshiftCopyActivity verwendetwird:

1. Beginnen Sie mit der Verwendung von AWS Data Pipeline, um Ihre Daten in Amazon S3 bereitzustellen.2. Verwenden Sie RedshiftCopyActivity zum Verschieben der Daten von Amazon RDS und Amazon

EMR in Amazon Redshift.

Dies ermöglicht Ihnen das Laden Ihrer Daten in Amazon Redshift, wo Sie sie analysieren können.

API-Version 2012-10-29210

Page 218: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

3. Sie können mit SqlActivity (p. 225) SQL-Abfragen für die Daten ausführen, die Sie in Amazon Redshiftgeladen haben.

Darüber hinaus unterstützt RedshiftCopyActivity Ihre Arbeit mit einem S3DataNode, weil es eineManifestdatei unterstützt. Weitere Informationen finden Sie unter S3DataNode (p. 161).

BeispielEs folgt ein Beispiel für diesen Objekttyp.

Um die Formatkonvertierung sicherzustellen, verwendet dieses Beispiel EMPTYASNULL undIGNOREBLANKLINES, spezielle Konvertierungsparameter in commandOptions. Informationen hierzufinden Sie unter Datenkonvertierungsparameter im Amazon Redshift Datenbankentwicklerhandbuch.

{ "id" : "S3ToRedshiftCopyActivity", "type" : "RedshiftCopyActivity", "input" : { "ref": "MyS3DataNode" }, "output" : { "ref": "MyRedshiftDataNode" }, "insertMode" : "KEEP_EXISTING", "schedule" : { "ref": "Hour" }, "runsOn" : { "ref": "MyEc2Resource" }, "commandOptions": ["EMPTYASNULL", "IGNOREBLANKLINES"]}

Die folgende Pipeline-Beispieldefinition zeigt eine Aktivität, die den Einfügemodus APPEND nutzt:

{ "objects": [ { "id": "CSVId1", "name": "DefaultCSV1", "type": "CSV" }, { "id": "RedshiftDatabaseId1", "databaseName": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterId": "redshiftclusterId" }, { "id": "Default", "scheduleType": "timeseries", "failureAndRerunMode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "RedshiftDataNodeId1", "schedule": { "ref": "ScheduleId1" }, "tableName": "orders", "name": "DefaultRedshiftDataNode1", "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));", "type": "RedshiftDataNode",

API-Version 2012-10-29211

Page 219: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

"database": { "ref": "RedshiftDatabaseId1" } }, { "id": "Ec2ResourceId1", "schedule": { "ref": "ScheduleId1" }, "securityGroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "logUri": "s3://myLogs", "resourceRole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" }, { "id": "ScheduleId1", "startDateTime": "yyyy-mm-ddT00:00:00", "name": "DefaultSchedule1", "type": "Schedule", "period": "period", "endDateTime": "yyyy-mm-ddT00:00:00" }, { "id": "S3DataNodeId1", "schedule": { "ref": "ScheduleId1" }, "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataFormat": { "ref": "CSVId1" }, "type": "S3DataNode" }, { "id": "RedshiftCopyActivityId1", "input": { "ref": "S3DataNodeId1" }, "schedule": { "ref": "ScheduleId1" }, "insertMode": "APPEND", "name": "DefaultRedshiftCopyActivity1", "runsOn": { "ref": "Ec2ResourceId1" }, "type": "RedshiftCopyActivity", "output": { "ref": "RedshiftDataNodeId1" } } ]}

Der APPEND-Vorgang fügt Elemente zu einer Tabelle hinzu, unabhängig von Primär- oderSortierschlüsseln. Bei der folgenden Tabelle können Sie beispielsweise einen Datensatz mit demselben ID-und Benutzer-Wert anfügen.

ID(PK) USER1 aaa2 bbb

API-Version 2012-10-29212

Page 220: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Sie können einen Datensatz mit demselben ID- und Benutzer-Wert anfügen:

ID(PK) USER1 aaa2 bbb1 aaa

Note

Wenn ein APPEND-Vorgang unterbrochen und wieder aufgenommen wird, ist es möglich, dassdie entstandene Wiederausführungs-Pipeline von Anfang an Anfügungen vornimmt. Dies kann zuweiteren Duplizierungen führen. Sie sollten dieses Verhalten kennen, besonders, wenn Sie Logikverwenden, die die Anzahl an Zeilen zählt.

Ein Tutorial finden Sie unter Kopieren von Daten zu Amazon Redshift mit AWS Data Pipeline (p. 122).

Syntax

Pflichtfelder Beschreibung Slot-Typ

insertMode Legt fest, wie AWS Data Pipeline die bereits inder Zieltabelle enthaltenen Daten verarbeitet,die sich mit Zeilen in den zu ladenden Datenüberschneiden.

Gültige Werte sind: KEEP_EXISTING,OVERWRITE_EXISTING, TRUNCATE und APPEND.

KEEP_EXISTING fügt der Tabelle neueZeilen hinzu und lässt die vorhandenen Zeilenunverändert.

KEEP_EXISTING und OVERWRITE_EXISTINGverwenden den Primärschlüssel, Sortier-und Verteilschlüssel, um zu identifizieren,welche eingehende Zeilen mit vorhandenenZeilen übereinstimmen. Weitere Informationenfinden Sie unter Aktualisieren und Einfügenvon neuen Daten im Amazon RedshiftDatenbankentwicklungshandbuch.

TRUNCATE löscht alle Daten in der Zieltabelle,bevor die neuen Daten hinzugefügt werden.

APPEND fügt alle Datensätze am Ende derRedshift-Tabelle an. APPEND setzt keinen Primär-,Verteilungs- oder Sortierschlüssel voraus. Eskönnen also Zeilen hinzugefügt werden, bei denenes sich um potenzielle Duplikate handelt.

Aufzählung

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesZeitplanintervalls aufgerufen.

Referenzobjekt, wiez. B.: "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29213

Page 221: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Objektaufruf-Felder Beschreibung Slot-TypSie müssen einen Zeitplanverweis aufein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen.

In den meisten Fällen empfehlen wir, denZeitplanverweis auf das Standard-Pipeline-Objektzu setzen, damit alle Objekte diesen Zeitplanerben. Sie können beispielsweise einen Zeitplanexplizit für das Objekt festlegen, indem Sie"schedule": {"ref": "DefaultSchedule"}angeben.

Wenn der Hauptplan in Ihrer Pipelineverschachtelte Zeitpläne enthält, erstellen Sie einübergeordnetes Objekt mit Zeitplanreferenz.

Weitere Informationen zu optionalenZeitplankonfigurationen finden Sie unter Zeitplan.

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispielsweise eine AmazonEC2-Instance oder ein Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist,wird workerGroup ignoriert.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

commandOptions Die an den Amazon Redshift-Datenknotenwährend des COPY-Vorgangs zu übergebendenParameter. Weitere Informationen über Parameterfinden Sie unter COPY im Amazon RedshiftDatenbankentwicklungshandbuch.

Wenn COPY die Tabelle lädt, versucht derBefehl implizit, die Zeichenfolgen in denQuelldaten in den Datentyp der Zielspalte zukonvertieren. Zusätzlich zu den Standard-

Zeichenfolge

API-Version 2012-10-29214

Page 222: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Optionale Felder Beschreibung Slot-TypDatenkonvertierungen, die automatischstattfinden, wenn Fehler erhalten oder andereKonvertierungen benötigen, können Sie zusätzlicheUmrechnungsparameter angeben. WeitereInformationen über Parameter finden Sie unterParameter für die Datenkonvertierung im AmazonRedshift Datenbankentwicklungshandbuch.

Wenn dem Eingabe- oder Ausgabedatenknotenein Datenformat zugeordnet ist, werden dieangegebenen Parameter ignoriert.

Da beim Kopieren die Daten zunächst mit demBefehl COPY in eine Staging-Tabelle eingefügtund danach mit dem Befehl INSERT von derStaging- in die Zieltabelle kopiert werden, könneneinige COPY-Parameter nicht verwendet werden(z. B. die Fähigkeit des COPY-Befehls, der dasautomatische Komprimieren der Tabelle aktiviert).Wenn die Tabelle komprimiert werden soll, fügenSie der Anweisung CREATE TABLE Angaben zurSpaltencodierung hinzu.

In einigen Fällen, wenn Daten aus dem AmazonRedshift-Cluster entfernt und Dateien inAmazon S3 erstellt werden müssen, basiert dieRedshiftCopyActivity auf der UNLOAD-Operation aus Amazon Redshift.

Zur Verbesserung der Leistung beim Kopierenund Entladen geben Sie den PARALLELOFF-Parameter aus dem UNLOAD Befehlan. Weitere Informationen über Parameterfinden Sie unter UNLOAD im Amazon RedshiftDatenbankentwicklungshandbuch.

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt.

Referenzobjekt:"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

input Der Eingabedatenknoten. Die Datenquelle kannAmazon S3, DynamoDB oder Amazon Redshiftsein.

Referenzobjekt: "input":{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

API-Version 2012-10-29215

Page 223: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Optionale Felder Beschreibung Slot-Typ

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt:"onFail":{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt: "onLateAction":{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt: "onSuccess":{"ref":"myActionId"}

output Der Ausgabedatenknoten. Der Ausgabespeicherortkann Amazon S3 oder Amazon Redshift sein.

Referenzobjekt: "output":{"ref":"myDataNodeId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt:"parent":{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt:"precondition":{"ref":"myPreconditionId"}

Warteschlange Entspricht der Einstellung query_group in Amazon Redshift, mit der Sie gleichzeitigauszuführende Aktivitäten anhand ihrer Platzierungin Warteschlangen zuweisen und priorisierenkönnen.

Amazon Redshift begrenzt die Zahl dergleichzeitigen Verbindungen auf 15. WeitereInformationen finden Sie unter Zuweisen vonAbfragen zu Warteschlangen im Amazon RDSDatenbankentwicklungshandbuch.

Zeichenfolge

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress.

Wenn diese Option aktiviert ist, werdenRemote-Aktivitäten, die den Fortschritt fürden angegebenen Zeitraum nicht melden, alsfehlgeschlagen angesehen und es wird erneutversucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

API-Version 2012-10-29216

Page 224: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dieser Option können Sie angeben, ob der Planfür die Objekte in Ihrer Pipeline vorgesehen ist.Werte sind cron, ondemand und timeseries.

Die timeseries Planung bedeutet, dassInstances am Ende jedes Intervalls geplant sind.

Die Cron Planung bedeutet, dass Instances amAnfang jedes Intervalls geplant sind.

Ein ondemand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.

Um ondemand-Pipelines zu verwenden, rufen Sieeinfach den ActivatePipeline-Vorgang fürjeden nachfolgenden Lauf auf.

Wenn Sie einen ondemand-Zeitplan verwenden,müssen Sie ihn im Standardobjekt angeben, under muss der einzige für die Objekte in der Pipelineangegebene scheduleType sein.

Aufzählung

transformSql Der zum Transformieren der Eingabedatenverwendete SQL SELECT-Ausdruck.

Führen Sie den Ausdruck transformSql in derTabelle mit dem Namen staging aus.

Wenn Sie Daten aus DynamoDB oder AmazonS3 kopieren, erstellt AWS Data Pipeline einesogenannte Staging-Tabelle und fügt die Daten indiese ein. Die Daten dieser Tabelle werden zumAktualisieren der Zieltabelle verwendet.

Das Ausgabe-Schema von transformSql mussmit dem Schema der endgültigen Zieltabelleübereinstimmen.

Wenn Sie die Option transformSql angeben,wird von der angegebenen SQL-Anweisung einezweite Staging-Tabelle erstellt. Die Daten dieserzweiten Staging-Tabelle werden anschließend indie endgültige Zieltabelle übernommen.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt:"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

API-Version 2012-10-29217

Page 225: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftCopyActivity

Laufzeitfelder Beschreibung Slot-Typ

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt: "cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

API-Version 2012-10-29218

Page 226: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandActivity

Laufzeitfelder Beschreibung Slot-Typ

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt: "waitingOn":{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Sphäre eines Objekts. Gibt seine Positionim Lebenszyklus an. Beispielsweise ergebenKomponentenobjekte Instance-Objekte, dieVersuchsobjekte ausführen.

Zeichenfolge

ShellCommandActivityFührt einen Befehl oder ein Skript aus. Mit ShellCommandActivity können Sie Zeitreihen oder Cron-ähnliche geplante Aufgaben ausführen.

Wenn das Feld stage auf „true“ festgelegt wurde und mit einem S3DataNode verwendet wird, unterstütztShellCommandActivity das Konzept des Daten-Staging. Sie können also Daten von Amazon S3 zueinem Staging-Speicherort (z. B. Amazon EC2 oder Ihre lokale Umgebung) verschieben, mit Skripten undShellCommandActivity die Daten bearbeiten und sie zurück zu Amazon S3 verschieben.

Wenn in diesem Fall Ihr Shell-Befehl mit einem Eingabe-S3DataNode verbunden ist, werden Ihre Shell-Skripts mit ${INPUT1_STAGING_DIR}, ${INPUT2_STAGING_DIR} und anderen Feldern ausgeführt, dieauf die ShellCommandActivity-Eingabefelder verweisen.

Ebenso können Ausgaben vom Shell-Befehl in einem Ausgabeverzeichnis bereitgestellt werden, umautomatisch zu Amazon S3 verschoben zu werden. Dabei wird von ${OUTPUT1_STAGING_DIR},${OUTPUT2_STAGING_DIR} usw. darauf verwiesen.

Diese Ausdrücke können als Befehlszeilenargumente zum Shell-Befehl weitergeleitet werden, sodass Siesie für Datentransformationslogik verwenden können.

ShellCommandActivity gibt Linux-ähnliche Fehlercodes und Zeichenfolgen aus. WennShellCommandActivity fehlschlägt, ist der angezeigte error ein Wert ungleich Null.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "command" : "mkdir new-directory"

API-Version 2012-10-29219

Page 227: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandActivity

}

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesschedule-Intervalls aufgerufen.

Um die Abhängigkeitsausführungsreihenfolgefür dieses Objekt festzulegen, geben Sie eineschedule-Referenz auf ein anderes Objekt an.

Um diese Anforderung zu erfüllen, setzenSie explizit einen schedule auf dasObjekt, z. B. mit "schedule": {"ref":"DefaultSchedule"}.

In den meisten Fällen ist es besser, die schedule-Referenz auf das Standard-Pipeline-Objektzu setzen, damit alle Objekte diesen Zeitplanerben. Besteht die Pipeline aus einem Baum mitZeitplänen (Zeitpläne innerhalb des Hauptplans),erstellen Sie ein übergeordnetes Objekt, das eineZeitplanreferenz besitzt.

Um die Last zu verteilen, erstellt AWS DataPipeline physische Objekte etwas vor demZeitplan, führt sie jedoch gemäß dem Zeitplan aus.

Weitere Informationen zu optionalen Beispiel-Zeitplankonfigurationen finden Sie unter https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

command Den auszuführenden Befehl. Verwenden Sie $,um auf Positionsparameter zu verweisen, undgeben Sie mit scriptArgument die Parameter fürden Befehl an. Dieser Wert und alle zugehörigenParameter müssen in der Umgebung funktionieren,in der Sie den Task-Runner ausführen.

Zeichenfolge

scriptUri Ein Amazon S3-URI-Pfad für eine Datei, dieheruntergeladen und als Shell-Befehl ausgeführtwerden soll. Geben Sie nur ein Feld scriptUrioder command an. scriptUri kann keineParameter verwenden. Verwenden Sie stattdessencommand.

Zeichenfolge

API-Version 2012-10-29220

Page 228: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandActivity

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn Die Rechenressource für die Ausführung derAktivität oder des Befehls, z. B. eine Amazon EC2-Instance oder ein Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

workerGroup Wird für Routing-Aufgaben verwendet. Wenn Sieeinen runsOn-Wert angeben und workerGroupvorhanden ist, wird ignoriert.workerGroup

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Der zuletzt gemeldete Status von der Remote-Aktivität.

Zeichenfolge

attemptTimeout Das Timeout für die Fertigstellung der Remote-Arbeit. Wenn diese Option aktiviert ist, kanneine Remote-Aktivität, die nicht innerhalb derfestgelegten Startzeit abgeschlossen wird,wiederholt werden.

Zeitraum

dependsOn Gibt eine Abhängigkeit von einem anderenausführbaren Objekt an.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

input Der Speicherort der Eingabedaten. Referenzobjekt,z. B. "input":{"ref":"myDataNodeId"}

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

API-Version 2012-10-29221

Page 229: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandActivity

Optionale Felder Beschreibung Slot-Typ

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

output Der Speicherort der Ausgabedaten. Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Das übergeordnetes Objekt des aktuellen Objekts,aus dem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der Amazon S3-URI, z. B. 's3://BucketName/Key/', für das Hochladen von Protokollen für diePipeline.

Zeichenfolge

precondition Definiert optional eine Vorbedingung. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Das Timeout für aufeinanderfolgende Aufrufe vonreportProgress durch Remote-Aktivitäten.Wenn diese Option aktiviert ist, werdenRemote-Aktivitäten, die den Fortschritt fürden angegebenen Zeitraum nicht melden, alsfehlgeschlagen angesehen und es wird erneutversucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

scheduleType Gestattet Ihnen, anzugeben, ob die Objekte in IhrerPipeline-Definition am Anfang des Intervalls oderam Ende des Intervalls geplant werden sollen.

Die Werte sind: cron, ondemand undtimeseries.

timeseries bedeutet, dass Instances am Endejedes Intervalls geplant sind.

Cron bedeutet, dass Instances am Anfang jedesIntervalls geplant sind.

ondemand bedeutet, Sie können eine Pipelinejeweils einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen ondemand-Zeitplan verwenden,geben Sie ihn im Standardobjekt als einzigenscheduleType für Objekte in der Pipeline an.Um ondemand-Pipelines zu verwenden, rufen Sieeinfach den ActivatePipeline-Vorgang fürjeden nachfolgenden Lauf auf.

Aufzählung

API-Version 2012-10-29222

Page 230: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandActivity

Optionale Felder Beschreibung Slot-Typ

scriptArgument Ein Zeichenfolgenarray im JSON-Format, dasdem von dem Befehl angegebenen Befehlübergeben wird. Ist der Befehl beispielsweiseecho $1 $2, geben Sie scriptArgumentals "param1", "param2" an. Für mehrereArgumente und Parameter übergebenSie das scriptArgument wie folgt: "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2"Das scriptArgument ist command. DieVerwendung durch einen Fehler scriptUriverursacht.

Zeichenfolge

stage Legt fest, ob Staging aktiviert ist, und gewährtIhren Shell-Befehlen den Zugriff auf Staging-Datenvariablen, z. B. ${INPUT1_STAGING_DIR}und ${OUTPUT1_STAGING_DIR}.

Boolesch

stderr Der Pfad, zu dem Systemfehlermeldungen vomBefehl umgeleitet werden. Wenn Sie das FeldrunsOn verwenden, muss dies aufgrund destemporären Charakters der Ressource, auf derIhre Aktivität ausgeführt wird, ein Amazon S3-Pfadsein. Wenn Sie jedoch das Feld workerGroupangeben, ist ein lokaler Dateipfad zulässig.

Zeichenfolge

stdout Der Amazon S3-Pfad, der eine umgeleiteteAusgabe vom Befehl empfängt. Wenn Sie dasFeld runsOn verwenden, muss dies aufgrund destemporären Charakters der Ressource, auf derIhre Aktivität ausgeführt wird, ein Amazon S3-Pfadsein. Wenn Sie jedoch das Feld workerGroupangeben, ist ein lokaler Dateipfad zulässig.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Die Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Der Zeitpunkt, zu dem die Ausführung diesesObjekts abgeschlossen wurde.

DateTime

@actualStartTime Der Zeitpunkt, zu dem die Ausführung diesesObjekts gestartet wurde.

DateTime

cancellationReason Der cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Die Beschreibung der Zuständigkeitskette, die denObjektausfall verursacht hat.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog Amazon EMR-Schrittprotokolle sind nur fürAmazon EMR-Aktivitätsversuche verfügbar.

Zeichenfolge

API-Version 2012-10-29223

Page 231: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandActivity

Laufzeitfelder Beschreibung Slot-Typ

errorId Die errorId, wenn dieses Objekt fehlgeschlagenist.

Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der das Objekt seine Ausführungbeendet hat.

DateTime

hadoopJobLog Für Versuche für Amazon EMR-basierte Aktivitätensind Hadoop-Auftragsprotokolle verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdDie ID des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeDer Zeitpunkt, zu dem der Servicestatus beimletzten Mal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeDer Zeitpunkt des letzten Laufs, für den dieAusführung abgeschlossen wurde.

DateTime

@latestRunTime Der Zeitpunkt des letzten Laufs, für den dieAusführung geplant war.

DateTime

@nextRunTime Der Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Die geplante Endzeit für das Objekt. DateTime

@scheduledStartTime Die geplante Startzeit für das Objekt. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Die AWS Data Pipeline-Version, mit der das Objekterstellt wurde.

Zeichenfolge

@waitingOn Die Beschreibung der Liste der Abhängigkeiten, aufdie dieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29224

Page 232: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlActivity

Systemfelder Beschreibung Slot-Typ

@error Der Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Die Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Position eines Objekts im Lebenszyklus.Komponentenobjekte ergeben Instance-Objekte,die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• CopyActivity (p. 171)• EmrActivity (p. 176)

SqlActivityFührt eine SQL-Abfrage (Skript) auf einer Datenbank aus.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MySqlActivity", "type" : "SqlActivity", "database" : { "ref": "MyDatabaseID" }, "script" : "SQLQuery" | "scriptUri" : s3://scriptBucket/query.sql, "schedule" : { "ref": "MyScheduleID" },}

Syntax

Pflichtfelder Beschreibung Slot-Typ

database Die Datenbank für die Ausführung desbereitgestellten SQL-Skripts.

Referenzobjekt,z. B. „database“:{"ref":"myDatabaseId"}

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesZeitplanintervalls aufgerufen. Sie müssen einenZeitplanverweis auf ein anderes Objekt angeben,um die Abhängigkeitsausführungsreihenfolgefür dieses Objekt festzulegen. Sie können einenZeitplan explizit für das Objekt festlegen, indem Sie"schedule": {"ref": "DefaultSchedule"}angeben.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29225

Page 233: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlActivity

Objektaufruf-Felder Beschreibung Slot-TypIn den meisten Fällen ist es besser, denZeitplanverweis auf das Standard-Pipeline-Objektzu setzen, damit alle Objekte diesen Zeitplanerben.

Wenn die Pipeline über einen Baum über inden Hauptplan verschachtelte Zeitplänen,können Benutzer ein übergeordnetes Objekt mitZeitplanreferenz erstellen. Weitere Informationenzu optionalen Beispiel-Zeitplankonfigurationenfinden Sie unter https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

script Das auszuführende SQL-Skript. Sie müssen dasSkript oder scriptUri angeben. Wenn das Skript inAmazon S3 gespeichert ist, wird das Skript nichtals Ausdruck ausgewertet. Die Angabe mehrererWerte für scriptArgument ist nützlich, wenn dasSkript in Amazon S3 gespeichert ist.

Zeichenfolge

scriptUri Ein URI, der den Speicherort eines SQL-Skriptsangibt, das in dieser Aktivität ausgeführt wird.

Zeichenfolge

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

runsOn Die Rechenressource zum Ausführen der Aktivitätoder des Befehls. Beispielsweise eine AmazonEC2-Instance oder ein Amazon EMR-Cluster.

Referenzobjekt,z. B. „runsOn“:{"ref":"myResourceId"}

workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist,wird ignoriert.workerGroup

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

API-Version 2012-10-29226

Page 234: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlActivity

Optionale Felder Beschreibung Slot-Typ

dependsOn Angeben der Abhängigkeit von einem anderenausführbaren Objekt.

Referenzobjekt, z.B. „dependsOn“:{"ref":"myActivityId"}

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

input Speicherort der Eingabedaten. Referenzobjekt,z. B. "input":{"ref":"myDataNodeId"}

lateAfterTimeout Der Zeitraum seit dem geplanten Start der Pipeline,in dem die Objektausführung starten muss.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wenn einObjekt noch nicht geplant oder noch nicht in demZeitraum seit dem geplanten Start der Pipelineabgeschlossen wurde, wie durch 'lateAfterTimeout'festgelegt.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

output Speicherort der Ausgabedaten. Dies istnur für Verweise in einem Skript (z. B.#{output.tablename}) hilfreich und zumErstellen der Ausgabetabelle, indem Sie"createTableSql' im Ausgabedatenknotenfestlegen. Die Ausgabe der SQL-Abfrage wird nichtin den Ausgabedatenknoten geschrieben.

Referenzobjekt,z. B. „output“:{"ref":"myDataNodeId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

pipelineLogUri Der S3-URI (z. B. „s3://BucketName/Key/“) zumHochladen von Protokollen für die Pipeline.

Zeichenfolge

precondition Legen Sie optional eine Vorbedingung fest. EinDatenknoten ist solange nicht als "BEREIT"markiert, bis alle Vorbedingungen erfüllt sind.

Referenzobjekt, z.B. "precondition":{"ref":"myPreconditionId"}

API-Version 2012-10-29227

Page 235: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlActivity

Optionale Felder Beschreibung Slot-Typ

Warteschlange [Nur Amazon Redshift] Entspricht der Einstellungquery_group in Amazon Redshift, mit der Siegleichzeitig auszuführende Aktivitäten anhandihrer Platzierung in Warteschlangen zuweisen undpriorisieren können. In Amazon Redshift sind biszu 15 gleichzeitige Verbindungen möglich. WeitereInformationen finden Sie unter Zuweisen vonAbfragen zu Warteschlangen im Amazon RedshiftDatenbankentwicklungshandbuch.

Zeichenfolge

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Werte sind cron, ondemand undtimeseries.

timeseries Planung bedeutet, dass Instancesam Ende jedes Intervalls geplant sind.

cron Planung bedeutet, dass Instances am Anfangjedes Intervalls geplant sind.

Ein ondemand-Zeitplan ermöglicht es Ihnen, einePipeline einmal pro Aktivierung auszuführen. Diesbedeutet, dass Sie die Pipeline nicht klonen oderneu erstellen müssen, um sie erneut auszuführen.Wenn Sie einen ondemand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um ondemand-Pipelines zu verwenden, rufen Sie einfachden ActivatePipeline-Vorgang für jedennachfolgenden Lauf auf.

Aufzählung

scriptArgument Eine Liste der Variablen für das Skript.Sie können alternativ Ausdrücke direkt indas Skriptfeld einfügen. Mehrere Werte fürscriptArgument sind hilfreich, wenn dasSkript in Amazon S3 gespeichert ist. Beispiel:#{format(@scheduledStartTime, "YY-MM-DDHH:MM:SS"}\n#{format(plusPeriod(@scheduledStartTime,"1 day"), "YY-MM-DD HH:MM:SS"}

Zeichenfolge

API-Version 2012-10-29228

Page 236: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSqlActivity

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

API-Version 2012-10-29229

Page 237: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRessourcen

Laufzeitfelder Beschreibung Slot-Typ

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

RessourcenNachfolgend sind die AWS Data Pipeline-Ressourcenobjekte aufgelistet:

Objekte• Ec2Resource (p. 230)• EmrCluster (p. 237)• HttpProxy (p. 256)

Ec2ResourceEine Amazon EC2-Instance, welche die von einer Pipeline-Aktivität definierte Arbeit ausführt

Weitere Informationen zu Standard-Amazon EC2-Instances, die AWS Data Pipeline erstellt, wenn Sie keineInstance angeben, finden Sie unter Standard-Amazon EC2-Instances nach AWS-Region (p. 4).

BeispieleEC2-Classic

Das folgende Beispielobjekt startet eine EC2 Instance in einem EC2-Classic- oder Standard-VPC, wobeieinige optionale Felder festgelegt sind.

API-Version 2012-10-29230

Page 238: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEc2Resource

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m1.medium", "securityGroups" : [ "test-group", "default" ], "keyPair" : "my-key-pair"}

EC2-VPC

Das folgende Beispielobjekt startet eine EC2 Instance in einem nicht standardmäßigen VPC, wobei einigeoptionale Felder festgelegt sind.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m1.medium", "securityGroupIds" : [ "sg-12345678", "sg-12345678" ], "subnetId": "subnet-12345678", "associatePublicIpAddress": "true", "keyPair" : "my-key-pair"}

Syntax

Pflichtfelder Beschreibung Slot-Typ

resourceRole Die IAM-Rolle, die steuert, auf welche Ressourcendie Amazon EC2-Instance zugreifen kann.

Zeichenfolge

Rolle Die IAM-Rolle, die von AWS Data Pipeline zumErstellen der EC2-Instance verwendet wird.

Zeichenfolge

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesZeitplanintervalls aufgerufen.

Sie müssen einen Zeitplanverweis aufein anderes Objekt angeben, um dieAbhängigkeitsausführungsreihenfolge für diesesObjekt festzulegen. Sie können dafür eine derfolgenden Möglichkeiten auswählen:

• Um sicherzustellen, dass alle Objekte inder Pipeline den Zeitplan übernehmen,

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

API-Version 2012-10-29231

Page 239: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEc2Resource

Objektaufruf-Felder Beschreibung Slot-Typlegen Sie einen Zeitplan explizit für dasObjekt fest: "schedule": {"ref":"DefaultSchedule"}. In den meisten Fällenist es nützlich, den Zeitplanverweis auf dasStandard-Pipeline-Objekt zu setzen, damit alleObjekte diesen Zeitplan übernehmen.

• Wenn der Hauptplan in Ihrer Pipelineverschachtelte Zeitpläne enthält, können Sieein übergeordnetes Objekt mit Zeitplanreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Optionale Felder Beschreibung Slot-Typ

actionOnResourceFailure Die Aktion, die nach einem Ressourcenfehlerdieser Ressource ausgeführt wird. Gültige Wertesind "retryall" und "retrynone".

Zeichenfolge

actionOnTaskFailure Die Aktion, die nach einem Aufgabenfehler dieserRessource ausgeführt wird. Gültige Werte sind"continue" oder "terminate".

Zeichenfolge

associatePublicIpAddress Gibt an, ob der Instance eine öffentliche IP-Adresse zugewiesen wird. Wenn sich die Instancein Amazon EC2 oder Amazon VPC befindet,ist der Standardwert true. Andernfalls ist derStandardwert false.

Boolesch

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Fertigstellung der Remote-Arbeit.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

availabilityZone Die Availability Zone, in der die Amazon EC2-Instance gestartet werden soll.

Zeichenfolge

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

httpProxy Der Proxy-Host, der von Clients zum Verbinden mitAWS-Services verwendet wird.

Referenzobjekt, z. B. "httpProxy":{"ref":"myHttpProxyId"}

imageId Die ID des für die Instance zu verwendenden AMI.Standardmäßig verwendet AWS Data Pipelineden HVM-AMI-Virtualisierungstyp. Folgenderegionsspezifische AMI-IDs sind zulässig:

• us-east-1: ami-0c7d8678e345b414c• us-east-2: ami-0e983e0e156f6152e

Zeichenfolge

API-Version 2012-10-29232

Page 240: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEc2Resource

Optionale Felder Beschreibung Slot-Typ• us-west-1: ami-0d7854a15957bfc0d• us-west-2: ami-09c6e771• ap-southeast-1: ami-0fe23617accff1901• ap-southeast-2: ami-0d85af1f569cb1dff• ap-northeast-1: ami-00c97fba3644ea699• ap-northeast-2: ami-08633ba7cc8ea5927• ap-south-1: ami-0d785c1c5809bab6e• sa-east-1: ami-0163ac3bad0a3f1ef• ca-central-1: ami-251b9641• eu-central-1: ami-0dea4adc94d997fbe• eu-west-1: ami-063d7038eec55d449• eu-west-2: ami-f10aff96• eu-west-3: ami-03443e5306761fbd3

Sie können das Standard-AMI überschreiben,indem Sie das von Ihnen gewählte HVM-AMIangeben. Weitere Informationen zu den AMI-Typenfinden Sie unter Linux AMI-Virtualisierungstypenund Finden eines Linux AMI im Amazon EC2-Benutzerhandbuch für Linux-Instances.

initTimeout Die Zeit, die auf den Start der Ressource gewartetwird.

Zeitraum

instanceCount Veraltet. Ganzzahl

instanceType Der Typ der Amazon EC2-Instance, die gestartetwerden soll.

Zeichenfolge

keyPair Der Name des Schlüsselpaars. Wenn Sie eineAmazon EC2-Instance ohne Angabe einesSchlüsselpaars starten, können Sie sich dort nichtanmelden.

Zeichenfolge

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

minInstanceCount Veraltet. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. "onFail":{"ref":"myActionId"}

API-Version 2012-10-29233

Page 241: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEc2Resource

Optionale Felder Beschreibung Slot-Typ

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant wurde oder nochausgeführt wird.

Referenzobjekt, z. B."onLateAction":{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z. B. "onSuccess":{"ref":"myActionId"}

parent Das übergeordnete Objekt des aktuellen Objekts,aus dem Slots übernommen werden.

Referenzobjekt,z. B. "parent":{"ref":"myBaseObjectId"}

pipelineLogUri Der Amazon S3-URI (z. B. 's3://BucketName/Key/') für das Hochladen von Protokollen für diePipeline.

Zeichenfolge

Region Der Code der Region, in der die Amazon EC2-Instance ausgeführt werden soll. Standardmäßigwird die Instance in derselben Region wie diePipeline ausgeführt. Sie können die Instancein derselben Region als abhängiges Datensetausführen.

Aufzählung

reportProgressTimeout Das Timeout für aufeinanderfolgende Aufrufevon reportProgress durch Remote-Arbeit.Wenn diese Option aktiviert ist, werdenRemote-Aktivitäten, die den Fortschritt fürden angegebenen Zeitraum nicht melden, alsfehlgeschlagen angesehen und erneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

runAsUser Der Benutzer zur Ausführung von TaskRunner. Zeichenfolge

runsOn Dieses Feld ist für dieses Objekt nicht zulässig. Referenzobjekt,z. B. "runsOn":{"ref":"myResourceId"}

API-Version 2012-10-29234

Page 242: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEc2Resource

Optionale Felder Beschreibung Slot-Typ

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang oderam Ende eines Intervalls oder bedarfsabhängiggeplant werden sollen.

Die Werte sind:

• timeseries Instances werden am Ende jedesIntervalls geplant.

• cron Instances werden am Anfang jedesIntervalls geplant.

• ondemand Ermöglicht es Ihnen, eine Pipelineeinmal pro Aktivierung auszuführen. Sie müssendie Pipeline nicht klonen oder neu erstellen,um sie erneut auszuführen. Wenn Sie einenOn-Demand-Zeitplan verwenden, muss erim Standardobjekt angegeben werden undder einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um On-Demand-Pipelines zu verwenden, rufen Sieden ActivatePipeline-Vorgang für jedennachfolgenden Lauf auf.

Aufzählung

securityGroupIds Die ID mindestens einer Amazon EC2-Sicherheitsgruppe, die für die Instances imRessourcenpool verwendet werden soll.

Zeichenfolge

securityGroups Mindestens eine Amazon EC2-Sicherheitsgruppe,die für die Instances im Ressourcenpool verwendetwerden soll.

Zeichenfolge

spotBidPrice Die maximale Datenmenge pro Stunde für IhreSpot-Instance in Dollar, wobei es sich um einenDezimalwert zwischen 0 und einschließlich 20,00handelt.

Zeichenfolge

subnetId Die ID des Amazon EC2-Subnetzes, in dem dieInstance gestartet werden soll.

Zeichenfolge

terminateAfter Die Anzahl der Stunden, nach denen dieRessource zu beenden ist.

Zeitraum

useOnDemandOnLastAttemptDieses Feld bestimmt, ob beim letzten Versuch,eine Spot-Instance anzufordern, stattdesseneine On-Demand-Instance angefordert wird. Aufdiese Weise wird sichergestellt, dass wenn dievorherigen Versuche fehlgeschlagen sind, derletzte Versuch nicht unterbrochen wird.

Boolesch

workerGroup Dieses Feld ist für dieses Objekt nicht zulässig. Zeichenfolge

API-Version 2012-10-29235

Page 243: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEc2Resource

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z. B."activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Der cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Zuständigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B."cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Schrittprotokolle sind nur für Amazon EMR-Aktivitätsversuche verfügbar.

Zeichenfolge

errorId Die Fehler-ID, wenn dieses Objekt fehlgeschlagenist.

Zeichenfolge

errorMessage Die Fehlermeldung, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@failureReason Der Grund für den Ressourcenfehler. Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Auftragsprotokolle für Versuche fürAmazon EMR-Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdId des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

API-Version 2012-10-29236

Page 244: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Laufzeitfelder Beschreibung Slot-Typ

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Die geplante Endzeit für das Objekt. DateTime

@scheduledStartTime Die geplante Startzeit für das Objekt. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Die Pipeline-Version, mit der das Objekt erstelltwurde.

Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt, z. B. "waitingOn":{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Position eines Objekts im Lebenszyklus.Komponentenobjekte ergeben Instance-Objekte,die Versuchsobjekte ausführen.

Zeichenfolge

EmrClusterRepräsentiert die Konfiguration eines Amazon EMR-Clusters. Dieses Objekt wird von EmrActivity (p. 176)zum Starten eines Clusters verwendet.

Inhalt• Beispiele (p. 238)• Syntax (p. 248)• Weitere Informationen finden Sie auch unter: (p. 256)

Scheduler

Scheduler bieten eine Möglichkeit, die Ressourcenzuweisung und Auftragspriorisierung in einem Hadoop-Cluster festzulegen. Administratoren oder Benutzer können einen Scheduler für verschiedene Klassen vonBenutzern und Anwendungen auswählen. Ein Scheduler könnte Warteschlangen nutzen, um Ressourcenfür Benutzer und Anwendungen zuzuweisen. Sie richten diese Warteschlangen beim Erstellen des Clustersein. Anschließend können Sie für bestimmte Arbeits- und Benutzertypen eine höhere Priorität festlegenals für andere. Dieses Vorgehen ermöglicht die effiziente Nutzung von Cluster-Ressourcen, wenn mehrereBenutzer Arbeiten zum Cluster übermitteln. Es gibt drei Arten von Schedulern:

API-Version 2012-10-29237

Page 245: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

• FairScheduler — versucht, Ressourcen gleichmäßig über einen längeren Zeitraum hinweg zu planen.• CapacityScheduler — verwendet Warteschlangen, damit Cluster-Administratoren Benutzer zu

Warteschlangen mit unterschiedlicher Priorität und Ressourcenzuweisung zuordnen können.• Standard — wird vom Cluster verwendet, was über Ihre Site konfiguriert werden kann.

Amazon EMR 2.x-, 3.x- vs. 4.x-Plattformen

AWS Data Pipeline unterstützt Amazon EMR-Cluster mit der Versionsbezeichnung emr-4.0.0 oder höher.Dafür ist die Nutzung des Feldes releaseLabel für das entsprechende EmrCluster-Objekt erforderlich.Bei früheren Plattformen, die als AMI-Versionen bekannt sind, verwenden Sie stattdessen das FeldamiVersion.

Wenn Sie ein selbstverwaltetes EmrCluster-Objekt mit einer Versionsbezeichnung verwenden, nutzenSie den aktuellen TaskRunner. Weitere Informationen zu Task-Runner finden Sie unter Arbeiten mit TaskRunner (p. 302). Sie können Eigenschaftswerte für alle Amazon EMR-Konfigurationsklassifizierungenkonfigurieren. Weitere Informationen finden Sie unter Konfigurieren von Anwendungen in Amazon EMR-Versionshinweise und den Objektreferenzen the section called “EmrConfiguration” (p. 297) und thesection called “Eigenschaft” (p. 300).

Amazon EMR-Berechtigungen

Überlegen Sie beim Erstellen einer benutzerdefinierten IAM-Rolle genau, welche Berechtigungenmindestens erforderlich sind, damit der Cluster ordnungsgemäß funktioniert. Stellen Sie sicher, dass Sieden Zugriff auf die erforderlichen Ressourcen gewähren, z. B. auf Dateien in Amazon S3 oder Datenin Amazon RDS, Amazon Redshift oder DynamoDB. Wenn Sie visibleToAllUsers auf „False“festlegen möchten, muss Ihre Rolle über die entsprechenden Berechtigungen verfügen. Beachten Sie,dass DataPipelineDefaultRole nicht über diese Berechtigungen verfügt. Sie müssen entweder eineVereinigung der Rollen DefaultDataPipelineResourceRole und DataPipelineDefaultRole alsEmrCluster-Objektrolle angeben oder eine eigene Rolle zu diesem Zweck erstellen.

BeispieleEs folgen Beispiele für diesen Objekttyp.

Inhalt• Starten eines Amazon EMR-Clusters mit hadoopVersion (p. 238)• Starten eines Amazon EMR-Clusters mit Versionsbezeichnung emr-4.x oder höher (p. 239)• Installieren von zusätzlicher Software auf Ihrem Amazon EMR-Cluster (p. 239)• Deaktivieren der serverseitigen Verschlüsselung auf 3.x-Versionen (p. 240)• Deaktivieren der serverseitigen Verschlüsselung auf 4.x-Versionen (p. 240)• Konfigurieren von Hadoop KMS ACLs und Erstellen von Verschlüsselungszonen in HDFS (p. 241)• Festlegen benutzerdefinierter IAM-Rollen (p. 242)• Verwenden der EmrCluster-Ressource im AWS SDK for Java (p. 242)• Konfigurieren Sie einen Amazon EMR-Cluster in einem privaten Subnetz (p. 243)• EBS-Volumes zu Cluster-Knoten hinzufügen (p. 245)

Starten eines Amazon EMR-Clusters mit hadoopVersion

Example

Das folgende Beispiel startet einen Amazon EMR-Cluster mit AMI-Version 1.0 und Hadoop 0.20.

{ "id" : "MyEmrCluster",

API-Version 2012-10-29238

Page 246: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

"type" : "EmrCluster", "hadoopVersion" : "0.20", "keyPair" : "my-key-pair", "masterInstanceType" : "m3.xlarge", "coreInstanceType" : "m3.xlarge", "coreInstanceCount" : "10", "taskInstanceType" : "m3.xlarge", "taskInstanceCount": "10", "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,arg1,arg2,arg3","s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop/configure-other-stuff,arg1,arg2"]}

Starten eines Amazon EMR-Clusters mit Versionsbezeichnung emr-4.x oderhöher

Example

Das folgende Beispiel startet einen Amazon EMR-Cluster über das neuere Feld releaseLabel:

{ "id" : "MyEmrCluster", "type" : "EmrCluster", "keyPair" : "my-key-pair", "masterInstanceType" : "m3.xlarge", "coreInstanceType" : "m3.xlarge", "coreInstanceCount" : "10", "taskInstanceType" : "m3.xlarge", "taskInstanceCount": "10", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "configuration": {"ref":"myConfiguration"} }

Installieren von zusätzlicher Software auf Ihrem Amazon EMR-Cluster

Example

EmrCluster stellt das Feld supportedProducts für die Installation von Drittanbieter-Software aufeinem Amazon EMR-Cluster bereit, z. B. für die Installation einer benutzerdefinierten Hadoop-Distributionwie MapR. Er akzeptiert eine durch Kommas getrennte Liste von Argumenten. Die Drittanbieter-Softwarekann diese Argumente lesen und darauf reagieren. Das folgende Beispiel zeigt, wie Sie mit dem FeldsupportedProducts von EmrCluster einen benutzerdefinierten Cluster der MapR M3-Edition mitKarmasphere Analytics erstellen und ein EmrActivity-Objekt darauf ausführen.

{ "id": "MyEmrActivity", "type": "EmrActivity", "schedule": {"ref": "ResourcePeriod"}, "runsOn": {"ref": "MyEmrCluster"}, "postStepCommand": "echo Ending job >> /mnt/var/log/stepCommand.txt", "preStepCommand": "echo Starting job > /mnt/var/log/stepCommand.txt", "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output, \ hdfs:///output32113/,-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate" }, { "id": "MyEmrCluster", "type": "EmrCluster", "schedule": {"ref": "ResourcePeriod"},

API-Version 2012-10-29239

Page 247: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

"supportedProducts": ["mapr,--edition,m3,--version,1.2,--key1,value1","karmasphere-enterprise-utility"], "masterInstanceType": "m3.xlarge", "taskInstanceType": "m3.xlarge"}

Deaktivieren der serverseitigen Verschlüsselung auf 3.x-Versionen

Example

Eine EmrCluster-Aktivität mit einer Hadoop Version 2.x, die von AWS Data Pipeline erstelltwurde, ermöglicht standardmäßig eine Verschlüsselung auf dem Server. Wenn Sie die serverseitigeVerschlüsselung deaktivieren möchten, müssen Sie eine Bootstrap-Aktion in der Cluster-Objektdefinitionfestlegen.

Das folgende Beispiel erstellt eine EmrCluster-Aktivität, bei der die serverseitige Verschlüsselungdeaktiviert ist:

{ "id":"NoSSEEmrCluster", "type":"EmrCluster", "hadoopVersion":"2.x", "keyPair":"my-key-pair", "masterInstanceType":"m3.xlarge", "coreInstanceType":"m3.large", "coreInstanceCount":"10", "taskInstanceType":"m3.large", "taskInstanceCount":"10", "bootstrapAction":["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-e, fs.s3.enableServerSideEncryption=false"]}

Deaktivieren der serverseitigen Verschlüsselung auf 4.x-Versionen

Example

Sie müssen die serverseitige Verschlüsselung mit einem EmrConfiguration-Objekt deaktivieren.

Das folgende Beispiel erstellt eine EmrCluster-Aktivität, bei der die serverseitige Verschlüsselungdeaktiviert ist:

{ "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "myResourceId", "type": "EmrCluster", "configuration": { "ref": "disableSSE" } }, { "name": "disableSSE", "id": "disableSSE", "type": "EmrConfiguration", "classification": "emrfs-site", "property": [{ "ref": "enableServerSideEncryption" } ] }, {

API-Version 2012-10-29240

Page 248: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

"name": "enableServerSideEncryption", "id": "enableServerSideEncryption", "type": "Property", "key": "fs.s3.enableServerSideEncryption", "value": "false" }

Konfigurieren von Hadoop KMS ACLs und Erstellen von Verschlüsselungszonenin HDFS

Example

Die folgenden Objekte erstellen ACLs für Hadoop KMS sowie Verschlüsselungszonen und dieentsprechenden Verschlüsselungsschlüssel in HDFS:

{ "name": "kmsAcls", "id": "kmsAcls", "type": "EmrConfiguration", "classification": "hadoop-kms-acls", "property": [ {"ref":"kmsBlacklist"}, {"ref":"kmsAcl"} ] }, { "name": "hdfsEncryptionZone", "id": "hdfsEncryptionZone", "type": "EmrConfiguration", "classification": "hdfs-encryption-zones", "property": [ {"ref":"hdfsPath1"}, {"ref":"hdfsPath2"} ] }, { "name": "kmsBlacklist", "id": "kmsBlacklist", "type": "Property", "key": "hadoop.kms.blacklist.CREATE", "value": "foo,myBannedUser" }, { "name": "kmsAcl", "id": "kmsAcl", "type": "Property", "key": "hadoop.kms.acl.ROLLOVER", "value": "myAllowedUser" }, { "name": "hdfsPath1", "id": "hdfsPath1", "type": "Property", "key": "/myHDFSPath1", "value": "path1_key" }, { "name": "hdfsPath2", "id": "hdfsPath2", "type": "Property", "key": "/myHDFSPath2", "value": "path2_key" }

API-Version 2012-10-29241

Page 249: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Festlegen benutzerdefinierter IAM-RollenExample

Standardmäßig übergibt AWS Data Pipeline DataPipelineDefaultRole als Amazon EMR-Service-Rolle und DataPipelineDefaultResourceRole als Amazon EC2-Instance-Profil, um Ressourcenfür Sie zu erstellen. Sie können allerdings eine benutzerdefinierte Amazon EMR-Service-Rolle und einbenutzerdefiniertes Instance-Profil erstellen und stattdessen verwenden. AWS Data Pipeline sollte über dieerforderlichen Berechtigungen zum Erstellen von Clustern mithilfe der benutzerdefinierten Rolle verfügenund Sie müssen AWS Data Pipeline als vertrauenswürdige Entität hinzufügen.

Im folgenden Beispielobjekt werden benutzerdefinierte Rollen für den Amazon EMR-Cluster festgelegt:

{ "id":"MyEmrCluster", "type":"EmrCluster", "hadoopVersion":"2.x", "keyPair":"my-key-pair", "masterInstanceType":"m3.xlarge", "coreInstanceType":"m3.large", "coreInstanceCount":"10", "taskInstanceType":"m3.large", "taskInstanceCount":"10", "role":"emrServiceRole", "resourceRole":"emrInstanceProfile"}

Verwenden der EmrCluster-Ressource im AWS SDK for JavaExample

Das folgende Beispiel zeigt, wie Sie mit EmrCluster und EmrActivity einen Amazon EMR 4.x-Clustererstellen, um mit dem Java SDK eine Spark-Aktion auszuführen:

public class dataPipelineEmr4 {

public static void main(String[] args) { AWSCredentials credentials = null; credentials = new ProfileCredentialsProvider("/path/to/AwsCredentials.properties","default").getCredentials(); DataPipelineClient dp = new DataPipelineClient(credentials); CreatePipelineRequest createPipeline = new CreatePipelineRequest().withName("EMR4SDK").withUniqueId("unique"); CreatePipelineResult createPipelineResult = dp.createPipeline(createPipeline); String pipelineId = createPipelineResult.getPipelineId(); PipelineObject emrCluster = new PipelineObject() .withName("EmrClusterObj") .withId("EmrClusterObj") .withFields( new Field().withKey("releaseLabel").withStringValue("emr-4.1.0"), new Field().withKey("coreInstanceCount").withStringValue("3"), new Field().withKey("applications").withStringValue("spark"), new Field().withKey("applications").withStringValue("Presto-Sandbox"), new Field().withKey("type").withStringValue("EmrCluster"), new Field().withKey("keyPair").withStringValue("myKeyName"), new Field().withKey("masterInstanceType").withStringValue("m3.xlarge"), new Field().withKey("coreInstanceType").withStringValue("m3.xlarge") ); PipelineObject emrActivity = new PipelineObject() .withName("EmrActivityObj")

API-Version 2012-10-29242

Page 250: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

.withId("EmrActivityObj") .withFields( new Field().withKey("step").withStringValue("command-runner.jar,spark-submit,--executor-memory,1g,--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/lib/spark-examples.jar,10"), new Field().withKey("runsOn").withRefValue("EmrClusterObj"), new Field().withKey("type").withStringValue("EmrActivity") ); PipelineObject schedule = new PipelineObject() .withName("Every 15 Minutes") .withId("DefaultSchedule") .withFields( new Field().withKey("type").withStringValue("Schedule"), new Field().withKey("period").withStringValue("15 Minutes"), new Field().withKey("startAt").withStringValue("FIRST_ACTIVATION_DATE_TIME") ); PipelineObject defaultObject = new PipelineObject() .withName("Default") .withId("Default") .withFields( new Field().withKey("failureAndRerunMode").withStringValue("CASCADE"), new Field().withKey("schedule").withRefValue("DefaultSchedule"), new Field().withKey("resourceRole").withStringValue("DataPipelineDefaultResourceRole"), new Field().withKey("role").withStringValue("DataPipelineDefaultRole"), new Field().withKey("pipelineLogUri").withStringValue("s3://myLogUri"), new Field().withKey("scheduleType").withStringValue("cron") ); List<PipelineObject> pipelineObjects = new ArrayList<PipelineObject>(); pipelineObjects.add(emrActivity); pipelineObjects.add(emrCluster); pipelineObjects.add(defaultObject); pipelineObjects.add(schedule); PutPipelineDefinitionRequest putPipelineDefintion = new PutPipelineDefinitionRequest() .withPipelineId(pipelineId) .withPipelineObjects(pipelineObjects); PutPipelineDefinitionResult putPipelineResult = dp.putPipelineDefinition(putPipelineDefintion); System.out.println(putPipelineResult); ActivatePipelineRequest activatePipelineReq = new ActivatePipelineRequest() .withPipelineId(pipelineId); ActivatePipelineResult activatePipelineRes = dp.activatePipeline(activatePipelineReq); System.out.println(activatePipelineRes); System.out.println(pipelineId); }

}

Konfigurieren Sie einen Amazon EMR-Cluster in einem privaten Subnetz

Example

Dieses Beispiel enthält eine Konfiguration, mit der der Cluster in einem privaten Subnetz in einer VPCgestartet wird. Weitere Informationen finden Sie unter Starten von Amazon EMR-Clustern in einer VPC imManagement Guide für Amazon EMR. Diese Konfiguration ist optional. Sie können sie in einer beliebigenPipeline verwenden, die ein EmrCluster-Objekt nutzt.

API-Version 2012-10-29243

Page 251: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Um einen Amazon EMR-Cluster in einem privaten Subnetz zu starten, geben Sie SubnetId,emrManagedMasterSecurityGroupId, emrManagedSlaveSecurityGroupId undserviceAccessSecurityGroupId in Ihrer EmrCluster-Konfiguration an.

{ "objects": [ { "output": { "ref": "S3BackupLocation" }, "input": { "ref": "DDBSourceTable" }, "maximumRetries": "2", "name": "TableBackupActivity", "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}", "id": "TableBackupActivity", "runsOn": { "ref": "EmrClusterForBackup" }, "type": "EmrActivity", "resizeClusterBeforeRunning": "false" }, { "readThroughputPercent": "#{myDDBReadThroughputRatio}", "name": "DDBSourceTable", "id": "DDBSourceTable", "type": "DynamoDBDataNode", "tableName": "#{myDDBTableName}" }, { "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "name": "S3BackupLocation", "id": "S3BackupLocation", "type": "S3DataNode" }, { "name": "EmrClusterForBackup", "coreInstanceCount": "1", "taskInstanceCount": "1", "taskInstanceType": "m4.xlarge", "coreInstanceType": "m4.xlarge", "releaseLabel": "emr-4.7.0", "masterInstanceType": "m4.xlarge", "id": "EmrClusterForBackup", "subnetId": "#{mySubnetId}", "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}", "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}", "serviceAccessSecurityGroupId": "#{myServiceAccessSecurityGroup}", "region": "#{myDDBRegion}", "type": "EmrCluster", "keyPair": "user-key-pair" }, { "failureAndRerunMode": "CASCADE", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "#{myPipelineLogUri}", "scheduleType": "ONDEMAND", "name": "Default", "id": "Default" } ],

API-Version 2012-10-29244

Page 252: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

"parameters": [ { "description": "Output S3 folder", "id": "myOutputS3Loc", "type": "AWS::S3::ObjectKey" }, { "description": "Source DynamoDB table name", "id": "myDDBTableName", "type": "String" }, { "default": "0.25", "watermark": "Enter value between 0.1-1.0", "description": "DynamoDB read throughput ratio", "id": "myDDBReadThroughputRatio", "type": "Double" }, { "default": "us-east-1", "watermark": "us-east-1", "description": "Region of the DynamoDB table", "id": "myDDBRegion", "type": "String" } ], "values": { "myDDBRegion": "us-east-1", "myDDBTableName": "ddb_table", "myDDBReadThroughputRatio": "0.25", "myOutputS3Loc": "s3://s3_path", "mySubnetId": "subnet_id", "myServiceAccessSecurityGroup": "service access security group", "mySlaveSecurityGroup": "slave security group", "myMasterSecurityGroup": "master security group", "myPipelineLogUri": "s3://s3_path" }}

EBS-Volumes zu Cluster-Knoten hinzufügen

Example

Sie können EBS-Volumes an beliebige Knoten im EMR-Cluster innerhalb der Pipeline anfügen. VerwendenSie zum Anfügen von EBS-Volumes an Knoten coreEbsConfiguration, masterEbsConfigurationund TaskEbsConfiguration in Ihrer EmrCluster-Konfiguration.

In diesem Amazon EMR-Clusterbeispiel werden Amazon EBS-Volumes für die Master-, Aufgaben- undCore-Knoten verwendet. Weitere Informationen finden Sie unter Amazon EBS-Volumes in Amazon EMR imManagement Guide für Amazon EMR.

Diese Konfigurationen sind optional. Sie können sie in beliebigen Pipelines verwenden, die einEmrCluster-Objekt nutzen.

Klicken Sie in der Pipeline auf die EmrCluster-Objektkonfiguration und dann auf Master EBSConfiguration (Master-EBS-Konfiguration), Core EBS Configuration (Core-EBS-Konfiguration) oderTask EBS Configuration (Aufgaben-EBS-Konfiguration) und geben Sie die Konfigurationsdetails wie imfolgenden Beispiel ein.

{ "objects": [ {

API-Version 2012-10-29245

Page 253: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

"output": { "ref": "S3BackupLocation" }, "input": { "ref": "DDBSourceTable" }, "maximumRetries": "2", "name": "TableBackupActivity", "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}", "id": "TableBackupActivity", "runsOn": { "ref": "EmrClusterForBackup" }, "type": "EmrActivity", "resizeClusterBeforeRunning": "false" }, { "readThroughputPercent": "#{myDDBReadThroughputRatio}", "name": "DDBSourceTable", "id": "DDBSourceTable", "type": "DynamoDBDataNode", "tableName": "#{myDDBTableName}" }, { "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "name": "S3BackupLocation", "id": "S3BackupLocation", "type": "S3DataNode" }, { "name": "EmrClusterForBackup", "coreInstanceCount": "1", "taskInstanceCount": "1", "taskInstanceType": "m4.xlarge", "coreInstanceType": "m4.xlarge", "releaseLabel": "emr-4.7.0", "masterInstanceType": "m4.xlarge", "id": "EmrClusterForBackup", "subnetId": "#{mySubnetId}", "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}", "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}", "region": "#{myDDBRegion}", "type": "EmrCluster", "coreEbsConfiguration": { "ref": "EBSConfiguration" }, "masterEbsConfiguration": { "ref": "EBSConfiguration" }, "taskEbsConfiguration": { "ref": "EBSConfiguration" }, "keyPair": "user-key-pair" }, { "name": "EBSConfiguration", "id": "EBSConfiguration", "ebsOptimized": "true", "ebsBlockDeviceConfig" : [ { "ref": "EbsBlockDeviceConfig" } ], "type": "EbsConfiguration" }, {

API-Version 2012-10-29246

Page 254: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

"name": "EbsBlockDeviceConfig", "id": "EbsBlockDeviceConfig", "type": "EbsBlockDeviceConfig", "volumesPerInstance" : "2", "volumeSpecification" : { "ref": "VolumeSpecification" } }, { "name": "VolumeSpecification", "id": "VolumeSpecification", "type": "VolumeSpecification", "sizeInGB": "500", "volumeType": "io1", "iops": "1000" }, { "failureAndRerunMode": "CASCADE", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "#{myPipelineLogUri}", "scheduleType": "ONDEMAND", "name": "Default", "id": "Default" } ], "parameters": [ { "description": "Output S3 folder", "id": "myOutputS3Loc", "type": "AWS::S3::ObjectKey" }, { "description": "Source DynamoDB table name", "id": "myDDBTableName", "type": "String" }, { "default": "0.25", "watermark": "Enter value between 0.1-1.0", "description": "DynamoDB read throughput ratio", "id": "myDDBReadThroughputRatio", "type": "Double" }, { "default": "us-east-1", "watermark": "us-east-1", "description": "Region of the DynamoDB table", "id": "myDDBRegion", "type": "String" } ], "values": { "myDDBRegion": "us-east-1", "myDDBTableName": "ddb_table", "myDDBReadThroughputRatio": "0.25", "myOutputS3Loc": "s3://s3_path", "mySubnetId": "subnet_id", "mySlaveSecurityGroup": "slave security group", "myMasterSecurityGroup": "master security group", "myPipelineLogUri": "s3://s3_path" }}

API-Version 2012-10-29247

Page 255: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ

schedule Dieses Objekt wird innerhalb der Ausführung einesZeitplanintervalls aufgerufen. Sie müssen einenZeitplanverweis auf ein anderes Objekt angeben,um die Abhängigkeitsausführungsreihenfolgefür dieses Objekt festzulegen. Sie könnendiese Anforderung erfüllen, indem Sie expliziteinen Zeitplan für das Objekt festlegen, indemsie beispielsweise "schedule": {"ref":"DefaultSchedule"} angeben. In den meistenFällen ist es besser, den Zeitplanverweis aufdas Standard-Pipeline-Objekt zu setzen, damitalle Objekte diesen Zeitplan erben. Wenn diePipeline über einen Baum mit Zeitplänen verfügt(Zeitpläne innerhalb des Hauptplans), können Sieein übergeordnetes Objekt mit Zeitplänenreferenzerstellen. Weitere Informationen zu optionalenBeispiel-Zeitplankonfigurationen finden Sie unterhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Referenzobjekt,z. B. "schedule":{"ref":"myScheduleId"}

Optionale Felder Beschreibung Slot-Typ

actionOnResourceFailure Die Aktion, die nach einem Ressourcenfehlerdieser Ressource ausgeführt wird. Gültige Wertesind "retryall", der für die festgelegte Dauerwiederholt versucht, alle Aufgaben des Clustersdurchzuführen, und "retrynone".

Zeichenfolge

actionOnTaskFailure Die Aktion, die nach einem Aufgabenfehler dieserRessource ausgeführt wird. Gültige Werte sind"continue", was bedeutet, dass der Cluster nichtbeendet wird, und "terminate".

Zeichenfolge

additionalMasterSecurityGroupIdsDie ID zusätzlicher Master-Sicherheitsgruppendes EMR-Clusters, die dem Format sg-01XXXX6aentspricht. Weitere Informationen finden Sie unterZusätzliche Sicherheitsgruppen bei Amazon EMRim Management Guide für Amazon EMR.

Zeichenfolge

additionalSlaveSecurityGroupIdsDie ID zusätzlicher Slave-Sicherheitsgruppen desEMR-Clusters, die dem Format sg-01XXXX6aentspricht.

Zeichenfolge

amiVersion Die Version von Amazon Machine Image (AMI), dieAmazon EMR zur Installation der Cluster-Knotenverwendet. Weitere Informationen hierzu finden Sieunter Management Guide für Amazon EMR.

Zeichenfolge

applications Anwendungen, die im Cluster mit durch Kommasgetrennten Argumenten installiert werden sollen.Hive und Pig sind standardmäßig installiert. Dieser

Zeichenfolge

API-Version 2012-10-29248

Page 256: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Optionale Felder Beschreibung Slot-TypParameter gilt nur für Amazon EMR-Version 4.0und höher.

attemptStatus Der zuletzt gemeldete Status von der Remote-Aktivität.

Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

availabilityZone Die Availability Zone, in der der Cluster gestartetwerden soll.

Zeichenfolge

bootstrapAction Eine Aktion, die ausgeführt werden soll, wennder Cluster startet. Sie können durch Kommasgetrennte Argumente festlegen. Wenn Siemehrere Aktionen angeben möchten (maximal255), fügen Sie die entsprechende Anzahl vonbootstrapAction-Feldern hinzu. Standardmäßigwird der Cluster ohne Bootstrap-Aktionen gestartet.

Zeichenfolge

Konfiguration Konfiguration für den Amazon EMR-Cluster. DieserParameter gilt nur für Amazon EMR, Version 4.0und höher.

Referenzobjekt, z. B."configuration":{"ref":"myEmrConfigurationId"}

coreInstanceBidPrice Der maximale Spot-Preis, den Sie für AmazonEC2-Instances zu zahlen bereit sind. Wenn einGebotspreis angegeben wird, verwendet AmazonEMR die Spot-Instances für die Instance-Gruppe.Angegeben in USD. Alternativ gibt ein Wert vonOnDemandPrice an, dass der maximale Spot-Preis dem On-Demand-Preis entspricht. Mussgemeinsam mit coreInstanceCount verwendetwerden.

Zeichenfolge

coreInstanceCount Gibt an, wie viele Core-Knoten für den Clusterverwendet werden sollen.

Ganzzahl

coreInstanceType Der Typ der Amazon EC2-Instance, der für Core-Knoten verwendet werden soll. Siehe UnterstützteAmazon EC2-Instances für Amazon EMR-Cluster (p. 5).

Zeichenfolge

coreGroupConfiguration Die Konfiguration für die Core-Instance-Gruppe desAmazon EMR-Clusters. Dieser Parameter gilt nurfür Amazon EMR, Version 4.0 und höher.

Referenzobjekt, z. B.“configuration”:{“ref”:“myEmrConfigurationId”}

coreEbsConfiguration Die Konfiguration für Amazon EBS-Volumes, diean die einzelnen Core-Knoten der Core-Gruppe imAmazon EMR-Cluster angefügt werden. WeitereInformationen finden Sie unter Instance-Typen,die die EBS-Optimierung unterstützen im AmazonEC2-Benutzerhandbuch für Linux-Instances.

Referenzobjekt, z. B.“coreEbsConfiguration”:{“ref”:“myEbsConfiguration”}

API-Version 2012-10-29249

Page 257: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Optionale Felder Beschreibung Slot-Typ

EbsBlockDeviceConfig Die Konfiguration des angeforderten AmazonEBS-Blockgeräts, die der Instance-Gruppezugeordnet ist. Diese umfasst eine festeAnzahl an Volumes, die jeder Instancein der Instance-Gruppe zugeordnet wird.Sie umfasst volumesPerInstance undvolumeSpecification, wobei:

• volumesPerInstance die Anzahl derEBS-Volumes mit einer bestimmten Volume-Konfiguration für alle zugeordneten Instances inder Instance-Gruppe ist.

• volumeSpecification ist die Amazon EBS-Volume-Spezifikation, wie Volume-Typ, IOPSund Größe in Gibibyte (GiB), die für das aneine EC2-Instance im Amazon EMR-Clusterangefügte EBS-Volume angefordert werden.

Referenzobjekt, z. B.“EbsBlockDeviceConfig”:{“ref”:“myEbsBlockDeviceConfig”}

emrManagedMasterSecurityGroupIdDie ID der Master-Sicherheitsgruppe des AmazonEMR-Clusters, die dem Format sg-01XXXX6aentspricht. Weitere Informationen finden Sieunter Konfigurieren von Sicherheitsgruppen imManagement Guide für Amazon EMR.

Zeichenfolge

emrManagedSlaveSecurityGroupIdDie ID der Slave-Sicherheitsgruppe des AmazonEMR-Clusters, die dem Format sg-01XXXX6aentspricht.

Zeichenfolge

enableDebugging Aktiviert das Debugging auf dem Amazon EMR-Cluster.

Zeichenfolge

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

hadoopSchedulerType Der Scheduler-Typ des Clusters. GültigeTypen sind: PARALLEL_FAIR_SCHEDULINGPARALLEL_CAPACITY_SCHEDULING und DEFAULT_SCHEDULER.

Aufzählung

httpProxy Der Proxy-Host, der von Clients zum Verbinden mitden AWS-Services verwendet wird.

Referenzobjekt,z. B. „httpProxy“:{"ref":"myHttpProxyId"}

initTimeout Die Zeit, die auf den Start der Ressource gewartetwird.

Zeitraum

keyPair Das Amazon EC2-Schlüsselpaar, das für dieAnmeldung beim Master-Knoten des AmazonEMR-Clusters verwendet werden soll.

Zeichenfolge

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

API-Version 2012-10-29250

Page 258: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Optionale Felder Beschreibung Slot-Typ

masterInstanceBidPrice Der maximale Spot-Preis, den Sie für AmazonEC2-Instances zu zahlen bereit sind. Es handeltsich um einen Dezimalwert zwischen 0 undeinschließlich 20,00. Angegeben in USD. WennSie diesen Wert festlegen, werden Spot-Instancesfür den Master-Knoten des Amazon EMR-Clustersaktiviert. Wenn ein Gebotspreis angegeben wird,verwendet Amazon EMR die Spot-Instances fürdie Instance-Gruppe. Alternativ gibt ein Wert vonOnDemandPrice an, dass der maximale Spot-Preisdem On-Demand-Preis entspricht.

Zeichenfolge

masterInstanceType Der Typ der Amazon EC2-Instance, die für denMaster-Knoten verwendet werden soll. SieheUnterstützte Amazon EC2-Instances für AmazonEMR-Cluster (p. 5).

Zeichenfolge

masterGroupConfigurationDie Konfiguration für die Master-Instance-Gruppedes Amazon EMR-Clusters. Dieser Parameter giltnur für Amazon EMR, Version 4.0 und höher.

Referenzobjekt, z. B.“configuration”:{“ref”:“myEmrConfigurationId”}

masterEbsConfiguration Die Konfiguration für Amazon EBS-Volumes, die andie einzelnen Master-Knoten der Master-Gruppeim Amazon EMR-Cluster angefügt werden. WeitereInformationen finden Sie unter Instance-Typen,die die EBS-Optimierung unterstützen im AmazonEC2-Benutzerhandbuch für Linux-Instances.

Referenzobjekt, z. B.“masterEbsConfiguration”:{“ref”:“myEbsConfiguration”}

maxActiveInstances Die maximale Anzahl gleichzeitiger aktiverInstances einer Komponente. Wiederholungenzählen nicht zur Anzahl der aktiven Instances.

Ganzzahl

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. "onFail":{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z. B."onLateAction":{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z. B."onSuccess":{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. "parent":{"ref":"myBaseObjectId"}

pipelineLogUri Der Amazon S3-URI (z. B. s3://BucketName/Key/“)zum Hochladen von Protokollen für die Pipeline.

Zeichenfolge

API-Version 2012-10-29251

Page 259: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Optionale Felder Beschreibung Slot-Typ

region Der Code der Region, in der der Amazon EMR-Cluster ausgeführt werden soll. Standardmäßigwird der Cluster in derselben Region wie diePipeline ausgeführt. Sie können den Clusterin derselben Region als abhängiges Datensetausführen.

Aufzählung

releaseLabel Versionsbezeichnung für den EMR-Cluster Zeichenfolge

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

resourceRole Die IAM-Rolle, die von AWS Data Pipelinezum Erstellen der Amazon EMR-Clusterverwendet wird. Die Standardrolle istDataPipelineDefaultRole.

Zeichenfolge

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

Rolle Die IAM-Rolle, die an Amazon EMR zur Erstellungvon EC2-Knoten übergeben wird.

Zeichenfolge

runsOn Dieses Feld ist für dieses Objekt nicht zulässig. Referenzobjekt,z. B. "runsOn":{"ref":"myResourceId"}

serviceAccessSecurityGroupIdDie Kennung für die Servicezugriff-Sicherheitsgruppe des Amazon EMR-Clusters.

Zeichenfolge. Siehat das Formatsg-01XXXX6a, z. B.sg-1234abcd.

scheduleType Mit dem Zeitplantyp können Sie angeben, ob dieObjekte in Ihrer Pipeline-Definition am Anfang desIntervalls oder am Ende des Intervalls geplantwerden sollen. Werte sind cron, ondemandund timeseries. Die timeseries-Planungbedeutet, dass Instances am Ende jedes Intervallsgeplant sind. Die cron-Planung bedeutet, dassInstances am Anfang jedes Intervalls geplantsind. Ein ondemand-Zeitplan ermöglicht esIhnen, eine Pipeline einmal pro Aktivierungauszuführen. Sie müssen die Pipeline nicht klonenoder neu erstellen, um sie erneut auszuführen.Wenn Sie einen ondemand-Zeitplan verwenden,muss er im Standardobjekt angegeben werdenund der einzige für die Objekte in der Pipelineangegebene scheduleType sein. Um ondemand-Pipelines zu verwenden, rufen Sie einfachden ActivatePipeline-Vorgang für jedennachfolgenden Lauf auf.

Aufzählung

API-Version 2012-10-29252

Page 260: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Optionale Felder Beschreibung Slot-Typ

subnetId Die ID für das Subnetz, in dem der Amazon EMR-Cluster gestartet werden soll.

Zeichenfolge

supportedProducts Ein Parameter, der Drittanbietersoftware ineinem Amazon EMR-Cluster installiert, z. B. eineDrittanbieterdistribution von Hadoop.

Zeichenfolge

taskInstanceBidPrice Der maximale Spot-Preis, den Sie für EC2-Instances zu zahlen bereit sind. Geben Sie eineDezimalzahl von 0 bis 20,00 ein. Angegeben inUSD. Wenn ein Gebotspreis angegeben wird,verwendet Amazon EMR die Spot-Instances fürdie Instance-Gruppe. Alternativ gibt ein Wert vonOnDemandPrice an, dass der maximale Spot-Preis dem On-Demand-Preis entspricht. Wenn Siediesen Wert festlegen, werden Spot-Instances fürdie Aufgabenknoten des Amazon EMR-Clustersaktiviert.

Zeichenfolge

taskInstanceCount Gibt an, wie viele Aufgabenknoten für den AmazonEMR-Cluster verwendet werden sollen.

Ganzzahl

taskInstanceType Der Typ der Amazon EC2-Instance, die fürAufgabenknoten verwendet werden soll.

Zeichenfolge

taskGroupConfiguration Die Konfiguration für die Aufgaben-Instance-Gruppe des Amazon EMR-Clusters. DieserParameter gilt nur für Amazon EMR, Version 4.0und höher.

Referenzobjekt, z. B.“configuration”:{“ref”:“myEmrConfigurationId”}

taskEbsConfiguration Die Konfiguration für Amazon EBS-Volumes, die andie einzelnen Aufgabenknoten der Aufgabengruppeim Amazon EMR-Cluster angefügt werden. WeitereInformationen finden Sie unter Instance-Typen,die die EBS-Optimierung unterstützen im AmazonEC2-Benutzerhandbuch für Linux-Instances.

Referenzobjekt, z. B.“taskEbsConfiguration”:{“ref”:“myEbsConfiguration”}

terminateAfter Die Zeitspanne in Stunden, nach der dieRessource beendet wird.

Ganzzahl

API-Version 2012-10-29253

Page 261: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Optionale Felder Beschreibung Slot-Typ

VolumeSpecification Die Amazon EBS-Volume-Spezifikationen, wieVolume-Typ, IOPS und Größe in Gibibyte (GiB), diefür das Amazon EBS-Volume angefordert werden,die einer Amazon EC2-Instance im Amazon EMR-Cluster angefügt sind. Der Knoten kann ein Core-,Master- oder Aufgabenknoten sein.

VolumeSpecification enthält:

• iops() Ganzzahl. Die Anzahl der E/A-Vorgängepro Sekunde (IOPS), die das Amazon EBS-Volume unterstützt, z. B. 1.000. WeitereInformationen finden Sie unter EBS E/A-Merkmale im Amazon EC2-Benutzerhandbuchfür Linux-Instances.

• sizeinGB() Ganzzahl. Die Größe desAmazon EBS-Volumes in Gibibyte (GiB), z.B: 500. Weitere Informationen zu gültigenKombinationen von Volume-Typen undFestplattengrößen finden Sie unter EBS-Volume-Typen im Amazon EC2-Benutzerhandbuch fürLinux-Instances.

• volumetType Zeichenfolge. Der AmazonEBS-Volume-Typ, z. B. gp2. Es werden dieVolume-Typen standard, gp2, io1, st1, sc1 sowieweitere Typen unterstützt. Weitere Informationenfinden Sie unter Amazon EBS-Volume-Typenim Amazon EC2-Benutzerhandbuch für Linux-Instances.

Referenzobjekt, z. B.“VolumeSpecification”:{“ref”:“myVolumeSpecification”}

useOnDemandOnLastAttemptDieses Feld bestimmt, ob beim letzten Versuch,eine Ressource anzufordern, eine On-Demand-Instance statt einer Spot-Instance angefordert wird.Auf diese Weise wird sichergestellt, dass wenndie vorherigen Versuche fehlgeschlagen sind, derletzte Versuch nicht unterbrochen wird.

Boolesch

workerGroup Dieses Feld ist bei diesem Objekt nicht zulässig. Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z. B."activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

API-Version 2012-10-29254

Page 262: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrCluster

Laufzeitfelder Beschreibung Slot-Typ

@cascadeFailedOn Beschreibung der Zuständigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog Schrittprotokolle sind nur für Amazon EMR-Aktivitätsversuchen verfügbar.

Zeichenfolge

errorId Die Fehler-ID, wenn dieses Objekt fehlgeschlagenist.

Zeichenfolge

errorMessage Die Fehlermeldung, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

@failureReason Der Grund für den Ressourcenfehler. Zeichenfolge

@finishedTime Der Zeitpunkt, zu der dieses Objekt seineAusführung beendet hat.

DateTime

hadoopJobLog Hadoop-Auftragsprotokolle für Versuche fürAmazon EMR-Aktivitäten verfügbar.

Zeichenfolge

@healthStatus Der Integritätsstatus des Objekts, der Erfolgoder Misserfolg der letzten Objekt-Instancewiderspiegelt, die einen beendeten Zustanderreicht hat.

Zeichenfolge

@healthStatusFromInstanceIdID des Objekts der letzten Instance, das einenbeendeten Zustand erreicht hat.

Zeichenfolge

@healthStatusUpdatedTimeZeitpunkt, zu dem der Servicestatus beim letztenMal aktualisiert wurde.

DateTime

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviertwurde.

DateTime

@latestCompletedRunTimeZeitpunkt des letzten Laufs, für den die Ausführungabgeschlossen wurde.

DateTime

@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführunggeplant war.

DateTime

@nextRunTime Zeitpunkt des Laufs, der als nächstes geplantwerden soll

DateTime

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

API-Version 2012-10-29255

Page 263: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHttpProxy

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Position eines Objekts im Lebenszyklus.Komponentenobjekte ergeben Instance-Objekte,die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• EmrActivity (p. 176)

HttpProxyMit HttpProxy können Sie Ihren eigenen Proxy konfigurieren und festlegen, dass Task Runner überdiesen Proxy auf den AWS Data Pipeline-Service zugreift. Es ist nicht erforderlich, einen ausgeführtenTaskRunner mit diesen Informationen zu konfigurieren.

Beispiel für einen HttpProxy in TaskRunnerDie folgenden Pipeline-Definition zeigt ein HttpProxy-Objekt:

{ "objects": [ { "schedule": { "ref": "Once" }, "pipelineLogUri": "s3://myDPLogUri/path", "name": "Default", "id": "Default" }, { "name": "test_proxy", "hostname": "hostname", "port": "port", "username": "username", "*password": "password", "windowsDomain": "windowsDomain", "type": "HttpProxy", "id": "test_proxy", }, { "name": "ShellCommand",

API-Version 2012-10-29256

Page 264: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHttpProxy

"id": "ShellCommand", "runsOn": { "ref": "Resource" }, "type": "ShellCommandActivity", "command": "echo 'hello world' " }, { "period": "1 day", "startDateTime": "2013-03-09T00:00:00", "name": "Once", "id": "Once", "endDateTime": "2013-03-10T00:00:00", "type": "Schedule" }, { "role": "dataPipelineRole", "httpProxy": { "ref": "test_proxy" }, "actionOnResourceFailure": "retrynone", "maximumRetries": "0", "type": "Ec2Resource", "terminateAfter": "10 minutes", "resourceRole": "resourceRole", "name": "Resource", "actionOnTaskFailure": "terminate", "securityGroups": "securityGroups", "keyPair": "keyPair", "id": "Resource", "region": "us-east-1" } ], "parameters": []}

Syntax

Pflichtfelder Beschreibung Slot-Typ

hostname Der Host des Proxys, über den Clients eineVerbindung zu AWS-Services herstellen.

Zeichenfolge

port Port des Proxy-Hosts, den die Clients verwenden,um eine Verbindung zu AWS-Servicesherzustellen.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

*Passwort Passwort für den Proxy. Zeichenfolge

s3NoProxy Deaktiviert den HTTP-Proxy, wenn eineVerbindung zu Amazon S3 hergestellt wird

Boolesch

username Benutzername für den Proxy. Zeichenfolge

API-Version 2012-10-29257

Page 265: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchVorbedingungen

Optionale Felder Beschreibung Slot-Typ

windowsDomain Der Windows-Domänenname für NTLM Proxy. Zeichenfolge

windowsWorkgroup Der Windows-Arbeitsgruppenname für NTLMProxy.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

VorbedingungenNachfolgend sind die AWS Data Pipeline-Vorbedingungsobjekte aufgelistet:

Objekte• DynamoDBDataExists (p. 258)• DynamoDBTableExists (p. 261)• Exists (p. 263)• S3KeyExists (p. 266)• S3PrefixNotEmpty (p. 269)• ShellCommandPrecondition (p. 272)

DynamoDBDataExistsEine Vorbedingung, mit der Sie überprüfen können, ob in einer DynamoDB-Tabelle Daten vorhanden sind.

Syntax

Pflichtfelder Beschreibung Slot-Typ

Rolle Legt die Rolle für die Ausführung der Vorbedingungfest.

Zeichenfolge

tableName Die zu prüfende DynamoDB-Tabelle. Zeichenfolge

API-Version 2012-10-29258

Page 266: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataExists

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

preconditionTimeout Der Zeitraum ab dem die Vorbedingung alsfehlgeschlagen gekennzeichnet ist, wenn sie nochnicht erfüllt ist

Zeitraum

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29259

Page 267: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataExists

Laufzeitfelder Beschreibung Slot-Typ

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Zuständigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

currentRetryCount Anzahl, wie oft die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

lastRetryTime Das letzte Mal, dass die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

Knoten Der Knoten, für den diese Vorbedingungausgeführt wird

Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29260

Page 268: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBTableExists

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

DynamoDBTableExistsEine Vorbedingung, mit der Sie überprüfen können, ob die DynamoDB-Tabelle vorhanden ist.

Syntax

Pflichtfelder Beschreibung Slot-Typ

Rolle Legt die Rolle für die Ausführung der Vorbedingungfest.

Zeichenfolge

tableName Die zu prüfende DynamoDB-Tabelle. Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

API-Version 2012-10-29261

Page 269: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBTableExists

Optionale Felder Beschreibung Slot-Typ

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

preconditionTimeout Der Zeitraum ab dem die Vorbedingung alsfehlgeschlagen gekennzeichnet ist, wenn sie nochnicht erfüllt ist

Zeitraum

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Zuständigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

currentRetryCount Anzahl, wie oft die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

API-Version 2012-10-29262

Page 270: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchExists

Laufzeitfelder Beschreibung Slot-Typ

lastRetryTime Das letzte Mal, dass die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

Knoten Der Knoten, für den diese Vorbedingungausgeführt wird

Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

ExistsPrüft, ob eine Datenknotenobjekt vorhanden ist.

Note

Wir empfehlen, stattdessen die vom System verwalteten Vorbedingungen zu verwenden. WeitereInformationen finden Sie unter Vorbedingungen (p. 11).

BeispielEs folgt ein Beispiel für diesen Objekttyp. Das InputData-Objekt verweist auf dieses Objekt, Ready,und auf ein anderes Objekt, das Sie in derselben Pipeline-Definitionsdatei definieren. CopyPeriod ist einSchedule-Objekt.

{ "id" : "InputData", "type" : "S3DataNode", "schedule" : { "ref" : "CopyPeriod" }, "filePath" : "s3://example-bucket/InputData/#{@scheduledStartTime.format('YYYY-MM-dd-hh:mm')}.csv",

API-Version 2012-10-29263

Page 271: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchExists

"precondition" : { "ref" : "Ready" }},{ "id" : "Ready", "type" : "Exists"}

Syntax

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

preconditionTimeout Der Zeitraum ab dem die Vorbedingung alsfehlgeschlagen gekennzeichnet ist, wenn sie nochnicht erfüllt ist

Zeitraum

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

API-Version 2012-10-29264

Page 272: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchExists

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

Knoten Der Knoten, für den diese Vorbedingungausgeführt wird.

Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29265

Page 273: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3KeyExists

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandPrecondition (p. 272)

S3KeyExistsPrüft, ob ein Schlüssel in einem Amazon S3-Datenknoten vorhanden ist.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Die Vorbedingung wird ausgelöst, wenn der Schlüssel, s3://mybucket/mykey, auf den der s3Key-Parameter verweist, vorhanden ist.

{"id" : "InputReady","type" : "S3KeyExists","role" : "test-role","s3Key" : "s3://mybucket/mykey"}

Sie können S3KeyExists auch als Voraussetzung für die zweite Pipeline verwenden, die darauf wartet,dass die erste Pipeline abgeschlossen wird. Hierzu gehen Sie wie folgt vor:

1. Schreiben Sie eine Datei in Amazon S3, nachdem die erste Pipeline abgeschlossen ist.2. Erstellen Sie eine S3KeyExists-Vorbedingung für die zweite Pipeline.

Syntax

Pflichtfelder Beschreibung Slot-Typ

Rolle Legt die Rolle für die Ausführung der Vorbedingungfest.

Zeichenfolge

s3Key Der Amazon S3-Schlüssel Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout vor dem Versuch, die Remote-Arbeit nocheinmal auszuführen. Wenn diese Option aktiviert

Zeitraum

API-Version 2012-10-29266

Page 274: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3KeyExists

Optionale Felder Beschreibung Slot-Typist, wird erneut versucht, eine Remote-Aktivitätdurchzuführen, die nach dem Start nicht innerhalbder festgelegten Zeit abgeschlossen wird.

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden.

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maximumRetries Maximale Anzahl der Versuche, die bei einemFehler initiiert werden.

Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

preconditionTimeout Der Zeitraum ab dem die Vorbedingung alsfehlgeschlagen gekennzeichnet ist, wenn sie nochnicht erfüllt ist.

Zeitraum

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiaufeinander folgenden Versuchen.

Zeitraum

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

API-Version 2012-10-29267

Page 275: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3KeyExists

Laufzeitfelder Beschreibung Slot-Typ

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

currentRetryCount Anzahl, wie oft die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

lastRetryTime Das letzte Mal, dass die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

Knoten Der Knoten, für den diese Vorbedingungausgeführt wird

Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

API-Version 2012-10-29268

Page 276: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3PrefixNotEmpty

Systemfelder Beschreibung Slot-Typ

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandPrecondition (p. 272)

S3PrefixNotEmptyEine Vorbedingung, um zu überprüfen, ob die Amazon S3-Objekte mit dem angegebenen Präfix (als URIdargestellt) vorhanden sind.

BeispielEs folgt ein Beispiel für die Verwendung dieses Objekttyps mit erforderlichen, optionalen undAusdrucksfeldern.

{ "id" : "InputReady", "type" : "S3PrefixNotEmpty", "role" : "test-role", "s3Prefix" : "#{node.filePath}"}

Syntax

Pflichtfelder Beschreibung Slot-Typ

Rolle Legt die Rolle für die Ausführung der Vorbedingungfest.

Zeichenfolge

s3Prefix Das Amazon S3-Präfix zum Prüfen desVorhandenseins von Objekten.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

API-Version 2012-10-29269

Page 277: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3PrefixNotEmpty

Optionale Felder Beschreibung Slot-Typ

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartetwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

Zeitraum

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

preconditionTimeout Der Zeitraum ab dem die Vorbedingung alsfehlgeschlagen gekennzeichnet ist, wenn sie nochnicht erfüllt ist

Zeitraum

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29270

Page 278: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchS3PrefixNotEmpty

Laufzeitfelder Beschreibung Slot-Typ

currentRetryCount Anzahl, wie oft die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

lastRetryTime Das letzte Mal, dass die Vorbedingung in diesemVersuch probiert wurde.

Zeichenfolge

Knoten Der Knoten, für den diese Vorbedingungausgeführt wird.

Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen. DateTime

@scheduledStartTime Startzeit für Objekt einplanen. DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

API-Version 2012-10-29271

Page 279: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandPrecondition

Weitere Informationen finden Sie auch unter:• ShellCommandPrecondition (p. 272)

ShellCommandPreconditionEin Unix-/Linux-Shell-Befehl, der als Voraussetzung ausgeführt werden kann.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "VerifyDataReadiness", "type" : "ShellCommandPrecondition", "command" : "perl check-data-ready.pl"}

Syntax

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

command Den auszuführenden Befehl. Dieser Wert undalle zugehörigen Parameter müssen in derUmgebung funktionieren, in der Sie den Task-Runner ausführen.

Zeichenfolge

scriptUri Ein Amazon S3-URI-Pfad für eine Datei, dieheruntergeladen und als Shell-Befehl ausgeführtwerden soll. Nur das Feld scriptUri oder dasBefehlsfeld sollten vorhanden sein. scriptUri kannkeine Parameter verwenden. Verwenden Siestattdessen das Befehlsfeld.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. Zeichenfolge

attemptTimeout Timeout für die Remote-Arbeit abgeschlossen.Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegtenStartzeit abgeschlossen wird, wiederholt werden.

Zeitraum

failureAndRerunMode Beschreibt das Verhalten desKonsumentenknotens, wenn Abhängigkeitenfehlschlagen oder erneut ausgeführt werden

Aufzählung

lateAfterTimeout Die nach dem Starten der Pipeline vergangeneZeit, innerhalb derer das Objekt gestartet

Zeitraum

API-Version 2012-10-29272

Page 280: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandPrecondition

Optionale Felder Beschreibung Slot-Typwerden muss. Es wird nur ausgelöst, wenn derPlanungstyp nicht ondemand ist.

maximumRetries Maximale Anzahl von Versuchen bei Ausfällen Ganzzahl

onFail Eine Aktion, die ausgeführt werden soll, wenn dasaktuelle Objekt fehlschlägt.

Referenzobjekt,z. B. „onFail“:{"ref":"myActionId"}

onLateAction Aktionen, die ausgelöst werden sollen, wennein Objekt noch nicht geplant oder noch nichtabgeschlossen wurde.

Referenzobjekt, z.B. „onLateAction“:{"ref":"myActionId"}

onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelleObjekt erfolgreich ist.

Referenzobjekt, z.B. „onSuccess“:{"ref":"myActionId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

preconditionTimeout Der Zeitraum ab dem die Vorbedingung alsfehlgeschlagen gekennzeichnet ist, wenn sie nochnicht erfüllt ist

Zeitraum

reportProgressTimeout Timeout für aufeinanderfolgende Aufrufe vonRemote-Arbeit in reportProgress. Wenn dieseOption aktiviert ist, werden Remote-Aktivitäten, dieden Fortschritt für den angegebenen Zeitraum nichtmelden, als fehlgeschlagen angesehen und es wirderneut versucht.

Zeitraum

retryDelay Die Zeitüberschreitungsdauer zwischen zweiWiederholungsversuchen.

Zeitraum

scriptArgument Argument, das an ein Shell-Skript übergebenwerden soll

Zeichenfolge

stderr Der Amazon S3-Pfad, zu demSystemfehlermeldungen vom Befehl umgeleitetwerden. Wenn Sie das Feld runsOn verwenden,muss dies aufgrund des temporären Charaktersder Ressource, auf der Ihre Aktivität ausgeführtwird, ein Amazon S3-Pfad sein. Wenn Sie jedochdas Feld workerGroup angeben, ist ein lokalerDateipfad zulässig.

Zeichenfolge

stdout Der Amazon S3-Pfad, der eine umgeleiteteAusgabe vom Befehl empfängt. Wenn Sie dasFeld runsOn verwenden, muss dies aufgrund destemporären Charakters der Ressource, auf derIhre Aktivität ausgeführt wird, ein Amazon S3-Pfadsein. Wenn Sie jedoch das Feld workerGroupangeben, ist ein lokaler Dateipfad zulässig.

Zeichenfolge

API-Version 2012-10-29273

Page 281: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellCommandPrecondition

Laufzeitfelder Beschreibung Slot-Typ

@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte.

Referenzobjekt, z.B. „activeInstances“:{"ref":"myRunnableObjectId"}

@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objektsabgeschlossen wurde.

DateTime

@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objektsgestartet wurde.

DateTime

cancellationReason Die cancellationReason, wenn dieses Objektstorniert wurde.

Zeichenfolge

@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der dasObjekt fehlgeschlagen ist.

Referenzobjekt, z. B.„cascadeFailedOn“:{"ref":"myRunnableObjectId"}

emrStepLog EMR-Schrittprotokolle nur bei EMR-Aktivitätsversuchen verfügbar

Zeichenfolge

errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. Zeichenfolge

errorMessage Die errorMessage, wenn dieses Objektfehlgeschlagen ist.

Zeichenfolge

errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn diesesObjekt fehlgeschlagen ist.

Zeichenfolge

hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar.

Zeichenfolge

hostname Der Hostname des Clients, der denAufgabenversuch aufnimmt.

Zeichenfolge

Knoten Der Knoten, für den diese Vorbedingungausgeführt wird

Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivitäteinen Fortschritt gemeldet hat.

DateTime

@scheduledEndTime Endzeit für Objekt einplanen DateTime

@scheduledStartTime Startzeit für Objekt einplanen DateTime

@Status Der Status des Objekts. Zeichenfolge

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

@waitingOn Beschreibung der Liste der Abhängigkeiten, auf diedieses Objekt wartet.

Referenzobjekt,z. B. „waitingOn“:{"ref":"myRunnableObjectId"}

API-Version 2012-10-29274

Page 282: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDatenbanken

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

Weitere Informationen finden Sie auch unter:• ShellCommandActivity (p. 219)• Exists (p. 263)

DatenbankenNachfolgend sind die AWS Data Pipeline-Datenbankobjekte aufgelistet:

Objekte• JdbcDatabase (p. 275)• RdsDatabase (p. 276)• RedshiftDatabase (p. 278)

JdbcDatabaseDefiniert eine JDBC-Datenbank.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyJdbcDatabase", "type" : "JdbcDatabase", "connectionString" : "jdbc:redshift://hostname:portnumber/dbname", "jdbcDriverClass" : "com.amazon.redshift.jdbc41.Driver", "jdbcDriverJarUri" : "s3://redshift-downloads/drivers/RedshiftJDBC41-1.1.6.1006.jar", "username" : "user_name", "*password" : "my_password"}

Syntax

Pflichtfelder Beschreibung Slot-Typ

connectionString Die JDBC-Verbindungszeichenfolge für den Zugriffauf die Datenbank.

Zeichenfolge

API-Version 2012-10-29275

Page 283: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRdsDatabase

Pflichtfelder Beschreibung Slot-Typ

jdbcDriverClass Die Treiberklasse, die vor dem Herstellen derJDBC-Verbindung geladen werden soll.

Zeichenfolge

*Passwort Das anzugebende Passwort. Zeichenfolge

username Der Benutzername, der anzugeben ist, wenn eineVerbindung zur Datenbank hergestellt wird.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

databaseName Name der logischen Datenbank für das Anfügen. Zeichenfolge

jdbcDriverJarUri Der Amazon S3-Speicherort der JAR-Dateides JDBC-Treibers für die Verbindung mit derDatenbank. AWS Data Pipeline muss über dieLeseberechtigung für diese JAR-Datei verfügen.

Zeichenfolge

jdbcProperties Paare der Form A=B, die als Eigenschaftenfür JDBC-Verbindungen für diese Datenbankfestgelegt werden

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

RdsDatabaseDefiniert eine Amazon RDS-Datenbank.

Note

RdsDatabase unterstützt Aurora nicht. Verwenden Sie stattdessen the section called“JdbcDatabase” (p. 275) für Aurora.

API-Version 2012-10-29276

Page 284: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRdsDatabase

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyRdsDatabase", "type" : "RdsDatabase", "region" : "us-east-1", "username" : "user_name", "*password" : "my_password", "rdsInstanceId" : "my_db_instance_identifier"}

Für die Oracle-Engine ist das Feld jdbcDriverJarUri eine Pflichtangabe. Sie können denfolgenden Treiber festlegen: http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html. Für die SQL-Server-Engine ist das FeldjdbcDriverJarUri eine Pflichtangabe. Sie können den folgenden Treiber festlegen: https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774. Für dieMySQL- und PostgreSQL-Engines ist das Feld jdbcDriverJarUri optional.

Syntax

Pflichtfelder Beschreibung Slot-Typ

*Passwort Das anzugebende Passwort. Zeichenfolge

rdsInstanceId Die ID der DB-Instance. Zeichenfolge

username Der Benutzername, der anzugeben ist, wenn eineVerbindung zur Datenbank hergestellt wird.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

databaseName Name der logischen Datenbank für das Anfügen. Zeichenfolge

jdbcDriverJarUri Der Amazon S3-Speicherort der JAR-Dateides JDBC-Treibers für die Verbindung mit derDatenbank. AWS Data Pipeline muss über dieLeseberechtigung für diese JAR-Datei verfügen.Für MySQL- und PostgreSQL-Engines wird derStandardtreiber verwendet, wenn dieses Feldnicht angegeben ist. Sie können den Standardwertjedoch mit diesem Feld überschreiben. Für dieOracle- und SQL Server-Engines ist dieses Feldeine Pflichtangabe.

Zeichenfolge

jdbcProperties Paare der Form A=B, die als Eigenschaftenfür JDBC-Verbindungen für diese Datenbankfestgelegt werden

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

region Der Code für die Region, in der die Datenbankvorhanden ist. Beispiel: us-east-1.

Zeichenfolge

API-Version 2012-10-29277

Page 285: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDatabase

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

RedshiftDatabaseDefiniert eine Amazon Redshift-Datenbank. RedshiftDatabase repräsentiert die Eigenschaften derDatenbank, die von Ihrer Pipeline verwendet wird.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyRedshiftDatabase", "type" : "RedshiftDatabase", "clusterId" : "myRedshiftClusterId", "username" : "user_name", "*password" : "my_password", "databaseName" : "database_name"}

Standardmäßig nutzt das Objekt den Postgres-Treiber, für den das Feld clusterId erforderlich ist. Umden Amazon Redshift-Treiber zu verwenden, geben Sie stattdessen im Feld connectionString dieZeichenfolge der Amazon Redshift-Datenbankverbindung von der Amazon Redshift-Konsole an (beginntmit „jdbc:redshift:“).

Syntax

Pflichtfelder Beschreibung Slot-Typ

*Passwort Das anzugebende Passwort. Zeichenfolge

username Der Benutzername, der anzugeben ist, wenn eineVerbindung zur Datenbank hergestellt wird.

Zeichenfolge

API-Version 2012-10-29278

Page 286: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRedshiftDatabase

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

clusterId Der bei der Erstellung des Amazon Redshift-Clusters vom Benutzer angegebene Bezeichner.Wenn der Endpunkt des Amazon Redshift-Clusters beispielsweise mydb.example.us-east-1.redshift.amazonaws.com ist, lautet dierichtige Kennung mydb. Sie können diesen Wertin der Amazon Redshift-Konsole über „ClusterIdentifier“ (Cluster-Bezeichner) oder „ClusterName“ (Cluster-Name) ermitteln.

Zeichenfolge

connectionString Der JDBC-Endpunkt zum Herstellen einerVerbindung mit einer Amazon Redshift-Instance, die zu einem anderen Konto alsdie Pipeline gehört. Sie können nicht sowohlconnectionString als auch clusterIdangeben.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

databaseName Name der logischen Datenbank für das Anfügen. Zeichenfolge

jdbcProperties Paare der Form A=B müssen als Eigenschaftenfür JDBC-Verbindungen für diese Datenbankfestgelegt werden.

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

region Der Code für die Region, in der die Datenbankvorhanden ist. Beispiel: us-east-1.

Aufzählung

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

API-Version 2012-10-29279

Page 287: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchData Formats

Data FormatsNachfolgend sind die AWS Data Pipeline-Datenformatobjekte aufgelistet:

Objekte• CSV-Datenformate (p. 280)• Custom Data Format (p. 281)• DynamoDBDataFormat (p. 282)• DynamoDBExportDataFormat (p. 284)• RegEx Data Format (p. 286)• TSV-Datenformate (p. 287)

CSV-DatenformateEin durch Kommas getrenntes Datenformat, bei dem das Trennzeichen für Spalten ein Komma und dasDatensatztrennzeichen ein Zeilenumbruch ist.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyOutputDataType", "type" : "CSV", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ]}

Syntax

Optionale Felder Beschreibung Slot-Typ

column Spaltenname mit Datentyp, der von jedem Feldfür die Daten angegeben wird, die von diesemDatenknoten beschrieben werden. Beispiel: BeiHostname STRING verwenden Sie für mehrereWerte Spaltennamen und Datentypen, die durchein Leerzeichen getrennt sind.

Zeichenfolge

escapeChar Ein Zeichen (z. B."\"), das den Parser anweist, dasnächste Zeichen zu ignorieren.

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

API-Version 2012-10-29280

Page 288: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchCustom Data Format

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

Custom Data FormatEin benutzerdefiniertes Datenformat, das auf einer Kombination eines bestimmten Spaltentrennzeichens,Datensatztrennzeichens und des Escape-Zeichens basiert.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyOutputDataType", "type" : "Custom", "columnSeparator" : ",", "recordSeparator" : "\n", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ]}

Syntax

Pflichtfelder Beschreibung Slot-Typ

columnSeparator Das Zeichen, mit dem das Ende einer Spalte ineiner Datendatei kennzeichnet wird.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

column Spaltenname mit Datentyp, der von jedem Feldfür die Daten angegeben wird, die von diesemDatenknoten beschrieben werden. Beispiel: BeiHostname STRING verwenden Sie für mehrereWerte Spaltennamen und Datentypen, die durchein Leerzeichen getrennt sind.

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

API-Version 2012-10-29281

Page 289: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataFormat

Optionale Felder Beschreibung Slot-Typ

recordSeparator Das Zeichen, mit dem das Ende einer Zeile in einerDatendatei kennzeichnet wird, z. B. "\n". Es werdennur einzelne Zeichen unterstützt.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

DynamoDBDataFormatWendet ein Schema für eine DynamoDB-Tabelle an, damit Hive-Abfragen darauf zugreifen können.DynamoDBDataFormat wird mit einem HiveActivity-Objekt und einer DynamoDBDataNode-Eingabeund -Ausgabe verwendet. DynamoDBDataFormat erfordert, dass Sie alle Spalten in der Hive-Abfrageangeben. Informationen zu einer höheren Flexibilität, um bestimmte Spalten in einer Hive-Abfrage oderAmazon S3-Unterstützung festzulegen, finden Sie unter DynamoDBExportDataFormat (p. 284).

Note

Boolesche DynamoDB-Typen sind nicht zu booleschen Hive-Typen zugeordnet. Es ist abermöglich, DynamoDB-Ganzzahlwerte von 0 oder 1 den booleschen Hive-Typen zuzuordnen.

BeispielDas folgende Beispiel zeigt, wie Sie mit DynamoDBDataFormat ein Schema einer DynamoDBDataNode-Eingabe zuweisen, wodurch ein HiveActivity-Objekt auf die Daten nach benannten Spalten zugreifenund die Daten in eine DynamoDBDataNode-Ausgabe kopieren kann.

{ "objects": [ { "id" : "Exists.1", "name" : "Exists.1", "type" : "Exists" }, { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBDataFormat", "column" : [ "hash STRING",

API-Version 2012-10-29282

Page 290: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBDataFormat

"range STRING" ] }, { "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tableName" : "$INPUT_TABLE_NAME", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "$OUTPUT_TABLE_NAME", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.small", "keyPair" : "$KEYPAIR" }, { "id" : "HiveActivity.1", "name" : "HiveActivity.1", "type" : "HiveActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" : { "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "hiveScript" : "insert overwrite table ${output1} select * from ${input1} ;" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 day", "startDateTime" : "2012-05-04T00:00:00", "endDateTime" : "2012-05-05T00:00:00" } ]}

Syntax

Optionale Felder Beschreibung Slot-Typ

column Der Spaltenname mit dem Datentyp, der vonjedem Feld für die Daten angegeben wird, die vondiesem Datenknoten beschrieben werden. Beispiel,hostname STRING. Verwenden Sie für mehrereWerte Spaltennamen und Datentypen, die durchein Leerzeichen getrennt sind.

Zeichenfolge

parent Das übergeordnetes Objekt des aktuellen Objekts,aus dem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

API-Version 2012-10-29283

Page 291: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBExportDataFormat

Laufzeitfelder Beschreibung Slot-Typ

@Version Die Pipeline-Version, mit der das Objekt erstelltwurde

Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Der Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Die Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

DynamoDBExportDataFormatWendet ein Schema für eine DynamoDB-Tabelle an, damit Hive-Abfragen darauf zugreifen können.Verwenden Sie DynamoDBExportDataFormat zusammen mit einem HiveCopyActivity-Objekt undDynamoDBDataNode oder der S3DataNode-Ein- und Ausgabe. DynamoDBExportDataFormat hatfolgende Vorteile:

• Bietet sowohl DynamoDB- als auch Amazon S3-Unterstützung• Ermöglicht das Filtern von Daten nach bestimmten Spalten in der Hive-Abfrage• Exportiert alle Attribute von DynamoDB, auch wenn Sie ein Sparse-Schema haben

Note

Boolesche DynamoDB-Typen sind nicht zu booleschen Hive-Typen zugeordnet. Es ist abermöglich, DynamoDB-Ganzzahlwerte von 0 oder 1 den booleschen Hive-Typen zuzuordnen.

BeispielDas folgende Beispiel zeigt, wie Sie mit HiveCopyActivity und DynamoDBExportDataFormatDaten von einem DynamoDBDataNode auf einen anderen kopieren können, während gleichzeitig Datenbasierend auf einem Zeitstempel gefiltert werden.

{ "objects": [ { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timeStamp BIGINT" }, { "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" }, { "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode",

API-Version 2012-10-29284

Page 292: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDynamoDBExportDataFormat

"tableName" : "item_mapped_table_restore_temp", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "restore_table", "region" : "us_west_1", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.2" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.xlarge", "coreInstanceCount" : "4" }, { "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" : { "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startDateTime" : "2013-06-04T00:00:00", "endDateTime" : "2013-06-04T01:00:00" } ]}

Syntax

Optionale Felder Beschreibung Slot-Typ

column Spaltenname mit Datentyp, der von jedem Feldfür die Daten angegeben wird, die von diesemDatenknoten beschrieben werden. Beispiel:hostname STRING

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

API-Version 2012-10-29285

Page 293: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchRegEx Data Format

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

RegEx Data FormatEin benutzerdefiniertes Datenformat, das durch einen regulären Ausdruck definiert wird.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyInputDataType", "type" : "RegEx", "inputRegEx" : "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\"))?", "outputFormat" : "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s", "column" : [ "host STRING", "identity STRING", "user STRING", "time STRING", "request STRING", "status STRING", "size STRING", "referer STRING", "agent STRING" ]}

Syntax

Optionale Felder Beschreibung Slot-Typ

column Spaltenname mit Datentyp, der von jedem Feldfür die Daten angegeben wird, die von diesemDatenknoten beschrieben werden. Beispiel: BeiHostname STRING verwenden Sie für mehrereWerte Spaltennamen und Datentypen, die durchein Leerzeichen getrennt sind.

Zeichenfolge

inputRegEx Der reguläre Ausdruck zum Parsen einer S3-Eingabedatei. Mit inputRegEx können Spaltenaus relativ unstrukturierten Daten in einer Dateiabgerufen werden.

Zeichenfolge

outputFormat Die Spaltenfelder, die von "inputRegEx"abgerufen werden. Es wird aber die Java-

Zeichenfolge

API-Version 2012-10-29286

Page 294: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTSV-Datenformate

Optionale Felder Beschreibung Slot-TypFormatierungssyntax verwendet, um sie als "%1$s%2$s" zu referenzieren.

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

TSV-DatenformateEin durch Kommas getrenntes Datenformat, bei dem das Trennzeichen für Spalten ein Tabulatorzeichenund das Datensatztrennzeichen ein Zeilenumbruch ist.

BeispielEs folgt ein Beispiel für diesen Objekttyp.

{ "id" : "MyOutputDataType", "type" : "TSV", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ]}

Syntax

Optionale Felder Beschreibung Slot-Typ

column Spaltenname und Datentyp der Daten, die vondiesem Datenknoten beschrieben werden. So gibt"Name STRING" eine Spalte mit dem NamenName und dem Datentyp STRING an. TrennenSie mehrere Spaltenname/Datentyp-Paare durchKommas (wie im Beispiel gezeigt).

Zeichenfolge

API-Version 2012-10-29287

Page 295: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAktionen

Optionale Felder Beschreibung Slot-Typ

columnSeparator Das Zeichen, mit dem die Felder einer Spalte vonden Feldern der nächsten Spalte getrennt werden.Standardeinstellung: "\t".

Zeichenfolge

escapeChar Ein Zeichen (z. B."\"), das den Parser anweist, dasnächste Zeichen zu ignorieren.

Zeichenfolge

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

recordSeparator Das Zeichen, das die Datensätze voneinandertrennt. Standardeinstellung: "\n".

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

AktionenNachfolgend sind die AWS Data Pipeline-Aktionsobjekte aufgelistet:

Objekte• SnsAlarm (p. 288)• Beenden (p. 289)

SnsAlarmSendet eine Amazon SNS-Benachrichtigung, wenn eine Aktivität fehlschlägt oder erfolgreich beendet wird.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Die Werte für node.input und node.output stammen vomDatenknoten oder der Aktivität, die im Feld onSuccess auf dieses Objekt verweist.

{ "id" : "SuccessNotify", "name" : "SuccessNotify", "type" : "SnsAlarm",

API-Version 2012-10-29288

Page 296: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeenden

"topicArn" : "arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic", "subject" : "COPY SUCCESS: #{node.@scheduledStartTime}", "message" : "Files were copied from #{node.input} to #{node.output}."}

Syntax

Pflichtfelder Beschreibung Slot-Typ

message Der Textkörper der Amazon SNS-Benachrichtigung.

Zeichenfolge

Rolle Die IAM-Rolle, die zum Erstellen des Amazon SNS-Alarms verwendet werden soll.

Zeichenfolge

subject Die Betreffzeile der Amazon SNS-Benachrichtigung.

Zeichenfolge

topicArn Der Ziel-ARN des Amazon SNS-Themas für dieNachricht.

Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

Knoten Der Knoten, für den diese Aktion ausgeführt wird. Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

BeendenEine Aktion, die eine Stornierung von ausstehenden oder nicht abgeschlossenen Aktivitäten, Ressourcenoder Datenknoten auslöst. AWS Data Pipeline versucht, die Aktivität, Ressource oder den Datenknoten inden Status CANCELLED zu versetzen, wenn sie nicht durch den Wert lateAfterTimeout gestartet wird.

API-Version 2012-10-29289

Page 297: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeenden

Sie können keine Aktionen beenden, die onSuccess-, OnFail- oder onLateAction-Ressourcenbeinhalten.

BeispielEs folgt ein Beispiel für diesen Objekttyp. Bei diesem Beispiel enthält das Feld onLateActionMyActivity einen Verweis auf die Aktion DefaultAction1. Wenn Sie eine Aktion für onLateActionbereitstellen, müssen Sie auch einen lateAfterTimeout-Wert für den Zeitraum seit dem geplanten Startder Pipeline festlegen, nach dem die Aktivität als verspätet betrachtet wird.

{ "name" : "MyActivity", "id" : "DefaultActivity1", "schedule" : { "ref" : "MySchedule" }, "runsOn" : { "ref" : "MyEmrCluster" }, "lateAfterTimeout" : "1 Hours", "type" : "EmrActivity", "onLateAction" : { "ref" : "DefaultAction1" }, "step" : [ "s3://myBucket/myPath/myStep.jar,firstArg,secondArg", "s3://myBucket/myPath/myOtherStep.jar,anotherArg" ]},{ "name" : "TerminateTasks", "id" : "DefaultAction1", "type" : "Terminate"}

Syntax

Optionale Felder Beschreibung Slot-Typ

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

Knoten Der Knoten, für den diese Aktion ausgeführt wird. Referenzobjekt,z. B. „node“:{"ref":"myRunnableObjectId"}

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

API-Version 2012-10-29290

Page 298: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPlan

Systemfelder Beschreibung Slot-Typ

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

PlanLegt den Zeitplan für ein geplantes Ereignis fest, z. B. die Ausführung einer Aktivität.

Note

Wenn die Startzeit eines Zeitplans in der Vergangenheit liegt, gleicht AWS Data PipelineIhre Pipeline aus und fängt umgehend damit an, Ausführungen zu planen. Dabei beginnt diePlanung zur angegebenen Startzeit. Wählen Sie für Tests/Entwicklung ein relativ kurzes Intervall.Andernfalls versucht AWS Data Pipeline, alle Ausführungen Ihrer Pipeline für diesen Zeitraumin die Warteschlange zu versetzen und zu planen. AWS Data Pipeline versucht, zufälligeAusgleichungen zu verhindern, wenn die Pipeline-Komponente scheduledStartTime länger als1 Tag zurückliegt. Dazu wird die Pipeline-Aktivierung gesperrt.

BeispieleEs folgt ein Beispiel für diesen Objekttyp. Es definiert einen Zeitplan für jede Stunde ab 00:00:00 Uhram 01.09.2012 bis um 00:00:00 Uhr am 01.10.2012. Der erste Zeitraum endet um 01:00:00 Uhr am01.09.2012.

{ "id" : "Hourly", "type" : "Schedule", "period" : "1 hours", "startDateTime" : "2012-09-01T00:00:00", "endDateTime" : "2012-10-01T00:00:00"}

Die folgende Pipeline startet um FIRST_ACTIVATION_DATE_TIME und wird jede Stunde bis um 22:00:00Uhr am 25.04.2014 ausgeführt.

{ "id": "SchedulePeriod", "name": "SchedulePeriod", "startAt": "FIRST_ACTIVATION_DATE_TIME", "period": "1 hours", "type": "Schedule", "endDateTime": "2014-04-25T22:00:00" }

Die folgende Pipeline startet um FIRST_ACTIVATION_DATE_TIME und wird jede Stunde ausgeführt. Nachdreimaliger Ausführung ist sie abgeschlossen.

{ "id": "SchedulePeriod", "name": "SchedulePeriod", "startAt": "FIRST_ACTIVATION_DATE_TIME", "period": "1 hours", "type": "Schedule", "occurrences": "3"

API-Version 2012-10-29291

Page 299: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeispiele

}

Die folgende Pipeline beginnt um 22:00:00 Uhr am 25.04.2014, wird stündlich ausgeführt und endet nachdreimaliger Ausführung.

{ "id": "SchedulePeriod", "name": "SchedulePeriod", "startDateTime": "2014-04-25T22:00:00", "period": "1 hours", "type": "Schedule", "occurrences": "3" }

On-Demand mit dem Standardobjekt

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand"}

On-demand mit explizitem Zeitplanobjekt

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand"},{ "name": "DefaultSchedule", "type": "Schedule", "id": "DefaultSchedule", "period": "ONDEMAND_PERIOD", "startAt": "ONDEMAND_ACTIVATION_TIME"},

Die folgenden Beispiele zeigen, wie ein Zeitplan vom Standardobjekt übernommen werden kann, explizit fürdas Objekt festgelegt werden kann oder durch eine übergeordnete Objektreferenz übergeben werden kann:

Zeitplan vom Standardobjekt übernommen

{ "objects": [ { "id": "Default", "failureAndRerunMode":"cascade", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://myLogsbucket", "scheduleType": "cron", "schedule": { "ref": "DefaultSchedule" } }, { "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day",

API-Version 2012-10-29292

Page 300: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchBeispiele

"startAt": "FIRST_ACTIVATION_DATE_TIME" }, { "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateAfter": "1 Hour" }, { "id": "ShellCommandActivity_HelloWorld", "runsOn": { "ref": "A_Fresh_NewEC2Instance" }, "type": "ShellCommandActivity", "command": "echo 'Hello World!'" } ]}

Expliziter Zeitplan für das Objekt

{ "objects": [ { "id": "Default", "failureAndRerunMode":"cascade", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://myLogsbucket", "scheduleType": "cron" }, { "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startAt": "FIRST_ACTIVATION_DATE_TIME" }, { "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateAfter": "1 Hour" }, { "id": "ShellCommandActivity_HelloWorld", "runsOn": { "ref": "A_Fresh_NewEC2Instance" }, "schedule": { "ref": "DefaultSchedule" }, "type": "ShellCommandActivity", "command": "echo 'Hello World!'" } ]}

Zeitplan von übergeordneter Referenz

{ "objects": [ { "id": "Default", "failureAndRerunMode":"cascade",

API-Version 2012-10-29293

Page 301: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSyntax

"resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://myLogsbucket", "scheduleType": "cron" }, { "id": "parent1", "schedule": { "ref": "DefaultSchedule" } }, { "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startAt": "FIRST_ACTIVATION_DATE_TIME" }, { "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateAfter": "1 Hour" }, { "id": "ShellCommandActivity_HelloWorld", "runsOn": { "ref": "A_Fresh_NewEC2Instance" }, "parent": { "ref": "parent1" }, "type": "ShellCommandActivity", "command": "echo 'Hello World!'" } ]}

Syntax

Pflichtfelder Beschreibung Slot-Typ

Zeitraum Die vorgesehene Häufigkeit der Pipeline-Ausführung. Das Format ist "N [Minuten | Stunden| Tage | Wochen | Monate]", wobei N eine Zahlgefolgt von einem der Zeitspezifizierer ist. Beispiel:"15 Minuten", führt die Pipeline alle 15 Minuten aus.Der Mindestzeitraum beträgt 15 Minuten und dermaximale Zeitraum beträgt 3 Jahre.

Zeitraum

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

startAt Das Datum und der Zeitpunkt, an dem die geplantePipeline gestartet werden soll. Der gültige Wert istFIRST_ACTIVATION_DATE_TIME, der zugunsten

Aufzählung

API-Version 2012-10-29294

Page 302: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchDienstprogramme

Erforderliche Gruppe(mindestens eineder folgenden isterforderlich)

Beschreibung Slot-Typ

der Erstellung einer bedarfsgesteuerten Pipelineals veraltet markiert ist.

startDateTime Das Datum und die Uhrzeit zum Starten dergeplanten Ausführungen. Sie müssen entwederstartDateTime oder startAt verwenden, aber nichtbeides.

DateTime

Optionale Felder Beschreibung Slot-Typ

endDateTime Das Datum und die Uhrzeit zum Starten dergeplanten Ausführungen. Muss ein Datum und eineZeit später sein als der Wert von startDateTimeoder startAt. Das Standardverhalten besteht darin,Ausführungen so lange zu planen, bis die Pipelineheruntergefahren wird.

DateTime

Ereignisse Gibt an, wie oft die Pipeline ausgeführt werdensoll, nachdem sie aktiviert wurde. Sie könnenEreignisse nicht mit endDateTime verwenden.

Ganzzahl

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@firstActivationTime Zeit der Objekterstellung. DateTime

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

DienstprogrammeDie folgenden Dienstprogrammobjekte konfigurieren andere Pipeline-Objekte:

Themen

API-Version 2012-10-29295

Page 303: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchShellScriptConfig

• ShellScriptConfig (p. 296)• EmrConfiguration (p. 297)• Eigenschaft (p. 300)

ShellScriptConfigZur Verwendung mit einer Aktivität für ein Shell-Script für preActivityTaskConfig undpostActivityTaskConfig. Dieses Objekt ist für HadoopActivity (p. 182), HiveActivity (p. 189),HiveCopyActivity (p. 195) und PigActivity (p. 201) verfügbar. Sie geben einen S3-URI und eine Listevon Argumenten für das Skript an.

BeispielEine ShellScriptConfig mit Argumenten:

{ "id" : "ShellScriptConfig_1”, "name" : “prescript”, "type" : "ShellScriptConfig", "scriptUri": “s3://my-bucket/shell-cleanup.sh”, "scriptArgument" : ["arg1","arg2"] }

SyntaxDieses Objekt enthält die folgenden Felder.

Optionale Felder Beschreibung Slot-Typ

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

scriptArgument Eine Liste der Argumente für das Shell-Skript Zeichenfolge

scriptUri Der URI des Skripts in Amazon S3, dasheruntergeladen und ausgeführt werden soll.

Zeichenfolge

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

API-Version 2012-10-29296

Page 304: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrConfiguration

EmrConfigurationDie EmrConfiguration-Objekt ist die Konfiguration, die für EMR-Cluster mit Versionen 4.0.0 oder höherverwendet wird. Configurations (as a list) ist ein Parameter für den API-Aufruf RunJobFlow. Für dieKonfigurations-API für Amazon EMR werden eine Klassifizierung und Eigenschaften benötigt. AWS DataPipeline verwendet EmrConfiguration mit den zugehörigen Eigenschaftsobjekten für die Konfigurationeiner EmrCluster (p. 237)-Anwendung wie Hadoop, Hive, Spark oder Pig auf EMR-Clustern, die in einerPipeline-Ausführung gestartet wird. Da die Konfiguration nur für neue Cluster-Konfiguration geändertwerden kann, können Sie kein EmrConfiguration-Objekt für vorhandene Ressourcen angeben. WeitereInformationen finden Sie unter http://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/.

BeispielDas folgende Konfigurationsobjekt legt die io.file.buffer.size und fs.s3.block.sizeEigenschaften in core-site.xml fest:

[ { "classification":"core-site", "properties": { "io.file.buffer.size": "4096", "fs.s3.block.size": "67108864" } }]

Die entsprechende Pipeline-Objektdefinition nutzt ein EmrConfiguration-Objekt und eine Liste vonEigenschaftsobjekten im Feld property:

{ "objects": [ { "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": { "ref": "coresite" } }, { "name": "coresite", "id": "coresite", "type": "EmrConfiguration", "classification": "core-site", "property": [{ "ref": "io-file-buffer-size" }, { "ref": "fs-s3-block-size" } ] }, { "name": "io-file-buffer-size", "id": "io-file-buffer-size", "type": "Property", "key": "io.file.buffer.size", "value": "4096"

API-Version 2012-10-29297

Page 305: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrConfiguration

}, { "name": "fs-s3-block-size", "id": "fs-s3-block-size", "type": "Property", "key": "fs.s3.block.size", "value": "67108864" } ]}

Im folgenden Beispiel wird eine verschachtelte Konfiguration verwendet, um die Hadoop-Umgebung mit derhadoop-env-Klassifizierung festzulegen:

[ { "classification": "hadoop-env", "properties": {}, "configurations": [ { "classification": "export", "properties": { "YARN_PROXYSERVER_HEAPSIZE": "2396" } } ] }]

Nachfolgend ist das entsprechende Pipeline-Definitionsobjekt mit dieser Konfiguration:

{ "objects": [ { "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.0.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": { "ref": "hadoop-env" } }, { "name": "hadoop-env", "id": "hadoop-env", "type": "EmrConfiguration", "classification": "hadoop-env", "configuration": { "ref": "export" } }, { "name": "export", "id": "export", "type": "EmrConfiguration", "classification": "export", "property": { "ref": "yarn-proxyserver-heapsize" } }, { "name": "yarn-proxyserver-heapsize",

API-Version 2012-10-29298

Page 306: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEmrConfiguration

"id": "yarn-proxyserver-heapsize", "type": "Property", "key": "YARN_PROXYSERVER_HEAPSIZE", "value": "2396" }, ]}

SyntaxDieses Objekt enthält die folgenden Felder.

Pflichtfelder Beschreibung Slot-Typ

Klassifizierung Klassifizierung für die Konfiguration. Zeichenfolge

Optionale Felder Beschreibung Slot-Typ

Konfiguration Unterkonfiguration für diese Konfiguration. Referenzobjekt, z.B. „configuration“:{"ref":"myEmrConfigurationId"}

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

property Konfigurationseigenschaft Referenzobjekt,z. B. "property":{"ref":"myPropertyId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde. Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts

Zeichenfolge

@pipelineId Id der Pipeline, zu der dieses Objekt gehört Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen

Zeichenfolge

Weitere Informationen finden Sie auch unter:• EmrCluster (p. 237)• Eigenschaft (p. 300)• Amazon EMR-Versionshinweise

API-Version 2012-10-29299

Page 307: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEigenschaft

EigenschaftEine einzelne Eigenschaft für den Schlüssel-Wert zur Verwendung mit einem EmrConfiguration-Objekt.

BeispielDie folgende Pipeline-Definition zeigt EmrConfiguration-Objekt und die entsprechendenEigenschaftsobjekte zum Start eines EmrCluster:

{ "objects": [ { "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": { "ref": "coresite" } }, { "name": "coresite", "id": "coresite", "type": "EmrConfiguration", "classification": "core-site", "property": [{ "ref": "io-file-buffer-size" }, { "ref": "fs-s3-block-size" } ] }, { "name": "io-file-buffer-size", "id": "io-file-buffer-size", "type": "Property", "key": "io.file.buffer.size", "value": "4096" }, { "name": "fs-s3-block-size", "id": "fs-s3-block-size", "type": "Property", "key": "fs.s3.block.size", "value": "67108864" } ]}

SyntaxDieses Objekt enthält die folgenden Felder.

Pflichtfelder Beschreibung Slot-Typ

Schlüssel Schlüssel Zeichenfolge

Wert Wert Zeichenfolge

API-Version 2012-10-29300

Page 308: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEigenschaft

Optionale Felder Beschreibung Slot-Typ

parent Übergeordnetes Objekt des aktuellen Objekts, ausdem Slots übernommen werden.

Referenzobjekt,z. B. „parent“:{"ref":"myBaseObjectId"}

Laufzeitfelder Beschreibung Slot-Typ

@Version Pipeline-Version, mit der das Objekt erstellt wurde Zeichenfolge

Systemfelder Beschreibung Slot-Typ

@error Fehler mit einer Beschreibung des falschformatierten Objekts.

Zeichenfolge

@pipelineId ID der Pipeline, zu der dieses Objekt gehört. Zeichenfolge

@sphere Die Kugel eines Objekts bezeichnet seinen Platzim Lebenszyklus: Komponentenobjekte ergebenInstance-Objekte, die Versuchsobjekte ausführen.

Zeichenfolge

Weitere Informationen finden Sie auch unter:• EmrCluster (p. 237)• EmrConfiguration (p. 297)• Amazon EMR-Versionshinweise

API-Version 2012-10-29301

Page 309: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask Runner auf AWS Data

Pipeline-verwalteten Ressourcen

Arbeiten mit Task RunnerTask Runner ist eine Task-Agent-Anwendung, die AWS Data Pipeline für geplante Aufgaben abfragt undsie auf Amazon EC2-Instances, Amazon EMR-Clustern oder anderen Rechenressourcen ausführt, wobeider Status gemeldet wird. Je nach Anwendung können Sie:

• Zulassen, dass AWS Data Pipeline eine oder mehrere Task Runner-Anwendungen für Sie installiertund verwaltet. Wenn eine Pipeline aktiviert ist, wird automatisch das Standardobjekt Ec2Instanceoder EmrCluster, auf das ein Feld für die Aktivität runsOn verweist, erstellt. AWS Data Pipelinekümmert sich um die Installation von Task Runner auf einer EC2-Instance oder auf dem Master-Knoten eines EMR-Clusters. In diesem Muster kann AWS Data Pipeline den Großteil der Instance- oderClusterverwaltung für Sie erledigen.

• Führen Sie alle oder Teile einer Pipeline für von Ihnen verwaltete Ressourcen aus. Zu den potenziellenRessourcen gehören eine Langzeit-Amazon EC2-Instance, ein Amazon EMR-Cluster oder ein physischerServer. Sie können einen Task-Runner (entweder Task Runner oder einen benutzerdefinierten,eigenen Task-Agent) fast überall installieren, vorausgesetzt, er kann mit dem AWS Data Pipeline-Webservice kommunizieren. In diesem Muster übernehmen Sie fast vollständige Kontrolle darüber,welche Ressourcen verwendet und wie sie verwaltet werden. Außerdem müssen Sie Task Runnermanuell installieren und konfigurieren. Verwenden Sie dazu die Verfahren in diesem Abschnitt, wie inArbeiten an vorhandenen Ressourcen mit Task Runner (p. 304) beschrieben.

Task Runner auf AWS Data Pipeline-verwaltetenRessourcen

Wenn eine Ressource von AWS Data Pipeline gestartet und verwaltet wird, installiert der Webserviceautomatisch Task Runner auf dieser Ressource, um Aufgaben in der Pipeline zu verarbeiten. Sie gebeneine Rechenressource (entweder eine Amazon EC2-Instance oder einen Amazon EMR-Cluster) für dasFeld runsOn eines Aktivitätsobjekts an. Wenn AWS Data Pipeline diese Ressource startet, wird TaskRunner auf dieser Ressource installiert und konfiguriert, um alle Aktivitätsobjekte zu verarbeiten, deren FeldrunsOn auf diese Ressource gesetzt ist. Wenn AWS Data Pipeline die Ressource beendet, werden alleTask Runner-Protokolle an einem Amazon S3-Speicherort veröffentlicht, bevor sie heruntergefahren wird.

API-Version 2012-10-29302

Page 310: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask Runner auf AWS Data

Pipeline-verwalteten Ressourcen

Wenn Sie beispielsweise in einer Pipeline die EmrActivity verwenden und im Feld runsOn eineEmrCluster-Ressource angeben. Wenn AWS Data Pipeline diese Aktivität verarbeitet, wird ein AmazonEMR-Cluster gestartet und Task Runner auf dem Master-Knoten installiert. Dieser Task Runner verarbeitetdann die Aufgaben für Aktivitäten, deren Feld runsOn auf das Objekt EmrCluster gesetzt ist. Derfolgende Ausschnitt aus einer Pipeline-Definition zeigt diese Beziehung zwischen den beiden Objekten.

{ "id" : "MyEmrActivity", "name" : "Work to perform on my data", "type" : "EmrActivity", "runsOn" : {"ref" : "MyEmrCluster"}, "preStepCommand" : "scp remoteFiles localFiles", "step" : "s3://myBucket/myPath/myStep.jar,firstArg,secondArg", "step" : "s3://myBucket/myPath/myOtherStep.jar,anotherArg", "postStepCommand" : "scp localFiles remoteFiles", "input" : {"ref" : "MyS3Input"}, "output" : {"ref" : "MyS3Output"}},{ "id" : "MyEmrCluster", "name" : "EMR cluster to perform the work", "type" : "EmrCluster", "hadoopVersion" : "0.20", "keypair" : "myKeyPair", "masterInstanceType" : "m1.xlarge", "coreInstanceType" : "m1.small", "coreInstanceCount" : "10", "taskInstanceType" : "m1.small", "taskInstanceCount": "10", "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-hadoop,arg1,arg2,arg3", "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-other-stuff,arg1,arg2"

API-Version 2012-10-29303

Page 311: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchArbeiten an vorhandenen Ressourcen mit Task Runner

}

Informationen und Beispiele für die Ausführung dieser Aktivitäten finden Sie unter EmrActivity (p. 176).

Wenn Sie mehrere AWS Data Pipeline-verwaltete Ressourcen in einer Pipeline haben, ist Task Runnerauf jeder von ihnen installiert und sie alle stellen Anfragen an AWS Data Pipeline für zu verarbeitendeAufgaben.

Arbeiten an vorhandenen Ressourcen mit TaskRunner

Sie können Task Runner auf von Ihnen verwalteten Rechenressourcen, z. B. auf einer Amazon EC2-Instance, einem physischen Server oder einer Workstation, installieren. Task Runner kann überall installiertwerden, auf jeder kompatiblen Hardware oder in jedem kompatiblen Betriebssystem, vorausgesetzt, dasseine Kommunikation mit dem AWS Data Pipeline-Webservice möglich ist.

Dieser Ansatz kann nützlich sein, wenn Sie beispielsweise AWS Data Pipeline verwenden möchten; umDaten zu verarbeiten, die in der Firewall Ihres Unternehmens gespeichert sind. Durch Installieren vonTask Runner auf einem Server im lokalen Netzwerk können Sie sicher auf die lokale Datenbank zugreifenund anschließend AWS Data Pipeline abfragen, um die nächste Aufgabe auszuführen. Wenn AWS DataPipeline die Verarbeitung beendet oder die Pipeline löscht, bleibt die Task Runner-Instance auf IhrerRechenressource, bis Sie sie manuell herunterfahren. Die Task Runner-Protokolle bleiben nach Abschlussder Pipeline-Ausführung erhalten.

Um Task Runner auf einer von Ihnen verwalteten Ressource zu verwenden, müssen Sie zunächst TaskRunner herunterladen und anschließend mithilfe der in diesem Abschnitt beschriebenen Verfahren auf IhrerRechenressource installieren.

Note

Sie können Task Runner nur unter Linux, UNIX oder macOS installieren. Task Runner wird aufdem Betriebssystem Windows nicht unterstützt.

Um einen Task Runner, den Sie für die zu verarbeitenden Pipeline-Aktivitäten installiert haben, zuverbinden, fügen Sie dem Objekt ein workerGroup-Feld hinzu und konfigurieren Sie Task Runner,um diesen Auftragnehmergruppenwert abzufragen. Dazu übergeben Sie die Zeichenfolge derAuftragnehmergruppe als Parameter (z. B. --workerGroup=wg-12345), wenn Sie die Task Runner-JAR-Datei ausführen.

API-Version 2012-10-29304

Page 312: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchInstallieren von Task Runner

{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "workerGroup" : "wg-12345", "command" : "mkdir new-directory"}

Installieren von Task RunnerIn diesem Abschnitt wird erklärt, wie Sie Task Runner installieren und konfigurieren und welcheSystemvoraussetzungen bestehen. Die Installation ist ein einfacher manueller Prozess.

So installieren Sie Task Runner

1. Task Runner erfordert Java-Version 1.6 oder 1.8. Verwenden Sie den folgenden Befehl, umfestzustellen, ob Java installiert ist und welche Version ausgeführt wird:

java -version

Wenn Java 1.6 oder 1.8 nicht auf Ihrem Computer installiert ist, laden Sie eine dieser Versionen vonhttp://www.oracle.com/technetwork/java/index.html herunter. Laden Sie Java herunter und installierenSie es und fahren Sie mit dem nächsten Schritt fort.

2. Laden Sie TaskRunner-1.0.jar von https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar herunter und kopieren Sie es in einen Ordner der

API-Version 2012-10-29305

Page 313: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask Runner Zugriff auf Amazon RDS gewähren (optional)

Zielrechenressource. Für Amazon EMR-Cluster, die EmrActivity-Aufgaben ausführen, installierenSie Task Runner auf dem Master-Knoten des Clusters.

3. Task Runner muss sich mit dem AWS Data Pipeline-Webservice verbinden, um Ihre Befehlezu verarbeiten. In diesem Schritt konfigurieren Sie Task Runner mit einem AWS-Konto, dasBerechtigungen zum Erstellen oder Verwalten von Datenpipelines hat.

Erstellen Sie eine JSON-Datei mit dem Namen credentials.json (Sie können einen anderenNamen verwenden), der eine Zugangsschlüssel-ID und einen Geheimzugriffschlüssel im Format{ "access-id": "MyAccessKeyID", "private-key": "MySecretAccessKey" } angibt.Kopieren Sie die Datei in das Verzeichnis, in dem Sie Task Runner installiert haben.

For CLI access, you need an access key ID and secret access key. Use IAM user access keys insteadof Stammbenutzer des AWS-Kontos access keys. IAM lets you securely control access to AWSservices and resources in your AWS account. For more information about creating access keys, seeUnderstanding and Getting Your Security Credentials in the AWS General Reference.

4. Task Runner verbindet sich mit dem AWS Data Pipeline-Webservice mittels HTTPS. Wenn Sie eineAWS-Ressource verwenden, stellen Sie sicher, dass HTTPS in der entsprechenden Routing-Tabelleund in der Subnetz-ACL aktiviert ist. Wenn Sie eine Firewall oder einen Proxy verwenden, stellen Siesicher, dass der Port 443 geöffnet ist.

Task Runner Zugriff auf Amazon RDS gewähren(optional)Mit Amazon RDS können Sie den Zugriff auf Ihre DB-Instances mithilfe von Datenbank-Sicherheitsgruppen(DB-Sicherheitsgruppen) steuern. DB-Sicherheitsgruppen funktionieren wie eine Firewall. Sie steuernden Netzwerkzugriff auf die DB-Instance. Der Netzwerkzugriff auf Ihre DB-Instances ist standardmäßigdeaktiviert. Sie müssen Ihre DB-Sicherheitsgruppen ändern, damit Task Runner Zugriff auf Ihre AmazonRDS Instances hat. Task Runner erhält Amazon RDS-Zugriff von der Instance, auf der er ausgeführt wird.Die Konten und Sicherheitsgruppen, die Sie zu Ihrer Amazon RDS-Instance hinzufügen, sind abhängigdavon, wo Sie Task Runner installieren.

Zugriff auf Task Runner in EC2-Classic gewähren

1. Öffnen Sie die Amazon RDS-Konsole.2. Klicken Sie im Navigationsbereich auf Instances (DB-Instances) und wählen Sie anschließend Ihre

DB-Instance aus.3. Wählen Sie unter Sicherheit und Netzwerk die Sicherheitsgruppe aus, die die Seite Sicherheitsgruppen

mit dieser ausgewählten DB-Sicherheitsgruppe öffnet. Klicken Sie auf das Detailsymbol für die DB-Sicherheitsgruppe.

4. Legen Sie unter Sicherheitsgruppendetails eine Regel mit dem entsprechenden Verbindungstyp undDetails an. Diese Felder hängen davon ab, wo Task Runner läuft, wie hier beschrieben:

• Ec2Resource

• Verbindungstyp: EC2 Security Group

Details: my-Sicherheits-group-name (den Namen der Sicherheitsgruppe, die Sie für dieEC2-Instance erstellt haben)

• EmrResource

• Verbindungstyp: EC2 Security Group

Details: ElasticMapReduce-master• Verbindungstyp: EC2 Security Group

Details: ElasticMapReduce-slave

API-Version 2012-10-29306

Page 314: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchStarten von Task Runner

• Ihre lokale Umgebung (lokal)• Verbindungstyp: CIDR/IP:

Details: my-IP-Adresse (die IP-Adresse Ihres Computers oder den IP-Adressbereich IhresNetzwerks, falls sich Ihr Computer hinter einer Firewall befindet)

5. Klicken Sie auf Add.

Zugriff auf Task Runner gewähren in EC2-VPC

1. Öffnen Sie die Amazon RDS-Konsole.2. Wählen Sie im Navigationsbereich Instances aus.3. Klicken Sie auf das Detailsymbol für die DB-Sicherheitsgruppe. Öffnen Sie den Link unter Sicherheit

und Netzwerk, um die Sicherheitsgruppe in der Amazon EC2-Konsole aufzurufen. Wenn Sie das alteKonsolendesign für Sicherheitsgruppen verwenden, wechseln Sie zum neuen Konsolendesign, indemSie auf das Symbol klicken, das oben auf der Konsolenseite angezeigt wird.

4. Wählen Sie auf der Registerkarte Inbound die Option Edit, Add Rule. Geben Sie denDatenbankanschluss an, den Sie beim Starten der DB-Instance verwendet haben. Die Quelle hängtdavon ab, wo Task Runner läuft, wie hier beschrieben:

• Ec2Resource

• my-security-group-id (die ID der Sicherheitsgruppe, die Sie für die EC2-Instance erstellthaben)

• EmrResource

• master-security-gruppe-id (die ID der ElasticMapReduce-master-Sicherheitsgruppe)• slave-security-group-id (die ID der ElasticMapReduce-slave-Sicherheitsgruppe)

• Ihre lokale Umgebung (lokal)• ip-address (die IP-Adresse Ihres Computers oder den IP-Adressbereich Ihres Netzwerks, falls

sich Ihr Computer hinter einer Firewall befindet)5. Klicken Sie auf Speichern.

Starten von Task RunnerIn einem neuen Eingabeaufforderungsfenster, das auf das Verzeichnis eingestellt ist, in dem Sie TaskRunner installiert haben, starten Sie Task Runner mit dem folgenden Befehl.

java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=myWorkerGroup --region=MyRegion --logUri=s3://mybucket/foldername

Die Option --config zeigt auf Ihre Anmeldedaten-Datei.

Die Option --workerGroup gibt den Namen Ihrer Auftragnehmergruppe an, der für die zu verarbeitendenAufgaben in Ihrer Pipeline den gleichen Wert haben muss.

Die Option --region gibt den Servicebereich an, von dem aus Aufgaben ausgeführt werden sollen.

Die Option --logUri wird verwendet, um Ihre komprimierten Protokolle an einen Speicherort in AmazonS3 zu verschieben.

Wenn Task Runner aktiv ist, druckt es den Pfad zu Protokolldateien im Terminalfenster. Im Folgenden wirdein Beispiel gezeigt.

Logging to /Computer_Name/.../output/logs

API-Version 2012-10-29307

Page 315: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜberprüfen der Task Runner-Protokollierung

Task-Runner sollte von Ihrer Anmelde-Shell getrennt ausgeführt werden. Wenn Sie eineTerminalanwendung verwenden, um eine Verbindung zu Ihrem Computer herzustellen, müssen Siemöglicherweise ein Dienstprogramm wie nohup oder screen verwenden, um zu verhindern, dass dieTask-Runner-Anwendung beendet wird, wenn Sie sich abmelden. Weitere Informationen zu diesenBefehlszeilenoptionen finden Sie unter Task Runner-Konfigurationsoptionen (p. 308).

Überprüfen der Task Runner-ProtokollierungDer einfachste Weg, um zu überprüfen, ob Task Runner funktioniert, ist, zu überprüfen, ob esProtokolldateien schreibt. Task Runner schreibt stündliche Protokolldateien in das Verzeichnis output/logs, unter dem Verzeichnis, in dem Sie Task Runner installiert haben. Der Dateiname ist TaskRunner.log.YYYY-MM-DD-HH, wobei HH von 00 bis 23 in UDT läuft. Um Speicherplatz zu sparen,werden alle Protokolldateien, die älter als acht Stunden sind, mit GZip komprimiert.

Task Runner-Threads und VorbedingungenTask Runner verwendet für alle Aufgaben, Aktivitäten und Vorbedingungen einen Thread-Pool. DieStandardeinstellung für --tasks ist 2. Das bedeutet, dass zwei Threads aus dem Aufgabenpoolzugewiesen werden und jeder Thread den AWS Data Pipeline-Service nach neuen Aufgaben abfragenwird. Daher ist --tasks ein Attribut für die Leistungsoptimierung, mit dem der Pipeline-Durchsatz optimiertwerden kann.

Die Pipeline-Wiederholungslogik für Vorbedingungen erfolgt in Task Runner. Zwei Vorbedingungs-Threads fragen AWS Data Pipeline über Vorbedingungsobjekte ab. Task Runner berücksichtigt dasVorbedingungsobjekt retryDelay und die preconditionTimeout-Felder, die Sie unter den Vorbedingungendefinieren.

In vielen Fällen kann das Reduzieren des Timeouts für Abfragen und die Anzahl der Wiederholungen dazubeitragen, die Leistung Ihrer Anwendung zu verbessern. In ähnlicher Weise müssen Anwendungen mitLangzeitvorbedingungen die Werte für Timeout und Wiederholung erhöhen. Weitere Informationen zuVorbedingungsobjekten finden Sie unter Vorbedingungen (p. 11).

Task Runner-KonfigurationsoptionenDies sind die Konfigurationsoptionen, die über die Befehlszeile beim Start von Task Runner verfügbar sind.

Befehlszeilen-Parameter Beschreibung

--help Befehlszeilenhilfe. Beispiel: Java -jarTaskRunner-1.0.jar --help

--config Pfad und Dateiname Ihrer Dateicredentials.json.

--accessId Ihre AWS-Zugriffsschlüssel-ID für Task Runner, diebei Anfragen zu verwenden ist.

Die Optionen --accessID und --secretKeybieten eine Alternative zur Verwendungeiner credentials.json-Datei. Wenn auch einecredentials.json-Datei vorgesehen ist, habendie Optionen --accessID und --secretKeyVorrang.

API-Version 2012-10-29308

Page 316: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask Runner-Konfigurationsoptionen

Befehlszeilen-Parameter Beschreibung

--secretKey Ihr AWS-Geheimschlüssel für Task Runner, der beiAnfragen zu verwenden ist. Weitere Informationenfinden Sie unter --accessID.

--endpoint Ein Endpunkt ist eine URL, die als Eintrittspunktfür einen Webservice fungiert. Der AWS DataPipeline-Service-Endpunkt in der Region, in der SieAnfragen stellen. Optional. Im Allgemeinen reichtes aus, eine Region anzugeben, und Sie müssenden Endpunkt nicht festlegen. Eine Auflistung derAWS Data Pipeline-Regionen und -Endpunktefinden Sie unter AWS Data Pipeline-Regionen und-Endpunkte im AWS General Reference.

--workerGroup Der Name der Auftragnehmergruppe, für die TaskRunner Aufträge abruft. Erforderlich.

Wenn Task Runner den Webservice abfragt,verwendet es die von Ihnen angegebenenAnmeldeinformationen und den Wert vonworkerGroup, um auszuwählen, welche Aufgaben(ggf.) abgerufen werden sollen. Sie können jedenNamen verwenden, der für Sie sinnvoll ist. Dieeinzige Anforderung ist, dass die Zeichenfolgezwischen Task Runner und seinen entsprechendenPipeline-Aktivitäten übereinstimmen muss. DerName der Auftragnehmergruppe ist an eineRegion gebunden. Selbst wenn es identischeAuftragnehmergruppennamen in anderenRegionen gibt, wird Task Runner immer Aufgabenvon der Region abrufen, die in --regionangegeben wurde.

--taskrunnerId Die ID des Task-Runners für die Berichterstellungzum Fortschritt. Optional.

--output Das Task Runner-Verzeichnis fürProtokollausgangsdateien. Optional.Protokolldateien werden in einem lokalenVerzeichnis gespeichert, bis sie nach Amazon S3verschoben werden. Diese Option überschreibt dasStandard-Verzeichnis.

--region Die zu verwendende Region. Optional, aber es wirdempfohlen, die Region immer festzulegen. WennSie die Region nicht angeben, ruft Task RunnerAufgaben aus der Standard-Serviceregion us-east-1 ab.

Andere unterstützte Regionen sind: eu-west-1,ap-northeast-1, ap-southeast-2, us-west-2.

API-Version 2012-10-29309

Page 317: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask-Runner mit einem Proxy verwenden

Befehlszeilen-Parameter Beschreibung

--logUri Der Amazon S3-Zielpfad für Task Runner, umProtokolldateien zu jeder Stunde zu sichern.Wenn Task Runner beendet wird, werden aktiveProtokolle im lokalen Verzeichnis in den AmazonS3-Zielordner verschoben.

--proxyHost Der Host des Proxys, der von Task Runner-Clientsverwendet wird, um eine Verbindung zu AWS-Services herzustellen.

--proxyPort Der Port des Proxy-Hosts, der von Task Runner-Clients verwendet wird, um eine Verbindung zuAWS-Services herzustellen.

--proxyUsername Der Benutzername für den Proxy

--proxyPassword Das Passwort für den Proxy.

--proxyDomain Der Windows-Domänenname für NTLM Proxy.

--proxyWorkstation Der Windows-Arbeitsstationsname für NTLM Proxy.

Task-Runner mit einem Proxy verwendenWenn Sie einen Proxy-Host verwenden, können Sie beim Aufrufen von Task-Runner entwederseine Konfiguration angeben oder die Umgebungsvariable HTTPS_PROXY festlegen. Die mitTask-Runner verwendete Umgebungsvariable akzeptiert dieselbe Konfiguration, die für die AWS-Befehlszeilenschnittstelleverwendet wird.

Task Runner und benutzerdefinierte AMIsWenn Sie ein Ec2Resource-Objekt für Ihre Pipeline angeben, erstellt AWS Data Pipeline eine EC2-Instance für Sie mithilfe eines AMI, der Task Runner für Sie installiert und konfiguriert. In diesem Fall ist einPV-kompatibler Instancetyp erforderlich. Alternativ können Sie mit Task Runner ein benutzerdefiniertes AMIerstellen und dann die ID dieses AMI mit dem Feld imageId des Objekts Ec2Resource angeben. WeitereInformationen finden Sie unter Ec2Resource (p. 230).

Ein benutzerdefiniertes AMI muss die folgenden Anforderungen für AWS Data Pipeline erfüllen; umerfolgreich für Task Runner verwendet werden zu können:

• Erstellen Sie das AMI in derselben Region, in der die Instances ausgeführt werden. WeitereInformationen finden Sie unter Erstellen Ihres eigenen AMI im Amazon EC2-Benutzerhandbuch für Linux-Instances.

• Stellen Sie sicher, dass der Virtualisierungstyp des AMI vom Instancetyp unterstützt wird, den Sieverwenden möchten. Beispielsweise benötigen die Instancetypen I2 und G2 einen HVM AMI, und dieInstancetypen T1, C1, M1 und M2 erfordern einen PV AMI. Weitere Informationen finden Sie unter LinuxAMI-Virtualisierungstypen im Amazon EC2-Benutzerhandbuch für Linux-Instances.

• Installieren Sie die folgenden Software:• Linux• Bash• wget

API-Version 2012-10-29310

Page 318: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchTask Runner und benutzerdefinierte AMIs

• unzip• Java 1.6 oder 1.8• cloud-init

• Erstellen und konfigurieren Sie ein Benutzerkonto mit dem Namen ec2-user.

API-Version 2012-10-29311

Page 319: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchSuchen von Fehlern in Pipelines

FehlerbehebungDas häufigste Symptom bei einem Problem mit AWS Data Pipeline besteht darin, dass eine Pipeline nichtausgeführt wird. Sie können die in der Konsole und der Befehlszeile angezeigten Informationen verwenden,um das Problem zu bestimmen und nach einer Lösung zu suchen.

Inhalt• Suchen von Fehlern in Pipelines (p. 312)• Ermitteln des in der Pipeline verwendeten Amazon EMR-Clusters (p. 312)• Interpretieren der Pipeline-Statusdetails (p. 313)• Lokalisieren von Fehlerprotokollen (p. 314)• Beheben typischer Probleme (p. 315)

Suchen von Fehlern in PipelinesDie AWS Data Pipeline-Konsole ist ein praktisches Hilfsmittel zur visuellen Überwachung des Statusder Pipelines und zum einfachen Lokalisieren von Fehlerinformationen in Zusammenhang mitfehlgeschlagenen oder unvollständigen Pipeline-Ausführungen.

So suchen Sie nach Fehlerinformationen zu fehlgeschlagenen oder unvollständigen Pipeline-Ausführungen.

1. Wenn auf der Seite List Pipelines in der Spalte Status einer Pipeline-Instance ein anderer Status alsFINISHED angezeigt wird, wartet die betreffende Pipeline auf die Erfüllung einer Vorbedingung oder esist ein Problem mit der Pipeline aufgetreten.

2. Suchen Sie auf der Seite List Pipelines (Pipelines auflisten) die Instance-Pipeline und klicken Sie aufdas Dreieck links daneben, um den Detailbereich zu erweitern.

3. Klicken Sie unten in diesem Feld auf View execution details (Ausführungsdetails anzeigen); das FeldInstance summary (Instance-Zusammenfassung) wird geöffnet, um die Details der ausgewähltenInstance anzuzeigen.

4. Klicken Sie im Bereich Instance summary (Instance-Zusammenfassung) auf das Dreieck neben derInstance, um zusätzliche Details zur Instance anzuzeigen, und wählen Sie Details, More.... Wenn derStatus der ausgewählten Instance FAILED ist, enthält das Detailfeld Einträge für die Fehlermeldung,das errorStackTrace und weitere Informationen. Sie können diese Informationen in einer Dateispeichern. Klicken Sie auf OK.

5. Klicken Sie im Bereich Instance summary (Instance-Zusammenfassung) auf Attempts (Versuche), umDetails für jede Versuchszeile anzuzeigen.

6. Um eine Aktion mit der unvollständigen oder fehlgeschlagenen Instance durchzuführen, aktivieren Siedas Kontrollkästchen neben der Instance. Hiermit aktivieren Sie die Aktionen. Wählen Sie dann eineAktion (Rerun|Cancel|Mark Finished).

Ermitteln des in der Pipeline verwendeten AmazonEMR-Clusters

Wenn EMRCluster oder EMRActivity fehlschlägt und die in der AWS Data Pipeline-Konsoleangezeigten Fehlerinformationen nicht eindeutig sind, können Sie den in der Pipeline verwendeten Amazon

API-Version 2012-10-29312

Page 320: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchInterpretieren der Pipeline-Statusdetails

EMR-Cluster über die Amazon EMR-Konsole ermitteln. Auf diese Weise können Sie einfacher auf dieProtokolle von Amazon EMR zugreifen, um ausführlichere Informationen zu auftretenden Fehlern zuerhalten.

So zeigen Sie detailliertere Amazon EMR-Fehlerinformationen an

1. Klicken Sie in der AWS Data Pipeline-Konsole auf das Dreieck neben der Pipeline-Instance, um dieInstance-Details zu erweitern.

2. Klicken Sie auf View execution details (Ausführungsdetails anzeigen) und dann auf das Dreieck nebender Komponente.

3. Klicken Sie in der Spalte Details auf More... (Mehr…). Der Informationsbildschirm wird geöffnet undzeigt eine Liste der Details der Komponente an. Suchen und kopieren Sie den instanceParent-Wert aufdem Bildschirm, z. B.: @EmrActivityId_xiFDD_2017-09-30T21:40:13

4. Wechseln Sie zur Amazon EMR-Konsole, suchen Sie nach einem Cluster mit übereinstimmendeminstanceParent-Wert im Namen und klicken Sie dann auf Debug (Debuggen).

Note

Die Schaltfläche Debug kann nur verwendet werden, wenn in der Pipeline-Definition dieEmrActivity-Option enableDebugging auf true und die Option EmrLogUri auf einengültigen Pfad eingestellt ist.

5. Da Sie nun wissen, welcher Amazon EMR-Cluster zum Fehlschlagen der Pipeline geführt hat, könnenSie die Tipps zur Problembehebung im Amazon EMR-Entwicklerhandbuch befolgen.

Interpretieren der Pipeline-StatusdetailsDie verschiedenen in der AWS Data Pipeline-Konsole und -Befehlszeilenschnittstelle (CLI) angezeigtenStatuswerte geben den Zustand einer Pipeline und ihrer Komponenten an. Der Pipeline-Status istvereinfacht ausgedrückt ein Überblick über eine Pipeline. Wenn Sie weitere Informationen benötigen,zeigen Sie den Status der einzelnen Pipeline-Komponenten an. Sie können dazu in der Konsole auf diePipeline und deren Komponenten klicken oder die Details der Pipeline-Komponenten über die CLI abrufen.

Statuscodes

ACTIVATING

Die Komponente oder Ressource wird gestartet, z. B. eine EC2-Instance.CANCELED

Die Komponente wurde von einem Benutzer oder AWS Data Pipeline storniert, bevor sie ausgeführtwerden konnte. Dies kann automatisch stattfinden, wenn ein Fehler in einer anderen Komponente oderRessource auftritt, von der dies Komponente abhängig ist.

CASCADE_FAILED

Die Komponente oder Ressource wurde aufgrund eines kaskadierenden Fehlers durch eine derAbhängigkeiten storniert, aber möglicherweise war die Komponente nicht die eigentliche Ursache fürden Fehler.

DEACTIVATING

Die Pipeline wird deaktiviert.FAILED

Für die Komponente oder Ressource ist ein Fehler aufgetreten, und sie funktioniert nicht mehr.Wenn eine Komponente oder Ressource einen Fehler verursacht, kann sie Stornierungen und Fehlerverursachen, die sich in andere, von ihr abhängige Komponenten fortpflanzen.

API-Version 2012-10-29313

Page 321: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchLokalisieren von Fehlerprotokollen

FINISHED

Die Komponente hat die ihr zugewiesene Aufgabe fertiggestellt.INACTIVE

Die Pipeline wurde deaktiviert.PAUSED

Die Komponente wurde unterbrochen und führt aktuell ihre Arbeit nicht aus.PENDING

Die Pipeline ist bereit für die erste Aktivierung.RUNNING

Die Ressource wird ausgeführt und bereit, Arbeit entgegenzunehmen.SCHEDULED

Die Ressourcenausführung ist geplant.SHUTTING_DOWN

Die Ressource wird geschlossen, nachdem sie ihre Arbeit erfolgreich fertiggestellt hat.SKIPPED

Die Komponente hat Ausführungsintervalle nach der Aktivierung der Pipeline übersprungen, indem sieeinen Zeitstempel verwendet hat, der nach dem aktuellen Zeitplan liegt.

TIMEDOUT

Die Ressource hat den Schwellenwert terminateAfter überschritten und wurde von AWS DataPipeline angehalten. Nachdem die Ressource diesen Status erreicht hat, ignoriert AWS Data Pipelinedie Werte actionOnResourceFailure, retryDelay und retryTimeout für diese Ressource.Dieser Status gilt nur für Ressourcen.

VALIDATING

Die Pipeline-Definition wird von AWS Data Pipeline validiert.WAITING_FOR_RUNNER

Die Komponente wartet auf ihren Worker-Client, um einen Auftrag zu erhalten. Die Beziehungzwischen Komponente und Worker-Client wird durch die Felder runsOn oder workerGroupkontrolliert, die von dieser Komponente definiert sind.

WAITING_ON_DEPENDENCIES

Die Komponente überprüft, ob ihre standardmäßigen und benutzerdefinierten Vorbedingungen erfülltsind, bevor sie ihre Arbeit ausführt.

Lokalisieren von FehlerprotokollenIn diesem Abschnitt wird beschrieben, wie Sie die verschiedenen AWS Data Pipeline-Protokollelokalisieren, die zur Ermittlung der Ursachen bestimmter Fehler und Probleme verwendet werden können.

Pipeline-ProtokolleWir empfehlen, die Pipelines so zu konfigurieren, dass die Protokolldateien an einem persistentenOrt erstellt werden. Im folgenden Beispiel wird mit dem Feld pipelineLogUri des Default-Objekts einer Pipeline festgelegt, dass alle Pipeline-Komponenten standardmäßig einen Amazon S3-

API-Version 2012-10-29314

Page 322: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchHadoop-Auftrags- und Amazon EMR-Schrittprotokolle

Protokollspeicherort verwenden sollen (Sie können auch für bestimmte Pipeline-Komponenten einenanderen Pfad konfigurieren).

Note

Die Protokolle von Task Runner werden standardmäßig an einem anderen Speicherortgespeichert, der möglicherweise nicht mehr verfügbar ist, wenn die Pipeline endet und dieInstance, die Task Runner ausführt, beendet wird. Weitere Informationen finden Sie unterÜberprüfen der Task Runner-Protokollierung (p. 308).

Um den Protokollspeicherort über die AWS Data Pipeline-CLI in der JSON-Datei einer Pipeline festlegen,fügen Sie am Anfang der Datei folgenden Code ein:

{ "objects": [{ "id":"Default", "pipelineLogUri":"s3://mys3bucket/error_logs"},...

Nachdem Sie ein Pipeline-Protokollverzeichnis konfiguriert haben, erstellt Task Runner in diesemVerzeichnis Kopien der Protokolle. Dabei werden die gleiche Formatierung und die gleichen Dateinamenwie bei den im vorherigen Abschnitt beschriebenen Task Runner-Protokollen verwendet.

Hadoop-Auftrags- und Amazon EMR-SchrittprotokolleDie Hadoop-Auftragsprotokolle jeder Hadoop-basierten Aktivität wie HadoopActivity (p. 182),HiveActivity (p. 189) oder PigActivity (p. 201) werden an dem im Laufzeit-Slot hadoopJobLogzurückgegebenen Ort gespeichert. EmrActivity (p. 176) verfügt über eigene Protokollierungsfunktionen,deren Protokolle an dem Ort gespeichert werden, der von Amazon EMR ausgewählt und vom Laufzeit-SlotemrStepLog zurückgegeben wird. Weitere Informationen finden Sie unter Anzeigen von Protokolldateien imAmazon EMR-Entwicklerhandbuch.

Beheben typischer ProblemeIn diesem Thema werden die Symptome verschiedener AWS Data Pipeline-Probleme und die empfohlenenSchritte zu deren Behebung beschrieben.

Inhalt• Pipeline bleibt im Status PENDING (p. 316)• Pipeline-Komponente bleibt im Status WAITING_FOR_RUNNER (p. 316)• Pipeline-Komponente bleibt im Status WAITING_ON_DEPENDENCIES (p. 316)• Ausführung beginnt nicht zum geplanten Zeitpunkt (p. 317)• Pipeline-Komponenten werden in der falschen Reihenfolge ausgeführt (p. 317)• EMR-Cluster schlägt mit Fehlermeldung fehl: The security token included in the request is

invalid (p. 318)• Unzureichende Berechtigungen für den Zugriff auf Ressourcen (p. 318)• Statuscode: 400, Fehlercode: PipelineNotFoundException (p. 318)• Pipeline-Erstellung führt zu einem Sicherheits-Token-Fehler (p. 318)• Pipeline-Details werden nicht in der Konsole angezeigt (p. 318)• Error in remote runner Status Code: 404, AWS Service: Amazon S3 (p. 319)• Access Denied - Not Authorized to Perform Function datapipeline: (p. 319)• Ältere Amazon EMR-AMIs können für sehr große CSV-Dateien falsche Daten erstellen (p. 319)

API-Version 2012-10-29315

Page 323: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchPipeline bleibt im Status PENDING

• Erhöhen der AWS Data Pipeline-Limits (p. 320)

Pipeline bleibt im Status PENDINGWenn eine Pipeline dauerhaft im Status PENDING bleibt, weist dies darauf hin, dass sie noch nichtaktiviert wurde oder die Aktivierung aufgrund eines Fehlers in der Pipeline-Definition fehlgeschlagen ist.Vergewissern Sie sich, dass beim Übertragen der Pipeline über die AWS Data Pipeline-CLI oder beimVersuch, die Pipeline in der AWS Data Pipeline-Konsole zu speichern oder zu aktivieren, keine Fehleraufgetreten sind. Überprüfen Sie außerdem, ob die Definition der Pipeline gültig ist.

So zeigen Sie die Pipeline-Definition unter Verwendung der Befehlszeile an:

datapipeline --get --id df-EXAMPLE_PIPELINE_ID

Überzeugen Sie sich, dass die Definition vollständig ist und keine Syntaxfehler enthält. Achten Sieinsbesondere darauf, dass keine schließenden Klammern, erforderlichen Kommas oder Verweise fehlen.Wir empfehlen, einen Texteditor zu verwenden, der die Syntax von JSON-Dateien visuell darstellen undvalidieren kann.

Pipeline-Komponente bleibt im StatusWAITING_FOR_RUNNERWenn sich die Pipeline im Status SCHEDULED befindet und einzelne oder mehrere Aufgaben dauerhaft imStatus WAITING_FOR_RUNNER bleiben, stellen Sie sicher, dass das Feld "runsOn" oder "workerGroup"dieser Aufgaben einen gültigen Wert enthält. Falls beide Werte leer sind oder fehlen, kann die betreffendeAufgabe nicht gestartet werden, da es keine Zuordnung zwischen ihr und dem Worker zur Durchführungder Aufgaben gibt. In diese Situation haben Sie zwar durchzuführende Aufgaben definiert, aber nichtfestgelegt, auf welchem Computer dies geschehen soll. Sofern relevant, überprüfen Sie, ob derworkerGroup-Wert der Pipeline-Komponente genau mit dem für Task Runner konfigurierten workerGroup-Wert übereinstimmt (einschließlich Groß-/Kleinschreibung).

Note

Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist, wird workerGroupignoriert.

Eine weitere mögliche Ursache für dieses Problem besteht darin, dass der Endpunkt und der für TaskRunner bereitgestellte Zugriffsschlüssel nicht mit der AWS Data Pipeline-Konsole oder dem Computerübereinstimmen, auf dem die AWS Data Pipeline-CLI-Tools installiert sind. Auch wenn bei der Erstellungvon Pipelines keine Fehler angezeigt wurden, kann Task Runner aufgrund der unterschiedlichenAnmeldeinformationen einen falschen Speicherort oder den richtigen Speicherort mit unzureichendenBerechtigungen zum Identifizieren und Ausführen der in der Pipeline-Definition angegebenen Arbeitabfragen.

Pipeline-Komponente bleibt im StatusWAITING_ON_DEPENDENCIESWenn sich die Pipeline im Status SCHEDULED befindet und einzelne oder mehrere Aufgaben dauerhaft imStatus WAITING_ON_DEPENDENCIES bleiben, vergewissern Sie sich, dass die Vorbedingungen erfüllt sind.Wenn die Vorbedingungen des ersten Objekts in der Logikkette nicht erfüllt sind, kann keines der Objekte,die vom ersten Objekt abhängig sind, den Status WAITING_ON_DEPENDENCIES verlassen.

Sehen Sie sich als Beispiel den folgenden Auszug aus einer Pipeline-Definition an. Hier ist demInputData-Objekt die Vorbedingung "Ready" zugeordnet, die festlegt, dass die Daten vorhanden sein

API-Version 2012-10-29316

Page 324: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAusführung beginnt nicht zum geplanten Zeitpunkt

müssen, damit das InputData-Objekt abgeschlossen werden kann. Wenn die Daten nicht vorhanden sind,bleibt das InputData-Objekt im Status WAITING_ON_DEPENDENCIES und wartet darauf, dass die mitdem Pfadfeld angegebenen Daten verfügbar werden. Alle Objekte, die von InputData abhängen, bleibenebenfalls im Status WAITING_ON_DEPENDENCIES und warten, dass das InputData-Objekt den StatusFINISHED erreicht.

{ "id": "InputData", "type": "S3DataNode", "filePath": "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "schedule":{"ref":"MySchedule"}, "precondition": "Ready" },{ "id": "Ready", "type": "Exists"...

Überprüfen Sie außerdem, ob die Objekte über die Berechtigungen zum Zugriff auf die Daten verfügen.Wenn im vorherigen Beispiel das Feld mit den Anmeldeinformationen nicht die Berechtigungen fürden Zugriff auf die im Pfadfeld angegebenen Daten enthält, würde das InputData-Objekt im StatusWAITING_ON_DEPENDENCIES verbleiben, da es selbst dann nicht auf die Daten zugreifen kann, wenndiese vorhanden sind.

Es ist auch möglich, dass einer Ressource, die mit Amazon S3 kommuniziert, keine öffentliche IP-Adressezugewiesen ist. So muss beispielsweise eine Ec2Resource in einem öffentlichen Subnetz über eineöffentliche IP-Adresse verfügen.

Und schließlich können Ressourceninstanzen unter bestimmten Bedingungen den StatusWAITING_ON_DEPENDENCIES viel früher erreichen als ihre zugeordneten Aktivitäten, die zur Ausführunggeplant sind. Dies kann den Eindruck erwecken, dass die Ressource oder Aktivität fehlschlägt. WeitereInformationen zum Verhalten von Ressourcen und zur Zeitplantypeinstellung finden Sie im AbschnittRessourcen ignorieren Zeitplantyp des Themas Planen von Pipelines (p. 22).

Ausführung beginnt nicht zum geplanten ZeitpunktVergewissern Sie sich, dass Sie den richtigen Zeitplantyp ausgewählt haben, der festlegt, ob die Aufgabeam Anfang des Zeitplanintervalls (Cron-Zeitplantyp) oder an dessen Ende (Zeitreihen-Zeitplantyp)ausgeführt wird.

Überprüfen Sie außerdem, ob Sie die Datumswerte in den Zeitplanobjekten richtig angegeben haben undob die startDateTime- und endDateTime-Werte wie im folgenden Beispiel im UTC-Format vorliegen:

{ "id": "MySchedule", "startDateTime": "2012-11-12T19:30:00", "endDateTime":"2012-11-12T20:30:00", "period": "1 Hour", "type": "Schedule"},

Pipeline-Komponenten werden in der falschenReihenfolge ausgeführtMöglicherweise stellen Sie fest, dass die Pipeline-Komponenten nicht in der durch die Start- undEndzeiten festgelegten Reihenfolge oder nicht in der erwarteten Abfolge ausgeführt werden. Sie müssen

API-Version 2012-10-29317

Page 325: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchEMR-Cluster schlägt mit Fehlermeldung fehl: The

security token included in the request is invalid

wissen, dass Pipeline-Komponenten gleichzeitig gestartet werden können, wenn ihre Vorbedingungenzum Ausführungszeitpunkt erfüllt sind. Anders ausgedrückt: Die Pipeline-Komponenten werden nichtstandardmäßig der Reihe nach ausgeführt. Wenn Sie eine bestimmte Ausführungsreihenfolge verwendenmöchten, müssen Sie diese mithilfe von Vorbedingungen und dependsOn-Feldern festlegen.

Stellen Sie außerdem sicher, dass das dependsOn-Feld einen Verweis auf die richtigen Vorbedingungs-Pipeline-Komponenten enthält und dass alle erforderlichen Zeiger zwischen den Komponenten vorhandensind, um die gewünschte Reihenfolge zu erreichen.

EMR-Cluster schlägt mit Fehlermeldung fehl: Thesecurity token included in the request is invalidÜberprüfen Sie die IAM-Rollen, -Richtlinien und -Vertrauensstellungen (siehe IAM-Rollen für AWS DataPipeline (p. 78)).

Unzureichende Berechtigungen für den Zugriff aufRessourcenDie den IAM-Rollen zugewiesenen Berechtigungen legen fest, ob AWS Data Pipeline zum Ausführen derPipelines auf die EMR-Cluster und EC2-Instances zugreifen kann. Außerdem stellt IAM das weitergehendeKonzept der Vertrauensstellungen bereit, das die Erstellung von Ressourcen in Ihrem Namen ermöglicht.Wenn Sie beispielsweise eine Pipeline erstellen, in der eine EC2-Instance für die Ausführung einesBefehls zum Verschieben von Daten verwendet wird, kann AWS Data Pipeline diese EC2-Instance fürSie bereitstellen. Falls es zu Problemen beim Ressourcenzugriff kommt, insbesondere wenn dieser zwarmanuell, aber nicht für AWS Data Pipeline möglich ist, prüfen Sie wie unter IAM-Rollen für AWS DataPipeline (p. 78) beschrieben die IAM-Rollen, -Richtlinien und -Vertrauensstellungen.

Statuscode: 400, Fehlercode:PipelineNotFoundExceptionDiese Fehlermeldung bedeutet, dass die IAM-Standardrollen möglicherweise nicht über die Berechtigungenverfügen, die zur ordnungsgemäßen Ausführung von AWS Data Pipeline erforderlich sind. WeitereInformationen finden Sie unter IAM-Rollen für AWS Data Pipeline (p. 78).

Pipeline-Erstellung führt zu einem Sicherheits-Token-FehlerWenn Sie versuchen, eine Pipeline zu erstellen, wird die folgende Fehlermeldung angezeigt:

Failed to create pipeline with 'pipeline_name'. Error: UnrecognizedClientException - The security tokenincluded in the request is invalid.

Pipeline-Details werden nicht in der Konsole angezeigtDer Pipeline-Filter in der AWS Data Pipeline-Konsole wird auf das geplante Startdatum einer Pipelineangewendet, unabhängig davon, wann die Pipeline übermittelt wurde. Es ist möglich, eine neue Pipelinemit einem geplanten Anfangsdatum zu übermitteln, das in der Vergangenheit liegt. Diese Pipeline wirddann vom Standardfilter gefiltert und nicht angezeigt. Um die Details der Pipeline anzuzeigen, ändern Sieden Datumsfilter so, dass das geplante Startdatum der Pipeline innerhalb des Datumsbereichs des Filtersliegt.

API-Version 2012-10-29318

Page 326: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchError in remote runner Status Code:

404, AWS Service: Amazon S3

Error in remote runner Status Code: 404, AWSService: Amazon S3Diese Fehlermeldung bedeutet, dass Task Runner nicht auf die Dateien in Amazon S3 zugreifen konnte.Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:

• Die Anmeldeinformationen wurden richtig festgelegt.• Der Amazon S3-Bucket, auf den Sie zugreifen möchten, ist vorhanden.• Sie verfügen über die Berechtigung für den Zugriff auf den Amazon S3-Bucket.

Access Denied - Not Authorized to Perform Functiondatapipeline:In den Task Runner-Protokollen kann sich zudem ein Fehler wie der folgende befinden:

• ERROR Status Code: 403• AWS Service: DataPipeline• AWS Error Code: AccessDenied• AWS Error Message: User: arn:aws:sts::XXXXXXXXXXXX:federated-user/i-XXXXXXXX is not authorized

to perform: datapipeline:PollForTask.

Note

In dieser Fehlermeldung können statt PollForTask auch die Namen anderer AWS Data Pipeline-Berechtigungen angegeben sein.

Diese Fehlermeldung weist darauf hin, dass die angegebene IAM-Rolle weitere Berechtigungen benötigt,um mit AWS Data Pipeline zu interagieren. Stellen Sie sicher, dass Ihre IAM-Rollenrichtlinie die folgendenZeilen enthält. Geben Sie statt PollForTask den Namen der Berechtigung ein, die Sie hinzufügen möchten(mit "*" können Sie alle Berechtigungen gewähren). Weitere Informationen zum Erstellen einer neuen IAM-Rolle und zum Anwenden einer Richtlinie finden Sie unter Verwalten von IAM-Richtlinien im HandbuchVerwenden von IAM.

{"Action": [ "datapipeline:PollForTask" ],"Effect": "Allow","Resource": ["*"]}

Ältere Amazon EMR-AMIs können für sehr großeCSV-Dateien falsche Daten erstellenBei Amazon EMR-AMIs vor 3.9 (3.8 und älter) verwendet AWS Data Pipeline ein benutzerdefiniertesEingabeformat (InputFormat), um die CSV-Dateien für MapReduce-Aufträge zu lesen und zu beschreiben.Dieses Format wird verwendet, wenn der Service Tabellen mit Amazon S3 austauscht. Es gibt ein Problemmit diesem InputFormat, durch das beim Lesen von Datensätzen aus großen CSV-Dateien Tabellenmit falschen Daten erstellt werden können. Dieses Problem wurde in späteren Amazon EMR-Versionenbehoben. Verwenden Sie das Amazon EMR-AMI 3.9 oder eine Amazon EMR-Version ab 4.0.0.

API-Version 2012-10-29319

Page 327: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchErhöhen der AWS Data Pipeline-Limits

Erhöhen der AWS Data Pipeline-LimitsEs kann gelegentlich vorkommen, dass bestimmte AWS Data Pipeline-Systemlimits überschritten werden.So können beispielsweise höchstens 20 Pipelines mit jeweils 50 Objekten erstellt werden. Falls Sie mehrPipelines benötigen, können Sie mehrere Pipelines zusammenführen. Sie erhalten dann weniger Pipelinesmit mehr Objekten in jeder. Weitere Informationen zu den Limits für AWS Data Pipeline finden Sie unterAWS Data Pipeline-Limits (p. 323). Sollte diese Abhilfemaßnahme nicht zum Erfolg führen, können Siemit dem folgenden Formular eine Kapazitätserhöhung anfordern: Erhöhen des Pipeline-Limits.

API-Version 2012-10-29320

Page 328: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchAWS Data Pipeline-Informationen in CloudTrail

Protokollieren von AWS DataPipeline-API-Aufrufen mithilfe vonAWS CloudTrail

AWS Data Pipeline ist in AWS CloudTrail integriert, einen Service, der die Aktionen eines Benutzers, einerRolle oder eines AWS-Services in AWS Data Pipeline aufzeichnet. CloudTrail erfasst alle API-Aufrufe fürAWS Data Pipeline als Ereignisse. Zu den erfassten Aufrufen gehören Aufrufe von der AWS Data Pipeline-Konsole und Code-Aufrufe der AWS Data Pipeline-API-Operationen. Wenn Sie einen Trail erstellen,können Sie die kontinuierliche Bereitstellung von CloudTrail-Ereignissen an einen Amazon S3-Bucketaktivieren, einschließlich Ereignissen für AWS Data Pipeline. Auch wenn Sie keinen Trail konfigurieren,können Sie die neuesten Ereignisse in der CloudTrail-Konsole in Event history (Ereignisverlauf) anzeigen.Mit den von CloudTrail gesammelten Informationen können Sie die an AWS Data Pipeline gestellteAnfrage, die IP-Adresse, von der die Anfrage gestellt wurde, den Initiator der Anfrage, den Zeitpunkt derAnfrage und weitere Angaben bestimmen.

Weitere Informationen zu CloudTrail finden Sie im AWS CloudTrail User Guide.

AWS Data Pipeline-Informationen in CloudTrailCloudTrail wird beim Erstellen Ihres AWS-Kontos für Sie aktiviert. Die in AWS Data Pipeline auftretendenAktivitäten werden als CloudTrail-Ereignis zusammen mit anderen AWS-Serviceereignissen in Eventhistory (Ereignisverlauf) aufgezeichnet. Sie können die neusten Ereignisse in Ihrem AWS-Konto anzeigen,suchen und herunterladen. Weitere Informationen finden Sie unter Anzeigen von Ereignissen mit demCloudTrail-API-Ereignisverlauf.

Erstellen Sie für eine fortlaufende Aufzeichnung der Ereignisse in Ihrem AWS-Konto, einschließlichEreignissen für AWS Data Pipeline, einen Trail. Ein Trail ermöglicht CloudTrail die Übermittlung vonProtokolldateien an einen Amazon S3-Bucket. Wenn Sie einen Pfad in der Konsole anlegen, gilt dieserstandardmäßig für alle AWS-Regionen. Der Trail protokolliert Ereignisse aus allen Regionen in der AWS-Partition und stellt die Protokolldateien in dem Amazon S3-Bucket bereit, den Sie angeben. Darüberhinaus können Sie andere AWS-Services konfigurieren, um die in den CloudTrail-Protokollen erfasstenEreignisdaten weiter zu analysieren und entsprechend zu agieren. Weitere Informationen finden Sie unter:

• Übersicht zum Erstellen eines Pfads• In CloudTrail unterstützte Services und Integrationen• Konfigurieren von Amazon SNS-Benachrichtigungen für CloudTrail• Empfangen von CloudTrail-Protokolldateien aus mehreren Regionen und Empfangen von CloudTrail-

Protokolldateien aus mehreren Konten

Alle AWS Data Pipeline-Aktionen werden von CloudTrail protokolliert und im Kapitel AWS Data PipelineAPI Referenzaktionen dokumentiert. Aufrufe der Aktion CreatePipeline erzeugen zum Beispiel Einträge inden CloudTrail-Protokolldateien.

Jedes Event oder jeder Protokolleintrag enthält Informationen über den Ersteller der Anfrage. Anhand derIdentitätsinformationen zur Benutzeridentität können Sie Folgendes bestimmen:

API-Version 2012-10-29321

Page 329: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchGrundlagen zu AWS Data Pipeline-Protokolldateieinträgen

• Ob die Anfrage mit Root- oder AWS Identity and Access Management-Benutzeranmeldeinformationen(IAM) ausgeführt wurde.

• Ob die Anfrage mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen föderiertenBenutzer ausgeführt wurde.

• Ob die Anfrage von einem anderen AWS-Service getätigt wurde.

Weitere Informationen finden Sie unter CloudTrail-Element "userIdentity".

Grundlagen zu AWS Data Pipeline-Protokolldateieinträgen

Ein Trail ist eine Konfiguration, durch die Ereignisse an den von Ihnen angegebenen Amazon S3-Bucket übermittelt werden. CloudTrail-Protokolldateien können einen oder mehrere Einträge enthalten.Ein Ereignis stellt eine einzelne Anfrage aus einer beliebigen Quelle dar und enthält unter anderemInformationen über die angeforderte Aktion, das Datum und die Uhrzeit der Aktion sowie über dieAnfrageparameter. CloudTrail-Protokolldateien sind kein geordnetes Stacktrace der öffentlichen API-Aufrufe und erscheinen daher nicht in einer bestimmten Reihenfolge.

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der die Operation CreatePipelinedemonstriert:

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "Root", "principalId": "123456789012", "arn": "arn:aws:iam::user-account-id:root", "accountId": "user-account-id", "accessKeyId": "user-access-key" }, "eventTime": "2014-11-13T19:15:15Z", "eventSource": "datapipeline.amazonaws.com", "eventName": "CreatePipeline", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.196.64", "userAgent": "aws-cli/1.5.2 Python/2.7.5 Darwin/13.4.0", "requestParameters": { "name": "testpipeline", "uniqueId": "sounique" }, "responseElements": { "pipelineId": "df-06372391ZG65EXAMPLE" }, "requestID": "65cbf1e8-6b69-11e4-8816-cfcbadd04c45", "eventID": "9f99dce0-0864-49a0-bffa-f72287197758", "eventType": "AwsApiCall", "recipientAccountId": "user-account-id" }, ...additional entries ]}

API-Version 2012-10-29322

Page 330: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchKontolimits

AWS Data Pipeline-LimitsUm sicherzustellen, dass für alle Benutzer ausreichend Kapazität verfügbar ist, legt AWS Data PipelineEinschränkungen in Bezug auf die Ressourcen fest, die Sie zuweisen können, und die Rate, mit der Siediese zuweisen können.

Inhalt• Kontolimits (p. 323)• Limits für Webservice-Aufrufe (p. 324)• Überlegungen zur Skalierung (p. 325)

KontolimitsDie folgenden Grenzwerte gelten für ein einzelnes AWS-Konto. Wenn Sie zusätzliche Kapazitätenbenötigen, können Sie Ihre Kapazität über das Amazon Web Services Support-Center-Anforderungsformular erhöhen.

Attribut Limit Anpassbar

Anzahl Pipelines 100 Ja

Anzahl Objekte proPipeline

100 Ja

Anzahl aktiver Instancespro Objekt

5 Ja

Anzahl Felder proObjekt

50 Nein

Anzahl der UTF8-Bytespro Feldname oderKennung

256 Nein

Anzahl der UTF8-Bytespro Feld

10,240 Nein

Anzahl der UTF8-Bytespro Objekt

15.360 (einschl. Feldnamen) Nein

Erstellungsrate einerInstance von einemObjekt

1 pro 5 Minuten Nein

Neuversuche einerPipeline-Aktivität

5 pro Aufgabe Nein

Minimale Verzögerungzwischen Neuversuchen

2 Minuten Nein

MinimalesPlanungsintervall

15 Minuten Nein

API-Version 2012-10-29323

Page 331: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchLimits für Webservice-Aufrufe

Attribut Limit Anpassbar

Maximale AnzahlAggregationen zu einemObjekt

32 Nein

Maximale AnzahlEC2-Instances proEc2Resource-Objekt

1 Nein

Limits für Webservice-AufrufeAWS Data Pipeline begrenzt die Rate, mit der Sie die Webservice-API aufrufen können. Diese Grenzwertegelten auch für AWS Data Pipeline Agents, die die Webservice-API in Ihrem Namen aufrufen, z. B. dieKonsole, die Befehlszeile oder Task Runner.

Die folgenden Grenzwerte gelten für ein einzelnes AWS-Konto. Die Gesamtnutzung des Kontos,einschließlich der Nutzung durch IAM-Benutzer, kann diese Grenzwerte also nicht überschreiten.

Mit der Burst-Rate können Sie Webservice-Aufrufe in inaktiven Zeiträumen einsparen und sie alle in einemkurzen Zeitraum aufbrauchen. Beispielsweise hat CreatePipeline eine reguläre Rate von einem Aufruf alle5 Sekunden. Wenn Sie den Service 30 Sekunden nicht aufrufen, haben Sie 6 Aufrufe gespart. Sie könnendann den Webservice sechsmal in einer Sekunde aufrufen. Da dieser Wert unter dem Burst-Limit liegt undIhre durchschnittlichen Aufrufe auf dem regulären Ratenlimit belässt, werden die Aufrufe nicht gedrosselt.

Wenn Sie das Raten- und das Burst-Limit überschreiten, schlägt der Webservice-Aufruf fehl und gibteine Drosselungsausnahme zurück. Die Standard-Implementierung eines Workers, Task Runner,wiederholt automatisch API-Aufrufe, die mit einer Drosselungsausnahme fehlschlagen. Task Runner hateine Zeitversetzung, sodass nachfolgende Versuche, die API aufzurufen, in immer längeren Intervallenstattfinden. Wenn Sie einen Worker schreiben, empfehlen wir, dass Sie eine ähnliche Logik für wiederholteVersuche implementieren.

Diese Grenzwerte werden auf ein einzelnes AWS-Konto angewendet.

API Reguläres Ratenlimit Burst-Limit

ActivatePipeline 1 Aufruf pro Sekunde 100 Aufrufe

CreatePipeline 1 Aufruf pro Sekunde 100 Aufrufe

DeletePipeline 1 Aufruf pro Sekunde 100 Aufrufe

DescribeObjects 2 Aufrufe pro Sekunde 100 Aufrufe

DescribePipelines 1 Aufruf pro Sekunde 100 Aufrufe

GetPipelineDefinition 1 Aufruf pro Sekunde 100 Aufrufe

PollForTask 2 Aufrufe pro Sekunde 100 Aufrufe

ListPipelines 1 Aufruf pro Sekunde 100 Aufrufe

PutPipelineDefinition 1 Aufruf pro Sekunde 100 Aufrufe

QueryObjects 2 Aufrufe pro Sekunde 100 Aufrufe

ReportTaskProgress 10 Aufrufe pro Sekunde 100 Aufrufe

API-Version 2012-10-29324

Page 332: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline EntwicklerhandbuchÜberlegungen zur Skalierung

API Reguläres Ratenlimit Burst-Limit

SetTaskStatus 10 Aufrufe pro Sekunde 100 Aufrufe

SetStatus 1 Aufruf pro Sekunde 100 Aufrufe

ReportTaskRunnerHeartbeat1 Aufruf pro Sekunde 100 Aufrufe

ValidatePipelineDefinition 1 Aufruf pro Sekunde 100 Aufrufe

Überlegungen zur SkalierungAWS Data Pipeline kann skaliert werden, um eine große Anzahl von gleichzeitigen Aufgaben durchführenzu können. Sie können das System so konfigurieren, dass es automatisch die Ressourcen erstellt, diefür die Verarbeitung großer Workloads erforderlich sind. Diese automatisch erstellten Ressourcen sindvon Ihnen steuerbar und werden für die Ressourcenlimits für Ihr AWS-Konto berücksichtigt. Wenn SieAWS Data Pipeline beispielsweise so konfigurieren, dass für die Datenverarbeitung automatisch einAmazon EMR-Cluster mit 20 Knoten erstellt wird, und das EC2-Instance-Limit für Ihr AWS-Konto auf 20festgelegt wurde, überschreiten Sie versehentlich Ihre verfügbaren Backfill-Ressourcen. Daher sollten Siediese Ressourceneinschränkungen bei Ihrem Design berücksichtigen oder Ihre Kontolimits entsprechenderweitern.

Wenn Sie zusätzliche Kapazitäten benötigen, können Sie Ihre Kapazität über das Amazon Web Services-Support-Center-Anforderungsformular erhöhen.

API-Version 2012-10-29325

Page 333: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

AWS Data Pipeline-RessourcenIm Folgenden finden Sie Ressourcen für die Verwendung von AWS Data Pipeline.

• Produktinformationen zu AWS Data Pipeline – Hauptwebsite für Informationen zu AWS Data Pipeline.• Häufig gestellte technische Fragen zu AWS Data Pipeline – decken die 20 wichtigsten Fragen ab, die

Entwickler zu diesem Produkt gestellt haben.• Versionshinweise – bieten eine allgemeine Übersicht über die aktuelle Version. Im Einzelnen werden

neue Funktionen, Korrekturen und bekannte Probleme vorgestellt.• AWS Data Pipeline – Diskussionsforen – Ein Community-basiertes Forum für Entwickler, um technische

Fragen zu Amazon Web Services zu diskutieren.

• Kurse und Workshops – Links zu rollenbasierten und speziellen Kursen sowie Übungen im Selbststudiumzur Verbesserung Ihrer AWS-Kompetenzen und für praktische Erfahrung.

• AWS-Entwickler-Tools – Links zu Entwickler-Tools, SDKs, IDE-Toolkits und Befehlszeilen-Tools für dieEntwicklung und Verwaltung von AWS-Anwendungen.

• AWS-Whitepaper – Links zu einer umfangreichen Liste technischer AWS-Whitepaper zu Themen wieArchitektur, Sicherheit und Wirtschaftlichkeit. Diese Whitepaper wurden von AWS-Lösungsarchitektenund anderen technischen Experten verfasst.

• AWS Support-Center –– Der zentrale Ort für die Erstellung und Verwaltung Ihrer AWS Support-Fälle.Bietet außerdem Links zu hilfreichen Ressourcen wie z. B. Foren, technischen Fragen und Antworten,Übersicht zum Servicestatus und AWS Trusted Advisor.

• AWS Support – Die Hauptwebsite mit Informationen zum AWS Support ist ein persönlicher undreaktionsschneller Support-Kanal, der Sie beim Konfigurieren und Ausführen von Anwendungen in derCloud unterstützt.

• Kontaktieren Sie uns – Ein zentraler Kontaktpunkt für Anfragen zur AWS-Abrechnung, zu Konten,Ereignissen, Missbrauch und anderen Problemen.

• Nutzungsbedingungen für die AWS-Website – Detaillierte Informationen zu unseren Copyright- undMarkenbestimmungen, Ihrem Konto, den Lizenzen, Websitezugriff und anderen Themen.

API-Version 2012-10-29326

Page 334: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

DokumentverlaufDiese Dokumentation gehört zur 2012-10-29-Version von AWS Data Pipeline.

Letzte Aktualisierung der Dokumentation: 9. November 2018.

Änderungen Beschreibung Veröffentlichungsdatum

Die Listen derunterstützten AmazonEC2- und AmazonEMR-Instanceswurden aktualisiert.

Die Liste der IDsder für die InstancesverwendetenHVM(Hardware VirtualMachine)-AMIs wurdeaktualisiert.

Die Listen der unterstützten Amazon EC2- und AmazonEMR-Instances wurden aktualisiert. Weitere Informationenfinden Sie unter Unterstützte Instance-Typen für Pipeline-Aktivitäten (p. 3).

Die Liste der IDs der für die Instances verwendetenHVM(Hardware Virtual Machine)-AMIs wurde aktualisiert.Weitere Informationen finden Sie unter Syntax (p. 231) undbei der Suche nach imageId.

9. November2018

Konfiguration fürdas Anfügen vonAmazon EBS-Volumesan Cluster-Knotenund das Starteneines Amazon EMR-Clusters in einemprivaten Subnetzwurde hinzugefügt.

Konfigurationsoptionen wurden zu einem EMRcluster-Objekt hinzugefügt. Sie können diese Optionen in Pipelinesverwenden, die Amazon EMR-Cluster nutzen.

Verwenden Sie die Felder coreEbsConfiguration,masterEbsConfiguration undTaskEbsConfiguration, um das Anhängenvon Amazon EBS-Volumes an Kern-, Haupt- undAufgabenknoten im Amazon EMR-Cluster zu konfigurieren.Weitere Informationen finden Sie unter EBS-Volumes zuCluster-Knoten hinzufügen (p. 245).

Verwenden Sie die FelderemrManagedMasterSecurityGroupId,emrManagedSlaveSecurityGroupId undServiceAccessSecurityGroupId, um einen AmazonEMR-Cluster in einem privaten Subnetz zu konfigurieren.Weitere Informationen finden Sie unter KonfigurierenSie einen Amazon EMR-Cluster in einem privatenSubnetz (p. 243).

Weitere Informationen zur EMRcluster-Syntax finden Sieunter EmrCluster (p. 237).

19. April 2018

Die Liste derunterstützten AmazonEC2- und AmazonEMR-Instances wurdehinzugefügt.

Es wurde die Liste der Instances hinzugefügt, die vonAWS Data Pipeline standardmäßig erstellt werden,wenn Sie keinen Instance-Typ in der Pipeline-Definitionangeben. Es wurde eine Liste der unterstützten AmazonEC2- und Amazon EMR-Instances hinzugefügt. WeitereInformationen finden Sie unter Unterstützte Instance-Typenfür Pipeline-Aktivitäten (p. 3).

22. März 2018

Unterstützung für On-Demand-Pipelineswurde hinzugefügt.

• Unterstützung für On-Demand-Pipelines hinzugefügt, diedas Wiederholen einer Pipeline durch erneutes Aktivieren

22. Februar 2016

API-Version 2012-10-29327

Page 335: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Änderungen Beschreibung Veröffentlichungsdatumermöglicht. Weitere Informationen finden Sie unter On-Demand-Instances (p. 23).

ZusätzlicheUnterstützung fürRDS-Datenbankenhinzugefügt

• rdsInstanceId, region und jdbcDriverJarUriwurden RdsDatabase (p. 276) hinzugefügt.

• database in SqlActivity (p. 225) wurde aktualisiert, umauch RdsDatabase zu unterstützen.

17. August 2015

Zusätzliche JDBC-Unterstützung

• database in SqlActivity (p. 225) wurde aktualisiert, umauch JdbcDatabase zu unterstützen.

• jdbcDriverJarUri wurde JdbcDatabase (p. 275)hinzugefügt.

• initTimeout wurde Ec2Resource (p. 230) undEmrCluster (p. 237) hinzugefügt.

• runAsUser wurde Ec2Resource (p. 230) hinzugefügt.

7. Juli 2015

HadoopActivity-,Availability Zone- undSpot-Unterstützung

• Unterstützung der Übermittlung paralleler Arbeitsaufträgean Hadoop-Cluster wurde hinzugefügt. WeitereInformationen finden Sie unter HadoopActivity (p. 182).

• Möglichkeit zur Anforderung von Spot-Instancesmit Ec2Resource (p. 230) und EmrCluster (p. 237)hinzugefügt.

• Möglichkeit zum Starten von EmrCluster-Ressourcenin einer angegebenen Availability Zone wurdenhinzugefügt.

1. Juni 2015

Deaktivieren vonPipelines

Unterstützung zum Deaktivieren aktiver Pipelineshinzugefügt. Weitere Informationen finden Sie unterDeaktivieren Ihrer Pipeline (p. 52).

7. April 2015

Vorlagen und Konsolewurden aktualisiert

Neue Vorlagen wurden der Konsole entsprechendhinzugefügt. Kapitel "Erste Schritte" wurde mitInformationen zur Vorlage Erste Schritte mitShellCommandActivity aktualisiert. Weitere Informationenfinden Sie unter Erstellen von Pipelines mithilfe vonKonsolenvorlagen (p. 26).

25. November2014

VPC-Unterstützung Unterstützung zum Starten von Ressourcen in einervirtuellen privaten Cloud (VPC) hinzugefügt. WeitereInformationen finden Sie unter Starten von Ressourcen fürIhre Pipeline in einer VPC (p. 58).

12. März 2014

Regionsunterstützung Unterstützung für mehrere Serviceregionen hinzugefügt.Außer in us-east-1 wird AWS Data Pipeline in eu-west-1, ap-northeast-1, ap-southeast-2 und us-west-2 unterstützt.

20. Februar 2014

Amazon Redshift-Unterstützung

Unterstützung für Amazon Redshift in AWS DataPipeline wurde hinzugefügt, einschließlich einer neuenKonsolenvorlage (Copy to Redshift (Zu Redshift kopieren))und eines Tutorials zur Verwendung der Vorlage. WeitereInformationen finden Sie unter Kopieren von Datenzu Amazon Redshift mit AWS Data Pipeline (p. 122),RedshiftDataNode (p. 156), RedshiftDatabase (p. 278) undRedshiftCopyActivity (p. 210).

6. November2013

API-Version 2012-10-29328

Page 336: AWS Data Pipeline - Entwicklerhandbuch · AWS Data Pipeline Entwicklerhandbuch Zugriff auf AWS Data Pipeline Datenverarbeitungskapazitäten ist anpassbar. Weitere Informationen erhalten

AWS Data Pipeline Entwicklerhandbuch

Änderungen Beschreibung Veröffentlichungsdatum

PigActivity PigActivity-Objekt hinzugefügt, das native Pig-Unterstützung bietet. Weitere Informationen finden Sieunter PigActivity (p. 201).

15. Oktober 2013

NeueKonsolenvorlage, neueAktivität und neuesDatenformat

Neue Konsolenvorlage "CrossRegion DynamoDBCopy" einschließlich neuer HiveCopyActivity und neuemDynamoDBExportDataFormat hinzugefügt.

21. August 2013

Cascading-Ausfälleund erneuteAusführungen

Informationen zu Cascading-Ausfällen und erneutenAusführungen in AWS Data Pipeline hinzugefügt. WeitereInformationen finden Sie unter Kaskadierende Ausfälle underneute Ausführungen (p. 63).

8. August 2013

Video zurFehlerbehebung

Video zu grundlegenden Fehlerbehebungsmaßnahmenin AWS Data Pipeline hinzugefügt. Weitere Informationenfinden Sie unter Fehlerbehebung (p. 312).

17. Juli 2013

Bearbeiten von aktivenPipelines

Zusätzliche Informationen zum Bearbeiten von aktivenPipelines und erneuten Ausführen von Pipeline-Komponenten hinzugefügt. Weitere Informationen findenSie unter Bearbeiten Ihrer Pipeline (p. 49).

17. Juli 2013

Verwenden vonRessourcen inverschiedenenRegionen

Zusätzliche Informationen zum Verwenden von Ressourcenin verschiedenen Regionen hinzugefügt. WeitereInformationen finden Sie unter Verwenden einer Pipelinemit Ressourcen in mehreren Regionen (p. 62).

17. Juni 2013

StatusWAITING_ON_DEPENDENCIES

Status CHECKING_PRECONDITIONS inWAITING_ON_DEPENDENCIES geändert und Laufzeitfeld@waitingOn für Pipeline-Objekte hinzugefügt.

20. Mai 2013

DynamoDBDataFormat Vorlage DynamoDBDataFormat hinzugefügt. 23. April 2013

Video zur Verarbeitungvon Webprotokollen,Unterstützung vonSpot-Instances

Video "Process Web Logs with AWS Data Pipeline,Amazon EMR, and Hive" (Verarbeiten von Webprotokollenmit AWS Data Pipeline, Amazon EMR und Hive) sowieUnterstützung von Amazon EC2-Spot-Instances wurdehinzugefügt.

21. Februar 2013

  Erstveröffentlichung des AWS Data Pipeline-Entwicklerhandbuchs.

20. Dezember2012

API-Version 2012-10-29329