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.
Der Amazon Athena Google Cloud Storage-Connector ermöglicht es Amazon Athena, Abfragen für Parquet und CSV Dateien auszuführen, die in einem Google Cloud Storage (GCS) -Bucket gespeichert sind. Nachdem Sie ein oder mehrere Parquet oder CSV Dateien in einem unpartitionierten oder partitionierten Ordner in einem GCS Bucket gruppiert haben, können Sie sie in einer Datenbanktabelle organisieren. AWS Glue
Dieser Konnektor kann nicht als Verbundkatalog bei Glue Data Catalog registriert werden. Dieser Konnektor unterstützt keine in Lake Formation definierten Datenzugriffskontrollen auf Katalog-, Datenbank-, Tabellen-, Spalten-, Zeilen- und Tagebene. Dieser Konnektor verwendet Glue Connections, um die Konfigurationseigenschaften in Glue zu zentralisieren.
Wenn Sie Lake Formation in Ihrem Konto aktiviert haben, AWS Serverless Application Repository muss die IAM Rolle für Ihren Athena Federated Lambda Connector, den Sie in der bereitgestellt haben, Lesezugriff in Lake Formation haben. AWS Glue Data Catalog
Einen Artikel, der zeigt, wie Sie mit Athena Abfragen auf Parquet oder CSV Dateien in einem GCS Bucket ausführen, finden Sie im AWS Big-Data-Blogbeitrag Verwenden Sie Amazon Athena, um in der Google Cloud Platform gespeicherte Daten abzufragen
Voraussetzungen
-
Richten Sie eine AWS Glue Datenbank und eine Tabelle ein, die Ihrem Bucket und Ihren Ordnern in Google Cloud Storage entsprechen. Die Schritte finden Sie unter Datenbanken und Tabellen einrichten in AWS Glue weiter unten in diesem Dokument.
Stellen Sie den Konnektor für Ihr AWS-Konto mithilfe der Athena-Konsole oder AWS Serverless Application Repository bereit. Weitere Informationen finden Sie unter Erstellen Sie eine Datenquellenverbindung oder Verwenden Sie den AWS Serverless Application Repository , um einen Datenquellenconnector bereitzustellen.
Einschränkungen
-
DDLSchreibvorgänge werden nicht unterstützt.
-
Alle relevanten Lambda-Grenzwerte. Weitere Informationen finden Sie unter Lambda quotas (Lambda-Kontingente) im AWS Lambda -Entwicklerhandbuch.
-
Derzeit unterstützt der Konnektor nur den
VARCHAR
Typ für Partitionsspalten (string
odervarchar
in einem AWS Glue Tabellenschema). Andere Partitionsfeldtypen lösen Fehler aus, wenn Sie sie in Athena abfragen.
Bedingungen
Die folgenden Begriffe beziehen sich auf den GCS Konnektor.
-
Handler — Ein Lambda-Handler, der auf Ihren GCS Bucket zugreift. Ein Handler kann für Metadaten oder für Datensätze verwendet werden.
-
Metadaten-Handler — Ein Lambda-Handler, der Metadaten aus Ihrem GCS Bucket abruft.
-
Record Handler — Ein Lambda-Handler, der Datensätze aus Ihrem GCS Bucket abruft.
-
Composite-Handler — Ein Lambda-Handler, der sowohl Metadaten als auch Datensätze aus Ihrem GCS Bucket abruft.
Unterstützte Dateitypen
Der GCS Connector unterstützt die Typen Parquet und CSV Dateien.
Anmerkung
Stellen Sie sicher, dass Sie nicht CSV sowohl die Parquet-Dateien als auch die Parquet-Dateien im selben GCS Bucket oder Pfad platzieren. Dies kann zu einem Laufzeitfehler führen, wenn versucht wird, Parquet-Dateien als CSV oder umgekehrt zu lesen.
Parameter
Verwenden Sie die Parameter in diesem Abschnitt, um den GCS Konnektor zu konfigurieren.
Anmerkung
Athena-Datenquellenconnectors, die am 3. Dezember 2024 und später erstellt wurden, verwenden AWS Glue Verbindungen.
Die unten aufgeführten Parameternamen und Definitionen beziehen sich auf Athena-Datenquellenconnectors, die vor dem 3. Dezember 2024 erstellt wurden. Diese können von ihren entsprechenden AWS Glue Verbindungseigenschaften abweichen. Verwenden Sie ab dem 3. Dezember 2024 die folgenden Parameter nur, wenn Sie eine frühere Version eines Athena-Datenquellenconnectors manuell bereitstellen.
-
spill_bucket – Gibt den Amazon S3-Bucket für Daten an, die die Lambda-Funktionsgrenzen überschreiten.
-
spill_prefix – (Optional) Ist standardmäßig ein Unterordner im angegebenen
spill_bucket
genanntathena-federation-spill
. Wir empfehlen Ihnen, einen Amazon-S3-Speicher-Lebenszyklus an dieser Stelle zu konfigurieren, um die Überlaufe zu löschen, die älter als eine festgelegte Anzahl von Tagen oder Stunden sind. -
spill_put_request_headers — (Optional) Eine JSON kodierte Zuordnung von Anforderungsheadern und Werten für die Amazon S3
putObject
S3-Anfrage, die zum Verschicken verwendet wird (z. B.).{"x-amz-server-side-encryption" : "AES256"}
Weitere mögliche Header finden Sie PutObjectin der Amazon Simple Storage Service API Reference. -
kms_key_id — (Optional) Standardmäßig werden alle Daten, die auf Amazon S3 übertragen werden, mit dem GCM authentifizierten Verschlüsselungsmodus und einem zufällig AES generierten Schlüssel verschlüsselt. Damit Ihre Lambda-Funktion stärkere Verschlüsselungsschlüssel verwendet, die von KMS like generiert wurden
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, können Sie eine KMS Schlüssel-ID angeben. -
disable_spill_encryption – (Optional) Bei Einstellung auf
True
, wird die Spill-Verschlüsselung deaktiviert. Die Standardeinstellung istFalse
so, dass Daten, die auf S3 übertragen werden, mit AES - verschlüsselt werden GCM — entweder mit einem zufällig generierten Schlüssel oder KMS zur Generierung von Schlüsseln. Das Deaktivieren der Überlauf-Verschlüsselung kann die Leistung verbessern, insbesondere wenn Ihr Überlauf-Standort eine serverseitige Verschlüsselung verwendet. -
secret_manager_gcp_creds_name — Der Name des Geheimnisses, das Ihre Anmeldeinformationen im AWS Secrets Manager Format enthält (z. B.). GCS JSON
GoogleCloudPlatformCredentials
Datenbanken und Tabellen einrichten in AWS Glue
Da die integrierten Schemainferenzfunktionen des GCS Konnektors begrenzt sind, empfehlen wir, dass Sie ihn AWS Glue für Ihre Metadaten verwenden. Die folgenden Verfahren zeigen, wie Sie eine Datenbank und eine Tabelle erstellen AWS Glue , auf die Sie von Athena aus zugreifen können.
Erstellen einer Datenbank in AWS Glue
Sie können die AWS Glue Konsole verwenden, um eine Datenbank für den GCS Connector zu erstellen.
Um eine Datenbank zu erstellen in AWS Glue
Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Glue Konsole unter https://console.aws.amazon.com/glue/
. -
Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.
-
Wählen Sie Add database (Datenbank hinzufügen).
-
Geben Sie unter Name einen Namen für die Datenbank ein, die Sie mit dem GCS Connector verwenden möchten.
-
Geben Sie als Standort an
google-cloud-storage-flag
. Dieser Speicherort teilt dem GCS Konnektor mit, dass die AWS Glue Datenbank Tabellen für GCS Daten enthält, die in Athena abgefragt werden sollen. Der Konnektor erkennt Datenbanken in Athena, die dieses Flag haben und ignoriert Datenbanken, die dies nicht tun. -
Wählen Sie Datenbank erstellen aus.
Erstellen einer Tabelle in AWS Glue
Jetzt können Sie eine Tabelle für die Datenbank erstellen. Wenn Sie eine AWS Glue Tabelle zur Verwendung mit dem GCS Connector erstellen, müssen Sie zusätzliche Metadaten angeben.
Um eine Tabelle in der AWS Glue Konsole zu erstellen
-
Wählen Sie in der AWS Glue Konsole im Navigationsbereich Tabellen aus.
-
Wählen Sie auf der Seite Tables (Tabellen) die Option Add table (Tabelle hinzufügen) aus.
-
Geben Sie auf der Seite Set table properties (Tabelleneigenschaften festlegen) die folgenden Informationen ein.
-
Name – Ein eindeutiger Name für die Tabelle.
-
Datenbank — Wählen Sie die AWS Glue Datenbank aus, die Sie für den GCS Connector erstellt haben.
-
Pfad einschließen — Geben Sie im Bereich Datenspeicher für Pfad einschließen den URI Speicherort für ein GCS Präfix von ein
gs://
(z. B.gs://
). Wenn Sie über einen oder mehrere Partitionsordner verfügen, nehmen Sie diese nicht in den Pfad auf.gcs_table
/data
/Anmerkung
Wenn Sie den Pfad eingeben, der nicht zur
s3://
-Tabelle gehört, zeigt die AWS Glue -Konsole einen Fehler an. Sie können diesen Fehler ignorieren. Die Tabelle wird erfolgreich erstellt. -
Datenformat — Wählen Sie für Klassifikation CSVoder Parquet aus.
-
-
Wählen Sie Weiter.
-
Auf der Seite Choose or define schema (Schema auswählen oder definieren) wird das Definieren eines Tabellenschemas dringend empfohlen, ist jedoch nicht zwingend erforderlich. Wenn Sie kein Schema definieren, versucht der GCS Konnektor, ein Schema für Sie abzuleiten.
Führen Sie eine der folgenden Aktionen aus:
-
Wenn der GCS Konnektor versuchen soll, ein Schema für Sie abzuleiten, wählen Sie Weiter und dann Erstellen aus.
-
Um selbst ein Schema zu definieren, folgen Sie den Schritten im nächsten Abschnitt.
-
Definieren Sie ein Tabellenschema in AWS Glue
Das Definieren eines Tabellenschemas in AWS Glue erfordert mehr Schritte, gibt Ihnen jedoch mehr Kontrolle über den Tabellenerstellungsprozess.
So definieren Sie ein Schema für Ihre Tabelle in AWS Glue
-
Wählen Sie auf der Seite Choose or define schema (Schema auswählen oder definieren) die Option Add (Hinzufügen) aus.
-
Verwenden Sie das Dialogfeld Add schema entry (Schemaeintrag hinzufügen), um einen Spaltennamen und einen Datentyp anzugeben.
-
Um die Spalte als Partitionsspalte zu kennzeichnen, wählen Sie die Option Set as partition key (Als Partitionsschlüssel festlegen) aus.
-
Wählen Sie Save (Speichern), um die Spalte zu speichern.
-
Wählen Sie Add (Hinzufügen), um eine weitere Spalte hinzuzufügen.
-
Wenn Sie alle Spalten hinzugefügt haben, wählen Sie Next (Weiter).
-
Überprüfen Sie auf der Seite Review and create (Überprüfen und erstellen) die Tabelle und wählen Sie dann Create (Erstellen) aus.
-
Wenn Ihr Schema Partitionsinformationen enthält, führen Sie die Schritte im nächsten Abschnitt aus, um den Eigenschaften der Tabelle in AWS Glue ein Partitionsmuster hinzuzufügen.
Hinzufügen eines Partitionsmusters zu Tabelleneigenschaften in AWS Glue
Wenn Ihre GCS Buckets Partitionen haben, müssen Sie das Partitionsmuster zu den Eigenschaften der Tabelle in AWS Glue hinzufügen.
Um Partitionsinformationen zu den Tabelleneigenschaften hinzuzufügen AWS Glue
-
Wählen Sie auf der Detailseite der Tabelle, in der Sie erstellt haben AWS Glue, Aktionen, Tabelle bearbeiten aus.
-
Scrollen Sie auf der Seite Edit table (Tabelle bearbeiten) nach unten zum Abschnitt Table properties (Tabelleneigenschaften).
-
Wählen Sie Add (Hinzufügen), um einen Partitionsschlüssel hinzuzufügen.
-
Geben Sie für Key (Schlüssel)
partition.pattern
ein. Dieser Schlüssel definiert das Ordnerpfadmuster. -
Geben Sie für Value (Wert) ein Ordnerpfadmuster wie
StateName=${statename}/ZipCode=${zipcode}/
ein, wobeistatename
undzipcode
eingeschlossen von${}
Partitionsspaltennamen sind. Der GCS Connector unterstützt sowohl Hive- als auch Nicht-Hive-Partitionsschemata. -
Klicken Sie auf Save , sobald Sie fertig sind.
-
Um die soeben erstellten Tabelleneigenschaften anzuzeigen, wählen Sie die Registerkarte Advanced properties (Erweiterte Eigenschaften) aus.
An dieser Stelle können Sie zur Athena-Konsole navigieren. Die Datenbank und die Tabelle, in der Sie erstellt haben, AWS Glue stehen für Abfragen in Athena zur Verfügung.
Datentypunterstützung
Die folgenden Tabellen zeigen die unterstützten Datentypen für CSV und für Parquet.
CSV
Nature of data (Art der Daten) | Inferred data type (Abgeleiteter Datentyp) |
---|---|
Daten sehen aus wie eine Zahl | BIGINT |
Daten sehen aus wie eine Zeichenfolge | VARCHAR |
Daten sehen aus wie Fließkommazahlen (Float, Double oder Decimal) | DOUBLE |
Daten sehen aus wie ein Datum | Zeitstempel |
Daten, die wahre/falsche Werte enthalten | BOOL |
Parquet
PARQUET | Athena (Arrow) (Athena (Pfeil)) |
---|---|
BINARY | VARCHAR |
BOOLEAN | BOOL |
DOUBLE | DOUBLE |
ENUM | VARCHAR |
FIXED_LEN_BYTE_ARRAY | DECIMAL |
FLOAT | FLOAT (32 Bit) |
INT32 |
|
INT64 |
|
INT96 | Zeitstempel |
MAP | MAP |
STRUCT | STRUCT |
LIST | LIST |
Erforderliche Berechtigungen
Vollständige Informationen zu den IAM Richtlinien, die für diesen Connector erforderlich sind, finden Sie im Policies
Abschnitt der Datei athena-gcs.yaml
-
Amazon-S3-Schreibzugriff – Der Konnektor benötigt Schreibzugriff auf einen Speicherort in Amazon S3, um Ergebnisse aus großen Abfragen zu übertragen.
-
Athena GetQueryExecution — Der Konnektor verwendet diese Berechtigung, um einen Fast-Fail auszuführen, wenn die Upstream-Athena-Abfrage beendet wurde.
-
AWS Glue Data Catalog— Der GCS Konnektor benötigt nur Lesezugriff auf die, um Schemainformationen AWS Glue Data Catalog abzurufen.
-
CloudWatch Logs — Der Connector benötigt Zugriff auf CloudWatch Logs, um Logs zu speichern.
Leistung
Wenn das Tabellenschema Partitionsfelder enthält und die partition.pattern
-Tabelleneigenschaft richtig konfiguriert ist, können Sie das Partitionsfeld in die WHERE
-Klausel Ihrer Abfragen aufnehmen. Für solche Abfragen verwendet der GCS Connector die Partitionsspalten, um den GCS Ordnerpfad zu verfeinern und zu verhindern, dass nicht benötigte Dateien in GCS Ordnern gescannt werden.
Bei Parquet-Datensätzen führt die Auswahl einer Teilmenge von Spalten dazu, dass weniger Daten gescannt werden. Dies führt in der Regel zu einer kürzeren Ausführungszeit der Abfrage, wenn die Spaltenprojektion angewendet wird.
Bei CSV Datensätzen wird die Spaltenprojektion nicht unterstützt und die Menge der gescannten Daten wird nicht reduziert.
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 GCS Konnektor scannt unabhängig von der angewendeten Klausel mehr Daten für größere Datensätze als für kleinere Datensätze. LIMIT
Zum Beispiel scannt die Abfrage SELECT * LIMIT 10000
mehr Daten bei einem größeren zugrunde liegenden Datensatz als bei einem kleineren.
Lizenzinformationen
Durch die Verwendung dieses Connectors bestätigen Sie, dass Komponenten von Drittanbietern enthalten sind. Eine Liste dieser Komponenten finden Sie in der Datei pom.xml
Weitere Ressourcen
Weitere Informationen zu diesem Connector finden Sie auf der entsprechenden Website