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 tabelle di data lake a un datashare
Con un datashare, un produttore di dati può condividere in modo sicuro oggetti di database con granularità fine, come schemi e tabelle, con i consumatori nello stesso account o in account diversi. AWS Il produttore può anche condividere oggetti tra regioni. Questo argomento descrive come aggiungere oggetti da un data lake, in particolare dal AWS Glue data catalog, a un datashare. Copre due casi d'uso:
-
Aggiungere una vista con associazione tardiva a un datashare che fa riferimento a una tabella da un data lake: questa operazione è utile per un utente, poiché la configurazione preliminare, come la definizione delle autorizzazioni sui dati di origine esterna, ad esempio con Lake Formation, è probabilmente già completata. Un ulteriore vantaggio è che una vista aggiunta a un datashare può unire le tabelle del data lake con le tabelle native di Redshift.
-
Aggiungere direttamente una tabella da uno schema esterno a un datashare: in questo modo gli oggetti del data lake sono disponibili ai consumatori senza livelli o logiche aggiuntivi. I consumatori possono interrogare la tabella o unirla alle tabelle sul consumatore.
Questi casi si applicano dopo aver fatto riferimento a una tabella dal catalogo AWS dati in Redshift utilizzando CREATE EXTERNAL SCHEMA. Qualsiasi tabella del catalogo AWS dati può essere la fonte.
Nota
Le tabelle Data Lake che aggiungi a un datashare possono includere tabelle registrate con Lake Formation e tabelle del catalogo AWS Glue dati.
Crea uno schema esterno e una tabella esterna
Crei uno schema esterno e una tabella esterna per aggiungerli al datashare nelle sezioni che seguono. Questi sono passaggi preliminari. Se l'hai già fatto, puoi saltare questa sezione.
-
Sul produttore, crea uno schema esterno che faccia riferimento ai dati del data lake archiviati in Amazon S3. Lo schema esterno fa riferimento al AWS Glue Data Catalog. Il ruolo e la regione nell'esempio sono esempi:
CREATE EXTERNAL SCHEMA external_schema_name FROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role' REGION 'us-east-1';
-
Crea una tabella di data lake nello schema esterno.
CREATE EXTERNAL TABLE external_schema_name.sales( salesid INTEGER, sellerid INTEGER, buyerid INTEGER, saledate DATE, pricepaid DECIMAL(8,2)) ROW FORMAT delimited FIELDS TERMINATED BY '\t' STORED AS textfile LOCATION 's3://redshift-downloads/tickit/spectrum/sales/';
L'esempio include
LOCATION
. Deve essere nel modulos3://{bucket_name}/{folder}/
, dove è specificata la cartella. La cartella deve avere una lunghezza di almeno un carattere. Facoltativamente, puoi includere sottocartelle. Per vedere altri esempi di creazione di tabelle in un data lake, consulta Esempi di CREATE EXTERNAL TABLE.Nota
La condivisione è supportata solo per le tabelle in cui il ruolo IAM sul produttore ha accesso SELECT sulla tabella.
Aggiungi una vista con associazione tardiva che fa riferimento a una tabella di data lake a un datashare
Quando si creano tabelle basate su uno schema esterno dal catalogo AWS dati e si desidera aggiungerle a un datashare, il modo più comune per farlo è aggiungere una vista Redshift late-binding che faccia riferimento alla tabella creata, che contiene i dati del data lake. La procedura seguente mostra i passaggi:
-
Create una vista con associazione tardiva che faccia riferimento alla tabella esterna creata in precedenza:
CREATE VIEW lbv AS select * from external_schema_name.sales, other_schema.t1 WITH NO SCHEMA BINDING;
-
Aggiungi lo schema di visualizzazione al datashare. Questo è lo schema locale che contiene la vista late-binding.
ALTER DATASHARE dsx_datashare ADD SCHEMA public;
-
Aggiungi lo schema che contiene la tabella a cui fa riferimento la vista late-binding al datashare. L'aggiunta dello schema è necessaria per tutte le tabelle di base a cui si fa riferimento in una vista aggiunta a un datashare, indipendentemente dal fatto che lo schema contenga oggetti di database locali o oggetti provenienti da un data lake. Si noti che è necessario aggiungere questo schema prima di aggiungere la vista late-binding.
ALTER DATASHARE dsx_datashare ADD SCHEMA external_schema_name; ALTER DATASHARE dsx_datashare ADD SCHEMA other_schema;
-
Aggiungi la vista al datashare utilizzando un comando SQL. Si noti che il nome della tabella include il prefisso dello schema.
ALTER DATASHARE my_datashare ADD TABLE public.lbv;
-
Conferma che la vista e gli schemi siano stati aggiunti correttamente al datashare:
SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';
-
L'amministratore dei consumatori crea un database dal datashare e quindi ne concede l'utilizzo agli utenti consumer.
Dopo aver completato i passaggi, gli utenti consumer del database con accesso alla visualizzazione del datashare possono interrogare i dati.
Aggiungi una tabella di data lake direttamente a un datashare
L'aggiunta di una tabella in uno schema esterno a un datashare è simile all'aggiunta di una vista. Ciò è utile nel caso in cui un consumatore desideri interrogare la tabella del data lake nel suo stato originale o se desidera unirla alle tabelle del data warehouse del consumatore. I passaggi seguenti mostrano come aggiungere una tabella di data lake a un datashare utilizzando SQL.
-
Crea uno schema esterno e una tabella esterna, come descritto nella prima sezione di questo argomento.
-
Scopri le tabelle esistenti nello schema esterno, per confermare che la tabella che hai creato è disponibile:
SELECT * FROM svv_external_tables WHERE schemaname = 'external_schema_name';
-
Aggiungi lo schema esterno al datashare:
ALTER DATASHARE my_datashare ADD SCHEMA external_schema_name;
-
Aggiungi la tabella esterna al datashare. Nota che il nome della tabella include il prefisso dello schema:
ALTER DATASHARE my_datashare ADD TABLE external_schema_name.sales;
-
Conferma che la tabella sia stata aggiunta correttamente al datashare:
SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';
Per istruzioni più dettagliate, consulta Condivisione dell'accesso in lettura ai dati all'interno di un AWS account.
-
Sul consumer, ossia il database che riceve i dati condivisi, l'amministratore associa il datashare per rendere disponibili le tabelle condivise alle quali gli utenti possono interrogarli. Per ulteriori informazioni su come eseguire questo passaggio, vedere Gestione delle condivisioni di dati da altri account come consumatore.
Dopo che gli amministratori hanno completato i passaggi, gli utenti del database sul consumer possono scrivere query per recuperare i dati dalla tabella condivisa e unirla ad altre tabelle sul consumer.
Note di utilizzo per l'aggiunta di oggetti Data Lake a un datashare
Ci sono diversi elementi da tenere in considerazione quando si utilizzano tabelle e viste di un data lake in un datashare:
-
Registrazione con AWS CloudTrail: l'account del produttore di dati può utilizzare i AWS CloudTrail log per verificare quando viene effettuato l'accesso alle tabelle del data lake condivise tramite un datashare:
-
Utilizzo dei dati di registro per controllare l'accesso ai dati: CloudTrail i log registrano i dettagli su chi accede alle tabelle condivise, inclusi i produttori e i consumatori di datashare Redshift. Gli identificatori sono disponibili nel campo sotto i log.
ExternalId
AssumeRole
CloudTrail Il proprietario dei dati può configurare ulteriori limitazioni all'accesso ai dati in una policy IAM mediante azioni. Per ulteriori informazioni sulla definizione dell'accesso ai dati tramite policy, consulta Accesso agli AWS account di proprietà di terze parti.
-
-
Sicurezza e autorizzazioni per i consumatori: per le tabelle registrate di Lake Formation, le risorse Amazon S3 sono protette da Lake Formation e rese disponibili utilizzando le credenziali fornite da Lake Formation.
Considerazioni sulla fatturazione per l'aggiunta di oggetti Data Lake a un datashare
Di seguito vengono descritti in dettaglio come vengono attribuiti i costi per l'archiviazione e la scansione degli oggetti del data lake in un datashare:
-
Quando un consumatore richiede oggetti condivisi da un data lake, il costo della scansione viene fatturato al consumatore.
-
Quando il consumatore è un cluster fornito, Redshift utilizza Redshift Spectrum per scansionare i dati di Amazon S3. Pertanto, il costo di Spectrum viene fatturato all'account del consumatore.
-
Quando il consumatore è un gruppo di lavoro Serverless di Amazon Redshift, Spectrum non è previsto alcun costo separato.
-
-
I costi di archiviazione e le operazioni di Amazon S3, come i bucket di elenchi, vengono fatturati all'account proprietario di ogni bucket Amazon S3.
Per ulteriori dettagli sulla fatturazione per Amazon Redshift Serverless, consulta Fatturazione per Amazon Redshift Serverless. Ulteriori informazioni su fatturazione e prezzi sono disponibili nella pagina dei prezzi di Amazon Redshift