Condivisione dell'accesso in scrittura ai dati (anteprima) - Amazon Redshift

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

Condivisione dell'accesso in scrittura ai dati (anteprima)

Puoi condividere oggetti di database per le letture e le scritture tra diversi cluster Amazon Redshift o gruppi di lavoro Serverless Amazon Redshift all'interno dello Account AWS stesso, tra account e regioni. Le procedure in questo argomento mostrano come configurare la condivisione dei dati che include le autorizzazioni di scrittura. È possibile concedere autorizzazioni quali SELECT, INSERT e UPDATE per tabelle diverse e USAGE e CREATE per schemi. I dati sono attivi e disponibili per tutti i warehouse non appena viene eseguita una transazione di scrittura. Gli amministratori degli account Producer possono determinare se i namespace o le aree geografiche specifici devono essere resi di sola lettura o se consentire l'accesso ai dati. read-and-write

Le sezioni che seguono mostrano come configurare la condivisione dei dati. Le procedure presuppongono che si utilizzi un database in un cluster con provisioning o in un gruppo di lavoro Amazon Redshift serverless.

Condivisione dei dati in sola lettura e condivisione dei dati in lettura e scrittura

In precedenza, gli oggetti nelle unità di condivisione dati venivano solo letti in tutte le circostanze. La scrittura in un oggetto di un'unità di condivisione dati è una nuova funzionalità. Gli oggetti nelle unità di condivisione dati sono abilitati alla scrittura solo quando un producer assegna specificamente i privilegi di scrittura come INSERT o CREATE agli oggetti dell'unità di condivisione dati. Inoltre, per la condivisione tra più account, un produttore deve autorizzare il datashare per le scritture e il consumatore deve associare cluster e gruppi di lavoro specifici per le scritture. I dettagli sono riportati nelle sezioni successive di questo argomento.

Autorizzazioni che puoi concedere alle condivisioni di dati (anteprima)

I diversi tipi di oggetti e le varie autorizzazioni che puoi assegnare in un contesto di condivisione dei dati.

Schemi:

  • USAGE

  • CREATE

Tabelle:

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • TRUNCATE

  • DROP

  • REFERENCES

Funzioni:

  • EXECUTE

Database:

  • CREATE

Requisiti e limitazioni per l'unità di condivisione dati in anteprima

  • Connessioni: è necessario connettersi direttamente a un database di datashare o eseguire il comando USE per scrivere su datashare. Tuttavia, presto abiliteremo la possibilità di eseguire questa operazione usando una notazione in tre parti.

  • Disponibilità: è necessario utilizzare gruppi di lavoro Serverless, cluster ra3.4xl o cluster ra3.16xl per utilizzare questa funzionalità. È previsto il supporto per i cluster ra3.xlplus.

  • Metadata Discovery: se sei un consumatore connesso direttamente a un database di datashare tramite i driver JDBC, ODBC o Python Redshift, puoi visualizzare i dati del catalogo nei seguenti modi:

  • Data API: non è possibile connettersi ai database di datashare tramite l'API Data. Il supporto per questa operazione sarà presto disponibile.

  • Visibilità delle autorizzazioni: i consumatori non possono vedere le autorizzazioni concesse alle condivisioni di dati. Aggiungeremo presto questa operazione.

  • Crittografia: per la condivisione dei dati tra account, è necessario crittografare sia il cluster di produttori che quello di consumatori.

  • Livello di isolamento: il livello di isolamento del database deve essere l'isolamento delle istantanee per consentire ad altri gruppi di lavoro e cluster Serverless di scrivervi.

  • Operazioni automatiche: i consumatori che scrivono su oggetti datashare non attiveranno un'operazione di analisi automatica. Di conseguenza, il producer deve eseguire manualmente l'analisi dopo l'inserimento dei dati nella tabella per aggiornare le statistiche della tabella. In caso contrario, i piani di query potrebbero non essere ottimali.

  • Interrogazioni e transazioni con più dichiarazioni: le query con più istruzioni al di fuori di un blocco di transazioni non sono attualmente supportate. Di conseguenza, se utilizzi un editor di query come dbeaver e hai più query di scrittura, devi racchiudere le query in un'istruzione di transazione BEGIN... END esplicita.

Istruzioni SQL supportate

Queste istruzioni sono supportate per la versione di anteprima pubblica della condivisione di dati con le operazioni di scrittura:

  • BEGIN | START TRANSACTION

  • END | COMMIT | ROLLBACK

  • COPY senza COMPUPDATE

  • { CREATE | DROP } SCHEMA

  • { CREATE | DROP | SHOW } TABLE

  • CREATE TABLE table_name AS

  • DELETE

  • { GRANT | REVOKE } privilege_name ON OBJECT_TYPE object_name TO consumer_user

  • INSERT

  • SELECT

  • INSERT INTO SELECT

  • TRUNCATE

  • UPDATE

  • Colonne con tipo di dati Super

Tipi di istruzioni non supportati: i seguenti tipi non sono supportati:

  • Query con più istruzioni sui warehouse consumer che scrivono nei producer.

  • Query di dimensionamento simultaneo con scrittura dai consumer ai producer.

  • Processi di copia automatica con scrittura dai consumer ai producer.

  • Processi di streaming con scrittura dai consumer ai producer.

  • Consumer che creano tabelle di integrazione Zero-ETL su cluster producer. Per ulteriori informazioni sulle integrazioni Zero-ETL, consulta Utilizzo delle integrazioni Zero-ETL.

  • Scrittura in una tabella con una chiave di ordinamento interleaved.

Condivisione di dati all'interno di un account con autorizzazioni di scrittura come amministratore dell'account produttore (anteprima)

In precedenza, gli oggetti nelle unità di condivisione dati venivano solo letti in tutte le circostanze. La scrittura in un oggetto di un'unità di condivisione dati è una nuova funzionalità. Gli oggetti nelle unità di condivisione dati sono abilitati alla scrittura solo quando un producer assegna specificamente i privilegi di scrittura come INSERT o CREATE agli oggetti dell'unità di condivisione dati. I dettagli sono riportati nelle sezioni successive di questo argomento.

Per la documentazione esistente delle unità di condivisione dati di sola lettura, consulta Condivisione di dati tra cluster in Amazon Redshift.

Per iniziare la condivisione dei dati, l'amministratore del producer crea un'unità di condivisione dati e aggiunge gli oggetti:

  1. Il proprietario o l'utente con privilegi avanzati del database producer crea un'unità di condivisione dati. L'unità di condivisione dati è un container logico di oggetti, autorizzazioni e consumer del database. I consumer sono cluster o spazi dei nomi Amazon Redshift serverless presenti nel tuo account e in altri. Ogni unità di condivisione dati è associata al database in cui è stata creata ed è possibile aggiungere solo gli oggetti di quel database. Il seguente comando crea un'unità di condivisione dati:

    CREATE DATASHARE my_datashare [PUBLICACCESSIBLE = TRUE];

    L'impostazione PUBLICACCESSIBLE = TRUE consente ai consumer di eseguire query sull'unità di condivisione dati da cluster accessibili pubblicamente e gruppi di lavoro con provisioning. Disattivala o impostala esplicitamente su false se non vuoi consentirla.

    Il proprietario dell'unità di condivisione dati deve assegnare l'autorizzazione USAGE per gli schemi che desidera aggiungere all'unità di condivisione dati. Il comando GRANT è nuovo. Viene utilizzato per assegnare varie azioni per lo schema, tra cui CREATE e USAGE. Gli schemi contengono oggetti condivisi:

    CREATE SCHEMA myshared_schema1; CREATE SCHEMA myshared_schema2; GRANT USAGE ON SCHEMA myshared_schema1 TO DATASHARE my_datashare; GRANT CREATE, USAGE ON SCHEMA myshared_schema2 TO DATASHARE my_datashare;

    In alternativa, l'amministratore può continuare a eseguire i comandi ALTER per aggiungere uno schema all'unità di condivisione dati. Quando uno schema viene aggiunto in questo modo, vengono assegnate solo le autorizzazioni USAGE.

    ALTER DATASHARE my_datashare ADD SCHEMA myshared_schema1;
  2. Dopo aver aggiunto gli schemi, l'amministratore può assegnare le autorizzazioni dell'unità di condivisione dati per gli oggetti dello schema, che possono essere autorizzazioni in lettura e scrittura. L'esempio GRANT ALL mostra come assegnare tutte le autorizzazioni.

    GRANT SELECT, INSERT ON TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1 TO DATASHARE my_datashare; GRANT ALL ON TABLE myshared_schema1.table4 TO DATASHARE my_datashare;

    È possibile continuare a eseguire comandi come ALTER DATASHARE per aggiungere le tabelle. In tal caso, vengono assegnate solo le autorizzazioni SELECT per gli oggetti aggiunti.

    ALTER DATASHARE my_datashare ADD TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1;
  3. L'amministratore assegna l'utilizzo dell'unità di condivisione dati a uno spazio dei nomi specifico dell'account. Puoi trovare l'ID dello spazio dei nomi come parte dell'ARN nella pagina dei dettagli del cluster, nella pagina dei dettagli dello spazio dei nomi Amazon Redshift serverless o eseguendo il comando SELECT current_namespace;. Per ulteriori informazioni, consulta CURRENT_NAMESPACE.

    GRANT USAGE ON DATASHARE my_datashare TO NAMESPACE '86b5169f-012a-234b-9fbb-e2e24359e9a8';