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à.
Aggiungere dati a un cluster Aurora DB) e interrogarli in Amazon Redshift
Per completare la creazione di un'integrazione Zero-ETL che replichi i dati da Amazon Aurora in Amazon Redshift, devi creare un database di destinazione in Amazon Redshift.
Innanzitutto, connettiti al cluster o al gruppo di lavoro Amazon Redshift e crea un database con un riferimento al tuo identificatore di integrazione. Quindi, puoi aggiungere dati al cluster Aurora DB del di origine e vederli replicati in Amazon Redshift.
Argomenti
Creazione di un database di destinazione in Amazon Redshift
Prima di poter iniziare a replicare i dati in Amazon Redshift dopo la creazione di un'integrazione, devi creare un database di destinazione nel data warehouse di destinazione. Questo database di destinazione deve includere un riferimento all'identificatore di integrazione. Puoi utilizzare la console Amazon Redshift o Editor di query v2 per creare il database.
Per istruzioni sulla creazione di un database di destinazione, consulta Creazione di un database di destinazione in Amazon Redshift.
Dopo aver configurato l'integrazione, puoi aggiungere alcuni dati al cluster Aurora DB del che desideri replicare nel tuo data warehouse Amazon Redshift.
Nota
Esistono differenze tra i tipi di dati in Amazon Aurora e Amazon Redshift. Per una tabella di mappature dei tipi di dati, consulta Differenze tra i tipi di dati tra i database Aurora e Amazon Redshift.
Innanzitutto, connettiti al cluster DB del di origine utilizzando il client MySQL o PostgreSQL di tua scelta. Per istruzioni, consulta Connessione a un cluster database Amazon Aurora.
Quindi, crea una tabella e inserisci una riga di dati di esempio.
Importante
Assicurati che la tabella abbia una chiave primaria. Altrimenti, non può essere replicata nel data warehouse di destinazione.
Le utilità pg_dump e pg_restore PostgreSQL inizialmente creano tabelle senza una chiave primaria e poi le aggiungono in seguito. Se utilizzi una di queste utilità, ti consigliamo di creare prima uno schema e poi di caricare i dati in un comando separato.
MySQL
L'esempio seguente utilizza l'utilità MySQL Workbench
CREATE DATABASE my_db
;
USE my_db
;
CREATE TABLE books_table
(ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL,
Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID));
INSERT INTO books_table
VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
PostgreSQL
L'esempio seguente utilizza il terminale psql
interattivo PostgreSQL. Quando ti connetti al cluster, includi il database denominato che hai specificato durante la creazione dell'integrazione.
psql -h mycluster
.cluster-123456789012
.us-east-2.rds.amazonaws.com -p 5432 -U username
-d named_db
;
named_db=> CREATE TABLE books_table
(ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL,
Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID));
named_db=> INSERT INTO books_table
VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
Interrogazione dei dati di in Amazon Redshift
Dopo aver aggiunto i dati al cluster Aurora DB del , questi vengono replicati in Amazon Redshift e sono pronti per essere interrogati.
Esecuzione di query sui dati replicati
-
Vai alla console Amazon Redshift e scegli Editor di query v2 nel riquadro di navigazione a sinistra.
-
Connettiti al cluster o al gruppo di lavoro e scegli il database di destinazione (creato dall'integrazione) dal menu a tendina (destination_database in questo esempio). Per istruzioni sulla creazione di un database di destinazione, consulta Creazione di un database di destinazione in Amazon Redshift.
-
Usa un'istruzione SELECT per interrogare i tuoi dati. In questo esempio, è possibile eseguire il comando seguente per selezionare tutti i dati dalla tabella creata nel di origine del cluster Aurora DB:
SELECT * from
my_db
."books_table
";-
è il nome dello schema del database Aurora. Questa opzione è necessaria solo per i database MySQL.my_db
-
è il nome della tabella Aurora.books_table
-
È inoltre possibile interrogare i dati utilizzando un client a riga di comando. Per esempio:
destination_database=# select * from my_db
."books_table
";
ID | Title | Author | Copyright | Genre | txn_seq | txn_id
----+–------------+---------------+-------------+------------------------+----------+--------+
1 | The Shining | Stephen King | 1977 | Supernatural fiction | 2 | 12192
Nota
Per distinguere tra maiuscole e minuscole, usa le virgolette doppie (" ") per i nomi di schemi, tabelle e colonne. Per ulteriori informazioni, consulta enable_case_sensitive_identifier.
Differenze tra i tipi di dati tra i database Aurora e Amazon Redshift
La o Aurora PostgreSQL con un tipo di dati Amazon Redshift corrispondente. Amazon Aurora attualmente supporta solo questi tipi di dati per integrazioni zero-ETL.
Se una tabella nel cluster DB del di origine include un tipo di dati non supportato, la tabella non è sincronizzata e non è utilizzabile dal target Amazon Redshift. Lo streaming dall'origine alla destinazione va avanti, ma la tabella con il tipo di dati non supportato non è disponibile. Per correggere la tabella e renderla disponibile in Amazon Redshift, devi annullare manualmente la modifica iniziale e aggiornare l'integrazione eseguendo ALTER DATABASE...INTEGRATION
REFRESH
.
Argomenti
Tipo di dati Aurora MySQL | Tipo di dati di Amazon Redshift | Descrizione | Limitazioni |
---|---|---|---|
INT | INTEGER | Intero a quattro byte firmato | Nessuno |
SMALLINT | SMALLINT | Intero a due byte firmato | Nessuno |
TINYINT | SMALLINT | Intero a due byte firmato | Nessuno |
MEDIUMINT | INTEGER | Intero a quattro byte firmato | Nessuno |
BIGINT | BIGINT | Intero a otto byte firmato | Nessuno |
INT UNSIGNED | BIGINT | Intero a otto byte firmato | Nessuno |
TINYINT UNSIGNED | SMALLINT | Intero a due byte firmato | Nessuno |
MEDIUMINT UNSIGNED | INTEGER | Intero a quattro byte firmato | Nessuno |
BIGINT UNSIGNED | DECIMAL(20,0) | Numerico esatto di precisione selezionabile | Nessuno |
DECIMALE (p, s) = NUMERICO (p, s) | DECIMAL(p,s) | Numerico esatto di precisione selezionabile |
Precisione superiore a 38 e scala superiore a 37 non supportate |
DECIMALE (p, s) SENZA SEGNO = NUMERICO (p, s) SENZA SEGNO | DECIMAL(p,s) | Numerico esatto di precisione selezionabile |
Precisione superiore a 38 e scala superiore a 37 non supportate |
FLOAT4/REALE | REAL | Numero in virgola mobile a precisione singola | Nessuno |
FLOAT4/REAL NON FIRMATO | REAL | Numero in virgola mobile a precisione singola | Nessuno |
DOUBLE/REAL/FLOAT8 | DOUBLE PRECISION | Numero in virgola mobile a precisione doppia | Nessuno |
DOUBLE/REAL/FLOAT8 NON FIRMATO | DOUBLE PRECISION | Numero in virgola mobile a precisione doppia | Nessuno |
BIT (n) | BARBYTE(8) | Valore binario a lunghezza variabile | Nessuno |
BINARY(n) | BARBYTE (n) | Valore binario a lunghezza variabile | Nessuno |
VARBINARY(n) | VARBYTE (n) | Valore binario a lunghezza variabile | Nessuno |
CHAR(n) | VARCHAR(n) | Valore di stringa di lunghezza variabile | Nessuno |
VARCHAR(n) | VARCHAR(n) | Valore di stringa di lunghezza variabile | Nessuno |
TEXT | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
TINYTEXT | VARCHAR(255) | Valore di stringa a lunghezza variabile fino a 255 caratteri | Nessuno |
MEDIUMTEXT | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
LONGTEXT | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
ENUM | VARCHAR(1020) | Valore di stringa a lunghezza variabile fino a 1.020 caratteri | Nessuno |
SET | VARCHAR(1020) | Valore di stringa a lunghezza variabile fino a 1.020 caratteri | Nessuno |
DATE | DATE | Data di calendario (anno, mese, giorno) | Nessuno |
DATETIME | TIMESTAMP | Data e ora (senza fuso orario) | Nessuno |
TIMESTAMP(p) | TIMESTAMP | Data e ora (senza fuso orario) | Nessuno |
TIME | VARCHAR(18) | Valore di stringa a lunghezza variabile fino a 18 caratteri | Nessuno |
ANNO | VARCHAR(4) | Valore di stringa a lunghezza variabile fino a 4 caratteri | Nessuno |
JSON | SUPER | Dati o documenti semistrutturati come valori | Nessuno |
Aurora PostgreSQL
Le integrazioni zero-ETL per Aurora PostgreSQL non supportano tipi di dati personalizzati o tipi di dati creati da estensioni.
Tipo di dati Aurora PostgreSQL | Tipo di dati di Amazon Redshift | Descrizione | Limitazioni |
---|---|---|---|
array | SUPER | Dati o documenti semistrutturati come valori | Nessuno |
bigint | BIGINT | Intero a otto byte firmato | Nessuno |
grande seriale | BIGINT | Intero a otto byte firmato | Nessuno |
bit variabile (n) | BARBYTE (n) | Valore binario a lunghezza variabile fino a 16.777.216 byte | Nessuno |
bit (n) | BARBYTE (n) | Valore binario a lunghezza variabile fino a 16.777.216 byte | Nessuno |
bit, bit variabile | BARBYTE (16777216) | Valore binario a lunghezza variabile fino a 16.777.216 byte | Nessuno |
Booleano | BOOLEAN | Booleano logico (vero/falso) | Nessuno |
bytea | BARBYTE (16777216) | Valore binario a lunghezza variabile fino a 16.777.216 byte | Nessuno |
carattere (n) | CHAR(n) | Valore di stringa di caratteri a lunghezza fissa fino a 65.535 byte | Nessuno |
carattere variabile (n) | VARCHAR(65535) | Valore della stringa di caratteri a lunghezza variabile fino a 65.535 caratteri | Nessuno |
cid | BIGINT |
Intero a otto byte firmato |
Nessuno |
sidro |
ARCHAR (19) |
Valore di stringa a lunghezza variabile fino a 19 caratteri |
|
data | DATE | Data di calendario (anno, mese, giorno) |
Valori superiori a 294.276 d.C. Non sono supportati |
double precision | DOUBLE PRECISION | Numeri a virgola mobile a doppia precisione | Valori subnormali non completamente supportati |
gtsvector |
VARCHAR(65535) |
Valore di stringa a lunghezza variabile fino a 65.535 caratteri |
Nessuno |
inet |
VARCHAR (19) |
Valore di stringa a lunghezza variabile fino a 19 caratteri |
Nessuno |
integer | INTEGER | Intero a quattro byte firmato | Nessuno |
int2 vector |
SUPER | Dati o documenti semistrutturati come valori. | Nessuno |
intervallo | INTERVAL | Durata del tempo | Sono supportati solo i tipi INTERVAL che specificano un qualificatore anno/mese o un qualificatore da giorno a secondo. |
json | SUPER | Dati o documenti semistrutturati come valori | Nessuno |
jsonb | SUPER | Dati o documenti semistrutturati come valori | Nessuno |
percorso json | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
macaddr |
VARCHAR (17) | Valore di stringa a lunghezza variabile fino a 17 caratteri | Nessuno |
macaddr8 |
BARRA (23) | Valore di stringa a lunghezza variabile fino a 23 caratteri | Nessuno |
money | DECIMALE (20,3) | Importo in valuta | Nessuno |
nome | VARCHAR (64) | Valore di stringa a lunghezza variabile fino a 64 caratteri | Nessuno |
numeric(p,s) | DECIMAL(p,s) | Valore di precisione fisso definito dall'utente |
|
oid | BIGINT | Intero a otto byte firmato | Nessuno |
vettore oid | SUPER | Dati o documenti semistrutturati come valori. | Nessuno |
pg_brin_bloom_summary | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
pg_dependencies | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
pg_lsn | VARCHAR (17) | Valore di stringa a lunghezza variabile fino a 17 caratteri | Nessuno |
pg_mcv_list | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
pg_ndistinct | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
pg_node_tree | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
pg_snapshot | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
real | REAL | Numero in virgola mobile a precisione singola | Valori subnormali non completamente supportati |
recursore | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
smallint | SMALLINT | Intero a due byte firmato | Nessuno |
seriale piccolo | SMALLINT | Intero a due byte firmato | Nessuno |
seriale | INTEGER | Intero a quattro byte firmato | Nessuno |
text | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
tid | VARCHAR (23) | Valore di stringa a lunghezza variabile fino a 23 caratteri | Nessuno |
ora [(p)] senza fuso orario | VARCHAR (19) | Valore di stringa a lunghezza variabile fino a 19 caratteri | Infinity e -Infinity valori non supportati |
ora [(p)] con fuso orario | VARCHAR (22) | Valore di stringa a lunghezza variabile fino a 22 caratteri | Infinity e -Infinity valori non supportati |
timestamp [(p)] senza fuso orario | TIMESTAMP | Data e ora (senza fuso orario) |
|
timestamp [(p)] con fuso orario | TIMESTAMPTZ | Data e ora (con fuso orario) |
|
tsquery | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
tsvector | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
txid_snapshot | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
uuid | VARCHAR (36) | Stringa di 36 caratteri a lunghezza variabile | Nessuno |
xid | BIGINT | Intero a otto byte firmato | Nessuno |
xid8 | DECIMALE (20, 0) | Decimale a precisione fissa | Nessuno |
xml | VARCHAR(65535) | Valore di stringa a lunghezza variabile fino a 65.535 caratteri | Nessuno |
Operazioni DDL per Aurora PostgreSQL
Amazon Redshift è derivato da PostgreSQL, quindi condivide diverse funzionalità con Aurora PostgreSQL grazie alla loro architettura PostgreSQL comune. Le integrazioni zero-ETL sfruttano queste somiglianze per semplificare la replica dei dati da Aurora PostgreSQL ad Amazon Redshift, mappando i database per nome e utilizzando la struttura condivisa di database, schemi e tabelle.
Considera i seguenti punti quando gestisci le integrazioni Aurora PostgreSQL Zero-ETL:
-
L'isolamento è gestito a livello di database.
-
La replica avviene a livello di database.
-
I database Aurora PostgreSQL sono mappati ai database Amazon Redshift per nome, con i dati che fluiscono verso il corrispondente database Redshift rinominato se l'originale viene rinominato.
Nonostante le loro somiglianze, Amazon Redshift e Aurora PostgreSQL presentano differenze importanti. Le seguenti sezioni descrivono le risposte del sistema Amazon Redshift per le operazioni DDL comuni.
Operazioni di database
La tabella seguente mostra le risposte di sistema per le operazioni DDL del database.
Operazione DDL | Risposta del sistema Redshift |
---|---|
CREATE DATABASE |
Nessuna operazione |
DROP DATABASE |
Amazon Redshift elimina tutti i dati nel database Redshift di destinazione. |
RENAME DATABASE |
Amazon Redshift elimina tutti i dati nel database di destinazione originale e risincronizza i dati nel nuovo database di destinazione. Se il nuovo database non esiste, devi crearlo manualmente. Per istruzioni, consulta Creare un database di destinazione in Amazon Redshift. |
Operazioni dello schema
La tabella seguente mostra le risposte del sistema per le operazioni DDL dello schema.
Operazione DDL | Risposta del sistema Redshift |
---|---|
CREATE SCHEMA |
Nessuna operazione |
DROP SCHEMA |
Amazon Redshift elimina lo schema originale. |
RENAME SCHEMA |
Amazon Redshift elimina lo schema originale, quindi risincronizza i dati nel nuovo schema. |
Operazioni sulle tabelle
La tabella seguente mostra le risposte del sistema per le operazioni DDL della tabella.
Operazione DDL | Risposta del sistema Redshift |
---|---|
CREATE TABLE |
Amazon Redshift crea la tabella. Alcune operazioni impediscono la creazione della tabella, ad esempio la creazione di una tabella senza una chiave primaria o l'esecuzione del partizionamento dichiarativo. Per ulteriori informazioni, consulta Limitazioni di Aurora PostgreSQL e Risoluzione dei problemi delle ETL integrazioni zero di Aurora con Amazon Redshift. |
DROP TABLE |
Amazon Redshift abbandona la situazione. |
TRUNCATE TABLE |
Amazon Redshift tronca la tabella. |
ALTER TABLE
(RENAME... ) |
Amazon Redshift rinomina la tabella o la colonna. |
ALTER TABLE (SET
SCHEMA ) |
Amazon Redshift elimina la tabella nello schema originale e risincronizza la tabella nel nuovo schema. |
ALTER TABLE (ADD PRIMARY
KEY ) |
Amazon Redshift aggiunge una chiave primaria e risincronizza la tabella. |
ALTER TABLE (ADD
COLUMN ) |
Amazon Redshift aggiunge una colonna alla tabella. |
ALTER TABLE (DROP
COLUMN ) |
Amazon Redshift elimina la colonna se non è una colonna chiave primaria. Altrimenti, risincronizza la tabella. |
ALTER TABLE (SET
LOGGED/UNLOGGED ) |
Se modifichi la tabella in loggata, Amazon Redshift risincronizza la tabella. Se modifichi la tabella in unlogged, Amazon Redshift elimina la tabella. |