Connessione del Data Catalog a un metastore Hive esterno - AWS Lake Formation

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

Connessione del Data Catalog a un metastore Hive esterno

Per connetterlo AWS Glue Data Catalog a un metastore Hive, è necessario distribuire un'applicazione chiamata -. AWS SAM GlueDataCatalogFederation HiveMetastore Crea le risorse necessarie per connettere il metastore Hive esterno al Data Catalog. È possibile accedere all' AWS SAM applicazione in. AWS Serverless Application Repository

L' AWS SAM applicazione crea la connessione per il metastore Hive dietro Amazon API Gateway utilizzando una funzione Lambda. L' AWS SAM applicazione utilizza un Uniform Resource Identifier (URI) come input dell'utente e collega il metastore Hive esterno al Data Catalog. Quando un utente esegue una query sulle tabelle Hive, il Data Catalog chiama l'endpoint Gateway. API L'endpoint richiama la funzione Lambda per recuperare i metadati delle tabelle Hive.

Per connettere il Data Catalog al metastore Hive e configurare le autorizzazioni
  1. Distribuisci l'applicazione. AWS SAM
    1. Accedi a AWS Management Console e apri il AWS Serverless Application Repository.

    2. Nel pannello di navigazione, scegli Available applications (Applicazioni disponibili).

    3. Scegli Applicazioni pubbliche.

    4. Seleziona l'opzione Mostra app che creano IAM ruoli o politiche di risorse personalizzati.

    5. Nella casella di ricerca, inserisci il nome GlueDataCatalogFederation- HiveMetastore.

    6. Scegli l'HiveMetastoreapplicazione GlueDataCatalogFederation-.

    7. In Impostazioni dell'applicazione, inserisci le seguenti impostazioni minime richieste per la tua funzione Lambda:

      • Nome dell'applicazione: un nome per l' AWS SAM applicazione.

      • GlueConnectionName- Un nome per la connessione.

      • HiveMetastoreURIs- Il nome URI del tuo host del metastore Hive.

      • LambdaMemory- La quantità di memoria Lambda in MB è compresa tra 128 e 10240. Il valore di default è 1024.

      • LambdaTimeout- La durata massima di invocazione Lambda in secondi. Il valore predefinito è 30.

      • VPCSecurityGroupIdse VPCSubnetIds- Informazioni sulla posizione in VPC cui si trova il metastore Hive.

    8. Seleziona Riconosco che questa app crea IAM ruoli e politiche di risorse personalizzati. Per ulteriori informazioni, scegliere il link Info (Informazioni) .

    9. Nella parte inferiore destra della pagina Application settings (Impostazioni dell'applicazione), scegli Deploy (Implementa). Al termine dell'implementazione, la funzione Lambda viene visualizzata nella sezione Resources (Risorse) nella console Lambda.

    L'applicazione viene distribuita su Lambda. Il suo nome è preceduto da serverlessrepo- per indicare che l'applicazione è stata distribuita da. AWS Serverless Application Repository Selezionando l'applicazione si accede alla pagina Risorse in cui sono elencate tutte le risorse dell'applicazione che sono state distribuite. Le risorse includono la funzione Lambda che consente la comunicazione tra il Data Catalog e il metastore Hive, la AWS Glue connessione e altre risorse necessarie per la federazione del database.

  2. Crea un database federato nel Data Catalog.

    Dopo aver creato una connessione al metastore Hive, puoi creare database federati nel Data Catalog che puntano ai database metastore Hive esterni. Devi creare un database corrispondente nel Data Catalog per ogni database di metastore Hive che stai connettendo al Data Catalog.

    Lake Formation console
    1. Nella pagina Condivisione dati, scegli la scheda Database condivisi, quindi scegli Crea database.

    2. Per Nome della connessione, scegli il nome della tua connessione al metastore Hive dal menu a discesa.

    3. Inserisci un nome di database univoco e l'identificatore di origine della federazione per il database. Questo è il nome che si utilizza nelle SQL istruzioni quando si eseguono interrogazioni sulle tabelle. Il nome può essere composto da un massimo di 255 caratteri e deve essere univoco all'interno dell'account.

    4. Scegliere Crea database.

    AWS CLI
    aws glue create-database \ '{ "CatalogId": "<111122223333>", "database-input": { "Name":"<fed_glue_db>", "FederatedDatabase":{ "Identifier":"<hive_db_on_emr>", "ConnectionName":"<hms_connection>" } } }'
  3. Visualizza le tabelle nel database federato.

    Dopo aver creato il database federato, puoi visualizzare l'elenco delle tabelle nel tuo metastore Hive utilizzando la console Lake Formation o il. AWS CLI

    Lake Formation console
    1. Seleziona il nome del database dalla scheda Database condivisi.

    2. Nella pagina Database, scegli Visualizza tabelle.

    AWS CLI

    Gli esempi seguenti mostrano come recuperare la definizione di connessione, il nome del database e alcune o tutte le tabelle del database. Sostituisci l'ID del catalogo dati con l' Account AWS ID valido utilizzato per creare il database. Sostituisci hms_connection con il nome della connessione.

    aws glue get-connection \ --name <hms_connection> \ --catalog-id 111122223333
    aws glue get-database \ --name <fed_glu_db> \ --catalog-id 111122223333
    aws glue get-tables \ --database-name <fed_glue_db> \ --catalog-id 111122223333
    aws glue get-table \ --database-name <fed_glue_db> \ --name <hive_table_name> \ --catalog-id 111122223333
  4. Concedi le autorizzazioni.

    Dopo aver creato il database, puoi concedere le autorizzazioni ad altri IAM utenti e ruoli del tuo account o a organizzazioni esterne Account AWS . Non potrai concedere autorizzazioni per i dati di scrittura (inserimento, eliminazione) e per i metadati (modifica, eliminazione, creazione) sui database federati. Per ulteriori informazioni sulla concessione delle autorizzazioni, vedere. Gestione delle autorizzazioni di Lake Formation

  5. Interroga i database federati.

    Dopo aver concesso le autorizzazioni, gli utenti possono accedere e iniziare a interrogare il database federato utilizzando Athena e Amazon Redshift. Gli utenti possono ora utilizzare il nome del database locale per fare riferimento al database Hive nelle query. SQL

    Esempio Amazon Athena di sintassi delle query

    Sostituisci fed_glue_db con il nome del database locale creato in precedenza.

    Select * from fed_glue_db.customers limit 10;