Verwenden von Athena-Daten-Connector für externen Hive-Metastore - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Athena-Daten-Connector für externen Hive-Metastore

Sie können den Amazon-Athena-Daten-Connector für den externen Hive-Metastore verwenden, um Datensätze in Amazon S3 abzufragen in denen ein Apache-Hive-Metastore verwendet wird. Es ist keine Migration von Metadaten auf die AWS Glue Data Catalog erforderlich. In der Athena-Verwaltungskonsole konfigurieren Sie eine Lambda-Funktion für die Kommunikation mit dem Hive-Metastore in Ihrer privaten VPC und verbinden sie dann mit dem Metastore. Die Verbindung von Lambda zu Ihrem Hive-Metastore wird durch einen privaten Amazon-VPC-Kanal gesichert und nutzt nicht das öffentliche Internet. Sie können Ihren eigenen Lambda-Funktionscode angeben oder die Standardimplementierung des Athena-Daten-Connectors für externen Hive-Metastore verwenden.

Übersicht über die Funktionen

Mit dem Athena-Daten-Connector für den externen Hive-Metastore können Sie die folgenden Aufgaben ausführen:

  • Verwenden Sie die Athena-Konsole, um benutzerdefinierte Kataloge zu registrieren und Abfragen damit auszuführen.

  • Definieren Sie Lambda-Funktionen für verschiedene externe Hive-Metastores und verbinden Sie sie in Athena-Abfragen.

  • Verwenden Sie die AWS Glue Data Catalog und Ihre externen Hive-Metastore in derselben Athena-Abfrage.

  • Geben Sie einen Katalog im Kontext der Abfrageausführung als aktuellen Standardkatalog an. Dadurch entfällt die Notwendigkeit, Datenbanknamen in Ihren Abfragen Katalognamen voranzustellen. Anstatt die Syntax catalog.database.table zu verwenden, können Sie database.table verwenden.

  • Verwenden Sie eine Vielzahl von Tools, um Abfragen auszuführen, die auf externe Hive-Metastores verweisen. Sie können die Athena-Konsole, das AWS SDK AWS CLI, die Athena-APIs und die aktualisierten Athena JDBC- und ODBC-Treiber verwenden. Die aktualisierten Treiber unterstützen benutzerdefinierte Kataloge.

API-Unterstützung

Der Athena-Daten-Connector für den externen Hive-Metastore bietet Unterstützung für Katalogregistrierungs-API-Operationen und Metadaten-API-Operationen.

  • Katalogregistrierung – Registrieren Sie benutzerdefinierte Kataloge für externe Hive-Metastores und Verbunddatenquellen.

  • Metadaten — Verwenden Sie Metadaten-APIs, um Datenbank- und Tabelleninformationen für AWS Glue alle Kataloge bereitzustellen, die Sie bei Athena registrieren.

  • Athena-JAVA-SDK-Client – Verwenden Sie Katalogregistrierungs-APIs, Metadaten-APIs und Unterstützung für Kataloge in der StartQueryExecution-Operation im aktualisierten Athena-Java-SDK-Client.

Referenz-Implementierung

Athena bietet eine Referenzimplementierung für die Lambda-Funktion, die sich mit externen Hive-Metastores verbindet. Die Referenzimplementierung wird GitHub als Open-Source-Projekt bei Athena Hive Metastore bereitgestellt.

Die Referenzimplementierung ist als die folgenden beiden AWS SAM Anwendungen in der AWS Serverless Application Repository (SAR) verfügbar. Sie können eine dieser Anwendungen im SAR verwenden, um eigene Lambda-Funktionen zu erstellen.

  • AthenaHiveMetastoreFunction – Uber-Lambda-Funktion .jar-Datei. Ein „uber“ JAR (auch bekannt als Fat JAR oder JAR mit Abhängigkeiten) ist eine .jar-Datei, die sowohl ein Java-Programm als auch seine Abhängigkeiten in einer einzigen Datei enthält.

  • AthenaHiveMetastoreFunctionWithLayer – Lambda-Ebene und dünne Lambda-Funktions-.jar-Datei.

Workflow

Das folgende Diagramm zeigt, wie Athena mit Ihrem externen Hive-Metastore interagiert.

Wie Athena mit Ihrem externen Hive-Metastore interagiert.

In diesem Workflow befindet sich Ihr mit der Datenbank verbundener Hive-Metastore in Ihrer VPC. Sie verwenden Hive Server2, um Ihren Hive-Metastore mithilfe der Hive-CLI zu verwalten.

Der Workflow für die Verwendung externer Hive-Metastores von Athena beinhaltet die folgenden Schritte.

  1. Sie erstellen eine Lambda-Funktion, die eine Athena-Verbindung mit dem Hive-Metastore innerhalb Ihrer VPC herstellt.

  2. Sie registrieren einen eindeutigen Katalognamen für Ihren Hive-Metastore und einen entsprechenden Funktionsnamen in Ihrem Konto.

  3. Wenn Sie eine Athena-DML- oder DDL-Abfrage ausführen, die den Katalognamen verwendet, ruft die Athena-Abfrage-Engine den Lambda-Funktionsnamen auf, den Sie dem Katalognamen zugeordnet haben.

  4. Mithilfe dieser AWS PrivateLink Funktion kommuniziert die Lambda-Funktion mit dem externen Hive-Metastore in Ihrer VPC und empfängt Antworten auf Metadatenanfragen. Athena verwendet die Metadaten Ihres externen Hive-Metastores genauso wie die Metadaten des Standard- AWS Glue Data Catalog.

Überlegungen und Einschränkungen

Berücksichtigen Sie bei der Verwendung des Athena-Daten-Connectors für den externen Hive-Metastore die folgenden Punkte:

  • Sie können CTAS verwenden, um eine Tabelle auf einem externen Hive-Metastore zu erstellen.

  • Sie können INSERT INTO verwenden, um Daten in einen externen Hive-Metastore einzufügen.

  • Die DDL-Unterstützung für externe Hive-Metastores ist auf die folgenden Anweisungen beschränkt.

    • ALTER DATABASE SET DBPROPERTIES

    • TABELLE ÄNDERN SPALTEN HINZUFÜGEN

    • ALTER TABLE ADD PARTITION

    • ALTER TABLE DROP PARTITION

    • ALTER TABLE RENAME PARTITION

    • ALTER TABLE REPLACE COLUMNS

    • ALTER TABLE SET LOCATION

    • ALTER TABLE SET TBLPROPERTIES

    • CREATE DATABASE

    • CREATE TABLE

    • CREATE TABLE AS

    • DESCRIBE TABLE

    • DROP DATABASE

    • DROP TABLE

    • SHOW_COLUMNS

    • SHOW CREATE TABLE

    • SHOW PARTITIONS

    • SHOW SCHEMAS

    • SHOW TABLES

    • SHOW TBLPROPERTIES

  • Die maximale Anzahl registrierter Kataloge beträgt 1.000.

  • Die Kerberos-Authentifizierung wird für Hive-Metastores nicht unterstützt.

  • Um den JDBC-Treiber mit einem externen Hive-Metastore oder Verbundabfragen zu verwenden, schließen Sie MetadataRetrievalMethod=ProxyAPI in Ihre JDBC-Verbindungszeichenfolge ein. Informationen zum JDBC-Treiber finden Sie unter Herstellen einer Verbindung zu Amazon Athena mit JDBC.

  • Die ausgeblendeten Hive-Spalten $path, $bucket, $file_size, $file_modified_time, $partition, $row_id können nicht für eine differenzierte Filterung der Zugriffskontrolle verwendet werden.

  • In Hive ausgeblendete Systemtabellen wie example_table$partitions oder example_table$properties werden von der detaillierten Zugriffskontrolle nicht unterstützt.

Berechtigungen

Vorab erstellte und benutzerdefinierte Daten-Connectors benötigen möglicherweise Zugriff auf die folgenden Ressourcen, um ordnungsgemäß zu funktionieren. Überprüfen Sie die Informationen für den von Ihnen verwendeten Connector, um sicherzustellen, dass die VPC korrekt konfiguriert ist. Informationen zu den erforderlichen IAM-Berechtigungen zum Ausführen von Abfragen und zum Erstellen eines Datenquellen-Connectors in Athena finden Sie unter Zugriff auf einen Athena-Daten-Connector für externen Hive-Metastore zulassen und Gewährung von Lambda-Funktionszugriff auf externe Hive-Metastores.

  • Amazon S3 – Zusätzlich zum Schreiben von Abfrageergebnissen zum Athena-Abfrageergebnisspeicherort in Amazon S3 schreiben Daten-Connectors auch zu einem Spill-Bucket in Amazon S3. Konnektivität und Berechtigungen für diesen Amazon-S3-Standort sind erforderlich. Weitere Informationen finden Sie unter Spill-Speicherort in Amazon S3 an späterer Stelle in diesem Thema.

  • Athena – Zugriff ist erforderlich, um den Abfragestatus zu überprüfen und das Overscanning zu verhindern.

  • AWS Glue— Zugriff ist erforderlich, wenn Ihr Connector zusätzliche oder primäre Metadaten AWS Glue verwendet.

  • AWS Key Management Service

  • Richtlinien – Hive-Metastore, Athena Query Federation und UDFs erfordern zusätzlich zu AWS verwaltete Richtlinie: AmazonAthenaFullAccess weitere Richtlinien. Weitere Informationen finden Sie unter Identity and Access Management in Athena.

Spill-Speicherort in Amazon S3

Aufgrund des Grenzwerts für Lambda-Funktionsantwortgrößen werden Antworten, die größer als der Schwellenwert sind, an einen Amazon-S3-Speicherort übertragen, den Sie beim Erstellen der Lambda-Funktion angeben. Athena liest diese Antworten direkt von Amazon S3.

Anmerkung

Athena entfernt die Antwortdateien nicht von Amazon S3. Es wird empfohlen, eine Aufbewahrungsrichtlinie einzurichten, um Antwortdateien automatisch zu löschen.