das funktioniert noch nicht. aws hat die Funktionalität nicht aufgebaut/veröffentlicht, um sich gut mit Postgres zu verbinden. Sie können es jedoch in einer Shell-Command-Aktivität tun. Sie können ein wenig Ruby oder Python-Code schreiben, um es zu tun und das in einem Skript auf s3 mit scriptUri ablegen. Sie könnten auch einfach einen psql-Befehl schreiben, um die Tabelle an einen csv auszugeben und diese dann an OUTPUT1_STAGING_DIR mit "staging: true" in diesem Aktivitätsknoten zu übergeben.
etwas wie folgt aus:
{
"id": "DumpCommand",
"type": "ShellCommandActivity",
"runsOn": { "ref": "MyEC2Resource" },
"stage": "true",
"output": { "ref": "S3ForRedshiftDataNode" },
"command": "PGPASSWORD=password psql -h HOST -U USER -d DATABASE -p 5432 -t -A -F\",\" -c \"select blah_id from blahs\" > ${OUTPUT1_STAGING_DIR}/my_data.csv"
}
Das habe ich nicht laufen, um zu überprüfen, weil es ein Schmerz ist, eine Pipeline spin up :(so überprüfen Sie in dem Befehl, um die Flucht
- Profis. : super einfach und erfordert keine zusätzlichen Skript-Dateien zum Hochladen auf s3
- Nachteile: nicht genau sicher. Ihre Db-Passwort wird über die Leitung ohne Verschlüsselung übertragen werden.
schauen Sie sich die neuen Sachen an, die gerade auf parametrisierten Templating-Datenpipelines gestartet wurden: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-templates.html. Es sieht so aus, als ob es die Verschlüsselung beliebiger Parameter erlaubt.
Als schneller Update: PostgreSQL unterstützt jetzt SSL also, wenn Sie auf einer sind neuere Version stellen Sie sicher, dass Sie ssl = true setzen, damit die Verschlüsselung eingerichtet wird. –