Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esportazione dei dati dello snapshot del cluster di database in Amazon S3
È possibile esportare i dati dello snapshot del cluster di database in un bucket Amazon S3. Il processo di esportazione viene eseguito in background e non ha ripercussioni sulle prestazioni dell'istanza del cluster di database attivo.
Quando si esporta uno snapshot del cluster di database, Amazon Aurora estrae i dati dallo snapshot e li archivia in un bucket Amazon S3. È possibile esportare snapshot manuali e snapshot automatici di sistema. Per impostazione predefinita, vengono esportati tutti i dati nello snapshot. Tuttavia, è possibile scegliere di esportare set specifici di database, schemi o tabelle.
I dati vengono archiviati in un formato Apache Parquet compresso e coerente. I singoli file Parquet hanno in genere una dimensione compresa tra 1 e 10 MB.
Dopo l'esportazione dei dati, è possibile analizzare i dati esportati direttamente mediante strumenti quali Amazon Athena o Amazon Redshift Spectrum. Per ulteriori informazioni sull'utilizzo di Athena per leggere i dati di Parquet, consulta Parquet SerDe nella Guida per l'utente di Amazon Athena. Per ulteriori informazioni sull'utilizzo Redshift Spectrum per leggere i dati Parquet, consulta COPY da formati di dati a colonna nella Guida per gli sviluppatori di database di Amazon Redshift.
Il supporto varia a seconda delle versioni specifiche di ciascun motore di database e a seconda delle Regioni AWS. Per ulteriori informazioni sulla disponibilità di versioni e regioni in caso di esportazione dei dati di snapshot di cluster di database in S3, consulta Regioni supportate e motori Aurora DB per l'esportazione di dati di snapshot su Amazon S3.
Argomenti
- Limitazioni
- Panoramica sull'esportazione dei dati degli snapshot
- Configurazione dell'accesso a un bucket Simple Storage Service (Amazon S3)
- Esportazione di uno snapshot in un bucket Simple Storage Service (Amazon S3)
- Prestazioni di esportazione in Aurora MySQL
- Monitoraggio delle esportazioni di snapshot
- Annullamento di un'attività di esportazione di snapshot
- Messaggi di errore per le attività di esportazione di Amazon S3
- Risoluzione degli errori di autorizzazione PostgreSQL
- Convenzione di denominazione file
- Conversione dei dati durante l'esportazione in un bucket Simple Storage Service (Amazon S3)
Limitazioni
L'esportazione dei dati snapshot DB in Simple Storage Service (Amazon S3) presenta le seguenti limitazioni:
-
Non è possibile eseguire contemporaneamente più attività di esportazione per lo stesso snapshot del cluster database. Ciò è valido sia per le esportazioni totali sia per le esportazioni parziali.
-
Puoi avere in corso fino a cinque attività simultanee di esportazione di snapshot DB per volta. Account AWS
-
Non è possibile esportare i dati delle istantanee dai cluster Aurora Serverless v1 DB a S3.
-
Le esportazioni verso S3 non supportano i prefissi S3 contenenti i due punti (:).
-
I seguenti caratteri nel percorso del file S3 vengono convertiti in caratteri di sottolineatura (_) durante l'esportazione:
\ ` " (space)
-
Se un database, uno schema o una tabella contiene caratteri diversi da quelli riportati di seguito, l'esportazione parziale non è supportata. Tuttavia, è possibile esportare l'intero snapshot DB.
-
Lettere latine (A–Z)
-
Numeri (0–9)
-
Simbolo del dollaro ($)
-
Carattere di sottolineatura (_)
-
-
Gli spazi ( ) e alcuni caratteri non sono supportati nei nomi delle colonne delle tabelle del database. Le tabelle con i seguenti caratteri nei nomi delle colonne vengono ignorate durante l'esportazione:
, ; { } ( ) \n \t = (space)
-
Le tabelle con barre (/) nei rispettivi nomi vengono ignorate durante l'esportazione.
-
Le tabelle temporanee e non registrate di Aurora PostgreSQL vengono ignorate durante l'esportazione.
-
Se i dati contengono un oggetto di grandi dimensioni, ad esempio un BLOB o un CLOB, vicino o superiore a 500 MB, l'esportazione non riesce.
-
Se una tabella contiene una riga di grandi dimensioni, vicine o superiori a 2 GB, la tabella viene ignorata durante l'esportazione.
-
Per le esportazioni parziali, l'
ExportOnly
elenco ha una dimensione massima di 200 KB. -
Si consiglia vivamente di utilizzare un nome univoco per ogni attività di esportazione. Se non utilizzi un nome di attività univoco, potresti ricevere il seguente messaggio di errore:
ExportTaskAlreadyExistsErrore: si è verificato un errore (ExportTaskAlreadyExists) durante la chiamata dell' StartExportTaskoperazione: l'operazione di esportazione con l'ID
xxxxx
esiste già. -
È possibile eliminare uno snapshot durante l'esportazione dei suoi dati in S3, ma vengono comunque addebitati i costi di storage per tale snapshot fino al completamento dell'attività di esportazione.
-
Non puoi ripristinare i dati degli snapshot esportati da S3 in un nuovo cluster di database.
Panoramica sull'esportazione dei dati degli snapshot
Per esportare i dati dello snapshot DB in un bucket Simple Storage Service (Amazon S3) puoi utilizzare il processo riportato di seguito. Per ulteriori dettagli, consulta le seguenti sezioni:
-
Identificare lo snapshot da esportare.
Utilizzare uno snapshot automatico o manuale esistente oppure creare uno snapshot manuale di un'istanza database.
-
Configurare l'accesso al bucket Simple Storage Service (Amazon S3).
Un bucket è un container per oggetti o file Simple Storage Service (Amazon S3). Per fornire le informazioni per accedere a un bucket, attenersi alla seguente procedura:
-
Identificare il bucket S3 in cui deve essere esportato lo snapshot. Il bucket S3 deve trovarsi nella stessa AWS regione dell'istantanea. Per ulteriori informazioni, consulta Identificazione del bucket Simple Storage Service (Amazon S3) in cui esportare.
-
Crea un ruolo AWS Identity and Access Management (IAM) che conceda all'attività di esportazione degli snapshot l'accesso al bucket S3. Per ulteriori informazioni, consulta Fornire l'accesso a un bucket Simple Storage Service (Amazon S3) utilizzando un ruolo IAM.
-
-
Crea una crittografia simmetrica per la crittografia lato server. AWS KMS key La chiave KMS viene utilizzata dall'attività di esportazione delle istantanee per configurare la crittografia AWS KMS lato server durante la scrittura dei dati di esportazione su S3.
La policy della chiave KMS deve includere entrambe le autorizzazioni
kms:CreateGrant
ekms:DescribeKey
. Per ulteriori informazioni sull'uso delle chiavi KMS in Amazon Aurora, consulta Gestione di AWS KMS key.Se hai una dichiarazione di rifiuto nella tua politica sulle chiavi KMS, assicurati di escludere esplicitamente il responsabile del servizio. AWS
export.rds.amazonaws.com
Puoi utilizzare una chiave KMS all'interno del tuo AWS account oppure puoi utilizzare una chiave KMS per più account. Per ulteriori informazioni, consulta Utilizzo di un account multiplo AWS KMS key.
-
Esportare lo snapshot in Simple Storage Service (Amazon S3) utilizzando la console o il comando CLI
start-export-task
. Per ulteriori informazioni, consulta Esportazione di uno snapshot in un bucket Simple Storage Service (Amazon S3). -
Per accedere ai dati esportati nel bucket Simple Storage Service (Amazon S3), consulta Caricamento, download e gestione di oggetti nella Guida per l'utente di Amazon Simple Storage Service.
Configurazione dell'accesso a un bucket Simple Storage Service (Amazon S3)
Individua il bucket Amazon S3 e fornisci allo snapshot l'autorizzazione per accedervi.
Argomenti
Identificazione del bucket Simple Storage Service (Amazon S3) in cui esportare
Identificare il bucket Simple Storage Service (Amazon S3) in cui esportare lo snapshot DB. Utilizzare un bucket S3 esistente o crearne uno nuovo.
Nota
Il bucket S3 in cui esportare deve trovarsi nella stessa AWS regione dell'istantanea.
Per ulteriori informazioni sull'utilizzo dei bucket Simple Storage Service (Amazon S3), vedere quanto segue in Guida per l'utente di Amazon Simple Storage Service:
Fornire l'accesso a un bucket Simple Storage Service (Amazon S3) utilizzando un ruolo IAM
Prima di esportare i dati dello snapshot DB in Simple Storage Service (Amazon S3), fornire l'autorizzazione di accesso in scrittura alle attività di esportazione dello snapshot al bucket Simple Storage Service (Amazon S3).
Per concedere l'autorizzazione, crea una policy IAM che fornisca accesso al bucket, crea un ruolo IAM e collega la policy al ruolo. Successivamente assegna il ruolo IAM all'attività di esportazione dello snapshot.
Importante
Se prevedi di utilizzare il AWS Management Console per esportare la tua istantanea, puoi scegliere di creare automaticamente la policy IAM e il ruolo quando esporti la snapshot. Per istruzioni, consulta Esportazione di uno snapshot in un bucket Simple Storage Service (Amazon S3).
Per fornire alle attività dello snapshot DB l'accesso a Amazon S3
-
Creare una policy IAM Questa policy fornisce le autorizzazioni al bucket e all'oggetto che consentono all'attività di esportazione snapshot l'accesso a Amazon S3.
Includi nella policy le seguenti operazioni obbligatorie per consentire il trasferimento dei file da Amazon Aurora a un bucket S3:
-
s3:PutObject*
-
s3:GetObject*
-
s3:ListBucket
-
s3:DeleteObject*
-
s3:GetBucketLocation
Includi nella policy le seguenti risorse per identificare il bucket S3 e gli oggetti nel bucket. Il seguente elenco di risorse mostra il formato Amazon Resource Name (ARN) per l'accesso a Amazon S3.
-
arn:aws:s3:::
DOC-EXAMPLE-BUCKET
-
arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*
Per ulteriori informazioni sulla creazione di una policy IAM per Amazon Aurora, consultare Creazione e utilizzo di una policy IAM per l'accesso al database IAM. Consulta anche il Tutorial: Creare e collegare la prima policy gestita dal cliente nella Guida per l'utente di IAM.
Il AWS CLI comando seguente crea una policy IAM denominata
ExportPolicy
con queste opzioni.Garantisce l'accesso a un bucket denominato DOC-EXAMPLE-BUCKET.
Nota
Dopo aver creato la policy, prendere nota del relativo ARN. Per la fase successiva, in cui si associa la policy a un ruolo IAM, è necessario l'ARN.
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:::
DOC-EXAMPLE-BUCKET
", "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] } ] }' -
-
Crea un ruolo IAM in modo che Aurora possa assumere questo ruolo IAM per tuo conto per accedere ai bucket Amazon S3. Per ulteriori informazioni, consulta la pagina relativa alla creazione di un ruolo per delegare le autorizzazioni a un utente IAM nella Guida per l'utente IAM.
L'esempio seguente mostra l'utilizzo del comando per creare un ruolo denominato. AWS CLI
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" } ] }'
-
Collegare la policy IAM al ruolo IAM creato.
Il AWS CLI comando seguente collega la politica creata in precedenza al ruolo denominato
rds-s3-export-role
. Sostituire
con l'ARN della policy annotato nella fase precedente.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role
Utilizzo di un bucket Simple Storage Service (Amazon S3) multiaccount
Puoi utilizzare i bucket Amazon S3 su più account. AWS Per utilizzare un bucket tra account, aggiungi un criterio bucket per consentire l'accesso al ruolo IAM utilizzato per le esportazioni S3. Per informazioni, consulta Esempio 2: il proprietario del bucket concede autorizzazioni per il bucket multiaccount.
-
Allega una policy di bucket al bucket, come mostrato nell'esempio riportato di seguito.
{ "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:::DOC-EXAMPLE-DESTINATION-BUCKET
", "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET
/*" ] } ] }
Utilizzo di un account multiplo AWS KMS key
Puoi utilizzare un account multiplo AWS KMS key per crittografare le esportazioni Amazon S3. Innanzitutto, aggiungi una policy chiave all'account locale, quindi aggiungi le policy IAM nell'account esterno. Per ulteriori informazioni, consulta Autorizzazione per gli utenti in altri account a utilizzare una chiave KMS.
Per utilizzare una chiave KMS multiaccount
-
Aggiungi una policy di chiave all'account locale.
Il seguente esempio fornisce
ExampleRole
eExampleUser
nell'account esterno 444455556666 autorizzazioni nell'account locale 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": "*" }
-
Aggiungere le policy IAM nell'account esterno
La policy IAM dell'esempio seguente consente al principale di utilizzare la chiave KMS nell'account 123456789012 per le operazioni di crittografia. Per concedere questa autorizzazione a
ExampleRole
eExampleUser
nell'account 444455556666, collega la policy ad essi nell'account.{ "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" }
Esportazione di uno snapshot in un bucket Simple Storage Service (Amazon S3)
Puoi avere in corso fino a cinque attività simultanee di esportazione di snapshot DB per volta. Account AWS
Nota
L'esportazione di snapshot RDS può richiedere qualche minuto a seconda del tipo e delle dimensioni del database. L'attività di esportazione ripristina e ridimensiona innanzitutto l'intero database prima di estrarre i dati su Simple Storage Service (Amazon S3). Lo stato di avanzamento dell'attività durante questa fase viene visualizzato come Avvio. Quando l'attività passa all'esportazione dei dati in S3, lo stato di avanzamento diventa In progress (In corso).
Il tempo necessario per completare l'esportazione dipende dai dati memorizzati nel database. Ad esempio, le tabelle con chiave primaria numerica o colonne indice ben distribuite esporteranno più velocemente. Le tabelle che non contengono una colonna adatta al partizionamento e le tabelle con un solo indice su una colonna basata su stringhe richiedono più tempo. Questo tempo di esportazione più lungo si verifica perché l'esportazione utilizza un processo a thread singolo più lento.
Puoi esportare uno snapshot DB su Amazon S3 utilizzando AWS Management Console l'API, AWS CLI the o RDS.
Se si utilizza una funzione Lambda per esportare uno snapshot, aggiungere l'operazione kms:DescribeKey
alla policy della funzione Lambda. Per ulteriori informazioni, consulta Autorizzazioni di AWS Lambda.
L'opzione Export to Amazon S3 (Esporta in Simple Storage Service (Amazon S3)) viene visualizzata solo per gli snapshot che possono essere esportati in Simple Storage Service (Amazon S3). Uno snapshot potrebbe non essere disponibile per l'esportazione a causa dei seguenti motivi:
-
Il motore del database non è supportato per l'esportazione S3.
-
La versione dell'istanza database non è supportata per l'esportazione S3.
-
L'esportazione da S3 non è supportata nella AWS regione in cui è stata creata la snapshot.
Per esportare uno snapshot DB
-
Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel pannello di navigazione, selezionare Snapshots (Snapshot).
-
Dalle schede, scegliere il tipo di snapshot che si desidera esportare.
-
Nell'elenco degli snapshot, scegliere lo snapshot che si desidera esportare.
-
Per Actions (Operazioni), scegli Export to Amazon S3 (Esporta in Simple Storage Service (Amazon S3).
Viene visualizzata la finestra Export to Amazon S3 (Esporta in Simple Storage Service (Amazon S3)).
-
Per Export identifier (Identificatore di esportazione), immettere un nome per identificare l'attività di esportazione. Questo valore viene utilizzato anche per il nome del file creato nel bucket S3.
-
Scegli i dati da esportare:
-
Scegliere All (Tutti) per esportare tutti i dati nello snapshot.
-
Scegliere Partial (Parziali) per esportare parti specifiche dello snapshot. Per identificare le parti dello snapshot da esportare, immettere uno o più database, schemi o tabelle per Identifiers (Identificatori), separati da spazi.
Utilizza il seguente formato:
database
[.schema
][.table
]database2
[.schema2
][.table2
] ...database
n[.schema
n][.table
n]Ad esempio:
mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
-
-
Per S3 bucket (Bucket S3), scegliere il bucket in cui esportare.
Per assegnare i dati esportati a un percorso di cartella nel bucket S3, immettere il percorso opzionale per S3 prefix (Prefisso S3).
-
Per il ruolo IAM, scegliere un ruolo che conceda l'accesso in scrittura al bucket S3 scelto o creare un nuovo ruolo.
-
Se è stato creato un ruolo seguendo le fasi in Fornire l'accesso a un bucket Simple Storage Service (Amazon S3) utilizzando un ruolo IAM, scegliere tale ruolo.
-
Se non è stato creato un ruolo che fornisce l'accesso in scrittura al bucket S3 scelto, scegli Create a new role (Crea un nuovo ruolo) per creare automaticamente il ruolo. Immettere quindi un nome per il ruolo nel nome del ruolo IAM.
-
-
Per AWS KMS key, immettere l'ARN per la chiave da utilizzare per crittografare i dati esportati.
-
Scegliere Export to Amazon S3 (Esporta in Simple Storage Service (Amazon S3)).
Per esportare uno snapshot DB in Amazon S3 utilizzando, usa AWS CLI il comando start-export-task con le seguenti opzioni richieste:
-
--export-task-identifier
-
--source-arn
-
--s3-bucket-name
-
--iam-role-arn
-
--kms-key-id
Negli esempi seguenti, l'attività di esportazione delle istantanee è denominata
my-snapshot-export, che esporta un'istantanea in un bucket S3 denominato DOC-EXAMPLE-DESTINATION-BUCKET
.
PerLinux, omacOS: 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-nameDOC-EXAMPLE-DESTINATION-BUCKET
\ --iam-role-arniam-role
\ --kms-key-idmy-key
Per 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-nameDOC-EXAMPLE-DESTINATION-BUCKET
^ --iam-role-arniam-role
^ --kms-key-idmy-key
Di seguito è riportato un output di esempio.
{ "Status": "STARTING", "IamRoleArn": "iam-role", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "
DOC-EXAMPLE-DESTINATION-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" }
Per fornire un percorso di cartella nel bucket S3 per l'esportazione dello snapshot, includere l'opzione --s3-prefix
nel comando start-export-task.
Per esportare uno snapshot DB su Amazon S3 utilizzando l'API Amazon RDS, utilizza l'operazione Task con StartExporti seguenti parametri obbligatori:
-
ExportTaskIdentifier
-
SourceArn
-
S3BucketName
-
IamRoleArn
-
KmsKeyId
Prestazioni di esportazione in Aurora MySQL
Gli snapshot del cluster di database Aurora MySQL versione 2 e versione 3 utilizzano un meccanismo di esportazione avanzato per migliorare le prestazioni e ridurre i tempi di esportazione. Il meccanismo include ottimizzazioni come i thread di esportazione multipli e la query parallela Aurora MySQL per sfruttare l'architettura di archiviazione condivisa di Aurora. Le ottimizzazioni vengono applicate in modo adattivo, a seconda delle dimensioni e della struttura del set di dati.
Non è necessario attivare la query parallela per utilizzare il processo di esportazione più rapido, ma il processo presenta le stesse limitazioni della query parallela. Inoltre, alcuni valori di dati non sono supportati, ad esempio le date in cui è il giorno del mese è 0
o l'anno è 0000
. Per ulteriori informazioni, consulta Utilizzo di query in parallelo per Amazon Aurora MySQL.
Quando si applicano le ottimizzazioni delle prestazioni, è possibile anche che i file Parquet diventino molto più grandi (~200 GB) per le esportazioni di Aurora MySQL versione 2 e 3.
Se non è possibile utilizzare il processo di esportazione più rapido, ad esempio a causa di tipi di dati o valori incompatibili, Aurora passa automaticamente a una modalità di esportazione a thread singolo senza query parallela. Le prestazioni di esportazione possono variare a seconda del processo utilizzato e della quantità di dati da esportare.
Monitoraggio delle esportazioni di snapshot
Puoi monitorare le esportazioni di snapshot DB utilizzando l'API AWS Management Console AWS CLI, the o RDS.
Per monitorare le esportazioni di snapshot DB
-
Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel riquadro di navigazione scegli Exports in Amazon S3 (Esporta in Amazon S3).
Le esportazioni di snapshot di database sono indicate nella colonna Source type (Tipo di origine). Lo stato dell'esportazione è visualizzato nella colonna Status (Stato).
-
Per visualizzare informazioni dettagliate su un'esportazione di snapshot specifica, scegli l'attività di esportazione.
Per monitorare le esportazioni di snapshot DB utilizzando il AWS CLI, usa il comando describe-export-tasks.
Nell'esempio seguente viene illustrato come visualizzare le informazioni correnti su tutte le esportazioni di snapshot.
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": "
DOC-EXAMPLE-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": "DOC-EXAMPLE-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 my-exports 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": "DOC-EXAMPLE-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" } ] }
Per visualizzare informazioni su un'esportazione di snapshot specifica, includere l'opzione --export-task-identifier
nel comando describe-export-tasks
. Per filtrare l'output, includere l'opzione --Filters
. Per ulteriori opzioni, consultare il comando describe-export-tasks.
Per visualizzare informazioni sulle esportazioni di snapshot DB utilizzando l'API Amazon RDS, utilizza l'operazione DescribeExportTasks.
Per tenere traccia del completamento del flusso di lavoro di esportazione o per attivare un altro flusso di lavoro, è possibile sottoscrivere gli argomenti del Servizio di notifica semplice Amazon. Per ulteriori informazioni su Amazon SNS, consulta Utilizzo della notifica degli eventi di Amazon RDS.
Annullamento di un'attività di esportazione di snapshot
Puoi annullare un'attività di esportazione di snapshot DB utilizzando l'API AWS Management Console AWS CLI, the o RDS.
Nota
L'annullamento di un'attività di esportazione di snapshot non rimuove i dati esportati in Simple Storage Service (Amazon S3). Per informazioni su come eliminare i dati utilizzando la console, consultare Come eliminare oggetti da un bucket S3? Per eliminare i dati utilizzando l'interfaccia della riga di comando (CLI), utilizzare il comando delete-object.
Per annullare un'attività di esportazione di uno snapshot
-
Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel riquadro di navigazione scegli Exports in Amazon S3 (Esporta in Amazon S3).
Le esportazioni di snapshot di database sono indicate nella colonna Source type (Tipo di origine). Lo stato dell'esportazione è visualizzato nella colonna Status (Stato).
-
Scegliere l'attività di esportazione di snapshot che si desidera annullare.
-
Seleziona Cancel (Annulla).
-
Scegli Cancel export task (Annulla attività di esportazione) nella pagina di conferma.
Per annullare un'operazione di esportazione di istantanee utilizzando il AWS CLI, usa il comando cancel-export-task. Il comando richiede l'opzione --export-task-identifier
.
aws rds cancel-export-task --export-task-identifier my_export { "Status": "CANCELING", "S3Prefix": "", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "
DOC-EXAMPLE-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" }
Per annullare un'operazione di esportazione di snapshot utilizzando l'API Amazon RDS, utilizza l'operazione CancelExportTask con il ExportTaskIdentifier
parametro.
Messaggi di errore per le attività di esportazione di Amazon S3
Nella tabella seguente vengono descritti i messaggi restituiti quando le attività di esportazione di Amazon S3 non riescono.
Messaggio di errore | Descrizione |
---|---|
Si è verificato un errore interno sconosciuto. |
L'elaborazione della richiesta non è riuscita a causa di un errore, un'eccezione o un guasto interno sconosciuto. |
Si è verificato un errore interno sconosciuto durante la scrittura dei metadati dell'attività di esportazione nel bucket S3 [nome bucket]. |
L'elaborazione della richiesta non è riuscita a causa di un errore, un'eccezione o un guasto interno sconosciuto. |
L'esportazione RDS non è riuscita a scrivere i metadati dell'attività di esportazione perché non può assumere il ruolo IAM [ruolo ARN]. |
L'attività di esportazione assume il ruolo IAM per verificare se è consentito scrivere metadati nel bucket S3. Se l'attività non può assumere il ruolo IAM, non riesce. |
L'esportazione RDS non è riuscita a scrivere i metadati dell'attività di esportazione nel bucket S3 [nome bucket] utilizzando il ruolo IAM [ruolo ARN] con la chiave KMS [ID chiave]. Codice di errore: [codice di errore] |
Mancano una o più autorizzazioni, quindi l'attività di esportazione non può accedere al bucket S3. Questo messaggio di errore viene generato quando si riceve uno dei seguenti codici di errore:
Questi codici di errore indicano che le impostazioni non sono configurate correttamente per il ruolo IAM, il bucket S3 o la chiave KMS. |
Il ruolo IAM [ruolo ARN] non è autorizzato a chiamare [azione S3] sul bucket S3 [nome bucket]. Controlla le tue autorizzazioni e riprova l'esportazione. |
La policy IAM è configurata in modo errato. L'autorizzazione per l'azione S3 specifica sul bucket S3 è mancante e questa condizione causa l'esito negativo dell'attività di esportazione. |
Controllo chiave KMS non riuscito. Controlla le credenziali sulla tua chiave KMS e riprova. |
Controllo delle credenziali della chiave KMS non riuscito. |
Controllo delle credenziali S3 non riuscito. Controlla le autorizzazioni per il bucket S3 e la policy IAM. |
Il controllo delle credenziali S3 non è riuscito. |
Il bucket S3 [nome bucket] non è valido. Non si trova nella corrente Regione AWS oppure non esiste. Esamina il nome del bucket S3 e riprova l'esportazione. |
Bucket S3 non è valido. |
Il bucket S3 [nome bucket] non si trova nella corrente Regione AWS. Esamina il nome del bucket S3 e riprova l'esportazione. |
Il bucket S3 è sbagliato. Regione AWS |
Risoluzione degli errori di autorizzazione PostgreSQL
Quando si esportano i database PostgreSQL in Simple Storage Service (Amazon S3), è possibile che venga visualizzato un errore PERMISSIONS_DO_NOT_EXIST
che indica che alcune tabelle sono state ignorate. Questo errore si verifica in genere quando l'utente con privilegi avanzati che hai specificato durante la creazione dell'istanza database, non dispone delle autorizzazioni per accedere alle tabelle.
Per risolvere questo errore, eseguire il comando seguente:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA
schema_name
TOsuperuser_name
Per ulteriori informazioni sui privilegi utente con privilegi avanzati, vedere Privilegi dell'account utente master.
Convenzione di denominazione file
I dati esportati per tabelle specifiche vengono memorizzati nel formato
, dove il prefisso di base è il seguente:base_prefix
/files
export_identifier
/database_name
/schema_name
.table_name
/
Ad esempio:
export-1234567890123-459/rdststdb/rdststdb.DataInsert_7ADB5D19965123A2/
Esistono due convenzioni di denominazione per i file.
-
Convenzione attuale:
batch_index
/part-partition_index
-random_uuid
.format-based_extension
L'indice batch è un numero di sequenza che rappresenta un batch di dati letti dalla tabella. Se non riusciamo a partizionare la tabella in piccoli blocchi da esportare in parallelo, ci saranno più indici batch. La stessa cosa accade se la tabella è partizionata in più tabelle. Ci saranno più indici batch, uno per ciascuna delle partizioni di tabella della tabella principale.
Se riusciamo a partizionare la tabella in piccoli blocchi da leggere in parallelo, ci sarà solo la cartella batch index.
1
All'interno della cartella dell'indice batch, ci sono uno o più file Parquet che contengono i dati della tabella. Il prefisso del nome del file Parquet è.
part-
Se la tabella è partizionata, ci saranno più file che iniziano con l'indice delle partizioni.partition_index
00000
Possono esserci delle lacune nella sequenza dell'indice delle partizioni. Ciò accade perché ogni partizione è ottenuta da una query a intervalli nella tabella. Se non ci sono dati nell'intervallo di quella partizione, quel numero di sequenza viene ignorato.
Ad esempio, supponiamo che la
id
colonna sia la chiave primaria della tabella e che i suoi valori minimo e massimo siano e.100
1000
Quando proviamo a esportare questa tabella con nove partizioni, la leggiamo con query parallele come le seguenti:SELECT * FROM table WHERE id <= 100 AND id < 200 SELECT * FROM table WHERE id <= 200 AND id < 300
Questo dovrebbe generare nove file, da a
part-00000-
.random_uuid
.gz.parquetpart-00008-
Tuttavia, se non ci sono righe con ID compresi trarandom_uuid
.gz.parquet200
e350
, una delle partizioni completate è vuota e non viene creato alcun file per essa. Nell'esempio precedente,part-00001-
non viene creato.random_uuid
.gz.parquet -
Convenzione precedente:
part-
partition_index
-random_uuid
.format-based_extension
È la stessa della convenzione attuale, ma senza il
prefisso, ad esempio: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 convenzione di denominazione file è soggetta a modifiche. Pertanto, quando usi le tabelle di destinazione ti consigliamo di leggere tutto quanto riportato all'interno del prefisso di base della tabella.
Conversione dei dati durante l'esportazione in un bucket Simple Storage Service (Amazon S3)
Quando si esporta uno snapshot di database in un bucket Amazon S3, Amazon Aurora converte, esporta e memorizza i dati nel formato Parquet. Per ulteriori informazioni su Parquet, consultare il sito Web Apache Parquet
Parquet archivia tutti i dati in uno dei seguenti tipi primitivi:
-
BOOLEAN
-
INT32
-
INT64
-
INT96
-
FLOAT
-
DOUBLE
-
BYTE_ARRAY: un array di byte a lunghezza variabile, noto anche come binario
-
FIXED_LEN_BYTE_ARRAY: un array di byte a lunghezza fissa utilizzato quando i valori hanno una dimensione costante
I tipi di dati Parquet sono pochi per ridurre la complessità di lettura e scrittura del formato. Parquet fornisce tipi logici per estendere i tipi primitivi. Un tipo logico viene implementato come annotazione con i dati in un campo di metadati LogicalType
. L'annotazione di tipo logico spiega come interpretare il tipo primitivo.
Quando il tipo logico STRING
annota un tipo BYTE_ARRAY
, indica che l'array di byte deve essere interpretato come una stringa di caratteri con codifica UTF-8. Al termine di un'attività di esportazione, Amazon Aurora notifica all'utente se si è verificata una conversione di stringa. I dati sottostanti esportati sono sempre uguali ai dati provenienti dall'origine. Tuttavia, a causa della differenza di codifica in UTF-8, alcuni caratteri potrebbero apparire diversi dall'origine quando vengono letti in strumenti come Athena.
Per ulteriori informazioni, consultare la sezione relativa alle definizioni dei tipi logici di Parquet
Argomenti
Mappatura dei tipi di dati MySQL e MariaDB al formato Parquet
La tabella seguente mostra la mappature tra i tipi di dati MySQL e i tipi di dati Parquet quando i dati vengono convertiti ed esportati in Amazon S3.
Tipo di dati origine | Tipo Parquet primitivo | Annotazione del tipo logico | Note di conversione |
---|---|---|---|
Tipi di dati numerici | |||
BIGINT | INT64 | ||
BIGINT UNSIGNED | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) | Parquet supporta solo tipi firmati, quindi la mappatura richiede un byte aggiuntivo (8 più 1) per memorizzare il tipo BIGINT_UNSIGNED. |
BIT | BYTE_ARRAY | ||
DECIMAL | INT32 | DECIMAL(p,s) | Se il valore di origine è inferiore a 231, viene archiviato come INT32. |
INT64 | DECIMAL(p,s) | Se il valore di origine è 231 o superiore, ma inferiore a 263, viene archiviato come INT64. | |
FIXED_LEN_BYTE_ARRAY(N) | DECIMAL(p,s) | Se il valore di origine è 263 o superiore, viene archiviato come FIXED_LEN_BYTE_ARRAY(N). | |
BYTE_ARRAY | STRING | Parquet non supporta la precisione decimale superiore a 38. Il valore decimale viene convertito in una stringa di tipo BYTE_ARRAY e codificato come UTF8. | |
DOUBLE | DOUBLE | ||
FLOAT | DOUBLE | ||
INT | INT32 | ||
INT UNSIGNED | INT64 | ||
MEDIUMINT | INT32 | ||
MEDIUMINT UNSIGNED | INT64 | ||
NUMERIC | INT32 | DECIMAL(p,s) |
Se il valore di origine è inferiore a 231, viene archiviato come INT32. |
INT64 | DECIMAL(p,s) | Se il valore di origine è 231 o superiore, ma inferiore a 263, viene archiviato come INT64. | |
FIXED_LEN_ARRAY(N) | DECIMAL(p,s) | Se il valore di origine è 263 o superiore, viene archiviato come FIXED_LEN_BYTE_ARRAY(N). | |
BYTE_ARRAY | STRING | Parquet non supporta la precisione numerica superiore a 38. Questo valore numerico viene convertito in una stringa di tipo BYTE_ARRAY e codificato come UTF8. | |
SMALLINT | INT32 | ||
SMALLINT UNSIGNED | INT32 | ||
TINYINT | INT32 | ||
TINYINT UNSIGNED | INT32 | ||
Tipi di dati stringa | |||
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 | |
Tipi di dati data e ora | |||
DATE | BYTE_ARRAY | STRING | Una data viene convertita in una stringa di tipo BYTE_ARRAY e codificata come UTF8. |
DATETIME | INT64 | TIMESTAMP_MICROS | |
TIME | BYTE_ARRAY | STRING | Un tipo TIME viene convertito in una stringa di tipo BYTE_ARRAY e codificato come UTF8. |
TIMESTAMP | INT64 | TIMESTAMP_MICROS | |
YEAR | INT32 | ||
Tipi di dati geometrici | |||
GEOMETRY | BYTE_ARRAY | ||
GEOMETRYCOLLECTION | BYTE_ARRAY | ||
MULTIPOINT | BYTE_ARRAY | ||
MULTIPOLYGON | BYTE_ARRAY | ||
POINT | BYTE_ARRAY | ||
POLYGON | BYTE_ARRAY | ||
Tipo di dati JSON | |||
JSON | BYTE_ARRAY | STRING |
Mappatura dei tipi di dati PostgreSQL su Parquet
Nella tabella seguente viene illustrata la mappatura dai tipi di dati PostgreSQL ai tipi di dati Parquet quando i dati vengono convertiti ed esportati in Simple Storage Service (Amazon S3).
Tipo di dati PostgreSQL | Tipo Parquet primitivo | Annotazione del tipo logico | Note relative alla mappatura |
---|---|---|---|
Tipi di dati numerici | |||
BIGINT | INT64 | ||
BIGSERIAL | INT64 | ||
DECIMAL | BYTE_ARRAY | STRING | Un tipo DECIMAL viene convertito in una stringa di tipo BYTE_ARRAY e codificato come UTF8. Questa conversione serve a evitare complicazioni dovute alla precisione dei dati e ai valori di dati che non sono un numero (NaN). |
DOUBLE PRECISION | DOUBLE | ||
INTEGER | INT32 | ||
MONEY | BYTE_ARRAY | STRING | |
REAL | FLOAT | ||
SERIAL | INT32 | ||
SMALLINT | INT32 | INT_16 | |
SMALLSERIAL | INT32 | INT_16 | |
Tipi di dati stringa e correlati | |||
ARRAY | BYTE_ARRAY | STRING |
Un array viene convertito in una stringa e codificato come BINARY (UTF8). Questa conversione serve a evitare complicazioni dovute alla precisione dei dati, ai valori di dati che non sono un numero (NaN) e ai valori di dati temporali. |
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 | |
Tipi di dati data e ora | |||
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 | |
Tipi di dati geometrici | |||
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 | |
Tipi di dati JSON | |||
JSON | BYTE_ARRAY | STRING | |
JSONB | BYTE_ARRAY | STRING | |
Altri tipi di dati | |||
BOOLEAN | BOOLEAN | ||
CIDR | BYTE_ARRAY | STRING | Tipo di dati di rete |
COMPOSITE | BYTE_ARRAY | STRING | |
DOMAIN | BYTE_ARRAY | STRING | |
INET | BYTE_ARRAY | STRING | Tipo di dati di rete |
MACADDR | BYTE_ARRAY | STRING | |
OBJECT IDENTIFIER | N/A | ||
PG_LSN | BYTE_ARRAY | STRING | |
RANGE | BYTE_ARRAY | STRING | |
UUID | BYTE_ARRAY | STRING |