0

Ich möchte eine SQL-Abfrage mit AWS-Datenpipeline ausführen. Ich habe die SQL-Aktivität Informationen lesen auf ihre support page.SQLActivity: Ungültige Rolle für 'DataPipelineDefaultRole' w. Vollzugriff

ich die Fehlermeldung immer bin:

Objekt: DefaultSqlActivity1 WARNUNG: Ungültige Rolle: 'DataPipelineDefaultRole'. Bitte bestätigen Sie, dass AWS IAM Role vorgeschlagene Berechtigungen hat.

Selbst nachdem ich meine DataPipelineDefaultRole und DataPipelineDefaultResourceRole vollen Zugang zum S3 gegeben haben, EC2, Redshift, DataPipeline und alles zu diesem Artikel angegeben getan: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html

bin ich einfach versuchen, ein SQL-Skript auf meinem amazon laufen Rotverschiebung auf Stundenbasis. Ich arbeite seit einiger Zeit daran, Probleme zu lösen. Ich habe versucht, eine Rolle zu schaffen, die alle Privilegien für alles hatte, aber selbst das hat nicht funktioniert, weil es auf "WARTEN FÜR RUNNER" stecken geblieben ist.

Alle Ratschläge sehr geschätzt. Die .sql-Datei wird auf s3 gespeichert und ich verwende das Skript uri-Feld unter sqlactivity, um es auszuführen. Meine Pipeline sieht derzeit so aus: http://imgur.com/vJorcc8

Jede Hilfe sehr geschätzt!

+0

Ich habe auch diese Warnung, obwohl meine Pipeline abgeschlossen ist OK. Allerdings hatte ich große Schwierigkeiten, es zum Laufen zu bringen, und es dauerte einen ganzen Tag. Die eventuelle Konsistenz des Dashboards, die Tatsache, dass es fast 10 Minuten dauert, um einen EC2-Knoten zu starten, um eine Abfrage gegen Redshift auszuführen, die nur 10ms dauert, und viele andere Probleme. Ich kann nur Geduld vorschlagen und die Nachrichten überprüfen, die Sie schließlich im Abhängigkeitsfenster erhalten. Das wird dir sagen, ob es keine Verbindung zu Redshift herstellen kann. Stellen Sie sicher, dass Sie explizites Subnetz, AMI, Sicherheitsgruppe und Instanztyp auswählen. – fiddlesticks

Antwort

1

Sie können entweder die Sql-Abfrage auf einer von DataPipeline gestarteten/verwalteten Ressource ('RunsOn' verweist auf eine Ec2Resource) ausführen oder in einer von Ihnen verwalteten Ressource ausführen ('WorkerGroup' verweist auf einen Moniker verwendet, wenn Sie TaskRunner auf Ihrer Ressource starten).

Dies ist ein Beispiel-Pipeline eine SQL-Abfrage auszuführen: https://github.com/awslabs/data-pipeline-samples/blob/master/samples/SQLActivityWithTimeout/pipeline.json

+0

Also sagen wir, ich speichere mein SQL-Skript in S3 wie in diesem Beispiel. Wie würde ich es eigentlich ausführen? Ich benutze den Pipeline-Builder, verstehe aber nicht, wo dieser Code hinführt ... – Berra2k

+0

Muss ich eine Ressource auf EC2 erstellen, bevor ich meine Pipeline ausprobiere? Und außerdem scheint meine Standard-Pipeline keinen Zugriff auf meine AWS zu haben und ich habe keine Ahnung warum. – Berra2k