Condivisione di dati con licenza Amazon Redshift su AWS Data Exchange - 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 di dati con licenza Amazon Redshift su AWS Data Exchange

Quando creano AWS Data Exchange condivisioni di dati e le aggiungono a un AWS Data Exchange prodotto, i fornitori possono concedere in licenza i dati in Amazon Redshift per consentire ai consumatori di scoprire, abbonarsi e up-to-date interrogare i dati in Amazon Redshift quando dispongono di abbonamenti attivi. AWS Data Exchange

Con le AWS Data Exchange condivisioni di dati aggiunte a un AWS Data Exchange prodotto, i consumatori hanno automaticamente accesso alle condivisioni di dati del prodotto all'inizio dell'abbonamento e mantengono l'accesso finché l'abbonamento è attivo.

Utilizzo delle condivisioni AWS Data Exchange di dati in qualità di consumatore

Con Amazon Redshift, puoi accedere e analizzare i set di dati AWS Data Exchange senza dover archiviare o gestire copie dei dati.

Se sei un consumatore, segui questi passaggi per scoprire prodotti di dati che contengono AWS Data Exchange condivisioni di dati e interrogare i dati di Amazon Redshift:

  1. Sulla AWS Data Exchange console, scopri e sottoscrivi prodotti di dati che contengono datashare. AWS Data Exchange

    Una volta avviato l'abbonamento, puoi accedere ai dati con licenza di Amazon Redshift importati come asset in set di dati che contengono condivisioni di dati. AWS Data Exchange

    Per ulteriori informazioni su come iniziare a utilizzare prodotti di dati che contengono AWS Data Exchange datashare, consulta Abbonamento a prodotti di dati su. AWS Data Exchange

  2. Sulla console Amazon Redshift, crea un cluster Amazon Redshift, se necessario.

    Per informazioni su come creare un cluster, consultare Creazione di un cluster.

  3. Elencare le unità di condivisione dati rese disponibili e visualizzare il contenuto delle unità di condivisione dati. Per ulteriori informazioni, consulta DESC DATASHARE e SHOW DATASHARES.

    Nell'esempio seguente vengono visualizzate le informazioni relative alle unità di condivisione dati in ingresso di uno spazio dei nomi producer specificato. Quando esegui DESC DATASHARE come amministratore dei consumatori, devi specificare le opzioni ACCOUNT e NAMESPACE per visualizzare le condivisioni di dati in entrata.

    DESC DATASHARE salesshare of ACCOUNT '123456789012' NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d'; producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new -------------------+--------------------------------------+------------+------------+-------------+---------------------------------+------------------ 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_category_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | schema | public | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | view | public.sales_data_summary_view |

    Solo gli utenti con privilegi avanzati per il cluster possono completare questa opzione. È possibile utilizzare anche SVV_DATASHARES per visualizzare le unità di condivisione dati e SVV_DATASHARE_OBJECTS per visualizzare gli oggetti all'interno dell'unità di condivisione dati.

    L'esempio seguente mostra le unità di condivisione dati in uscita in un cluster producer.

    SHOW DATASHARES LIKE 'sales%'; share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace ------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+-------------------------------------- salesshare | | | | INBOUND | | t | | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d
  4. Creare database locali che fanno riferimento alle unità di condivisione dati. È necessario specificare l'opzione ACCOUNT e NAMESPACE per creare database locali per l'unità unità di condivisione dati AWS Data Exchange . Per ulteriori informazioni, consulta CREATE DATABASE.

    CREATE DATABASE sales_db FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';

    Se desideri un controllo più granulare sull'accesso agli oggetti nel database locale, utilizza la clausola WITH PERMISSIONS durante la creazione del database. In tal modo puoi assegnare le autorizzazioni per gli oggetti del database nel passaggio 6.

    CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';

    È possibile vedere i database creati dall'unità di condivisione dati eseguendo una query sulla vista SVV_REDSHIFT_DATABASE. Puoi connetterti direttamente a questi database oppure puoi connetterti a un database locale sul tuo cluster di consumatori ed eseguire una query tra database per interrogare i dati dai database del datashare. Non è possibile creare una unità di condivisione dati sugli oggetti di database creati da una unità di condivisione dati esistente. Tuttavia, è possibile copiare i dati in una tabella separata nel cluster consumer, eseguire qualsiasi elaborazione necessaria e quindi condividere i nuovi oggetti creati.

    Per creare i database dalle unità di condivisione dati è possibile utilizzare anche la console Amazon Redshift. Per ulteriori informazioni, consulta Creazione di database da unità di condivisione dati.

  5. (Facoltativo) Creare schemi esterni per fare riferimento e assegnare autorizzazioni granulari a schemi specifici nel database consumer importato nel cluster consumer. Per ulteriori informazioni, consulta CREATE EXTERNAL SCHEMA.

    CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE 'sales_db' SCHEMA 'public';
  6. Assegna ai ruoli o agli utenti nel cluster consumer le autorizzazioni per i database e i riferimenti allo schema creati dalle unità di condivisione dati in base alle esigenze. Per ulteriori informazioni, consulta GRANT o REVOKE.

    GRANT USAGE ON DATABASE sales_db TO Bob;
    GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;

    Se hai creato il database senza la clausola WITH PERMISSIONS, puoi assegnare agli utenti e ai ruoli solo le autorizzazioni per l'intero database creato dall'unità di condivisione dati. In alcuni casi, sono necessari controlli a grana fine su un sottoinsieme di oggetti di database creati dall'unità di condivisione dati. In tal caso, è possibile creare un riferimento allo schema esterno che punti a schemi specifici nell'unità di condivisione dati (come descritto nel passaggio precedente) e fornire autorizzazioni granulari a livello di schema.

    È inoltre possibile creare viste ad associazione tardiva sugli oggetti condivisi e utilizzarle per assegnare autorizzazioni granulari. È inoltre possibile considerare che i cluster producer creino ulteriori unità di condivisione dati con la granularità richiesta. Puoi definire tutti i riferimenti allo schema di cui hai bisogno per il database creato dall'unità di condivisione dati.

    Se hai creato il database con la clausola WITH PERMISSIONS nel passaggio 4, devi assegnare le autorizzazioni per gli oggetti nel database condiviso. Un utente con solo l'autorizzazione USAGE non può accedere a nessun oggetto in un database creato con la clausola WITH PERMISSIONS finché non ottiene le autorizzazioni aggiuntive a livello di oggetto.

    GRANT SELECT ON sales_db.public.tickit_sales_redshift to Bob;
  7. Eseguire una query sui dati negli oggetti condivisi nelle unità di condivisione dati.

    Gli utenti e i ruoli con autorizzazioni per i database consumer e gli schemi nei cluster consumer possono esplorare e navigare tra i metadati di qualsiasi oggetto condiviso. Possono inoltre esplorare e navigare tra oggetti locali in un cluster consumer. A tale scopo, utilizzano i driver JDBC o ODBC, i comandi SHOW o le viste SVV_ALL e SVV_REDSHIFT.

    I cluster producer potrebbero avere molti schemi nel database, nelle tabelle e nelle viste all'interno di ogni schema. Gli utenti sul lato consumer possono vedere solo il sottoinsieme di oggetti che sono resi disponibili attraverso l'unità di condivisione dati. Questi utenti non possono visualizzare gli interi metadati dal cluster producer. Questo approccio consente di fornire un controllo granulare della sicurezza dei metadati con la condivisione dei dati.

    È possibile continuare a connettersi ai database locali nel cluster. Ma ora, è anche possibile leggere dai database e dagli schemi creati dall'unità di condivisione dati utilizzando la notazione database.schema.tabella in tre parti. È possibile eseguire query che si estendono su tutti i database visibili. Questi possono essere database locali sul cluster o database creati dalle unità di condivisione dati. In alternativa, è possibile connettersi direttamente a questi database di consumatori ed eseguire query sugli oggetti condivisi con notazione parziale.

    È possibile accedere ai dati mediante la qualifica completa. Per ulteriori informazioni, consulta Esempi di query tra database.

    SELECT * FROM sales_db.public.tickit_sales_redshift ORDER BY 1,2 LIMIT 5; salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission | saletime ---------+--------+----------+---------+---------+--------+---------+-----------+------------+--------------------- 1 | 1 | 36861 | 21191 | 7872 | 1875 | 4 | 728.00 | 109.20 | 2008-02-18 02:36:48 2 | 4 | 8117 | 11498 | 4337 | 1983 | 2 | 76.00 | 11.40 | 2008-06-06 05:00:16 3 | 5 | 1616 | 17433 | 8647 | 1983 | 2 | 350.00 | 52.50 | 2008-06-06 08:26:17 4 | 5 | 1616 | 19715 | 8647 | 1986 | 1 | 175.00 | 26.25 | 2008-06-09 08:38:52 5 | 6 | 47402 | 14115 | 8240 | 2069 | 2 | 154.00 | 23.10 | 2008-08-31 09:17:02

    È possibile utilizzare le istruzioni SELECT solo su oggetti condivisi. Tuttavia, è possibile creare tabelle nel cluster consumer eseguendo una query sui dati degli oggetti condivisi in un database locale diverso.

    Oltre alle query, i consumer possono creare viste su oggetti condivisi. Sono supportate solo le viste ad associazione tardiva o le viste materializzate. Amazon Redshift non supporta le viste regolari sui dati condivisi. Le viste create dai consumer possono estendersi su più database locali o database creati dalle unità di condivisione dati. Per ulteriori informazioni, consulta CREATE VIEW.

    // Connect to a local cluster database // Create a view on shared objects and access it. CREATE VIEW sales_data AS SELECT * FROM sales_db.public.tickit_sales_redshift WITH NO SCHEMA BINDING; SELECT * FROM sales_data;