Conector para Timestream de Amazon Athena
El conector de Timestream de Amazon Athena permite que este servicio se comunique con Amazon Timestream
Amazon Timestream es una base de datos de serie temporal rápida, escalable, completamente administrada y diseñada específicamente que facilita el almacenamiento y el análisis de billones de puntos de datos de serie temporal por día. Timestream le ahorra tiempo y costo en la administración del ciclo de vida de los datos de serie temporal al mantener los datos recientes en la memoria y mover los datos históricos a un nivel de almacenamiento de información de costo optimizado en función de las políticas definidas por el usuario.
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.
Requisitos previos
Implemente el conector en su Cuenta de AWS mediante la consola de Athena o AWS Serverless Application Repository. Para obtener más información, consulte Implementación de un conector de origen de datos o Uso del AWS Serverless Application Repository para implementar un conector de origen de datos.
Parámetros
Use las variables de entorno de Lambda de esta sección para configurar el conector de Timestream.
-
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
llamadaathena-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 esFalse
, 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
De manera opcional, puede usar AWS Glue Data Catalog como fuente de metadatos complementarios. Para habilitar una tabla de AWS Glue con la intención de usarla con Timestream, debe disponer de una tabla y una base de datos de AWS Glue con nombres que coincidan con la base de datos y la tabla de Timestream a los que quiere proporcionar metadatos complementarios.
nota
Para obtener el mejor rendimiento, use solo minúsculas en los nombres de las bases de datos y tablas. El uso combinado de mayúsculas y minúsculas hace que el conector realice una búsqueda que no distinga mayúsculas de minúsculas, lo que requiere un mayor esfuerzo computacional.
Para configurar una tabla de AWS Glue con la intención de usarla con Timestream, debe establecer las propiedades de la tabla en AWS Glue.
Para usar una tabla de AWS Glue para metadatos complementarios
-
Edite la tabla en la consola de AWS Glue para agregar las siguientes propiedades de tabla:
timestream-metadata-flag: esta propiedad indica al conector de Timestream que este puede usar la tabla para obtener metadatos complementarios. Puede proporcionar cualquier valor para
timestream-metadata-flag
siempre y cuando latimestream-metadata-flag
esté presente en la lista de propiedades de la tabla.-
_view_template: cuando use AWS Glue para obtener metadatos complementarios, puede usar esta propiedad de tabla y especificar cualquier SQL de Timestream como vista. El conector de Timestream de Athena usa el SQL de la vista junto con el SQL de Athena para ejecutar la consulta. Esta opción es útil si quiere usar una característica de SQL de Timestream que no está disponible en Athena de otro modo.
-
Asegúrese de usar los tipos de datos adecuados para AWS Glue, como se indica en este documento.
Tipos de datos
Actualmente, el conector de Timestream solo admite un subconjunto de los tipos de datos disponibles en Timestream, específicamente: los valores escalares varchar
, double
y timestamp
.
Para consultar el tipo de datos timeseries
, debe configurar una vista en las propiedades de la tabla de AWS Glue que use la función CREATE_TIME_SERIES
de Timestream. También debe proporcionar un esquema para la vista que use la sintaxis ARRAY<STRUCT<time:timestamp,measure_value::double:double>>
como el tipo de cualquiera de las columnas de la serie temporal. Asegúrese de reemplazar double
por el tipo escalar adecuado para la tabla.
En la siguiente imagen, se muestra un ejemplo de propiedades de tabla de AWS Glue configuradas para crear una vista en una serie temporal.
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-timestream.yaml
-
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 Timestream 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 a Timestream: para ejecutar consultas de Timestream.
Rendimiento
Le recomendamos usar la cláusula LIMIT
para limitar los datos devueltos (no los datos analizados) a menos de 256 MB para garantizar que las consultas interactivas tengan un buen rendimiento.
El conector Timestream de Athena inserta predicados para reducir los datos analizados en la consulta. Las cláusulas LIMIT
reducen la cantidad de datos analizados; sin embargo, si no proporciona un predicado, debe tener en cuenta que las consultas SELECT
con una cláusula LIMIT
analizan al menos 16 MB de datos. La selección de un subconjunto de columnas acelera significativamente el tiempo de ejecución de las consultas y reduce la cantidad de datos analizados. El conector para Timestream resiste las limitaciones debidas a la simultaneidad.
Consultas de acceso directo
El conector para Timestream admite consultas de acceso directo. Las consultas de acceso directo utilizan una función de tabla para enviar la consulta completa al origen de datos para su ejecución.
Para usar consultas de acceso directo con Timestream, puede utilizar la siguiente sintaxis:
SELECT * FROM TABLE( system.query( query => '
query string
' ))
En el siguiente ejemplo de consulta, se envía una consulta a un origen de datos de Timestream. La consulta selecciona todas las columnas de la tabla customer
y limita los resultados a 10.
SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))
Información sobre licencias
El proyecto de conector de Timestream de Amazon Athena está cubierto por la Licencia de Apache-2.0
Recursos adicionales de
Para obtener más información acerca de este conector, consulte el sitio correspondiente