Desplazamiento al rojo del Amazonas es un almacén de datos en la estrato rápido, escalable, seguro y totalmente administrado que puede utilizar para analizar sus datos a escalera. Decenas de miles de clientes utilizan Amazon Redshift para procesar exabytes de datos para potenciar sus cargas de trabajo analíticas. API de datos de Amazon Redshift simplifica el ataque programático a Desplazamiento al rojo del Amazonas almacenes de datos al proporcionar un punto final HTTP seguro para ejecutar consultas SQL, de modo que no tenga que muletear con la oficina de controladores, conexiones de bases de datos, configuraciones de red, flujos de autenticación y otras complejidades de conectividad.
Amazon Redshift ha audaz una capacidad de reutilización de sesiones para la API de datos que puede optimizar significativamente las cargas de trabajo con estado de varios pasos, como canalizaciones de intercambio, transformación y carga (ETL), procesos de gestación de informes y otros flujos que implican consultas secuenciales. Este maniquí de sesión persistente proporciona los siguientes beneficios esencia:
- La capacidad de crear tablas temporales a las que se puede hacer narración durante toda la vida útil de la sesión.
- Sostener sesiones de bases de datos reutilizables para ayudar a optimizar el uso de las conexiones de bases de datos, evitando que el servidor API agote las conexiones disponibles y mejorando la escalabilidad común del sistema.
- Reutilizar sesiones de bases de datos para simplificar la deducción de oficina de conexiones en su implementación de API, reduciendo la complejidad del código y haciéndolo más sencillo de prolongar y avanzar.
- Redshift Data API proporciona un punto final HTTP seguro e integración con los SDK de AWS. Puede utilizar el punto final para ejecutar declaraciones SQL sin mandar conexiones. Las llamadas a la API de datos son asincrónicas. La API de datos utiliza credenciales almacenadas en AWS Secrets Manager o credenciales de bases de datos temporales
Un caso de uso popular que puede beneficiarse particularmente de la reutilización de sesiones son las canalizaciones ETL en los almacenes de datos de Amazon Redshift. Los procesos ETL a menudo necesitan organizar extractos de datos sin procesar en tablas temporales, ejecutar una serie de transformaciones mientras se hace narración a esos conjuntos de datos provisionales y, finalmente, cargar los resultados transformados en mercados de datos de producción. Ayer de que la reutilización de sesiones estuviera arreglado, la naturaleza de múltiples fases de los flujos de trabajo ETL significaba que los ingenieros de datos tenían que conservar los resultados intermedios y restablecer repetidamente las conexiones de la almohadilla de datos luego de cada paso, lo que resultaba en la aniquilación continua de sesiones; entretener, repoblar y truncar tablas temporales; e incurrir en gastos generales oportuno al ciclo de conexiones. Los ingenieros asimismo podrían reutilizar toda la señal API, pero esto podría crear un único punto de descompostura para todo el script porque no admite el reinicio desde el punto donde falló.
Con la reutilización de sesiones de Data API, puede utilizar una única sesión de larga duración al inicio del proceso de ETL y utilizar ese contexto persistente en todas las fases de ETL. Puede crear tablas temporales una vez y hacer narración a ellas en todo momento, sin tener que renovar constantemente las conexiones de la almohadilla de datos y reiniciar desde cero.
En esta publicación, analizaremos un proceso ETL de ejemplo que utiliza la reutilización de sesiones para crear, completar y consultar de guisa capaz tablas provisionales temporales en todo el flujo de trabajo de transformación de datos, todo interiormente de la misma sesión persistente de almohadilla de datos de Amazon Redshift. Aprenderá las mejores prácticas para optimizar el código de orquestación ETL, acortar los tiempos de ejecución de trabajos al acortar la sobrecarga de conexión y simplificar la complejidad de la canalización. Ya sea que sea un ingeniero de datos, un analista que genera informes o trabaja con cualquier otro cantidad con estado, vale la pena explorar cómo utilizar la reutilización de sesiones de la API de datos. ¡Vamos a sumergirnos!
Grímpola
Imagine que está creando un proceso ETL para prolongar una tabla de dimensiones de producto para una empresa de comercio electrónico. Esta tabla debe realizar un seguimiento de los cambios en los detalles del producto a lo dilatado del tiempo para fines de descomposición.
El ETL:
- Cargar datos extraídos del sistema fuente en una tabla temporal
- Identificar productos nuevos y actualizados comparándolos con la dimensión existente.
- Fusionar los cambios por etapas en la dimensión del producto utilizando una dimensión que cambia lentamente (SCD) Tipo 2 acercarse
Requisitos previos
Para seguir el ejemplo de esta publicación, necesita:
- Una cuenta de AWS
- Un categoría de trabajo o clúster aprovisionado de Amazon Redshift Serverless
operación en la tabla recién creada desde el comando antedicho, utilizando el –session-id devuelto en la respuesta del primer comando.
- Tutorial de la opción usaras Funciones de paso de AWS
- nombrar a la API de datos porque esta es una de las formas más sencillas de crear un ETL sin código. El primer paso es cargar los datos extraídos en una tabla temporal.
- Comience creando una tabla temporal basada en las mismas columnas que la tabla final usando CREATE TEMP TABLE stage_stores (LIKE store)”.
- Creación de tablas temporales En el próximo paso, copie los datos de Servicio de almacenamiento simple de Amazon (Amazon S3)
- a la mesa temporal. En división de restablecer la sesión, reutilícela.
- Utilice SessionId y Sql como parámetros.
- Copiar datos a Redshift Por posterior, utilice Unir
Fusionarse con corrimiento al rojo
Como se muestra en las figuras anteriores, utilizamos un componente de dilación porque la consulta fue lo suficientemente rápida como para que no se capturara la sesión. Si la sesión no se captura, recibirá un error La sesión no está arreglado. Si encuentra ese error o uno similar, intente adicionar un componente de dilación de 1 segundo.
Función de paso
Otros casos de uso relevantes
- La API de datos de Amazon Redshift no reemplaza los controladores JDBC y ODBC y es adecuada para casos de uso en los que no necesita una conexión persistente a un clúster. Es aplicable en los siguientes casos de uso: Consentir a Amazon Redshift desde aplicaciones personalizadas con cualquier habla de programación compatible conSDK de AWS
- . Esto le permite integrar aplicaciones basadas en web para penetrar a datos de Amazon Redshift mediante una API para ejecutar declaraciones SQL. Por ejemplo, puede ejecutar SQL desde JavaScript.
- Creación de un flujo de trabajo de procesamiento de datos sin servidor.
- Diseñar paneles web asincrónicos porque la API de datos le permite ejecutar consultas de larga duración sin tener que esperar a que se complete.
- Ejecutar su consulta una vez y recuperar los resultados varias veces sin tener que ejecutar la consulta nuevamente interiormente de las 24 horas. Construyendo sus canales ETL conFunciones de paso ,AWS Lambda
- y procedimientos almacenados. Tener ataque simplificado a Amazon Redshift desde Amazon SageMaker
- y cuadernos Jupyter. Creación de aplicaciones basadas en eventos conPuente de eventos de Amazon
- y Lambda.
Programación de scripts SQL para simplificar la carga, descarga y puesta al día de datos de vistas materializadas.
Consideraciones esencia para utilizar la reutilización de sesiones
- Cuando realiza una solicitud de API de datos para ejecutar una instrucción SQL, si el parámetro SessionKeepAliveSeconds no está configurado, la sesión donde se ejecuta SQL finaliza cuando finaliza SQL. Para prolongar la sesión activa durante una cantidad específica de segundos, debe configurar SessionKeepAliveSeconds en Data API ExecuteStatement y BatchExecuteStatement. Un campo SessionId estará presente en el JSON de respuesta que contiene la identidad de la sesión, que luego se puede usar en operaciones posteriores ExecuteStatement y BatchExecuteStatement. En llamadas posteriores, puede especificar otro SessionKeepAliveSeconds para cambiar el tiempo de dilación de inactividad. Si no se cambia SessionKeepAliveSeconds, la configuración de tiempo de dilación de inactividad auténtico permanece. Considere lo próximo cuando utilice la reutilización de sesiones:
- El valencia mayor de SessionKeepAliveSeconds es 24 horas. Posteriormente de 24 horas, la sesión se cierra por la fuerza y las consultas en curso finalizan. La cantidad máxima de sesiones por clúster de Amazon Redshift o categoría de trabajo Redshift Serverless es 500.Consulte las cuotas y límites de Redshift aquí.
- .
- No es posible ejecutar ejecuciones paralelas de la misma sesión. Debe esperar hasta que finalice la consulta para ejecutar la próximo consulta en la misma sesión. Es sostener, no se pueden ejecutar consultas en paralelo en una sola sesión.
La API de datos no puede poner en pan dulce consultas para una sesión determinada.
Mejores prácticas
- Recomendamos las siguientes mejores prácticas al utilizar la API de datos: Federe sus credenciales de IAM en la almohadilla de datos para conectarse con Amazon Redshift. Amazon Redshift permite a los usuarios obtener credenciales de bases de datos temporales con GetClusterCredentials. Recomendamos determinar el inteligencia del ataque a un clúster específico y a un afortunado de almohadilla de datos si otorga a sus usuarios credenciales temporales. Para obtener más información, consultePolítica de ejemplo para usar GetClusterCredentials
- . Utilice una política personalizada para proporcionar ataque detallado a la API de datos en el entorno de producción si no desea que sus usuarios utilicen credenciales temporales. puedes usar Administrador de secretos de AWS
- para mandar sus credenciales en tales casos de uso.
- El tamaño mayor de registro que se puede recuperar es 64 KB. Más que eso generará un error. No recupere una gran cantidad de datos de su cliente y utilice el DESCARGAR
- comando para exportar los resultados de la consulta a Amazon S3. Está condicionado a recuperar no más de 100 MB de datos mediante la API de datos.
- Los resultados de la consulta se almacenan durante 24 horas y se descartan luego de eso. Si necesita el mismo resultado luego de 24 horas, deberá retornar a ejecutar el script para obtener el resultado.
- Recuerde que la sesión estará arreglado durante el tiempo especificado por el parámetro SessionKeepAliveSeconds en la señal a la API de datos de Redshift. La sesión finalizará luego de la duración especificada. Según sus requisitos de seguridad, configure este valencia de acuerdo con su ETL y asegúrese de que las sesiones se cierren correctamente configurando SessionKeepAliveSeconds en 1 segundo para finalizarlas.
- Al invocar los comandos de la API de Redshift, todas las actividades, incluido el afortunado que ejecutó el comando y aquellos que reutilizaron la sesión, se registran en CloudWatch. Encima, puede configurar alertas para el seguimiento.
Si una sesión de Redshift finaliza o se cierra e intenta penetrar a ella a través de la API, recibirá un mensaje de error que indica: «La sesión no está arreglado».
Conclusión
En esta publicación, le presentamos la funcionalidad de reutilización de sesiones de la API de datos de Amazon Redshift recientemente puyazo. Todavía demostramos cómo utilizar la API de datos desde el editor de consultas de la consola de Amazon Redshift y Python utilizando el SDK de AWS. Todavía proporcionamos mejores prácticas para usar la API de datos. Para obtener más información, consulte Uso de la API de datos de Amazon Redshift o pasar revista el Repositorio GitHub de API de datos para ejemplos de código. Para sin servidor, consulteUtilice la API de datos de Amazon Redshift para interactuar con Amazon Redshift Serverless
.
——————————————————————————————————————————————————–
Sobre el autor Dipal Mahajan
es consejero principal de Amazon Web Services con sede en India, donde asesor a clientes globales para crear aplicaciones en la estrato enormemente seguras, escalables, confiables y rentables. Aporta una amplia experiencia en mejora, bloque y descomposición de software en industrias como finanzas, telecomunicaciones, comercio minorista y atención médica. Anusha Challa
es un arquitecto senior de soluciones experto en descomposición enfocado en Amazon Redshift. Ha ayudado a muchos clientes a crear soluciones de almacenamiento de datos a gran escalera en la estrato y en las instalaciones. Le apasiona el descomposición de datos y la ciencia de datos. Debu Panda
es administrador sénior de administración de productos en AWS. Es un líder de la industria en descomposición, plataformas de aplicaciones y tecnologías de bases de datos, y tiene más de 25 primaveras de experiencia en el mundo de TI. Ricardo Serafim
es arquitecto senior de soluciones experto en descomposición en AWS.