Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Connecteur Amazon Athena Redis OSS
Le OSS connecteur Amazon Athena Redis permet à Amazon Athena de communiquer avec vos OSS instances Redis afin que vous puissiez interroger vos données Redis. OSS SQL Vous pouvez utiliser le AWS Glue Data Catalog pour mapper vos paires OSS clé-valeur Redis dans des tables virtuelles.
Contrairement aux magasins de données relationnels traditionnels, Redis OSS n'a pas le concept de table ou de colonne. Redis OSS propose plutôt des modèles d'accès clé-valeur dans lesquels la clé est essentiellement un string
et la valeur est unstring
, z-set
ou. hmap
Vous pouvez utiliser le AWS Glue Data Catalog pour créer un schéma et configurer des tables virtuelles. Des propriétés de table spéciales indiquent au OSS connecteur Athena Redis comment mapper vos OSS clés et valeurs Redis dans une table. Pour plus d'informations, consultez Configuration de bases de données et de tables dans AWS Glue dans la suite de ce document.
Ce connecteur n'utilise pas Glue Connections pour centraliser les propriétés de configuration dans Glue. La configuration de la connexion s'effectue via Lambda.
Si Lake Formation est activé sur votre compte, le IAM rôle de votre connecteur Lambda fédéré Athena que vous avez déployé dans AWS Serverless Application Repository le doit avoir un accès en lecture dans Lake Formation au. AWS Glue Data Catalog
Le connecteur Amazon Athena Redis OSS prend en charge Amazon MemoryDB et Amazon ElastiCache (Redis). OSS
Prérequis
Déployez le connecteur sur votre Compte AWS à l’aide de la console Athena ou du AWS Serverless Application Repository. Pour plus d’informations, consultez Création d'une connexion à une source de données ou Utilisez le AWS Serverless Application Repository pour déployer un connecteur de source de données.
Configurez un VPC et un groupe de sécurité avant d'utiliser ce connecteur. Pour de plus amples informations, veuillez consulter Création d'un connecteur ou d'une AWS Glue connexion VPC pour une source de données.
Paramètres
Utilisez les paramètres de cette section pour configurer le connecteur Redis.
-
spill_bucket – Spécifie le compartiment Amazon S3 pour les données qui dépassent les limites des fonctions Lambda.
-
spill_prefix – (Facultatif) Par défaut, il s’agit d’un sous-dossier dans le
spill_bucket
spécifié appeléathena-federation-spill
. Nous vous recommandons de configurer un cycle de vie de stockage Amazon S3 à cet endroit pour supprimer les déversements supérieurs à un nombre de jours ou d’heures prédéterminé. -
spill_put_request_headers — (Facultatif) Carte JSON codée des en-têtes de demande et des valeurs pour la
putObject
demande Amazon S3 utilisée pour le spilling (par exemple,).{"x-amz-server-side-encryption" : "AES256"}
Pour les autres en-têtes possibles, consultez PutObjectle Amazon Simple Storage Service API Reference. -
kms_key_id — (Facultatif) Par défaut, toutes les données transmises à Amazon S3 sont chiffrées à l'aide AES du mode de chiffrement authentifié et d'une clé GCM générée de manière aléatoire. Pour que votre fonction Lambda utilise des clés de chiffrement plus fortes générées par KMS like
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, vous pouvez spécifier un identifiant de KMS clé. -
disable_spill_encryption – (Facultatif) Lorsque la valeur est définie sur
True
, le chiffrement des déversements est désactivé. Par défaut, les donnéesFalse
transmises à S3 sont chiffrées à l'aide de AES GCM -, soit à l'aide d'une clé générée de manière aléatoire, soit KMS pour générer des clés. La désactivation du chiffrement des déversements peut améliorer les performances, surtout si votre lieu de déversement utilise le chiffrement côté serveur. -
glue_catalog – (Facultatif) Utilisez cette option pour spécifier un catalogue AWS Glue entre compte. Par défaut, le connecteur tente d'obtenir des métadonnées à partir de son propre AWS Glue compte.
Configuration de bases de données et de tables dans AWS Glue
Pour activer une AWS Glue table à utiliser avec RedisOSS, vous pouvez définir les propriétés de table suivantes sur la table :redis-endpoint
,redis-value-type
, redis-keys-zset
ou ouredis-key-prefix
.
En outre, toute AWS Glue base de données contenant des OSS tables Redis doit avoir une URI propriété redis-db-flag
in dans la base de données. Pour définir la redis-db-flag
URI propriété, utilisez la AWS Glue console pour modifier la base de données.
La liste suivante décrit les propriétés de la table.
-
redis-endpoint — (Obligatoire) Le OSS serveur Redis qui contient les données
hostname
:
port
:
password
de cette table (par exemple,athena-federation-demo.cache.amazonaws.com:6379
) Vous pouvez également stocker le point de terminaison, ou une partie du point de terminaison, en AWS Secrets Manager utilisant $ {Secret_Name
} comme valeur de propriété de table.
Note
Pour utiliser la fonctionnalité Athena Federated Query avec AWS Secrets Manager, la personne VPC connectée à votre fonction Lambda doit disposer d'un accès Internet
-
redis-keys-zset— (Obligatoire si elle n'
redis-key-prefix
est pas utilisée) Une liste de clés séparées par des virgules dont la valeur est un zset(par exemple,). active-orders,pending-orders
Chacune des valeurs du zset est considérée comme une clé faisant partie de la table. La propriétéredis-keys-zset
ouredis-key-prefix
doit être définie. -
redis-key-prefix— (Obligatoire si elle n'
redis-keys-zset
est pas utilisée) Une liste de préfixes clés séparés par des virgules pour rechercher des valeurs dans le tableau (par exemple,accounts-*,acct-
). La propriétéredis-key-prefix
ouredis-keys-zset
doit être définie. -
redis-value-type— (Obligatoire) Définit la façon dont les valeurs des clés définies par l'une
redis-key-prefix
ou l'autreredis-keys-zset
sont mappées à votre table. Un littéral mappe à une seule colonne. Un zset mappe également à une seule colonne, mais chaque clé peut stocker de nombreuses lignes. Un hachage permet à chaque clé de constituer une ligne avec plusieurs colonnes (par exemple, un hachage, un littéral ou un zset). -
redis-ssl-flag— (Facultatif) Quand
True
, crée une connexion Redis utilisantSSL/TLS. L’argument par défaut estFalse
. -
redis-cluster-flag— (Facultatif) Quand
True
, active la prise en charge des instances Redis en cluster. L’argument par défaut estFalse
. -
redis-db-number— (Facultatif) S'applique uniquement aux instances autonomes non clusterisées.) Définissez ce nombre (par exemple 1, 2 ou 3) pour lire à partir d’une base de données Redis personnalisée. La base de données logique Redis par défaut est 0. Ce numéro ne fait pas référence à une base de données dans Athena ou AWS Glue, mais à une base de données logique Redis. Pour plus d'informations, consultez SELECTl'index
dans la documentation Redis.
Types de données
Le OSS connecteur Redis prend en charge les types de données suivants. Les OSS flux Redis ne sont pas pris en charge.
Toutes les OSS valeurs Redis sont récupérées en tant que type de string
données. Elles sont ensuite converties vers l’un des types de données Apache Arrow suivants en fonction de la façon dont vos tables sont définies dans le AWS Glue Data Catalog.
AWS Glue type de données | Type de données Apache Arrow |
---|---|
int | INT |
chaîne | VARCHAR |
bigint | BIGINT |
double | FLOAT8 |
float | FLOAT4 |
smallint | SMALLINT |
tinyint | TINYINT |
boolean | BIT |
binary | VARBINARY |
Autorisations nécessaires
Pour plus de détails sur les IAM politiques requises par ce connecteur, consultez la Policies
section du fichier athena-redis.yaml
-
Amazon S3 write access (Accès en écriture Amazon S3) – Le connecteur nécessite un accès en écriture à un emplacement dans Amazon S3 pour déverser les résultats à partir de requêtes volumineuses.
-
Athena GetQueryExecution — Le connecteur utilise cette autorisation pour échouer rapidement lorsque la requête Athena en amont est terminée.
-
AWS Glue Data Catalog— Le connecteur Redis nécessite un accès en lecture seule au pour AWS Glue Data Catalog obtenir des informations sur le schéma.
-
CloudWatch Journaux : le connecteur a besoin d'accéder aux CloudWatch journaux pour stocker les journaux.
-
AWS Secrets Manager accès en lecture — Si vous choisissez de stocker les détails du point de terminaison Redis dans Secrets Manager, vous devez autoriser le connecteur à accéder à ces secrets.
-
VPCaccès — Le connecteur doit être capable d'attacher et de détacher des interfaces à vos interfaces VPC afin qu'il puisse s'y connecter et communiquer avec vos instances Redis.
Performance
Le OSS connecteur Athena Redis tente de paralléliser les requêtes par rapport à votre OSS instance Redis en fonction du type de table que vous avez défini (par exemple, les clés zset ou les clés de préfixe).
Le connecteur Athena Redis effectue une poussée vers le bas des prédicats pour réduire les données analysées par la requête. Cependant, les requêtes contenant un prédicat contre la clé primaire échouent avec le délai d'attente. Les clauses LIMIT
réduisent la quantité de données analysées, mais si vous ne fournissez pas de prédicat, vous devez vous attendre à ce que les requêtes SELECT
avec une clause LIMIT
analysent au moins 16 Mo de données. Le connecteur Redis résiste à la limitation due à la simultanéité.
Requêtes directes
Le connecteur Redis prend en charge les requêtes directes. Vous pouvez utiliser cette fonctionnalité pour exécuter des requêtes utilisant le script Lua sur les bases de données Redis.
Pour créer des requêtes directes avec Redis, utilisez la syntaxe suivante :
SELECT * FROM TABLE( system.script( script => 'return redis.[call|pcall](
query_script
)', keys => '[key_pattern
]', argv => '[script_arguments
]' ))
L'exemple suivant exécute un script Lua pour obtenir la valeur à la touchel:a
.
SELECT * FROM TABLE( system.script( script => 'return redis.call("GET", KEYS[1])', keys => '[l:a]', argv => '[]' ))
Informations de licence
Le projet de connecteur Redis Amazon Athena est concédé sous licence dans le cadre de la licence Apache-2.0
Ressources supplémentaires
Pour plus d'informations sur ce connecteur, rendez-vous sur le site correspondant