Schemi esterni in Amazon Redshift Spectrum - 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à.

Schemi esterni in Amazon Redshift Spectrum

Questo argomento descrive come creare e utilizzare schemi esterni con Redshift Spectrum. Gli schemi esterni sono raccolte di tabelle che usi come riferimenti per accedere ai dati all'esterno del tuo cluster Amazon Redshift. Queste tabelle contengono metadati sui dati esterni letti da Redshift Spectrum.

Tutte le tabelle esterne devono essere create in uno schema esterno, che crei utilizzando un'istruzione CREATE EXTERNAL SCHEMA.

Nota

Alcune applicazioni utilizzano i termini database e schema in modo interscambiabile. In Amazon Redshift viene utilizzato il termine schema.

Uno schema esterno Amazon Redshift fa riferimento a un database esterno in un catalogo dati esterno. Puoi creare il database esterno in Amazon Redshift, in Amazon Athena, in o AWS Glue Data Catalogin un metastore Apache Hive, come Amazon. EMR Se si crea un database esterno in Amazon Redshift, il database si trova nel catalogo dati di Athena. Per creare un database in un metastore Hive, devi crearlo nell'applicazione Hive.

Amazon Redshift deve essere autorizzato ad accedere al catalogo di dati in Athena e ai file di dati in Amazon S3 per tuo conto. Per fornire tale autorizzazione, devi prima creare un ruolo (). AWS Identity and Access Management IAM Quindi colleghi il ruolo al cluster e fornisci Amazon Resource Name (ARN) per il ruolo nell'istruzione Amazon RedshiftCREATE EXTERNAL SCHEMA. Per ulteriori informazioni sull'autorizzazione , consultare IAMpolitiche per Amazon Redshift Spectrum.

Nota

Se attualmente disponi di tabelle esterne Redshift Spectrum nell'Athena Data Catalog, puoi migrare il tuo Athena Data Catalog in un Data Catalog. AWS Glue Per utilizzare un catalogo AWS Glue dati con Redshift Spectrum, potrebbe essere necessario modificare le IAM policy. Per ulteriori informazioni, consulta Upgrade to the AWS Glue Data Catalog nella Amazon Athena User Guide.

Per creare un database esterno nello stesso tempo, devi creare uno schema esterno, specificare FROM DATA CATALOG e includere la clausola CREATE EXTERNAL DATABASE nell'istruzione CREATE EXTERNAL SCHEMA.

L'esempio seguente crea uno schema esterno denominato spectrum_schema utilizzando il database esterno spectrum_db.

create external schema spectrum_schema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' create external database if not exists;

Se il catalogo dati viene gestito mediante Athena, specificare il nome di database Athena e la regione AWS in cui si trova il catalogo dati Athena.

Nell'esempio seguente viene creato uno schema esterno che utilizza il database sampledb di default nel catalogo dati di Athena.

create external schema athena_schema from data catalog database 'sampledb' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' region 'us-east-2';
Nota

Il region parametro fa riferimento alla AWS regione in cui si trova il catalogo dati Athena, non alla posizione dei file di dati in Amazon S3.

Se gestisci il tuo catalogo di dati utilizzando un metastore Hive, come AmazonEMR, i tuoi gruppi di sicurezza devono essere configurati per consentire il traffico tra i cluster.

Nella CREATE EXTERNAL SCHEMA dichiarazione, specifica FROM HIVE METASTORE e includi il metastore e il numero di porta. URI L'esempio seguente crea uno schema esterno che utilizza un database metastore Hive denominato hive_db.

create external schema hive_schema from hive metastore database 'hive_db' uri '172.10.10.10' port 99 iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole'

Per visualizzare gli schemi esterni per il tuo cluster, interroga la tabella del SCHEMA catalogo PG_ EXTERNAL _ o la vista _ _. SVV EXTERNAL SCHEMAS L'esempio seguente interroga SVV _ _SCHEMAS, che unisce EXTERNAL PG_ _ e PG_. EXTERNAL SCHEMA NAMESPACE

select * from svv_external_schemas

Per la sintassi completa del comando e alcuni esempi, consultare CREATE EXTERNAL SCHEMA.

Utilizzo di cataloghi esterni in Amazon Redshift Spectrum

I metadati per i database esterni e le tabelle esterne di Amazon Redshift Spectrum sono archiviati in un catalogo dati esterno. Per impostazione predefinita, i metadati di Redshift Spectrum sono archiviati nel catalogo dati di Athena. È possibile visualizzare e gestire i database e le tabelle di Redshift Spectrum nella console Athena.

Puoi anche creare e gestire database esterni e tabelle esterne utilizzando il linguaggio di definizione dei dati Hive (DDL) utilizzando Athena o un metastore Hive, come Amazon. EMR

Nota

Consigliamo di utilizzare Amazon Redshift per creare e gestire i database esterni e le tabelle esterne in Redshift Spectrum.

Visualizzazione dei database Redshift Spectrum in Athena e AWS Glue

È possibile creare un database esterno includendo la NOT EXISTS clausola CREATE EXTERNAL DATABASE IF come parte della dichiarazione. CREATE EXTERNAL SCHEMA In questi casi, i metadati del database esterno sono archiviati nel catalogo dati. I metadati per le tabelle esterne che crei qualificati dallo schema esterno sono archiviati anche nel tuo catalogo dati .

Athena e AWS Glue mantieni un catalogo dati per ogni supporto. Regione AWS Per visualizzare i metadati della tabella, accedi ad Athena AWS Glue o alla console. In Athena, scegli Origini dati, le tue AWS Glue, quindi visualizza i dettagli del tuo database. In AWS Glue, scegli Database, il tuo database esterno, quindi visualizza i dettagli del tuo database.

Se crei e gestisci le tue tabelle esterne utilizzando Athena, registra il database utilizzando. CREATE EXTERNAL SCHEMA Ad esempio, il comando seguente registra il database Athena denominato sampledb.

create external schema athena_sample from data catalog database 'sampledb' iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole' region 'us-east-1';

Quando esegui una query sulla vista di TABLES sistema SVV EXTERNAL _ _, vengono visualizzate le tabelle nel sampledb database Athena e anche le tabelle che hai creato in Amazon Redshift.

select * from svv_external_tables;
schemaname    | tablename        | location                                               
--------------+------------------+--------------------------------------------------------
athena_sample | elb_logs         | s3://athena-examples/elb/plaintext           
athena_sample | lineitem_1t_csv  | s3://myspectrum/tpch/1000/lineitem_csv                
athena_sample | lineitem_1t_part | s3://myspectrum/tpch/1000/lineitem_partition          
spectrum      | sales            | s3://redshift-downloads/tickit/spectrum/sales          
spectrum      | sales_part       | s3://redshift-downloads/tickit/spectrum/sales_part

Registrazione di un database di un metastore Apache Hive

Se crei tabelle esterne in un metastore Apache Hive, puoi utilizzarle CREATE EXTERNAL SCHEMA per registrare tali tabelle in Redshift Spectrum.

Nella CREATE EXTERNAL SCHEMA dichiarazione, specifica la FROM HIVE METASTORE clausola e fornisci il metastore Hive e il numero di porta. URI Il IAM ruolo deve includere l'autorizzazione per accedere ad Amazon S3 ma non richiede alcuna autorizzazione Athena. L'esempio seguente registra un metastore Hive.

create external schema if not exists hive_schema from hive metastore database 'hive_database' uri 'ip-10-0-111-111.us-west-2.compute.internal' port 9083 iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole';

Consentire al cluster Amazon Redshift di accedere al cluster Amazon EMR

Se il tuo metastore Hive si trova su AmazonEMR, devi consentire al cluster Amazon Redshift di accedere al tuo cluster Amazon. EMR A tale scopo, crei un gruppo EC2 di sicurezza Amazon. Quindi consenti tutto il traffico in entrata al gruppo EC2 di sicurezza dal gruppo di sicurezza del tuo cluster Amazon Redshift e dal gruppo di sicurezza del tuo cluster EMR Amazon. Quindi aggiungi la EC2 sicurezza sia al cluster Amazon Redshift che al cluster AmazonEMR.

Visualizzare il nome del gruppo di sicurezza del cluster Amazon Redshift

Per visualizzare il gruppo di sicurezza, procedere come segue:

  1. Accedi a AWS Management Console e apri la console Amazon Redshift all'indirizzo. https://console.aws.amazon.com/redshiftv2/

  2. Dal menu di navigazione scegliere Clusters (Cluster), quindi scegliere dall'elenco il cluster per visualizzarne i dettagli.

  3. Scegliere Properties (Proprietà) e visualizzare la sezione Network and security settings (Impostazioni rete e sicurezza).

  4. Trova il tuo gruppo di VPCsicurezza nel gruppo di sicurezza e prendine nota.

Visualizza il nome del gruppo di sicurezza del nodo EMR principale di Amazon
  1. Apri il tuo EMR cluster Amazon. Per ulteriori informazioni, consulta Usare le configurazioni di sicurezza per configurare la sicurezza dei cluster nella Amazon EMR Management Guide.

  2. In Sicurezza e accesso, prendi nota del nome del gruppo di sicurezza del nodo EMR principale di Amazon.

    Una schermata che evidenzia il nome del gruppo di sicurezza del nodo EMR master di Amazon nella console AmazonEMR.
Per creare o modificare un gruppo EC2 di sicurezza Amazon per consentire la connessione tra Amazon Redshift e Amazon EMR
  1. Nella EC2 dashboard di Amazon, scegli Gruppi di sicurezza. Per ulteriori informazioni, consulta le regole dei gruppi di sicurezza nella Amazon EC2 User Guide

  2. Scegliere Create Security Group (Crea gruppo di sicurezza).

  3. Se lo utilizziVPC, scegli VPC quello in cui si trovano i tuoi EMR cluster Amazon Redshift e Amazon.

  4. Aggiungere una regola in entrata.

    1. Per Tipo, scegli Personalizzato. TCP

    2. In Source (Origine), scegliere Custom (Personalizzata).

    3. Digitare il nome del gruppo di sicurezza Amazon Redshift.

  5. Aggiungere un'altra regola in entrata.

    1. Per Tipo, scegliete TCP.

    2. Alla voce Port Range (Intervallo porte), inserire 9083.

      Nota

      La porta predefinita per an EMR HMS è 9083. Se HMS utilizzi una porta diversa, specifica quella porta nella regola in entrata e nella definizione dello schema esterno.

    3. In Source (Origine), scegliere Custom (Personalizzata).

  6. Inserire un nome e una descrizione del gruppo di sicurezza.

  7. Scegliere Create Security Group (Crea gruppo di sicurezza).

Per aggiungere il gruppo EC2 di sicurezza Amazon creato nella procedura precedente al cluster Amazon Redshift
  1. Nella console Amazon Redshift, scegliere il cluster.

  2. Scegli Properties (Proprietà).

  3. Visualizzare Impostazioni di rete e sicurezza e scegliere Modificare.

  4. Nel gruppo VPC di sicurezza, scegli il nome del nuovo gruppo di sicurezza.

  5. Scegli Save changes (Salva modifiche).

Per aggiungere il gruppo EC2 di sicurezza Amazon al tuo EMR cluster Amazon
  1. In AmazonEMR, scegli il tuo cluster. Per ulteriori informazioni, consulta Usare le configurazioni di sicurezza per configurare la sicurezza dei cluster nella Amazon EMR Management Guide.

  2. In Hardware, scegliere il collegamento per il nodo master.

  3. Scegli il link nella colonna ID dell'EC2istanza.

    Una schermata che evidenzia il valore di un ID di EC2 istanza Amazon nella console AmazonEMR.
  4. Per Azioni, scegliere Sicurezza, Modifica gruppi di sicurezza.

  5. Nello statoGruppi di sicurezza associati, scegliere il nuovo gruppo di sicurezza e scegliere Aggiungi gruppo di sicurezza.

  6. Seleziona Salva.