Athrun Data Intelligence


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:

  1. La capacidad de crear tablas temporales a las que se puede hacer narración durante toda la vida útil de la sesión.
  2. 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.
  3. 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.
  4. 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:

  1. Cargar datos extraídos del sistema fuente en una tabla temporal
  2. Identificar productos nuevos y actualizados comparándolos con la dimensión existente.
  3. 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

Comandos de la API de datos de Redshift

Este comando ejecuta una consulta de la API de datos de Redshift para crear una tabla temporal señal stage_stores en Redshift.

 aws redshift-data execute-statement 
       --session-keep-alive-seconds 30 
       --sql "CREATE TEMP TABLE stage_stores (LIKE stores)" 
       --database dev 
       --workgroup-name blog_test

Este comando realiza un COUNT

 aws redshift-data execute-statement
    --sql "select count(*) from dev.stage_stores"
    --session-id 5a254dc6-4fc2-4203-87a8-551155432ee4
    --session-keep-alive-seconds 10

operación en la tabla recién creada desde el comando antedicho, utilizando el –session-id devuelto en la respuesta del primer comando.

  1. 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)”.

Cuando utilice Redshift Serverless, debe utilizar WorkgroupName. Si utiliza el clúster Redshift Provisioned, debe utilizar ClusterIdentifier.

  1. 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.

La base de datos es un parámetro obligatorio para Step Functions, pero no es necesario que tenga un valor cuando se utiliza SessionId.

  1. Copiar datos a Redshift Por posterior, utilice Unir

para fusionar las tablas de destino y temporales (fuente) para insertar o actualizar datos en función de los nuevos datos de los archivos.

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.

Al final, se debe completar el caso de uso de la API de datos, como se muestra en la siguiente figura.

Función de paso

Otros casos de uso relevantes

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

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *