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.
Amazon Athena Redis-Anschluss OSS
Der Amazon Athena OSS Redis-Connector ermöglicht es Amazon Athena, mit Ihren OSS Redis-Instances zu kommunizieren, sodass Sie Ihre Redis-Daten mit abfragen können. OSS SQL Sie können den verwenden, AWS Glue Data Catalog um Ihre OSS Redis-Schlüssel-Wert-Paare virtuellen Tabellen zuzuordnen.
Im Gegensatz zu herkömmlichen relationalen Datenspeichern hat Redis OSS nicht das Konzept einer Tabelle oder Spalte. Stattdessen OSS bietet Redis Schlüssel-Wert-Zugriffsmuster, bei denen der Schlüssel im Wesentlichen ein string
und der Wert ein, oder ist. string
z-set
hmap
Sie können das verwenden, AWS Glue Data Catalog um ein Schema zu erstellen und virtuelle Tabellen zu konfigurieren. Spezielle Tabelleneigenschaften teilen dem Athena OSS Redis-Konnektor mit, wie Ihre OSS Redis-Schlüssel und -Werte einer Tabelle zugeordnet werden sollen. Weitere Informationen finden Sie unter Einrichten von Datenbanken und Tabellen in AWS Glue an späterer Stelle in diesem Dokument.
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 auf den haben. AWS Glue Data Catalog
Der Amazon Athena OSS Redis-Konnektor unterstützt Amazon MemoryDB und Amazon ElastiCache (Redis). OSS
Voraussetzungen
Stellen Sie den Konnektor für Ihr AWS-Konto mithilfe der Athena-Konsole oder AWS Serverless Application Repository bereit. Weitere Informationen finden Sie unter Stellen Sie einen Datenquellenconnector bereit oder Verwenden Sie den AWS Serverless Application Repository , um einen Datenquellenconnector bereitzustellen.
Richten Sie eine Sicherheitsgruppe VPC und eine Sicherheitsgruppe ein, bevor Sie diesen Connector verwenden. Weitere Informationen finden Sie unter Erstellen Sie einen Konnektor VPC für eine Datenquelle.
Parameter
Verwenden Sie die Lambda-Umgebungsvariablen in diesem Abschnitt, um den Redis-Konnektor zu konfigurieren.
-
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. -
glue_catalog – (Optional) Verwenden Sie diese Option, um einen kontoübergreifenden AWS Glue -Katalog anzugeben. Standardmäßig versucht der Connector, Metadaten von seinem eigenen AWS Glue Konto abzurufen.
Einrichten von Datenbanken und Tabellen in AWS Glue
Um eine AWS Glue Tabelle für die Verwendung mit Redis zu aktivierenOSS, können Sie die folgenden Tabelleneigenschaften für die Tabelle festlegen: redis-endpoint
redis-value-type
, und entweder redis-keys-zset
oderredis-key-prefix
.
Darüber hinaus muss jede AWS Glue Datenbank, die OSS Redis-Tabellen enthält, ein redis-db-flag
in der URI Eigenschaft der Datenbank haben. Um die redis-db-flag
URI Eigenschaft festzulegen, verwenden Sie die AWS Glue Konsole, um die Datenbank zu bearbeiten.
Die folgende Liste enthält Beschreibungen der Tabelleneigenschaften.
-
redis-endpoint — (Erforderlich) Der
hostname
:
port
:
password
des OSS Redis-Servers, der Daten für diese Tabelle enthält (zum Beispielathena-federation-demo.cache.amazonaws.com:6379
). Alternativ können Sie den Endpunkt oder einen Teil des Endpunkts speichern, indem Sie $ { AWS Secrets ManagerSecret_Name
} als Eigenschaftswert der Tabelle.
Anmerkung
Um die Federated Query-Funktion von Athena verwenden zu können AWS Secrets Manager, muss die mit Ihrem Lambda VPC verbundene Funktion über einen Internetzugang
-
redis-keys-zset— (Erforderlich, falls
redis-key-prefix
nicht verwendet) Eine durch Kommas getrennte Liste von Schlüsseln, deren Wert ein Satz ist (z. B.). active-orders,pending-orders
Jeder der Werte in der Gruppe wird als Schlüssel behandelt, der Teil der Tabelle ist. Entweder muss dieredis-keys-zset
-Eigenschaft oder dieredis-key-prefix
-Eigenschaft festgelegt sein. -
redis-key-prefix— (Erforderlich, falls
redis-keys-zset
nicht verwendet) Eine durch Kommas getrennte Liste von Schlüsselpräfixen, um in der Tabelle nach Werten zu suchen (zum Beispiel).accounts-*,acct-
Entweder muss dieredis-key-prefix
-Eigenschaft oder dieredis-keys-zset
-Eigenschaft festgelegt sein. -
redis-value-type— (Erforderlich) Definiert, wie die Werte für die durch
redis-key-prefix
oder definierten Schlüsselredis-keys-zset
Ihrer Tabelle zugeordnet werden. Ein Literal wird einer einzelnen Spalte zugeordnet. Ein zset wird auch einer einzelnen Spalte zugeordnet, aber jeder Schlüssel kann viele Zeilen speichern. Ein Hash ermöglicht, dass jeder Schlüssel eine Zeile mit mehreren Spalten ist (z. B. ein Hash, Literal oder zset). -
redis-ssl-flag— (Optional) Wenn
True
, wird eine Redis-Verbindung erstellt, die/verwendetSSL. TLS Der Standardwert istFalse
. -
redis-cluster-flag— (Optional) Wann
True
, aktiviert die Unterstützung für geclusterte Redis-Instanzen. Der Standardwert istFalse
. -
redis-db-number— (Optional) Gilt nur für eigenständige, nicht geclusterte Instances.) Legen Sie diese Zahl (z. B. 1, 2 oder 3) fest, um sie aus einer nicht standardmäßigen Redis-Datenbank zu lesen. Die Standardeinstellung ist Redis logische Datenbank 0. Diese Zahl bezieht sich nicht auf eine Datenbank in Athena oder AWS Glue, sondern auf eine logische Redis-Datenbank. Weitere Informationen finden Sie im SELECTIndex
in der Redis-Dokumentation.
Datentypen
Der OSS Redis-Connector unterstützt die folgenden Datentypen. OSSRedis-Streams werden nicht unterstützt.
-
Sortiertes Set () ZSet
Alle OSS Redis-Werte werden als string
Datentyp abgerufen. Anschließend werden sie in einen der folgenden Apache Arrow-Datentypen konvertiert, basierend darauf, wie Ihre Tabellen in AWS Glue Data Catalog definiert sind.
AWS Glue Datentyp | Apache Arrow-Datentyp |
---|---|
int | INT |
Zeichenfolge | VARCHAR |
bigint | BIGINT |
double | FLOAT8 |
float | FLOAT4 |
smallint | SMALLINT |
tinyint | TINYINT |
boolesch | BIT |
Binary | VARBINARY |
Erforderliche Berechtigungen
Vollständige Informationen zu den IAM Richtlinien, die für diesen Connector erforderlich sind, finden Sie im Policies
Abschnitt der Datei athena-redis.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 Redis-Konnektor benötigt nur Lesezugriff auf den, um Schemainformationen abzurufen AWS Glue Data Catalog .
-
CloudWatch Logs — Der Connector benötigt Zugriff auf CloudWatch Logs, um Logs zu speichern.
-
AWS Secrets Manager Lesezugriff — Wenn Sie Redis-Endpunktdetails in Secrets Manager speichern möchten, müssen Sie dem Connector Zugriff auf diese Geheimnisse gewähren.
-
VPCZugriff — Der Connector benötigt die Fähigkeit, Schnittstellen an Ihren anzuhängen und zu trennen, VPC damit er sich mit ihm verbinden und mit Ihren Redis-Instanzen kommunizieren kann.
Leistung
Der Athena OSS Redis-Connector versucht, Abfragen für Ihre OSS Redis-Instanz entsprechend dem von Ihnen definierten Tabellentyp zu parallelisieren (z. B. Zset-Schlüssel oder Präfixschlüssel).
Der Athena-Redis-Konnektor führt einen Prädikat-Pushdown durch, um die von der Abfrage durchsuchten Daten zu reduzieren. Abfragen, die ein Prädikat für den Primärschlüssel enthalten, schlagen jedoch mit einer Zeitüberschreitung fehl. 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 Redis-Konnektor ist aufgrund der Gleichzeitigkeit widerstandsfähig gegenüber Drosselung.
Passthrough-Abfragen
Der Redis-Connector unterstützt Passthrough-Abfragen. Sie können diese Funktion verwenden, um Abfragen, die Lua-Skript verwenden, in Redis-Datenbanken auszuführen.
Verwenden Sie die folgende Syntax, um Passthrough-Abfragen mit Redis zu erstellen:
SELECT * FROM TABLE( system.script( script => 'return redis.[call|pcall](
query_script
)', keys => '[key_pattern
]', argv => '[script_arguments
]' ))
Im folgenden Beispiel wird ein Lua-Skript ausgeführt, um den Wert bei key abzurufen. l:a
SELECT * FROM TABLE( system.script( script => 'return redis.call("GET", KEYS[1])', keys => '[l:a]', argv => '[]' ))
Lizenzinformationen
Das Amazon Athena Redis-Konnektor-Projekt ist lizenziert unter Apache-2.0-Lizenz
Weitere Ressourcen
Weitere Informationen zu diesem Connector finden Sie auf der entsprechenden Website