Amazon Athena Neptune Konnektor
Amazon Neptune ist ein schneller, zuverlässiger, vollständig verwalteter Graph-Datenbankservice, mit dem es ganz einfach ist, Anwendungen zu erstellen und auszuführen, die mit stark verbundenen Datensätzen arbeiten. Die speziell entwickelte, leistungsstarke Diagrammdatenbank-Engine von Neptune speichert Milliarden von Beziehungen optimal und fragt Diagramme mit einer Latenz von nur Millisekunden ab. Weitere Informationen finden Sie unter Neptune-Benutzerhandbuch.
Der Amazon Athena Neptune-Konnektor ermöglicht Athena die Kommunikation mit Ihrer Neptune-Graphdatenbank-Instance, sodass Ihre Neptune-Diagrammdaten über SQL-Abfragen zugänglich sind.
Dieser Konnektor verwendet keine Glue Connections, um die Konfigurationseigenschaften in Glue zu zentralisieren. Die Verbindungskonfiguration erfolgt über Lambda.
Wenn Sie Lake Formation in Ihrem Konto aktiviert haben, muss die IAM-Rolle für Ihren Athena-Verbund-Lambda-Konnektor, den Sie im AWS Serverless Application Repository bereitstellen, in Lake Formation über Lesezugriff auf das AWS Glue Data Catalog verfügen.
Voraussetzungen
Die Verwendung des Neptune-Konnektors erfordert die folgenden drei Schritte.
-
Einen Neptun-Cluster einrichten
-
Einrichten eines AWS Glue Data Catalog
-
Bereitstellen des Konnektors für Ihren AWS-Konto. Weitere Informationen finden Sie unter Eine Datenquellenverbindung erstellen oder Verwenden Sie AWS Serverless Application Repository, um einen Datenquellen-Konnektor bereitzustellen. Weitere Einzelheiten zur Bereitstellung des Neptune-Konnektors finden Sie unter Einrichten des Amazon-Athena-Neptune-Konnektors
auf GitHub.com.
Einschränkungen
Derzeit weist der Neptune-Konnektor die folgende Einschränkung auf.
-
Das Projizieren von Spalten, einschließlich des Primärschlüssels (ID), ist nicht unterstützt.
Einen Neptune-Cluster einrichten
Wenn Sie keinen vorhandenen Amazon Neptune-Cluster- und Eigenschaftsgraph-Datensatz haben, den Sie verwenden möchten, müssen Sie einen einrichten.
Stellen Sie sicher, dass Sie über einen Internet-Gateway und einen NAT-Gateway in der VPC verfügen, die Ihren Neptune-Cluster hostet. Die privaten Subnetze, die die Lambda-Funktion des Neptune-Konnektors verwendet, sollten über diesen NAT-Gateway eine Verbindung zum Internet haben. Die Neptune-Konnektor-Lambda-Funktion verwendet den NAT-Gateway für die Kommunikation mit AWS Glue.
Anweisungen zum Einrichten eines neuen Neptun-Clusters und zum Laden mit einem Beispieldatensatz finden Sie unter Beispiel für eine Neptun-Cluster-Einrichtung
Einrichten eines AWS Glue Data Catalog
Im Gegensatz zu herkömmlichen relationalen Datenspeichern verwenden Neptune Graph DB-Knoten und -Edges kein festgelegtes Schema. Jeder Eintrag kann unterschiedliche Felder und Datentypen haben. Da der Neptune-Konnektor jedoch Metadaten aus dem AWS Glue Data Catalog zieht, müssen Sie eine AWS Glue-Datenbank erstellen, die Tabellen mit dem erforderlichen Schema enthält. Nachdem Sie die AWS Glue-Datenbank und -Tabellen erstellt haben, kann der Konnektor die Liste der Tabellen füllen, die für die Abfrage von Athena verfügbar sind.
Aktivieren des Spaltenabgleichs ohne Berücksichtigung der Groß-/Kleinschreibung
Um Spaltennamen aus Ihrer Neptune-Tabelle mit der korrekten Groß- und Kleinschreibung aufzulösen, auch wenn die Spaltennamen in AWS Glue kleingeschrieben sind, können Sie den Neptune-Konnektor so konfigurieren, dass er Groß- und Kleinschreibung nicht berücksichtigt.
Um dieses Feature zu aktivieren, setzen Sie die Umgebungsvariable enable_caseinsensitivematch in der Lambda-Funktion des Neptune-Konnektors auf true.
Den AWS Glue-Glabel-Tabellenparameter für Tabellennamen in Groß-/Kleinschreibung angeben
Da AWS Glue nur Tabellennamen in Kleinbuchstaben unterstützt werden, ist es wichtig, den Tabellenparameter glabel AWS Glue anzugeben, wenn Sie eine AWS Glue-Tabelle für Neptune erstellen und Ihr Neptune-Tabellenname Großbuchstaben enthält.
Fügen Sie den glabel-Parameter in Ihre AWS Glue-Tabellendefinition ein und setzen Sie seinen Wert auf Ihren Tabellennamen mit der ursprünglichen Groß- und Kleinschreibung. Dadurch wird sichergestellt, dass die richtige Groß- und Kleinschreibung erhalten bleibt, wenn AWS Glue mit Ihrer Neptune-Tabelle interagiert. Im folgenden Beispiel wird der Wert von glabel auf den Tabellennamen Airport gesetzt.
glabel = Airport
Weitere Informationen zur Einrichtung eines AWS Glue Data Catalog für die Arbeit mit Neptune finden Sie unter Einrichten eines AWS Glue-Katalog
Leistung
Der Athena-Neptune-Konnektor führt einen Prädikat-Pushdown durch, um die von der Abfrage durchsuchten Daten zu reduzieren. Prädikate, die den Primärschlüssel verwenden, führen jedoch zu einem Abfragefehler. LIMIT-Klauseln reduzieren die Menge der gescannten Daten, aber wenn Sie kein Prädikat angeben, sollten Sie davon ausgehen, dass SELECT-Abfragen mit einer LIMIT-Klausel mindestens 16 MB Daten scannen. Der Neptune-Konnektor ist aufgrund der Gleichzeitigkeit widerstandsfähig gegenüber Drosselung.
Pass-Through-Abfragen
Der Neptune-Connector unterstützt Pass-Through-Abfragen. Sie können diese Feature verwenden, um Gremlin-Abfragen für Eigenschaftsdiagramme und SPARQL-Abfragen für RDF-Daten auszuführen.
Um Pass-Through-Abfragen mit Neptune zu verwenden, verwenden Sie die folgende Syntax:
SELECT * FROM TABLE( system.query( DATABASE => 'database_name', COLLECTION => 'collection_name', QUERY => 'query_string' ))
Das folgende Beispiel für Neptune-Passthrough-Abfragen filtert nach Flughäfen mit dem Code ATL. Die doppelten einfachen Anführungszeichen stehen für Escape.
SELECT * FROM TABLE( system.query( DATABASE => 'graph-database', COLLECTION => 'airport', QUERY => 'g.V().has(''airport'', ''code'', ''ATL'').valueMap()' ))
Weitere Ressourcen
Weitere Informationen zu diesem Konnektor finden Sie unter der entsprechenden Seite