Verwenden Sie einen 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 Sie einen 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 zum erforderlich. AWS Glue Data Catalog In der Athena-Managementkonsole konfigurieren Sie eine Lambda-Funktion für die Kommunikation mit dem Hive-Metastore, der sich in Ihrem privaten Bereich befindet, VPC und verbinden ihn dann mit dem Metastore. Die Verbindung von Lambda zu Ihrem Hive-Metastore ist durch einen privaten VPC Amazon-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, die AWS CLI, Athena und die AWS SDK aktualisierten Athena APIs JDBC und Treiber verwenden. ODBC Die aktualisierten Treiber unterstützen benutzerdefinierte Kataloge.

APIUnterstützung

Athena Data Connector for External Hive Metastore unterstützt API Katalogregistrierungsvorgänge und Metadatenoperationen. API

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

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

  • JAVASDKAthena-Client — Verwenden Sie die Katalogregistrierung APIsAPIs, Metadaten und Unterstützung für Kataloge im StartQueryExecution Betrieb im aktualisierten Athena-Java-Client. SDK

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 () verfügbar. SAR Sie können jede dieser Anwendungen verwenden, SAR um Ihre eigenen 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 dessen 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 Ihrem. VPC Sie verwenden Hive Server2, um Ihren Hive-Metastore mithilfe von Hive zu verwalten. CLI

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

  1. Sie erstellen eine Lambda-Funktion, die Athena mit dem Hive-Metastore verbindet, der sich in Ihrem befindet. VPC

  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 eine 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 Ihrem 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 sie verwendenCTAS, um eine Tabelle in einem externen Hive-Metastore zu erstellen.

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

  • DDLDie Unterstützung für externe Hive-Metastore ist auf die folgenden Anweisungen beschränkt.

    • ALTER DATABASE SET DBPROPERTIES

    • ALTER TABLE ADD COLUMNS

    • 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

    • CREATETABLEALS

    • 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, fügen Sie ihn MetadataRetrievalMethod=ProxyAPI in Ihre JDBC Verbindungszeichenfolge ein. Informationen zum JDBC Treiber finden Sie unter. Connect zu Amazon Athena her 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 Connector, den Sie verwenden, um sicherzustellen, dass Sie Ihren VPC richtig konfiguriert haben. Hinweise zu den erforderlichen IAM Berechtigungen zum Ausführen von Abfragen und zum Erstellen eines Datenquellenconnectors in Athena finden Sie unter Zugriff auf den Athena Data Connector für External Hive Metastore zulassen undGewä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 Konnektor zusätzliche oder primäre Metadaten verwendet AWS Glue .

  • AWS Key Management Service

  • Richtlinien — Hive Metastore, Athena Query Federation und UDFs erfordern Richtlinien zusätzlich zu den. AWS verwaltete Richtlinie: AmazonAthenaFullAccess 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.