Esportazione dei dati dello snapshot DB in Simple Storage Service (Amazon S3) - Amazon Relational Database Service

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 DB in Simple Storage Service (Amazon S3)

È possibile esportare i dati dello snapshot DB in un bucket Simple Storage Service (Amazon S3). Il processo di esportazione viene eseguito in background e non influisce sulle prestazioni del database attivo.

Quando esporti uno snapshot DB, Amazon RDS estrae i dati dallo snapshot e li archivia in un bucket Amazon S3. I dati vengono archiviati in un formato Apache Parquet compresso e coerente.

Puoi esportare tutti i tipi di istantanee DB, incluse istantanee manuali, istantanee di sistema automatizzate e istantanee create dal servizio. AWS Backup Per impostazione predefinita, vengono esportati tutti i dati nello snapshot. Tuttavia, è possibile scegliere di esportare set specifici di database, schemi o tabelle.

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 di Redshift Spectrum per leggere i dati di Parquet, consulta i formati di dati COPY a colonne nella Amazon Redshift Database Developer Guide.

Disponibilità di regioni e versioni

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 di snapshot in S3, consulta Regioni e motori DB supportati per l'esportazione di snapshot in S3 in Amazon RDS.

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 database. Ciò è valido sia per le esportazioni totali sia per le esportazioni parziali.

  • L'esportazione di istantanee da database che utilizzano l'archiviazione magnetica non è supportata.

  • 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.

  • RDSper Postgre le tabelle SQL temporanee e non registrate vengono ignorate durante l'esportazione.

  • Se i dati contengono un oggetto di grandi dimensioni, ad esempio un BLOB oCLOB, che è 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'ExportOnlyelenco 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:

    ExportTaskAlreadyExistsFault: 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 una nuova istanza DB o importare i dati degli snapshot da S3 in un'istanza DB esistente.

  • È possibile avere in corso fino a cinque attività simultanee di esportazione di snapshot DB per. Account AWS

  • Per esportare uno snapshot DB in un bucket Amazon S3 con più account, devi utilizzare o il. AWS CLI RDS API

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:

  1. Identificare lo snapshot da esportare.

    Utilizza uno snapshot automatico o manuale esistente oppure crea uno snapshot manuale di un'istanza DB o di un cluster DB Multi-AZ.

  2. 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:

    1. Identificare il bucket S3 in cui deve essere esportato lo snapshot. Il bucket S3 deve trovarsi nella stessa AWS regione dello snapshot. Per ulteriori informazioni, consulta Identificazione del bucket Simple Storage Service (Amazon S3) in cui esportare.

    2. Crea un ruolo AWS Identity and Access Management (IAM) che conceda all'attività di esportazione delle istantanee l'accesso al bucket S3. Per ulteriori informazioni, consulta Fornire l'accesso a un bucket Amazon S3 utilizzando un ruolo IAM.

  3. Crea una crittografia simmetrica per la crittografia lato server. AWS KMS key La KMS chiave 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 politica KMS chiave deve includere sia le autorizzazioni che. kms:CreateGrant kms:DescribeKey Per ulteriori informazioni sull'utilizzo KMS delle chiavi in AmazonRDS, consultaAWS KMS key gestione.

    Se nella tua policy KMS chiave è presente una dichiarazione di rifiuto, assicurati di escludere esplicitamente il responsabile del AWS servizio. export.rds.amazonaws.com

    Puoi utilizzare una KMS chiave all'interno del tuo AWS account oppure puoi utilizzare una chiave per più account. KMS Per ulteriori informazioni, consulta Utilizzo di un account incrociato AWS KMS key per crittografare le esportazioni Amazon S3.

  4. Esporta lo snapshot in Amazon S3 utilizzando la console o start-export-task CLI il comando. Per ulteriori informazioni, consulta Esportazione di uno snapshot DB in un bucket Amazon S3.

  5. 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)

Per esportare i dati dello snapshot DB in un file Simple Storage Service (Amazon S3), è innanzitutto necessario concedere allo snapshot l'autorizzazione per accedere al bucket Simple Storage Service (Amazon S3). Quindi crei un IAM ruolo per consentire al RDS servizio Amazon di scrivere nel bucket Amazon S3.

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 dello snapshot.

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 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 questa autorizzazione, crea una IAM policy che fornisca l'accesso al bucket, quindi crea un IAM ruolo e allega la policy al ruolo. Successivamente si assegna il IAM ruolo all'attività di esportazione delle istantanee.

Importante

Se si prevede di utilizzare il AWS Management Console per esportare l'istantanea, è possibile scegliere di creare automaticamente la IAM politica e il ruolo quando si esporta l'istantanea. Per istruzioni, consulta Esportazione di uno snapshot DB in un bucket Amazon S3.

Per fornire alle attività dello snapshot DB l'accesso a Amazon S3
  1. Crea una politica. IAM Questa policy fornisce le autorizzazioni al bucket e all'oggetto che consentono all'attività di esportazione snapshot l'accesso a Amazon S3.

    Nella policy, includi le seguenti azioni richieste per consentire il trasferimento di file da Amazon RDS 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 accedere ad Amazon S3.

    • arn:aws:s3:::amzn-s3-demo-bucket

    • arn:aws:s3:::amzn-s3-demo-bucket/*

    Per ulteriori informazioni sulla creazione di una IAM politica per AmazonRDS, consultaCreazione e utilizzo di una policy IAM per l'accesso al database IAM. Vedi anche Tutorial: Crea e allega la tua prima politica gestita dai clienti nella Guida IAM per l'utente.

    Il AWS CLI comando seguente crea una IAM politica denominata ExportPolicy con queste opzioni. Garantisce l'accesso a un bucket denominato amzn-s3-demo-bucket.

    Nota

    Dopo aver creato la politica, annota ARN la politica. È necessario eseguire ARN un passaggio successivo quando si associa la politica a un IAM ruolo.

    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/*" ] } ] }'
  2. Crea un IAM ruolo, in modo che Amazon RDS possa assumerlo IAM per tuo conto per accedere ai tuoi bucket Amazon S3. Per ulteriori informazioni, consulta Creare un ruolo per delegare le autorizzazioni a un IAM utente nella Guida per l'utente. IAM

    L'esempio seguente mostra l'utilizzo del AWS CLI comando per creare un ruolo denominato. 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" } ] }'
  3. Allega la IAM politica che hai creato al IAM ruolo che hai creato.

    Il AWS CLI comando seguente collega la politica creata in precedenza al ruolo denominatords-s3-export-role. Sostituiscilo your-policy-arn con la politica ARN che hai annotato in un passaggio precedente.

    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 più account, aggiungi una policy sui bucket per consentire l'accesso al IAM ruolo che stai utilizzando 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:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] } ] }

Utilizzo di un account incrociato AWS KMS key per crittografare le esportazioni Amazon S3

Puoi utilizzare un account multiplo AWS KMS key per crittografare le esportazioni Amazon S3. Innanzitutto, aggiungi una politica chiave all'account locale, quindi aggiungi IAM le politiche nell'account esterno. Per ulteriori informazioni, consulta Consentire agli utenti di altri account di utilizzare una KMS chiave.

Per utilizzare una chiave per più account KMS
  1. Aggiungi una policy di chiave all'account locale.

    Il seguente esempio fornisce ExampleRole e ExampleUser 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": "*" }
  2. Aggiungi IAM politiche all'account esterno.

    La seguente IAM politica di esempio consente al principale di utilizzare la KMS chiave nell'account 123456789012 per operazioni crittografiche. Per concedere questa autorizzazione a ExampleRole e ExampleUser 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 DB in un bucket Amazon S3

È possibile avere in corso fino a cinque attività simultanee di esportazione di snapshot DB per. Account AWS

Nota

L'esportazione delle RDS istantanee può richiedere del tempo 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 in Amazon S3 utilizzando, AWS Management Console AWS CLI the, o. RDS API Per esportare uno snapshot DB in un bucket Amazon S3 con più account, usa o il. AWS CLI RDS API

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 del motore DB non è supportata per l'esportazione da S3.

  • L'esportazione S3 non è supportata nella AWS regione in cui è stata creata l'istantanea.

Per esportare uno snapshot DB
  1. Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione, selezionare Snapshots (Snapshot).

  3. Dalle schede, scegliere il tipo di snapshot che si desidera esportare.

  4. Nell'elenco degli snapshot, scegliere lo snapshot che si desidera esportare.

  5. 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)).

  6. 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.

  7. 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] ... databasen[.scheman][.tablen]

      Ad esempio:

      mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
  8. 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).

  9. Per IAMquanto riguarda il ruolo, scegli un ruolo che ti garantisca l'accesso in scrittura al bucket S3 che hai scelto oppure crea un nuovo ruolo.

    • Se è stato creato un ruolo seguendo le fasi in Fornire l'accesso a un bucket 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. Successivamente, inserisci un nome per il ruolo nel IAM nome del ruolo.

  10. Per AWS KMS key, inserisci la ARN chiave da utilizzare per crittografare i dati esportati.

  11. 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 con start-export-taskle 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 amzn-s3-demo-bucket.

PerLinux, o: macOS 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-name amzn-s3-demo-bucket \ --iam-role-arn iam-role \ --kms-key-id my-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-name amzn-s3-demo-bucket ^ --iam-role-arn iam-role ^ --kms-key-id my-key

Di seguito è riportato un output di esempio.

{ "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" }

Per fornire un percorso di cartella nel bucket S3 per l'esportazione delle istantanee, includi l'--s3-prefixopzione nel comando. start-export-task

Per esportare uno snapshot DB su Amazon S3 utilizzando RDS API Amazon, utilizza l'operazione con StartExportTaski seguenti parametri obbligatori:

  • ExportTaskIdentifier

  • SourceArn

  • S3BucketName

  • IamRoleArn

  • KmsKeyId

Monitoraggio delle esportazioni di snapshot

È possibile monitorare le esportazioni di snapshot DB utilizzando AWS Management Console AWS CLI, the o. RDS API

Per monitorare le esportazioni di snapshot DB
  1. Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione, selezionare Snapshots (Snapshot).

  3. Per monitorare l'elenco delle esportazioni di snapshot, scegliere la scheda Esportazioni in Simple Storage Service (Amazon S3).

  4. Per visualizzare informazioni su un'esportazione di snapshot specifica, scegliere l'attività di esportazione.

Per monitorare le esportazioni di snapshot DB utilizzando il AWS CLI, usa il describe-export-taskscomando.

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": "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" } ] }

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, vedete il describe-export-taskscomando.

Per visualizzare informazioni sulle esportazioni di snapshot DB utilizzando Amazon RDSAPI, utilizza l'DescribeExportTasksoperazione.

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 AmazonSNS, consultaUtilizzo delle notifiche di RDS eventi di Amazon.

Annullamento di un'attività di esportazione di snapshot

Puoi annullare un'attività di esportazione di snapshot DB utilizzando il AWS Management Console, il AWS CLI, o il RDSAPI.

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 utilizzandoCLI, utilizzare il comando delete-object.

Per annullare un'attività di esportazione di uno snapshot
  1. Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione, selezionare Snapshots (Snapshot).

  3. Scegli la scheda Exports in Simple Storage Service (Amazon S3) (Esportazioni in Simple Storage Service (Amazon S3)).

  4. Scegliere l'attività di esportazione di snapshot che si desidera annullare.

  5. Seleziona Cancel (Annulla).

  6. 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 cancel-export-taskcomando. 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": "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" }

Per annullare un'operazione di esportazione di istantanee utilizzando Amazon RDSAPI, utilizza l'CancelExportTaskoperazione 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'RDSesportazione non è riuscita a scrivere i metadati dell'attività di esportazione perché non può assumere il IAM ruolo [ruoloARN].

L'attività di esportazione assume il IAM ruolo dell'utente di verificare se è consentito scrivere metadati nel bucket S3. Se l'attività non può assumere il tuo IAM ruolo, ha esito negativo.

L'RDSesportazione non è riuscita a scrivere i metadati dell'attività di esportazione nel bucket S3 [nome del bucket] utilizzando il IAM ruolo [ruoloARN] con la KMS chiave [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:

  • AWSSecurityTokenServiceException con il codice di errore AccessDenied

  • AmazonS3Exception con il codice di erroreNoSuchBucket,AccessDenied,KMS.KMSInvalidStateException,403 Forbidden, oppure KMS.DisabledException

Questi codici di errore indicano che le impostazioni non sono configurate correttamente per il IAM ruolo, il bucket S3 o la chiave. KMS

Il IAM ruolo [ruoloARN] non è autorizzato a chiamare [azione S3] sul bucket S3 [nome del bucket]. Controlla le tue autorizzazioni e riprova l'esportazione.

La IAM policy non è configurata correttamente. L'autorizzazione per l'azione S3 specifica sul bucket S3 è mancante e questa condizione causa l'esito negativo dell'attività di esportazione.

KMScontrollo chiave non riuscito. Controlla le credenziali sulla tua KMS chiave e riprova. Il controllo delle credenziali della KMS chiave non è riuscito.
Controllo delle credenziali S3 non riuscito. Controlla le autorizzazioni sul tuo bucket S3 e sulla tua policy. IAM Il controllo delle credenziali S3 non è riuscito.
Il bucket S3 [nome bucket] non è valido. O non si trova nella corrente Regione AWS o non esiste. Esamina il nome del bucket S3 e riprova l'esportazione. Bucket S3 non è valido.
Il bucket S3 [nome del bucket] non si trova nella regione corrente. AWS Esamina il nome del bucket S3 e riprova l'esportazione. Il bucket S3 si trova nella regione sbagliata. AWS

Risoluzione degli errori relativi alle autorizzazioni di Postgres SQL

Durante l'esportazione di SQL database Postgre su Amazon S3, potresti visualizzare un PERMISSIONS_DO_NOT_EXIST errore che indica che alcune tabelle sono state ignorate. Questo errore si verifica in genere quando il superutente, specificato durante la creazione del database, non dispone delle autorizzazioni per accedere a tali tabelle.

Per risolvere questo errore, eseguire il comando seguente:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO superuser_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 base_prefix/files, dove il prefisso di base è il seguente:

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-partition_index Se la tabella è partizionata, ci saranno più file che iniziano con l'indice delle partizioni. 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 apart-00000-random_uuid.gz.parquet. part-00008-random_uuid.gz.parquet Tuttavia, se non ci sono righe IDs comprese tra 200 e350, una delle partizioni completate è vuota e non viene creato alcun file per essa. Nell'esempio precedente, part-00001-random_uuid.gz.parquet non viene creato.

  • Convenzione precedente:

    part-partition_index-random_uuid.format-based_extension

    È la stessa della convenzione attuale, ma senza il batch_index prefisso, ad esempio:

    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 esporti uno snapshot DB in un bucket Amazon S3, RDS Amazon converte i dati, li esporta e li archivia 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 STRING logico annota un BYTE_ARRAY tipo, indica che l'array di byte deve essere interpretato come una UTF stringa di caratteri con codifica -8. Al termine di un'attività di esportazione, Amazon ti RDS avvisa se si è verificata una conversione di stringhe. 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 dalla fonte quando vengono letti con strumenti come Athena.

Per ulteriori informazioni, consultare la sezione relativa alle definizioni dei tipi logici di Parquet nella documentazione di Parquet.

Mappatura dei tipi di dati My SQL e MariaDB su Parquet

La tabella seguente mostra la mappatura dai tipi di dati My SQL e MariaDB ai 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_ _ _ (9LEN) BYTE ARRAY DECIMAL(20,0) Parquet supporta solo i 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 2 31, viene archiviato comeINT32.
INT64 DECIMAL(p, s) Se il valore di origine è 2 31 o superiore, ma inferiore a 2 63, viene memorizzato comeINT64.
FIXED_ LEN _ BYTE _ ARRAY (N) DECIMAL(p, s) Se il valore di origine è 2 63 o superiore, viene memorizzato 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 ARRAY tipo BYTE _ 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 2 31, viene archiviato comeINT32.

INT64 DECIMAL(p, s) Se il valore di origine è 2 31 o superiore, ma inferiore a 2 63, viene memorizzato comeINT64.
FIXED_ LEN _ ARRAY (N) DECIMAL(p, s) Se il valore di origine è 2 63 o superiore, viene memorizzato 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 ARRAY tipo BYTE _ 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 ARRAY tipo BYTE _ e codificata come. UTF8
DATETIME INT64 TIMESTAMP_MICROS
TIME BYTE_ARRAY STRING Un TIME tipo viene convertito in una stringa in un 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
JSONtipo di dati
JSON BYTE_ARRAY STRING

mappatura SQL dei tipi di dati Postgre su Parquet

La tabella seguente mostra la mappatura dai tipi di dati Postgre ai tipi di SQL dati Parquet quando i dati vengono convertiti ed esportati in Amazon S3.

Tipo di dati Postgre SQL Tipo Parquet primitivo Annotazione del tipo logico Note relative alla mappatura
Tipi di dati numerici
BIGINT INT64
BIGSERIAL INT64
DECIMAL BYTE_ARRAY STRING Un DECIMAL tipo viene convertito in una stringa di ARRAY tipo BYTE _ 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
JSONtipi di dati
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/D
PG_ LSN BYTE_ARRAY STRING
RANGE BYTE_ARRAY STRING
UUID BYTE_ARRAY STRING