in

Deshazte de la base de datos

Deshazte de la base de datos

David Hurley

3 de junio de 2020·5 min de lectura

Cómo utilizar AWS S3 Select para realizar consultas de forma más inteligente y quizás más económica

Amazon S3 Select, una función de Amazon S3, estuvo disponible de forma generalizada en abril de 2018. Al utilizar Amazon S3 Select, es posible ejecutar una aplicación sin una base de datos «clásica», lo que simplifica la arquitectura de la aplicación.

Cualquiera que trabaje con datos probablemente haya utilizado una solución de almacenamiento basada en la nube en algún momento de su canalización de datos. Personalmente, Amazon S3 es mi opción preferida, ya que es relativamente simple de usar, fácil de escalar, se combina con otros servicios de AWS y almacena objetos de casi cualquier tipo de archivo.

Tiempo Amazon S3 es IMPRESIONANTE para almacenar conjuntos de datos, al igual que otras soluciones tradicionales de almacenamiento de objetos basadas en la nube, no permite recuperar subconjuntos de un conjunto de datos (es decir, se debe recuperar todo el conjunto de datos). Por ejemplo, si necesita las primeras 1000 líneas de un conjunto de datos de 1 millón de líneas, debe recuperar el conjunto de datos completo y filtrar localmente. Esto hace que no sea práctico usar Amazon S3 como la única base de datos para aplicaciones, particularmente aplicaciones que constantemente necesitan recuperar subconjuntos de un conjunto de datos más grande (es decir, una aplicación web que recupera registros de clientes).

Ingrese Amazon S3 Select 🙌

Descripción general: Amazon S3 Select

Amazon S3 Select le permite usar expresiones SQL simples para extraer solo los datos que necesita de un objeto de Amazon S3. ¡¡¡Esto es ENORME !!!

Con S3 Select ya no es necesario recuperar un conjunto de datos completo solo para retener unas pocas líneas. En su lugar, puede usar expresiones SQL clásicas para consultar datos en el lugar y recuperar solo un subconjunto, como datos entre dos fechas o por encima de un precio determinado. Actualmente, Amazon S3 Select funciona con objetos en formato CSV, JSON y Apache Parquet.

Al reducir el volumen de datos que deben cargar y procesar sus aplicaciones, S3 Select puede mejorar el rendimiento de la mayoría de las aplicaciones que acceden con frecuencia a los datos de S3 mediante hasta 400%. – Servicios web de Amazon

Simplifique con Amazon S3 Select

La mejor parte de Amazon S3 Select es cómo simplifica la estructura de la aplicación. Antes de Amazon S3 Select, la estructura típica de una aplicación web puede tener el siguiente aspecto.

  • Almacene los datos en una base de datos SQL clásica (es decir, MySQL o PostgreSQL) o NoSQL (es decir, DynamoDB) donde se pueden consultar.
  • Mantenga copias de seguridad de los datos en el almacenamiento de objetos persistentes (es decir, Amazon S3)
  • Transfiera nuevos datos a Amazon S3 y luego agréguelos a la base de datos.

Con Amazon S3 Select, la estructura de la aplicación web es similar a la siguiente.

  • Almacene datos en Amazon S3 donde se pueden consultar.

¡MUCHO MEJOR! Ahora puede crear una aplicación de un extremo a otro utilizando solo Amazon S3. ¡Es rápido, económico y sencillo de usar! 👍

Ejemplo: Amazon S3 Select

Recientemente, desarrollé e implementé una aplicación web para facilitar y acelerar la descarga y visualización de datos meteorológicos canadienses históricos. Esta fue la primera aplicación web que construí donde no usé una base de datos clásica y en su lugar almacené y consulté datos estáticos y dinámicos directamente desde Amazon S3. Al usar Amazon S3 Select, pude tomar rápida y fácilmente las entradas de los usuarios desde mi panel dinámico, pasarlas a una expresión SELECT y consultar y recuperar solo los datos solicitados.

A continuación, se muestran algunos datos de ejemplo y una función para consultar un CSV en Amazon S3 y devolver un formato CSV que se puede leer en un marco de datos de Pandas. La sintaxis SQL de Amazon S3 para CSV puede ser un poco complicada. Puede consultar utilizando nombres de columna o índice de columna y, según el que elija, la expresión SQL será diferente.

¿Cómo consultar por nombre de columna?

Consultemos el conjunto de datos anterior entre dos fechas usando nombres de columna y devolvamos solo las columnas correspondientes para la fecha, la velocidad del viento y la dirección del viento.

¿Cómo consultar por índice de columna?

Consultemos el conjunto de datos anterior cuando la temperatura sea superior a 20 grados Celsius utilizando el índice de columna y devolvamos solo las columnas correspondientes para la fecha y la temperatura.

Observe que el índice comienza en 1 (es decir, s._1) en S3 Select, mientras que Python sería 0. Asegúrese de que está comparando tipos de datos comunes en la expresión SQL utilizando el comando «cast» para convertir un tipo de datos en otro. Si mis datos de temperatura hubieran sido en formato de cadena, habría necesitado «Emitir (s._4 como flotante)> 20».

¿Cómo consultar los nombres de los encabezados?

Consultemos solo los nombres de los encabezados del conjunto de datos anterior para que podamos usarlos para agregarlos a otros resultados de la consulta o como entradas a un menú desplegable de panel dinámico. En este caso, configuro use_header para Falso para que los nombres de las columnas se devuelvan en la primera fila y utilice la función S3 Select LIMIT para limitar el número de filas devueltas a 1.

Costo de Amazon S3 Select

¡Amazon S3 Select es BARATO! A continuación, se muestra un desglose de los costos iniciales de mi solicitud (vigentes a junio de 2020).

  • Almacenamiento de objetos de Amazon S3: $ 0.023 por GB (primeros 50 TB / mes)
  • Amazon S3 Select – $ 0,0004 por cada 1000 comandos SELECT
  • Transferencia de datos de Amazon S3: $ 0.01 por GB (S3 → Región Este de EE. UU.)

Almaceno aproximadamente 37 GB de datos en S3, ejecuto casi 100.000 comandos SELECT al mes y transfiero aproximadamente 50 GB de datos de S3 al mes. Eso eleva mis costos mensuales estimados a…. $ 1.39 USD!

Conclusión

Aunque Amazon S3 Select ha estado disponible durante más de 2 años (en años de código eso es un milenio 😆), es una gran herramienta para simplificar aplicaciones, particularmente marcos de microservicios.

¡Feliz consulta!

Deja una respuesta

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

Aprende paso a paso como ver el historial de visualizaciones de TikTok

¿Cómo puedo ver el historial de TikTok y saber qué videos ya he visto en esta red social? Guía paso por paso

498686

Visita rápida a oracleDatabase 11g Express Edition