2

Je voulais utiliser AWS Data Pipeline pour acheminer les données d'un RDS Postgres vers AWS S3. Est-ce que quelqu'un sait comment cela est fait.Exportation d'une table AWS Postgres RDS vers AWS S3

Plus précisément, je voulais exporter une table Postgres vers AWS S3 en utilisant des données Pipe Line. La raison pour laquelle j'utilise Data Pipe Line est que je veux automatiser ce processus et que cette exportation va se faire une fois par semaine.

Toutes les autres suggestions fonctionneront également.

Répondre

1

J'ai construit un pipeline à partir de zéro en utilisant MySQL et la documentation comme référence. Vous devez avoir les rôles sur place, DataPipelineDefaultResourceRole & & DataPipelineDefaultRole.

Je n'ai pas chargé les paramètres, donc, vous devez entrer dans l'architech et mettre vos informations d'identification et vos dossiers.

Espérons que ça aide.

{ 
    "objects": [ 
    { 
     "failureAndRerunMode": "CASCADE", 
     "resourceRole": "DataPipelineDefaultResourceRole", 
     "role": "DataPipelineDefaultRole", 
     "pipelineLogUri": "#{myS3LogsPath}", 
     "scheduleType": "ONDEMAND", 
     "name": "Default", 
     "id": "Default" 
    }, 
    { 
     "database": { 
     "ref": "DatabaseId_WC2j5" 
     }, 
     "name": "DefaultSqlDataNode1", 
     "id": "SqlDataNodeId_VevnE", 
     "type": "SqlDataNode", 
     "selectQuery": "#{myRDSSelectQuery}", 
     "table": "#{myRDSTable}" 
    }, 
    { 
     "*password": "#{*myRDSPassword}", 
     "name": "RDS_database", 
     "id": "DatabaseId_WC2j5", 
     "type": "RdsDatabase", 
     "rdsInstanceId": "#{myRDSId}", 
     "username": "#{myRDSUsername}" 
    }, 
    { 
     "output": { 
     "ref": "S3DataNodeId_iYhHx" 
     }, 
     "input": { 
     "ref": "SqlDataNodeId_VevnE" 
     }, 
     "name": "DefaultCopyActivity1", 
     "runsOn": { 
     "ref": "ResourceId_G9GWz" 
     }, 
     "id": "CopyActivityId_CapKO", 
     "type": "CopyActivity" 
    }, 
    { 
     "dependsOn": { 
     "ref": "CopyActivityId_CapKO" 
     }, 
     "filePath": "#{myS3Container}#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", 
     "name": "DefaultS3DataNode1", 
     "id": "S3DataNodeId_iYhHx", 
     "type": "S3DataNode" 
    }, 
    { 
     "resourceRole": "DataPipelineDefaultResourceRole", 
     "role": "DataPipelineDefaultRole", 
     "instanceType": "m1.medium", 
     "name": "DefaultResource1", 
     "id": "ResourceId_G9GWz", 
     "type": "Ec2Resource", 
     "terminateAfter": "30 Minutes" 
    } 
    ], 
    "parameters": [ 
    ] 
} 
0

Vous pouvez définir une copie activité dans l'interface pipeline de données pour extraire des données d'une instance Postgres RDS dans S3.

  1. Créez un noeud de données de type SqlDataNode. Spécifiez le nom de la table et sélectionnez la requête.
  2. Configurez la connexion à la base de données en spécifiant l'ID de l'instance RDS (l'ID de l'instance se trouve dans votre URL, par exemple your-instance-id.xxxxx.eu-west-1.rds.amazonaws.com) avec le nom d'utilisateur, le mot de passe et le nom de la base de données .
  3. Créez un noeud de données de type S3DataNode.
  4. Créez une activité de copie et définissez le SqlDataNode en entrée et le S3DataNode en sortie.

Une autre option consiste à utiliser un outil externe comme Alooma. Alooma peut répliquer des tables de la base de données PostgreSQL Amazon RDS vers Amazon S3 (https://www.alooma.com/integrations/postgresql/s3). Le processus peut être automatisé et vous pouvez l'exécuter une fois par semaine.