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 SELECTINSERT, e UPDATE per tabelle USAGE e CREATE schemi diversi. 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 condivisioni di dati sono abilitati alla scrittura solo quando un produttore concede specificamente privilegi di scrittura come o sugli oggetti al datashare. INSERT CREATE 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 USE comando 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à.

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

    • SQLSHOWcomandi.

    • Query su tabelle e viste information_schema.

    • Interrogazione delle viste SVVdei metadati.

  • Dati API: non è possibile connettersi ai database datashare tramite Data. API 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 tue query in un formato esplicito... BEGIN ENDdichiarazione di transazione.

SQLdichiarazioni 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

  • COPYsenza COMPUPDATE

  • { CREATE | DROP } SCHEMA

  • { CREATE | DROP | SHOW } TABLE

  • CREATETABLEtable_name AS

  • DELETE

  • {GRANT|REVOKE} privilege_name ON _ object_name A consumer_user OBJECT TYPE

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

  • Consumatori che creano tabelle a integrazione zero su cluster di produttori. ETL Per ulteriori informazioni sulle ETL integrazioni zero, consulta Lavorare con le integrazioni zero. ETL

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

Condivisione dei 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 nei datashare sono abilitati alla scrittura solo quando un produttore concede specificamente privilegi di scrittura simili INSERT o su oggetti al datashare. CREATE 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];

    Impostazione PUBLICACCESSIBLE = TRUE consente ai consumatori di interrogare il datashare da cluster e gruppi di lavoro accessibili pubblicamente. Disattivala o impostala esplicitamente su false se non vuoi consentirla.

    Il proprietario del datashare deve concedere gli schemi che USAGE desidera aggiungere al datashare. Il comando è nuovo. GRANT Viene utilizzato per concedere varie azioni sullo schema, tra cui CREATE eUSAGE. 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 ALTER comandi per aggiungere uno schema al datashare. Quando uno schema viene aggiunto in questo modo, vengono concesse solo le USAGE autorizzazioni.

    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'GRANTALLesempio mostra come concedere 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;

    Puoi continuare a eseguire comandi come ALTER DATASHARE aggiungere tabelle. Quando lo fai, vengono concesse solo SELECT le autorizzazioni 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 nella pagina dei dettagli del cluster, ARN 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';