Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exportation de données d'instantanés de bases de données vers Amazon S3
Vous pouvez exporter des données d'instantanés de bases de données vers un compartiment Amazon S3. Le processus d'exportation s'exécute en arrière-plan et n'affecte pas les performances de votre base de données active.
Lorsque vous exportez un instantané de base de données, Amazon en RDS extrait les données et les stocke dans un compartiment Amazon S3. Les données sont stockées dans un format Apache Parquet qui est compressé et cohérent.
Vous pouvez exporter tous les types de instantanés de base de données, y compris les instantanés manuels, les instantanés du système automatisés et les instantanés créés par le service. AWS Backup Par défaut, toutes les données de l'instantané sont exportées. Toutefois, vous pouvez choisir d'exporter des ensembles spécifiques de bases de données, de schémas ou de tables.
Une fois les données exportées, vous pouvez les analyser directement via des outils tels que Amazon Athena ou Amazon Redshift Spectrum. Pour plus d'informations sur l'utilisation d'Athena pour lire les données de Parquet, consultez Parquet SerDe dans le guide de l'utilisateur d'Amazon Athena. Pour plus d'informations sur l'utilisation de Redshift Spectrum pour lire les données Parquet, consultez le manuel COPYdu développeur de base de données Amazon Redshift Database Developer Guide.
Rubriques
- Disponibilité des régions et des versions
- Limites
- Présentation de l'exportation des données d'instantané
- Configuration de l'accès à un compartiment Amazon S3
- Exportation d'un instantané de base de données vers un compartiment Amazon S3
- Surveillance des exportations d'instantanés
- Annulation d'une tâche d'exportation d'instantané
- Messages d'échec relatifs aux tâches d'exportation Amazon S3
- Résolution des erreurs liées aux SQL autorisations Postgre
- Convention de dénomination de fichiers
- Conversion des données lors de l'exportation vers un compartiment Amazon S3
Disponibilité des régions et des versions
La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions avec l'exportation d'instantanés vers S3, consultez Régions et moteurs de base de données pris en charge pour l'exportation de snapshots vers S3 dans Amazon RDS.
Limites
L'exportation de données d'instantané de bases de données vers Amazon S3 présente les limites suivantes :
-
Vous ne pouvez pas exécuter simultanément plusieurs tâches d'exportation pour le même instantané de base de données. Cette règle s'applique aux exportations complètes et partielles.
-
L'exportation d'instantanés à partir de bases de données utilisant le stockage magnétique n'est pas prise en charge.
-
Les exportations vers S3 ne prennent pas en charge les préfixes S3 contenant deux points (:).
-
Les caractères suivants du chemin d'accès au fichier S3 sont convertis en traits de soulignement (_) lors de l'exportation :
\ ` " (space)
-
Si une base de données, un schéma ou une table comporte des caractères autres que les suivants, l'exportation partielle n'est pas prise en charge. Toutefois, vous pouvez exporter l'intégralité de l'instantané de base de données.
-
Lettres latines (A–Z)
-
Chiffres (0–9)
-
Symbole dollar ($)
-
Trait de soulignement (_)
-
-
Les espaces ( ) et certains caractères ne sont pas pris en charge dans les noms de colonnes des tables de base de données. Les tables dont les noms de colonnes contiennent les caractères suivants sont ignorées lors de l'exportation :
, ; { } ( ) \n \t = (space)
-
Les tables dont les noms contiennent des barres obliques (/) sont ignorées lors de l'exportation.
-
RDSpour Postgre, les tables SQL temporaires et non enregistrées sont ignorées lors de l'exportation.
-
Si les données contiennent un objet volumineux, tel qu'un BLOB orCLOB, dont la taille est proche ou supérieure à 500 Mo, l'exportation échoue.
-
Si une table contient une grande ligne proche de ou supérieure à 2 Go, la table est ignorée lors de l'exportation.
-
Pour les exportations partielles, la taille maximale de la
ExportOnly
liste est de 200 Ko. -
Nous vous recommandons vivement d'utiliser un nom unique pour chaque tâche d'exportation. Si vous n'utilisez pas un nom de tâche unique, vous risquez de recevoir le message d'erreur suivant :
ExportTaskAlreadyExistsFault: Une erreur s'est produite (ExportTaskAlreadyExists) lors de l'appel de l' StartExportTaskopération : La tâche d'exportation avec l'ID
xxxxx
existe déjà. -
Vous pouvez supprimer un instantané lors de l'exportation de ses données vers S3, mais les coûts de stockage de cet instantané vous sont tout de même facturés tant que la tâche d'exportation n'est pas terminée.
-
Vous ne pouvez pas restaurer les données de capture exportées de S3 vers une nouvelle instance de base de données ou importer des données de capture d'écran de S3 dans une instance de base de données existante.
-
Vous pouvez avoir jusqu'à cinq tâches simultanées d'exportation de snapshots de base de données en cours par Compte AWS.
-
Pour exporter un instantané de base de données vers un compartiment Amazon S3 multi-comptes, vous devez utiliser le AWS CLI ou le RDSAPI.
Présentation de l'exportation des données d'instantané
Vous utilisez le processus suivant pour exporter des données d'instantané de base de données vers un compartiment Amazon S3. Pour plus de détails, consultez les sections suivantes.
-
Identifiez l'instantané à exporter.
Utilisez un instantané automatique ou manuel existant, ou créez un instantané manuel d'une instance de base de données ou d'un cluster de base de données multi-AZ.
-
Configurez l'accès au compartiment Amazon S3.
Un compartiment est un conteneur d'objets ou de fichiers Amazon S3. Pour fournir les informations permettant d'accéder à un compartiment, procédez comme suit :
-
Identifiez le compartiment S3 vers lequel l'instantané doit être exporté. Le compartiment S3 doit se trouver dans la même AWS région que le snapshot. Pour de plus amples informations, veuillez consulter Identification du compartiment Amazon S3 pour l'exportation.
-
Créez un rôle AWS Identity and Access Management (IAM) qui accorde à la tâche d'exportation de snapshots l'accès au compartiment S3. Pour de plus amples informations, veuillez consulter Fournir un accès à un compartiment Amazon S3 à l'aide d'un IAM rôle.
-
-
Créez un chiffrement symétrique AWS KMS key pour le chiffrement côté serveur. La KMS clé est utilisée par la tâche d'exportation de snapshots pour configurer le chiffrement AWS KMS côté serveur lors de l'écriture des données d'exportation dans S3.
La politique KMS clé doit inclure à la fois les
kms:DescribeKey
autorisationskms:CreateGrant
et. Pour plus d'informations sur l'utilisation KMS des clés sur AmazonRDS, consultezAWS KMS key management.Si votre politique KMS clé contient une déclaration de refus, assurez-vous d'exclure explicitement le principal du AWS service
export.rds.amazonaws.com
.Vous pouvez utiliser une KMS clé intégrée à votre AWS compte ou une KMS clé multicompte. Pour de plus amples informations, veuillez consulter Utilisation d'un compte croisé AWS KMS key pour chiffrer les exportations Amazon S3.
-
Exportez le snapshot vers Amazon S3 à l'aide de la console ou de la
start-export-task
CLI commande. Pour de plus amples informations, veuillez consulter Exportation d'un instantané de base de données vers un compartiment Amazon S3. -
Pour accéder aux données exportées dans le compartiment Amazon S3, consultez Chargement, téléchargement et gestion d'objets dans le Guide de l'utilisateur Amazon Simple Storage Service.
Configuration de l'accès à un compartiment Amazon S3
Pour exporter des données d'instantané de base de données vers un fichier Amazon S3, vous accordez d'abord à l'instantané l'autorisation d'accéder au compartiment Amazon S3. Vous créez ensuite un IAM rôle pour autoriser le RDS service Amazon à écrire dans le compartiment Amazon S3.
Rubriques
Identification du compartiment Amazon S3 pour l'exportation
Identifiez le compartiment Amazon S3 vers lequel exporter l'instantané de base de données. Utilisez un compartiment S3 existant ou créez un nouveau compartiment S3.
Note
Le compartiment S3 vers lequel effectuer l'exportation doit se trouver dans la même AWS région que le snapshot.
Pour plus d'informations sur l'utilisation des Amazon S3 compartiments, veuillez consulter les points suivants dans le Guide de l'utilisateur Amazon Simple Storage Service :
Fournir un accès à un compartiment Amazon S3 à l'aide d'un IAM rôle
Avant d'exporter les données d'instantané de base de données vers Amazon S3, vous devez accorder aux tâches d'exportation d'instantané une autorisation d'accès en écriture au compartiment Amazon S3.
Pour accorder cette autorisation, créez une IAM politique qui donne accès au compartiment, puis créez un IAM rôle et associez la politique au rôle. Vous attribuez ensuite le IAM rôle à votre tâche d'exportation de clichés.
Important
Si vous prévoyez d'utiliser le AWS Management Console pour exporter votre instantané, vous pouvez choisir de créer la IAM politique et le rôle automatiquement lorsque vous exportez l'instantané. Pour obtenir des instructions, consultez Exportation d'un instantané de base de données vers un compartiment Amazon S3.
Pour accorder aux tâches d'instantané de base de données l'accès à Amazon S3
-
Créez une IAM politique. Cette politique fournit les autorisations d'accès au compartiment et aux objets qui permettent à votre tâche d'exportation d'instantané d'accéder à Amazon S3.
Dans la politique, incluez les actions obligatoires suivantes pour autoriser le transfert de fichiers d'Amazon RDS vers un compartiment S3 :
-
s3:PutObject*
-
s3:GetObject*
-
s3:ListBucket
-
s3:DeleteObject*
-
s3:GetBucketLocation
Dans la politique, incluez les ressources suivantes pour identifier le compartiment S3 et les objets qu'il contient. La liste de ressources suivante indique le format Amazon Resource Name (ARN) pour accéder à Amazon S3.
-
arn:aws:s3:::
amzn-s3-demo-bucket
-
arn:aws:s3:::
amzn-s3-demo-bucket
/*
Pour plus d'informations sur la création d'une IAM politique pour AmazonRDS, consultezCréation et utilisation d'une politique IAM pour l'accès à une base de données IAM. Consultez également le didacticiel : créez et joignez votre première politique gérée par le client dans le guide de IAM l'utilisateur.
La AWS CLI commande suivante crée une IAM politique nommée
ExportPolicy
avec ces options. Il donne accès à un bucket nomméamzn-s3-demo-bucket
.Note
Après avoir créé la stratégie, notez celle ARN de la stratégie. Vous en aurez besoin ARN pour une étape ultérieure lorsque vous associerez la politique à un IAM rôle.
aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExportPolicy", "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }' -
-
Créez un IAM rôle afin qu'Amazon RDS puisse assumer ce IAM rôle en votre nom pour accéder à vos compartiments Amazon S3. Pour plus d'informations, consultez la section Création d'un rôle pour déléguer des autorisations à un IAM utilisateur dans le Guide de IAM l'utilisateur.
L'exemple suivant montre comment utiliser la AWS CLI commande pour créer un rôle nommé
rds-s3-export-role
.aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
-
Attachez la IAM politique que vous avez créée au IAM rôle que vous avez créé.
La AWS CLI commande suivante associe la politique créée précédemment au rôle nommé
rds-s3-export-role
.
Remplacez-la par la politique ARN que vous avez indiquée lors d'une étape précédente.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role
Utilisation d'un compartiment Amazon S3 entre comptes
Vous pouvez utiliser des compartiments Amazon S3 sur plusieurs AWS comptes. Pour utiliser un compartiment entre comptes, ajoutez une politique de compartiment pour autoriser l'accès au IAM rôle que vous utilisez pour les exportations S3. Pour plus d'informations, consultez Exemple 2 : propriétaire d'un compartiment accordant à ses utilisateurs des autorisations entre comptes sur un compartiment.
Attachez une politique de compartiment à votre compartiment, comme illustré dans l'exemple suivant.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:role/Admin" }, "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] }
Utilisation d'un compte croisé AWS KMS key pour chiffrer les exportations Amazon S3
Vous pouvez utiliser un compte croisé AWS KMS key pour chiffrer les exportations Amazon S3. Vous ajoutez d'abord une politique clé au compte local, puis vous ajoutez IAM des politiques au compte externe. Pour plus d'informations, voir Autoriser les utilisateurs d'autres comptes à utiliser une KMS clé.
Pour utiliser une clé multi-comptes KMS
-
Ajoutez une politique de clé au compte local.
L'exemple suivant accorde
ExampleRole
etExampleUser
dans les autorisations 444455556666 du compte externe dans le compte local 123456789012.{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "*" }
-
Ajoutez IAM des politiques au compte externe.
L'exemple de IAM politique suivant permet au principal d'utiliser la KMS clé du compte 123456789012 pour des opérations cryptographiques. Pour accorder cette autorisation aux
ExampleRole
etExampleUser
du compte 444455556666, attachez-leur la politique dans ce compte.{ "Sid": "Allow use of KMS key in account 123456789012", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
Exportation d'un instantané de base de données vers un compartiment Amazon S3
Vous pouvez avoir jusqu'à cinq tâches simultanées d'exportation de snapshots de base de données en cours par Compte AWS.
Note
L'exportation RDS des instantanés peut prendre un certain temps en fonction du type et de la taille de votre base de données. La tâche d'exportation commence par restaurer et mettre à l'échelle l'ensemble de la base de données avant d'extraire les données vers Amazon S3. La progression de la tâche au cours de cette phase s'affiche sous l'intitulé Starting. Lorsque la tâche passe à l'exportation de données vers S3, la progression affiche l'intitulé En cours.
La durée nécessaire à l'exportation dépend des données stockées dans la base de données. Par exemple, l'exportation des tables comportant des colonnes numériques d'index ou de clé primaire bien distribuées est la plus rapide. L'opération prend plus de temps pour les tables qui ne contiennent pas de colonne adaptée au partitionnement et les tables avec un seul index sur une colonne basée sur une chaîne. Ce délai d'exportation est plus long car l'exportation utilise un processus à thread unique plus lent.
Vous pouvez exporter un instantané de base de données vers Amazon S3 en utilisant le AWS Management Console, le AWS CLI, ou le RDSAPI. Pour exporter un instantané de base de données vers un compartiment Amazon S3 multi-comptes, utilisez le AWS CLI ou le RDSAPI.
Si vous utilisez une fonction Lambda pour exporter un instantané, ajoutez l'action kms:DescribeKey
à la stratégie de fonction Lambda. Pour plus d'informations, consultez Autorisations AWS Lambda.
L'option de console Exporter vers Amazon S3 s'affiche uniquement pour les instantanés pouvant être exportés vers Amazon S3. Un instantané peut ne pas être disponible pour l'exportation pour les raisons suivantes :
-
Le moteur de base de données n'est pas pris en charge pour l'exportation S3.
-
La version du moteur de base de données n'est pas prise en charge pour l'exportation S3.
-
L'exportation S3 n'est pas prise en charge dans la AWS région où l'instantané a été créé.
Pour exporter un instantané de base de données
-
Connectez-vous à la RDS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/
. -
Dans le panneau de navigation, choisissez Snapshots.
-
Dans les onglets, choisissez le type d'instantané que vous souhaitez exporter.
-
Dans la liste des instantanés, choisissez celui que vous souhaitez exporter.
-
Pour actions, choisissez Export to Amazon S3 (Exporter vers Amazon S3).
La fenêtre Export to Amazon S3 (Exporter vers Amazon S3) apparaît.
-
Dans Export Identifier (Identifiant d'exportation), entrez un nom pour identifier la tâche d'exportation. Cette valeur est également utilisée pour le nom du fichier créé dans le compartiment S3.
-
Choisissez les données à exporter :
-
Choisissez All (Tout) pour exporter toutes les données de l'instantané.
-
Choisissez Partial (Partiel) pour exporter des parties spécifiques de l'instantané. Pour identifier les parties de l'instantané à exporter, entrez un(e) ou plusieurs bases de données, schémas ou tables pour Identifiers (Identifiants), séparés par des espaces.
Utilisez le format suivant :
database
[.schema
][.table
]database2
[.schema2
][.table2
] ...database
n[.schema
n][.table
n]Exemples :
mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
-
-
Pour S3 bucket (Compartiment S3), choisissez le compartiment vers lequel exporter.
Pour affecter les données exportées à un chemin d'accès de dossier dans le compartiment S3, entrez le chemin d'accès facultatif pour S3 prefix (Préfixe S3).
-
Pour IAMle rôle, choisissez un rôle qui vous accorde un accès en écriture au compartiment S3 de votre choix ou créez un nouveau rôle.
-
Si vous avez créé un rôle en suivant les étapes décrites dans Fournir un accès à un compartiment Amazon S3 à l'aide d'un IAM rôle, choisissez ce rôle.
-
Si vous n'avez pas créé un rôle qui vous accorde un accès en écriture au compartiment S3 que vous avez choisi, choisissez Create a new role (Créer un nouveau rôle) pour créer le rôle automatiquement. Entrez ensuite le nom du rôle dans le champ Nom du IAM rôle.
-
-
Pour AWS KMS key, entrez la ARN clé à utiliser pour chiffrer les données exportées.
-
Choisissez Export to Amazon S3 (Exporter vers Amazon S3).
Pour exporter un instantané de base de données vers Amazon S3 à l'aide de AWS CLI, utilisez la start-export-taskcommande avec les options requises suivantes :
-
--export-task-identifier
-
--source-arn
-
--s3-bucket-name
-
--iam-role-arn
-
--kms-key-id
Dans les exemples suivants, la tâche d'exportation des instantanés est nommée my-snapshot-export
, qui exporte un instantané vers un compartiment S3 nommé amzn-s3-demo-bucket
.
Pour LinuxmacOS, ou Unix :
aws rds start-export-task \ --export-task-identifier
my-snapshot-export
\ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot-name
\ --s3-bucket-nameamzn-s3-demo-bucket
\ --iam-role-arniam-role
\ --kms-key-idmy-key
Dans Windows :
aws rds start-export-task ^ --export-task-identifier
my-snapshot-export
^ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot-name
^ --s3-bucket-nameamzn-s3-demo-bucket
^ --iam-role-arniam-role
^ --kms-key-idmy-key
Vous trouverez ci-après un exemple de sortie.
{ "Status": "STARTING", "IamRoleArn": "iam-role", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "my-export-bucket", "PercentProgress": 0, "KmsKeyId": "my-key", "ExportTaskIdentifier": "my-snapshot-export", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name" }
Pour fournir un chemin de dossier dans le compartiment S3 pour l'exportation des instantanés, incluez l'--s3-prefix
option dans la start-export-taskcommande.
Pour exporter un instantané de base de données vers Amazon S3 à l'aide d'Amazon RDSAPI, utilisez l'StartExportTaskopération avec les paramètres requis suivants :
-
ExportTaskIdentifier
-
SourceArn
-
S3BucketName
-
IamRoleArn
-
KmsKeyId
Surveillance des exportations d'instantanés
Vous pouvez surveiller les exportations de snapshots de base de données à l'aide du AWS Management Console AWS CLI, du ou du RDSAPI.
Pour surveiller les exportations d'instantanés de bases de données
-
Connectez-vous à la RDS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/
. -
Dans le panneau de navigation, choisissez Snapshots.
-
Pour afficher la liste des exportations d'instantanés, choisissez l'onglet Exportations dans Amazon S3.
-
Pour afficher des informations sur une exportation d'instantané spécifique, choisissez la tâche d'exportation.
Pour surveiller les exportations de snapshots de base de données à l'aide de AWS CLI, utilisez la describe-export-taskscommande.
L'exemple suivant montre comment afficher les informations actuelles sur toutes vos exportations d'instantanés.
aws rds describe-export-tasks { "ExportTasks": [ { "Status": "CANCELED", "TaskEndTime": "2019-11-01T17:36:46.961Z", "S3Prefix": "something", "ExportTime": "2019-10-24T20:23:48.364Z", "S3Bucket": "
amzn-s3-demo-bucket
", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/K7MDENG/bPxRfiCYEXAMPLEKEY", "ExportTaskIdentifier": "anewtest", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-10-25T19:10:58.885Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:parameter-groups-test" }, { "Status": "COMPLETE", "TaskEndTime": "2019-10-31T21:37:28.312Z", "WarningMessage": "{\"skippedTables\":[],\"skippedObjectives\":[],\"general\":[{\"reason\":\"FAILED_TO_EXTRACT_TABLES_LIST_FOR_DATABASE\"}]}", "S3Prefix": "", "ExportTime": "2019-10-31T06:44:53.452Z", "S3Bucket": "amzn-s3-demo-bucket1
", "PercentProgress": 100, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "ExportTaskIdentifier": "thursday-events-test", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 263, "TaskStartTime": "2019-10-31T20:58:06.998Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:rds:example-1-2019-10-31-06-44" }, { "Status": "FAILED", "TaskEndTime": "2019-10-31T02:12:36.409Z", "FailureCause": "The S3 bucket edgcuc-export isn't located in the current AWS Region. Please, review your S3 bucket name and retry the export.", "S3Prefix": "", "ExportTime": "2019-10-30T06:45:04.526Z", "S3Bucket": "amzn-s3-demo-bucket2
", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "ExportTaskIdentifier": "wednesday-afternoon-test", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-10-30T22:43:40.034Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:rds:example-1-2019-10-30-06-45" } ] }
Pour afficher des informations sur une exportation d'instantané spécifique, incluez l'option --export-task-identifier
avec la commande describe-export-tasks
. Pour filtrer la sortie, incluez l'option --Filters
. Pour plus d'options, consultez la describe-export-taskscommande.
Pour afficher des informations sur les exportations de snapshots de base de données à l'aide d'Amazon RDSAPI, utilisez l'DescribeExportTasksopération.
Pour suivre l'achèvement du workflow d'exportation ou pour initier un autre workflow, vous pouvez vous abonner à des rubriques Amazon Simple Notification Service. Pour plus d'informations sur AmazonSNS, consultezUtilisation des notifications d'RDSévénements Amazon.
Annulation d'une tâche d'exportation d'instantané
Vous pouvez annuler une tâche d'exportation de snapshots de base de données en utilisant le AWS Management Console AWS CLI, le, ou le RDSAPI.
Note
L'annulation d'une tâche d'exportation d'instantané ne supprime aucune des données exportées vers Amazon S3. Pour plus d'informations sur la suppression des données à l'aide de la console, veuillez consulter Comment supprimer des objets d'un compartiment S3 ?. Pour supprimer les données à l'aide deCLI, utilisez la commande delete-object.
Pour annuler une tâche d'importation d'instantané
-
Connectez-vous à la RDS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/
. -
Dans le panneau de navigation, choisissez Snapshots.
-
Choisissez l'onglet Exports in Amazon S3 (Exportations dans Amazon S3) .
-
Choisissez la tâche d'exportation d'instantané que vous souhaitez annuler.
-
Choisissez Cancel (Annuler).
-
Choisissez Cancel export task (Annuler la tâche d'exportation) sur la page de confirmation.
Pour annuler une tâche d'exportation d'instantanés à l'aide de AWS CLI, utilisez la cancel-export-taskcommande. La commande requiert l'option --export-task-identifier
.
aws rds cancel-export-task --export-task-identifier my_export { "Status": "CANCELING", "S3Prefix": "", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "
amzn-s3-demo-bucket
", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/K7MDENG/bPxRfiCYEXAMPLEKEY", "ExportTaskIdentifier": "my_export", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:export-example-1" }
Pour annuler une tâche d'exportation d'instantanés à l'aide d'Amazon RDSAPI, utilisez l'CancelExportTaskopération avec le ExportTaskIdentifier
paramètre.
Messages d'échec relatifs aux tâches d'exportation Amazon S3
Le tableau suivant décrit les messages renvoyés en cas d'échec des tâches d'exportation Amazon S3.
Message d'échec | Description |
---|---|
Une erreur interne inconnue s'est produite. |
La tâche a échoué en raison d'une erreur inconnue, d'une exception ou d'un échec. |
Une erreur interne inconnue s'est produite lors de l'écriture des métadonnées de la tâche d'exportation dans le compartiment S3 [nom du compartiment]. |
La tâche a échoué en raison d'une erreur inconnue, d'une exception ou d'un échec. |
L'RDSexportation n'a pas réussi à écrire les métadonnées de la tâche d'exportation car elle ne peut pas assumer le IAM rôle [rôleARN]. |
La tâche d'exportation assume votre IAM rôle pour valider si elle est autorisée à écrire des métadonnées dans votre compartiment S3. Si la tâche ne peut pas assumer votre IAM rôle, elle échoue. |
L'RDSexportation n'a pas réussi à écrire les métadonnées de la tâche d'exportation dans le compartiment S3 [nom du compartiment] en utilisant le IAM rôle [rôleARN] avec la KMS clé [ID de clé]. Code d'erreur : [code d'erreur] |
Une ou plusieurs autorisations sont manquantes et dès lors, la tâche d'exportation ne peut pas accéder au compartiment S3. Ce message d'échec est généré lors de la réception de l'un des codes d'erreur suivants :
Ces codes d'erreur indiquent que les paramètres du IAM rôle, du compartiment S3 ou de la KMS clé sont mal configurés. |
Le IAM rôle [rôleARN] n'est pas autorisé à appeler [action S3] sur le compartiment S3 [nom du compartiment]. Examinez vos autorisations et retentez l'exportation. |
La IAM politique est mal configurée. L'autorisation pour l'action S3 spécifique sur le compartiment S3 est manquante, ce qui entraîne l'échec de la tâche d'exportation. |
KMSéchec de la vérification des touches. Vérifiez les informations d'identification de votre KMS clé et réessayez. |
La vérification KMS des informations d'identification clés a échoué. |
La vérification des informations d'identification S3 a échoué. Vérifiez les autorisations de votre compartiment S3 et de votre IAM politique. |
La vérification des informations d'identification S3 a échoué. |
Le compartiment S3 [nom du compartiment] n'est pas valide. Il n'est peut-être pas situé dans la région AWS
actuelle ou il n'existe pas. Vérifiez le nom de votre compartiment S3 et retentez l'exportation. |
Le compartiment S3 n'est pas valide. |
Le compartiment S3 [nom du compartiment] ne se trouve pas dans la AWS région actuelle. Vérifiez le nom de votre compartiment S3 et retentez l'exportation. |
Le compartiment S3 se trouve dans la mauvaise AWS région. |
Résolution des erreurs liées aux SQL autorisations Postgre
Lorsque vous exportez des SQL bases de données Postgre vers Amazon S3, vous pouvez voir une PERMISSIONS_DO_NOT_EXIST
erreur indiquant que certaines tables ont été ignorées. Cette erreur se produit généralement lorsque le superutilisateur, que vous avez spécifié lors de la création de la base de données, n'est pas autorisé à accéder à ces tables.
Pour corriger cette erreur, exécutez la commande suivante :
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA
schema_name
TOsuperuser_name
Pour plus d'informations sur les privilèges des superutilisateurs, veuillez consulter Privilèges du compte utilisateur principal.
Convention de dénomination de fichiers
Les données exportées pour des tables spécifiques sont stockées au format
, qui utilise le préfixe de base suivant :base_prefix
/files
export_identifier
/database_name
/schema_name
.table_name
/
Par exemple :
export-1234567890123-459/rdststdb/rdststdb.DataInsert_7ADB5D19965123A2/
Il existe deux conventions de dénomination des fichiers.
-
Convention actuelle :
batch_index
/part-partition_index
-random_uuid
.format-based_extension
L'index de lot est un numéro de séquence qui représente un lot de données lues dans la table. Si nous ne parvenons pas à partitionner votre table en petits morceaux à exporter en parallèle, il y aura plusieurs index de lots. Il en va de même si votre table est partitionnée en plusieurs tables. Il y aura plusieurs index par lots, un pour chacune des partitions de table de votre table principale.
Si nous parvenons à partitionner votre table en petits morceaux à lire en parallèle, il n'y aura que le
1
dossier d'index par lots.Dans le dossier d'index par lots, un ou plusieurs fichiers Parquet contiennent les données de votre table. Le préfixe du nom du fichier Parquet est
part-
. Si votre table est partitionnée, il y aura plusieurs fichiers en commençant par l'indexpartition_index
00000
de partition.Il peut y avoir des lacunes dans la séquence d'index de partition. Cela se produit parce que chaque partition est obtenue à partir d'une requête à distance dans votre table. S'il n'y a aucune donnée dans la plage de cette partition, le numéro de séquence est ignoré.
Supposons, par exemple, que la
id
colonne soit la clé primaire de la table et que ses valeurs minimale et maximale soient100
et1000
. Lorsque nous essayons d'exporter cette table avec neuf partitions, nous la lisons avec des requêtes parallèles telles que les suivantes :SELECT * FROM table WHERE id <= 100 AND id < 200 SELECT * FROM table WHERE id <= 200 AND id < 300
Cela devrait générer neuf fichiers, de
part-00000-
àrandom_uuid
.gz.parquetpart-00008-
. Toutefois, s'il n'y a aucune ligne IDs entrerandom_uuid
.gz.parquet200
et350
, l'une des partitions terminées est vide et aucun fichier n'est créé pour elle. Dans l'exemple précédent,part-00001-
n'est pas créé.random_uuid
.gz.parquet -
Ancienne convention :
part-
partition_index
-random_uuid
.format-based_extension
C'est la même que la convention actuelle, mais sans le
préfixe, par exemple :batch_index
part-00000-c5a881bb-58ff-4ee6-1111-b41ecff340a3-c000.gz.parquet part-00001-d7a881cc-88cc-5ab7-2222-c41ecab340a4-c000.gz.parquet part-00002-f5a991ab-59aa-7fa6-3333-d41eccd340a7-c000.gz.parquet
La convention de dénomination de fichiers est sujette à modification. Par conséquent, lors de la lecture des tables cibles, nous vous conseillons de lire tout ce qui se trouve à l'intérieur du préfixe de base de la table.
Conversion des données lors de l'exportation vers un compartiment Amazon S3
Lorsque vous exportez un instantané de base de données vers un compartiment Amazon S3, Amazon RDS convertit les données au format Parquet, les exporte et les stocke. Pour plus d'informations sur Parquet, veuillez consulter le site web Apache Parquet
Parquet stocke toutes les données sous l'un des types primitifs suivants :
-
BOOLEAN
-
INT32
-
INT64
-
INT96
-
FLOAT
-
DOUBLE
-
BYTE_ ARRAY — Un tableau d'octets de longueur variable, également appelé binaire
-
FIXED_ LEN _ BYTE _ ARRAY — Un tableau d'octets de longueur fixe utilisé lorsque les valeurs ont une taille constante
Les types de données Parquet sont peu nombreux afin de la complexité de la lecture et de l'écriture du format. Parquet fournit des types logiques pour étendre les types primitifs. Un type logique est implémenté sous forme d'annotation avec les données dans un champ de métadonnées LogicalType
. L'annotation de type logique explique comment interpréter le type primitif.
Lorsque le type STRING
logique annote un BYTE_ARRAY
type, cela indique que le tableau d'octets doit être interprété comme une chaîne de caractères codée en UTF -8. Une fois qu'une tâche d'exportation est terminée, Amazon vous RDS avertit si une conversion de chaîne a eu lieu. Les données sous-jacentes exportées sont toujours les mêmes que celles de la source. Cependant, en raison de la différence d'encodage en UTF -8, certains caractères peuvent sembler différents de ceux de la source lorsqu'ils sont lus dans des outils tels qu'Athena.
Pour plus d'informations, veuillez consulter Parquet Logical Type Definitions
Rubriques
Mon SQL mappage du type de données et de MariaDB vers Parquet
Le tableau suivant montre le mappage entre les types de données My SQL et MariaDB et les types de données Parquet lorsque les données sont converties et exportées vers Amazon S3.
Type de données source | Type primitif du format Parquet | Annotation de type logique | Notes de conversion |
---|---|---|---|
Types de données numériques | |||
BIGINT | INT64 | ||
BIGINT UNSIGNED | FIXED_ LEN _ BYTE _ ARRAY (9) | DECIMAL(20,0) | Parquet ne prend en charge que les types signés. Le mappage nécessite donc un octet supplémentaire (8 plus 1) pour stocker le UNSIGNED type BIGINT _. |
BIT | BYTE_ARRAY | ||
DECIMAL | INT32 | DECIMAL(p, s) | Si la valeur source est inférieure à 2 31, elle est stockée sous la formeINT32. |
INT64 | DECIMAL(p, s) | Si la valeur source est supérieure ou égale à 2 31, mais inférieure à 2 63, elle est stockée sous la formeINT64. | |
FIXED_ LEN _ BYTE _ ARRAY (N) | DECIMAL(p, s) | Si la valeur source est supérieure ou égale à 2 63, elle est stockée sous la forme FIXED LEN _ BYTE _ _ ARRAY (N). | |
BYTE_ARRAY | STRING | Parquet ne prend pas en charge une précision décimale supérieure à 38. La valeur décimale est convertie en une chaîne de ARRAY type BYTE _ et codée sous UTF8 la forme. | |
DOUBLE | DOUBLE | ||
FLOAT | DOUBLE | ||
INT | INT32 | ||
INT UNSIGNED | INT64 | ||
MEDIUMINT | INT32 | ||
MEDIUMINT UNSIGNED | INT64 | ||
NUMERIC | INT32 | DECIMAL(p, s) |
Si la valeur source est inférieure à 2 31, elle est stockée sous la formeINT32. |
INT64 | DECIMAL(p, s) | Si la valeur source est supérieure ou égale à 2 31, mais inférieure à 2 63, elle est stockée sous la formeINT64. | |
FIXED_ LEN _ ARRAY (N) | DECIMAL(p, s) | Si la valeur source est supérieure ou égale à 2 63, elle est stockée sous la forme FIXED LEN _ BYTE _ _ ARRAY (N). | |
BYTE_ARRAY | STRING | Parquet ne prend pas en charge la précision numérique supérieure à 38. Cette valeur numérique est convertie en chaîne de ARRAY type BYTE _ et codée sous UTF8 la forme. | |
SMALLINT | INT32 | ||
SMALLINT UNSIGNED | INT32 | ||
TINYINT | INT32 | ||
TINYINT UNSIGNED | INT32 | ||
Types de données chaîne | |||
BINARY | BYTE_ARRAY | ||
BLOB | BYTE_ARRAY | ||
CHAR | BYTE_ARRAY | ||
ENUM | BYTE_ARRAY | STRING | |
LINESTRING | BYTE_ARRAY | ||
LONGBLOB | BYTE_ARRAY | ||
LONGTEXT | BYTE_ARRAY | STRING | |
MEDIUMBLOB | BYTE_ARRAY | ||
MEDIUMTEXT | BYTE_ARRAY | STRING | |
MULTILINESTRING | BYTE_ARRAY | ||
SET | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TINYBLOB | BYTE_ARRAY | ||
TINYTEXT | BYTE_ARRAY | STRING | |
VARBINARY | BYTE_ARRAY | ||
VARCHAR | BYTE_ARRAY | STRING | |
Types de données de date et d'heure | |||
DATE | BYTE_ARRAY | STRING | Une date est convertie en chaîne de ARRAY type BYTE _ et codée sous la formeUTF8. |
DATETIME | INT64 | TIMESTAMP_MICROS | |
TIME | BYTE_ARRAY | STRING | Un TIME type est converti en chaîne dans un BYTE _ ARRAY et codé sous la formeUTF8. |
TIMESTAMP | INT64 | TIMESTAMP_MICROS | |
YEAR | INT32 | ||
Types de données géométriques | |||
GEOMETRY | BYTE_ARRAY | ||
GEOMETRYCOLLECTION | BYTE_ARRAY | ||
MULTIPOINT | BYTE_ARRAY | ||
MULTIPOLYGON | BYTE_ARRAY | ||
POINT | BYTE_ARRAY | ||
POLYGON | BYTE_ARRAY | ||
JSONtype de données | |||
JSON | BYTE_ARRAY | STRING |
mappage du type SQL de données Postgre vers Parquet
Le tableau suivant montre le mappage entre les types de SQL données Postgre et les types de données Parquet lorsque les données sont converties et exportées vers Amazon S3.
Type de SQL données Postgre | Type primitif du format Parquet | Annotation de type logique | Notes de mappage |
---|---|---|---|
Types de données numériques | |||
BIGINT | INT64 | ||
BIGSERIAL | INT64 | ||
DECIMAL | BYTE_ARRAY | STRING | Un DECIMAL type est converti en une chaîne de ARRAY type BYTE _ et codé sous la formeUTF8. Cette conversion vise à éviter les complications dues à la précision des données et aux valeurs de données qui ne sont pas un nombre (NaN). |
DOUBLE PRECISION | DOUBLE | ||
INTEGER | INT32 | ||
MONEY | BYTE_ARRAY | STRING | |
REAL | FLOAT | ||
SERIAL | INT32 | ||
SMALLINT | INT32 | INT_16 | |
SMALLSERIAL | INT32 | INT_16 | |
Types de chaînes et de données associés | |||
ARRAY | BYTE_ARRAY | STRING |
Un tableau est converti en chaîne et codé sous la forme BINARY (UTF8). Cette conversion vise à éviter les complications dues à la précision des données, aux valeurs de données qui ne sont pas un nombre (NaN) et aux valeurs de données horaires. |
BIT | BYTE_ARRAY | STRING | |
BIT VARYING | BYTE_ARRAY | STRING | |
BYTEA | BINARY | ||
CHAR | BYTE_ARRAY | STRING | |
CHAR(N) | BYTE_ARRAY | STRING | |
ENUM | BYTE_ARRAY | STRING | |
NAME | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TEXT SEARCH | BYTE_ARRAY | STRING | |
VARCHAR(N) | BYTE_ARRAY | STRING | |
XML | BYTE_ARRAY | STRING | |
Types de données de date et d'heure | |||
DATE | BYTE_ARRAY | STRING | |
INTERVAL | BYTE_ARRAY | STRING | |
TIME | BYTE_ARRAY | STRING | |
TIME WITH TIME ZONE | BYTE_ARRAY | STRING | |
TIMESTAMP | BYTE_ARRAY | STRING | |
TIMESTAMP WITH TIME ZONE | BYTE_ARRAY | STRING | |
Types de données géométriques | |||
BOX | BYTE_ARRAY | STRING | |
CIRCLE | BYTE_ARRAY | STRING | |
LINE | BYTE_ARRAY | STRING | |
LINESEGMENT | BYTE_ARRAY | STRING | |
PATH | BYTE_ARRAY | STRING | |
POINT | BYTE_ARRAY | STRING | |
POLYGON | BYTE_ARRAY | STRING | |
JSONtypes de données | |||
JSON | BYTE_ARRAY | STRING | |
JSONB | BYTE_ARRAY | STRING | |
Autres types de données | |||
BOOLEAN | BOOLEAN | ||
CIDR | BYTE_ARRAY | STRING | Type de données de réseau |
COMPOSITE | BYTE_ARRAY | STRING | |
DOMAIN | BYTE_ARRAY | STRING | |
INET | BYTE_ARRAY | STRING | Type de données de réseau |
MACADDR | BYTE_ARRAY | STRING | |
OBJECT IDENTIFIER | N/A | ||
PG_ LSN | BYTE_ARRAY | STRING | |
RANGE | BYTE_ARRAY | STRING | |
UUID | BYTE_ARRAY | STRING |