Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Conector do Amazon Athena para Redis OSS

Modo de foco
Conector do Amazon Athena para Redis OSS - Amazon Athena

O conector do Redis OSS no Amazon Athena permite que o Amazon Athena se comunique com as instâncias do Redis OSS para que você possa consultar os dados do Redis OSS com SQL. É possível usar o AWS Glue Data Catalog para mapear os pares de chave-valor do Redis OSS em tabelas virtuais.

Ao contrário dos armazenamentos de dados relacionais tradicionais, o Redis OSS não tem o conceito de tabela ou coluna. Em vez disso, o Redis OSS oferece padrões de acesso de valores-chave em que a chave é essencialmente uma string e o valor é uma string, z-set ou hmap.

É possível usar o AWS Glue Data Catalog para criar um esquema e configurar tabelas virtuais. As propriedades especiais da tabela informam ao conector do Redis OSS do Athena como mapear suas chaves e valores do Redis OSS em uma tabela. Para obter mais informações, consulte Configuração de bancos de dados e tabelas no AWS Glue adiante neste documento.

Esse conector não usa o Glue Connections para centralizar as propriedades de configuração no Glue. A configuração da conexão é feita por meio do Lambda.

Se você tiver o Lake Formation habilitado em sua conta, o perfil do IAM para seu conector Lambda federado para Athena que você implantou no AWS Serverless Application Repository deve ter acesso de leitura ao AWS Glue Data Catalog no Lake Formation.

O conector do Amazon Athena para o Redis OSS oferece suporte ao Amazon MemoryDB e ao Amazon ElastiCache (Redis OSS).

Pré-requisitos

Parâmetros

Use os parâmetros nesta seção para configurar o conector do Redis.

  • spill_bucket: especifica o bucket do Amazon S3 para dados que excedem os limites da função do Lambda.

  • spill_prefix: (opcional) assume como padrão uma subpasta no spill_bucket especificado chamado athena-federation-spill. Recomendamos que você configure um ciclo de vida de armazenamento do Amazon S3 neste local para excluir derramamentos anteriores a um número predeterminado de dias ou horas.

  • spill_put_request_headers: (opcional) um mapa codificado em JSON de cabeçalhos e valores de solicitações para a solicitação putObject do Amazon S3 usada para o derramamento (por exemplo, {"x-amz-server-side-encryption" : "AES256"}). Para outros cabeçalhos possíveis, consulte PutObject na Referência da API do Amazon Simple Storage Service.

  • kms_key_id: (opcional) por padrão, todos os dados transmitidos para o Amazon S3 são criptografados usando o modo de criptografia autenticado AES-GCM e uma chave gerada aleatoriamente. Para que sua função do Lambda use chaves de criptografia mais fortes geradas pelo KMS, como a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, é possível especificar um ID de chave do KMS.

  • disable_spill_encryption: (opcional) quando definido como True, desativa a criptografia do derramamento. É padronizado como False, para que os dados transmitidos para o S3 sejam criptografados usando o AES-GCM — usando uma chave gerada aleatoriamente ou o KMS para gerar chaves. Desativar a criptografia do derramamento pode melhorar a performance, especialmente se o local do derramamento usar criptografia no lado do servidor.

  • glue_catalog: (opcional) use essa opção para especificar um catálogo do AWS Glue entre contas. Por padrão, o conector tenta obter metadados de sua própria conta do AWS Glue.

Configuração de bancos de dados e tabelas no AWS Glue

Para habilitar uma tabela do AWS Glue para uso com o Redis OSS, é possível definir as seguintes propriedades da tabela na tabela: redis-endpoint, redis-value-type e redis-keys-zset ou redis-key-prefix.

Além disso, qualquer banco de dados do AWS Glue que contenha tabelas do Redis OSS deve ter um redis-db-flag na propriedade URI do banco de dados. Para definir a propriedade da URI redis-db-flag, use o console do AWS Glue para editar o banco de dados.

A lista a seguir descreve as propriedades da tabela.

  • redis-endpoint: (obrigatório) o nome do host:porta:senha do servidor Redis que contém dados para essa tabela (por exemplo, athena-federation-demo.cache.amazonaws.com:6379). Como alternativa, é possível armazenar o endpoint, ou parte do endpoint, em AWS Secrets Manager, usando ${Secret_Name} como o valor da propriedade da tabela.

nota

Para usar o recurso de consulta federada do Athena com o AWS Secrets Manager, a VPC conectada à sua função do Lambda deve ter acesso à Internet ou um endpoint da VPC para se conectar ao Secrets Manager.

  • redis-keys-zset: (necessário se redis-key-prefix não for usado) uma lista separada por vírgulas de chaves cujo valor é um zset (por exemplo, active-orders,pending-orders). Cada um dos valores no zset é tratado como uma chave que faz parte da tabela. A propriedade redis-keys-zset ou a propriedade redis-key-prefix devem ser definidas.

  • redis-key-prefix: (necessário se redis-keys-zset não for usado) uma lista separada por vírgulas de prefixos de chave para verificar os valores na tabela (por exemplo, accounts-*,acct-). A propriedade redis-key-prefix ou a propriedade redis-keys-zset devem ser definidas.

  • redis-value-type: (obrigatório) define como os valores das chaves definidos por redis-key-prefix ou redis-keys-zset são mapeados para sua tabela. Um literal é mapeado para uma única coluna. Um zset também é mapeado para uma única coluna, mas cada chave pode armazenar muitas linhas. Um hash permite que cada chave seja uma linha com várias colunas (por exemplo, um hash, literal ou zset).

  • redis-ssl-flag: (opcional) quando for True, cria uma conexão Redis que usa SSL/TLS. O padrão é False.

  • redis-cluster-flag: (opcional) quando for True, permite o suporte para instâncias Redis em cluster. O padrão é False.

  • redis-db-number: (opcional) aplica-se somente a instâncias autônomas sem cluster. Defina esse número (por exemplo, 1, 2 ou 3) para ler de um banco de dados Redis não padrão. O padrão é o banco de dados lógico Redis 0. Esse número não se refere a um banco de dados no Athena ou no AWS Glue, mas a um banco de dados lógico Redis. Para obter mais informações, consulte Índice SELECT na documentação do Redis.

Tipos de dados

O conector Redis OSS é compatível com os tipos de dados a seguir. Os fluxos do Redis OSS não são compatíveis.

Todos os valores do Redis OSS são recuperados como o tipo de dados string. Em seguida, eles são convertidos em um dos seguintes tipos de dados do Apache Arrow, com base em como suas tabelas são definidas no AWS Glue Data Catalog.

Tipo de dados do AWS Glue Tipo de dados Apache Arrow
int INT
string VARCHAR
bigint BIGINT
double FLOAT8
float FLOAT4
smallint SMALLINT
tinyint TINYINT
boolean BIT
binary VARBINARY

Permissões obrigatórias

Os detalhes completos sobre as políticas do IAM exigidas por esse conector podem ser encontrados na seção Policies do arquivo athena-redis.yaml. A lista a seguir resume as permissões necessárias.

  • Acesso de gravação do Amazon S3: o conector requer acesso de gravação a um local no Amazon S3 para mostrar resultados de grandes consultas.

  • Athena GetQueryExecution: o conector usa esta permissão para falhar rapidamente quando a consulta upstream do Athena é encerrada.

  • AWS Glue Data Catalog: o conector do Redis requer acesso somente de leitura ao AWS Glue Data Catalog para obter informações do esquema.

  • CloudWatch Logs: o conector requer acesso ao CloudWatch Logs para armazenar registros.

  • Acesso de leitura do AWS Secrets Manager: se você optar por armazenar os detalhes do endpoint do Redis no Secrets Manager, deverá conceder ao conector acesso a esses segredos.

  • Acesso à VPC: o conector exige a capacidade de conectar e desconectar interfaces à sua VPC para que possa se conectar a ela e se comunicar com suas instâncias do Redis.

Performance

O conector do Redis OSS para o Athena tenta paralelizar as consultas com sua instância do Redis OSS de acordo com o tipo de tabela que você definiu (por exemplo, chaves zset ou chaves de prefixo).

O conector do Athena para Redis realiza a passagem direta de predicados para diminuir os dados examinados pela consulta. No entanto, as consultas que contêm um predicado na chave primária apresentam falhas relacionadas ao tempo limite. As cláusulas LIMIT reduzem a quantidade de dados verificados, mas se você não fornecer um predicado, deverá aguardar que as consultas SELECT com uma cláusula LIMIT verifiquem, no mínimo, 16 MB de dados. O conector Redis é resiliente ao controle de utilização devido à simultaneidade.

Consultas de passagem

O conector Redis é compatível com consultas de passagem. Você pode usar esse atributo para executar consultas que usam um script Lua em bancos de dados Redis.

Para usar consultas de passagem com o Redis, use a seguinte sintaxe:

SELECT * FROM TABLE( system.script( script => 'return redis.[call|pcall](query_script)', keys => '[key_pattern]', argv => '[script_arguments]' ))

O exemplo a seguir executa um script Lua para obter o valor na chave l:a.

SELECT * FROM TABLE( system.script( script => 'return redis.call("GET", KEYS[1])', keys => '[l:a]', argv => '[]' ))

Informações de licença

O projeto do conector do Redis do Amazon Athena é licenciado sob a Licença Apache-2.0.

Recursos adicionais

Para obter mais informações sobre esse conector, visite o site correspondente em GitHub.com.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.