Conector para Redis de Amazon Athena - Amazon Athena

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conector para Redis de Amazon Athena

El conector Amazon Athena Redis permite a Amazon Athena comunicarse con las instancias de Redis para que pueda consultar los datos de Redis con SQL. Puede usar AWS Glue Data Catalog para asignar sus pares clave-valor de Redis en tablas virtuales.

A diferencia de los conjuntos de datos relacionales tradicionales, Redis no tiene el concepto de tabla o columna. En cambio, Redis ofrece patrones de acceso clave-valor en los que la clave es esencialmente una string y el valor es una string, un z-set o un hmap.

Puede usar AWS Glue Data Catalog para crear esquemas y configurar tablas virtuales. Las propiedades especiales de la tabla indican al conector de Redis de Athena cómo asignar las claves y los valores de Redis a una tabla. Para obtener más información, consulte Configuración de bases de datos y tablas en AWS Glue más adelante en este documento.

Si Lake Formation está habilitado en la cuenta, el rol de IAM del conector de Lambda federado de Athena que haya implementado en AWS Serverless Application Repository debe tener acceso de lectura en Lake Formation para AWS Glue Data Catalog.

El conector Redis de Amazon Athena es compatible con Amazon MemoryDB para Redis y Amazon ElastiCache para Redis.

Requisitos previos

Parámetros

Use las variables de entorno de Lambda de esta sección para configurar el conector de Redis.

  • spill_bucket: especifica el bucket de Amazon S3 para los datos que superen los límites de la función de Lambda.

  • spill_prefix: (opcional) de forma predeterminada, se establece una subcarpeta en la carpeta especificada spill_bucket llamada athena-federation-spill. Le recomendamos configurar un ciclo de vida de almacenamiento de Amazon S3 en esta ubicación para eliminar vertidos de más de un número predeterminado de días u horas.

  • spill_put_request_headers: (opcional) un mapa codificado en JSON de encabezados y valores de solicitudes para la solicitud putObject de Amazon S3 que se usa para el vertidos (por ejemplo, {"x-amz-server-side-encryption" : "AES256"}). Para ver otros encabezados posibles, consulte PutObject en la referencia de la API de Amazon Simple Storage Service.

  • kms_key_id: (opcional) de forma predeterminada, los datos que se vierten a Amazon S3 se cifran mediante el modo de cifrado autenticado AES-GCM y una clave generada aleatoriamente. Para que la función de Lambda use claves de cifrado más seguras generadas por KMS, como a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, puede especificar un ID de clave de KMS.

  • disable_spill_encryption: (opcional) cuando se establece en True, desactiva el cifrado del vertido. El valor predeterminado es False, de modo que los datos que se vierten a S3 se cifran mediante AES-GCM, ya sea mediante una clave generada aleatoriamente o KMS para generar claves. La desactivación del cifrado de vertido puede mejorar el rendimiento, especialmente si su ubicación de vertido usa cifrado del servidor.

  • glue_catalog: (opcional) use esta opción para especificar un catálogo de AWS Glue entre cuentas. De forma predeterminada, el conector intenta obtener los metadatos de su propia cuenta de AWS Glue.

Configuración de bases de datos y tablas en AWS Glue

Para habilitar una tabla de AWS Glue con el fin de usarla con Redis, puede establecer en ella las siguientes propiedades: redis-endpoint, redis-value-type y ya sea redis-keys-zset o redis-key-prefix.

Además, cualquier base de datos de AWS Glue que contiene tablas de Redis debe tener una redis-db-flag en la propiedad del URI de la base de datos. Para establecer la propiedad redis-db-flag del URI, use la consola de AWS Glue para editar la base de datos.

En la siguiente lista se describen las propiedades de tabla.

  • redis-endpoint: (obligatoria) el nombre de host:el puerto:la contraseña del servidor de Redis que contiene datos para esta tabla (por ejemplo, athena-federation-demo.cache.amazonaws.com:6379). De forma alternativa, puede almacenar el punto de conexión, o parte de este, en AWS Secrets Manager mediante ${Secret_Name} como valor de propiedad de la tabla.

nota

Para usar la función Consulta federada de Athena con AWS Secrets Manager, la VPC conectada a la función de Lambda debe tener acceso a Internet o un punto de conexión de VPC para conectarse a Secrets Manager.

  • redis-keys-zset: (obligatoria si no se usa redis-key-prefix) una lista de claves separadas por comas, cuyo valor es un zset (por ejemplo, active-orders,pending-orders). Cada uno de los valores del zset se trata como una clave que forma parte de la tabla. Se debe establecer la propiedad redis-keys-zset o la propiedad redis-key-prefix.

  • redis-key-prefix: (obligatoria si no se usa redis-keys-zset) una lista de prefijos de claves separados por comas para buscar valores en la tabla (por ejemplo, accounts-*,acct-). Se debe establecer la propiedad redis-key-prefix o la propiedad redis-keys-zset.

  • redis-value-type: (obligatoria) determina cómo se asignan los valores de las claves definidas por redis-key-prefix o redis-keys-zset a la tabla. Se asigna un literal a una sola columna. Un zset también se asigna a una sola columna, pero cada clave puede almacenar varias filas. Un hash permite que cada clave sea una fila con varias columnas (por ejemplo, un hash, literal o zset).

  • redis-ssl-flag: (opcional) cuando es True, se crea una conexión a Redis que usa SSL/TLS. El valor predeterminado es False.

  • redis-cluster-flag: (opcional) cuando es True, se habilita compatibilidad con instancias de Redis en clúster. El valor predeterminado es False.

  • redis-db-number: (opcional) se aplica solo para instancias independientes que no están en un clúster. Establezca este número (por ejemplo, 1, 2 o 3) para que se haga lectura de una base de datos de Redis no predeterminada. El valor predeterminado es la base de datos lógica 0 de Redis. Este número no hace referencia a una base de datos en Athena o AWS Glue, sino a una base de datos lógica de Redis. Para obtener más información, consulte SELECT index (Índice SELECT) en la documentación de Redis.

Tipos de datos

El conector para Redis admite los siguientes tipos de datos. No se admiten los flujos de Redis.

Todos los valores de Redis se recuperan como tipo de datos de la string. A continuación, se convierten en uno de los siguientes tipos de datos de Apache Arrow en función de cómo se definen las tablas en el AWS Glue Data Catalog.

Tipos de datos de AWS Glue Tipo de datos de Apache Arrow
int INT
string VARCHAR
bigint BIGINT
double FLOAT8
float FLOAT4
smallint SMALLINT
tinyint TINYINT
booleano BIT
binario VARBINARY

Permisos necesarios

Para obtener información completa sobre las políticas de IAM que requiere este conector, consulte la sección Policies del archivo athena-redis.yaml. En la siguiente lista se resumen los permisos requeridos.

  • Acceso de escritura a Amazon S3: el conector requiere acceso de escritura a una ubicación de Amazon S3 para volcar los resultados de consultas de gran tamaño.

  • Athena GetQueryExecution: el conector usa este permiso para fallar rápidamente cuando finaliza la consulta ascendente de Athena.

  • AWS Glue Data Catalog: el conector de Redis requiere acceso de solo lectura a AWS Glue Data Catalog para obtener información sobre el esquema.

  • Registros de CloudWatch: el conector requiere acceso a Registros de CloudWatch para almacenar registros.

  • Acceso de lectura a AWS Secrets Manager: si decide almacenar los detalles del punto de conexión de Redis en Secrets Manager, debe conceder al conector acceso a esos secretos.

  • Acceso a la VPC: el conector requiere la capacidad de conectar y desconectar interfaces a la VPC para que pueda conectarse a ella y comunicarse con las instancias de Redis.

Desempeño

El conector de Redis de Athena intenta paralelizar las consultas con la instancia de Redis de acuerdo con el tipo de tabla que haya definido (por ejemplo, claves de zset o de prefijo).

El conector Redis de Athena inserta predicados para reducir los datos analizados en la consulta. Sin embargo, las consultas que contienen un predicado en la clave principal generan un error cuando se agota el tiempo de espera. Las cláusulas LIMIT reducen la cantidad de datos analizados; sin embargo, si no proporciona un predicado, es probable que las consultas SELECT con una cláusula LIMIT analicen al menos 16 MB de datos. El conector para Redis resiste las limitaciones debidas a la simultaneidad.

Información sobre licencias

El proyecto de conector de Redis de Amazon Athena está cubierto por la Licencia de Apache-2.0.

Véase también

Para obtener más información acerca de este conector, consulte el sitio correspondiente en GitHub.com.