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à.
Considerazioni per le esportazioni di snapshot del cluster DB
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.
-
È possibile avere in corso fino a cinque attività simultanee di esportazione di snapshot DB per volta. Account AWS
-
Non è possibile esportare i dati delle istantanee da Aurora Serverless v1 Cluster DB su 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:
ExportTaskAlreadyExistsFault: Si è verificato un errore (ExportTaskAlreadyExists) durante la chiamata dell' StartExportTaskoperazione: l'attività di esportazione con l'ID esiste
xxxxx
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.
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 IDs comprese 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 2 31, viene memorizzato come INT32. |
INT64 | DECIMAL(p,s) | Se il valore di origine è 2 31 o superiore, ma inferiore a 2 63, viene archiviato comeINT64. | |
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 2 31, viene archiviato come. INT32 |
INT64 | DECIMAL(p,s) | Se il valore di origine è 2 31 o superiore, ma inferiore a 2 63, viene archiviato comeINT64. | |
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 | INT (16, vero) | |
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 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 | ||
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, vero) | |
SMALLSERIAL | INT32 | INT (16, vero) | |
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 |