Un resumen de las Guías para los productos AWS para Big Data

Cesar Cam
BigDataLatam
Published in
8 min readNov 26, 2019

De acuerdo a su propia página web; AWS ofrece un conjunto integrado de servicios que proveen todo lo necesario para crear y administrar de manera rápida y sencilla un data lake destinado al análisis. Los data lakes con tecnología de AWS pueden manejar el nivel de escala, agilidad y flexibilidad requerido para combinar diferentes tipos de datos y enfoques analíticos a los fines de obtener información más detallada. Para lograrlo, utilizan procesos que son inviables con los almacenes de datos y los silos de datos tradicionales. AWS ofrece a los clientes la gama más amplia de servicios de análisis y aprendizaje automático para que puedan obtener acceso a todos los datos relevantes de manera sencilla, sin poner en riesgo la seguridad ni el control.

AMAZON ELASTIC MAP REDUCE (EMR)

Amazon EMR es una plataforma de clúster administrada que simplifica la ejecución de los marcos de trabajo de Big Data, tales como Apache Hadoop y Apache Spark en AWS para procesar y analizar grandes cantidades de datos. Mediante el uso de estos marcos de trabajo y proyectos de código abierto relacionados, como Apache Hive y Apache Pig, podemos procesar datos para fines de análisis y cargas de trabajo de inteligencia empresarial. Además, podemos utilizar Amazon EMR para transformar y trasladar grandes cantidades de datos hacia y desde otros almacenes de datos y bases de datos de AWS, tales como Amazon Simple Storage Service (Amazon S3) y Amazon DynamoDB.

El componente central de Amazon EMR es el clúster. Un clúster es un conjunto de instancias Amazon Elastic Compute Cloud (Amazon EC2). Cada instancia del clúster se denomina nodo. Cada nodo cumple una función dentro del clúster, que se conoce como tipo de nodo. Amazon EMR también instala distintos componentes de software en cada tipo de nodo, proporcionando a cada nodo una función en una aplicación distribuida, como Apache Hadoop.

Los tipos de nodos en Amazon EMR son los siguientes:

  • Nodo principal: un nodo que administra el clúster ejecutando componentes de software para coordinar la distribución de datos y las tareas entre los demás nodos para su procesamiento. El nodo principal realiza un seguimiento del estado de las tareas y monitoriza el estado del clúster. Cada clúster tiene un nodo principal, y se puede crear un clúster de un solo nodo con solo el nodo principal.
  • Nodo secundario: un nodo con componentes de software que ejecutan tareas y almacenan datos en el Hadoop Distributed File System (HDFS) del clúster. Los clústeres de varios nodos tienen al menos un nodo secundario.
  • Nodo de tareas: un nodo con componentes de software que solo ejecuta tareas y no almacena datos en HDFS. Los nodos de tareas son opcionales.

AMAZON ATHENA

Amazon Athena es un servicio de consultas interactivo que facilita el análisis de datos directamente en Amazon Simple Storage Service (Amazon S3) mediante SQL estándar. Unas pocas acciones en la consola de administración de AWS nos permitirán apuntar Athena a los datos guardados en Amazon S3 y comenzar a usar SQL estándar para realizar consultas ad hoc y obtener resultados de forma muy rápida.

Athena es un servicio sin servidor, por lo que no hay ninguna infraestructura que configurar o administrar y solo pagamos por las consultas que realizamos. Athena se amplía automáticamente — ejecutando consultas en paralelo — , por lo que los resultados son rápidos, incluso con conjuntos de datos de gran tamaño y consultas complejas.

Athena nos ayuda a analizar datos no estructurados, semiestructurados y estructurados almacenados en Amazon S3. Algunos ejemplos son datos en CSV, JSON o con formatos de columnas, como Apache Parquet y Apache ORC. Podemos usar Athena para ejecutar consultas ad-hoc con ANSI SQL y sin necesidad de agregar los datos o cargarlos en Athena.

Athena se integra con Amazon QuickSight para facilitar la visualización de datos. Podemos utilizar Athena para generar informes o para explorar datos con herramientas de inteligencia empresarial o clientes SQL conectados mediante un controlador ODBC o JDBC.

AMAZON QUICKSIGHT

Amazon QuickSight es un servicio de análisis empresarial que se puede utilizar para crear visualizaciones, realizar análisis ad hoc y obtener información útil empresarial a partir de sus datos. Puede detectar automáticamente los orígenes de datos de AWS y trabajar también con sus orígenes de datos. Amazon QuickSight permite a las empresas escalar de cientos a miles de usuarios y ofrece un desempeño fiable gracias a su sólido motor en memoria (SPICE).

AMAZON REDSHIFT

Amazon Redshift es un servicio de almacenamiento de datos en la nube completamente administrado a escala de petabytes. Podemos comenzar con solo unos cientos de gigabytes de datos y, luego, ampliarlos a un petabyte o más. Esto nos permite usar los datos para adquirir nuevos desarrollos para nuestra empresa y sus clientes.

El primer paso para crear un data warehouse es el lanzamiento de un conjunto de nodos, llamados cluster de Amazon Redshift. Después de aprovisionar el cluster, podemos cargar el conjunto de datos y, luego, realizar diversas consultas de análisis. Independientemente del tamaño del conjunto de datos, Amazon Redshift ofrece un rendimiento de consultas rápido mediante las mismas herramientas basadas en SQL y aplicaciones de inteligencia empresarial que se usan en la actualidad.

Cada cluster de Amazon Redshift es un conjunto de nodos que incluye un nodo principal y uno o más nodos de computación. El tipo y la cantidad de nodos de computación que se necesitan depende del tamaño de los datos, la cantidad de consultas que se ejecutarán y el rendimiento de ejecución de consultas que necesitamos.

AMAZON KINESIS DATA ANALYTICS

Con Amazon Kinesis Data Analytics for SQL Applications, podemos procesar y analizar datos de streaming mediante SQL estandar. El servicio nospermite crear rápidamente y ejecutar código SQL en orígenes de streaming para realizar análisis de serie temporal, alimentar paneles en tiempo real y crear métricas en tiempo real.

Para comenzar a utilizar Kinesis Data Analytics, debemos crear una aplicación de análisis de datos de Kinesis que lea y procese constantemente datos de streaming. El servicio admite la ingesta de datos de orígenes de streaming Amazon Kinesis Data Streams y Amazon Kinesis Data Firehose. A continuación, creamos código SQL con el editor interactivo y podemos probar con datos de streaming en vivo. También podemos configurar los destinos a los que deseamos que Kinesis Data Analytics envíe los resultados.

Kinesis Data Analytics admite Amazon Kinesis Data Firehose (Amazon S3, Amazon Redshift, Amazon Elasticsearch Service y Splunk), AWS Lambda y Amazon Kinesis Data Streams como destinos.

Amazon Kinesis Data Analytics permite crear rápidamente un código SQL que lee, procesa y almacena datos de manera continua en casi tiempo real. Puede utilizar consultas SQL estándar con los datos de streaming para crear aplicaciones que transformen y proporcionen información valiosa a partir de los datos.

A continuación se indican algunos escenarios de ejemplo para utilizar Kinesis Data Analytics:

• Generar análisis de series de tiempo — puede calcular métricas en ventanas temporales y transmitir los valores a Amazon S3 o Amazon Redshift a través de una secuencia de entrega de datos de Kinesis.

• Alimentar paneles en tiempo real — puede enviar los resultados de datos de streaming completos y procesados para alimentar paneles en tiempo real.

  • Crear métricas en tiempo real –puede crear métricas personalizadas y disparadores para usarlos en el monitoreo, las notificaciones y las alarmas en tiempo real.

AMAZON KINESIS DATA STREAMS

Amazon Kinesis Data Streams se utiliza para recopilar y procesar grandes secuencias de registros de datos en tiempo real. Podemos crear aplicaciones de procesamiento de datos, conocidas como aplicaciones de Kinesis Data Streams. Una aplicación de Kinesis Data Streams típica lee datos de una secuencia de datos en forma de registros de datos. Estas aplicaciones pueden utilizar Kinesis Client Library y pueden ejecutarse en instancias de Amazon EC2. Los registros procesados pueden enviarse a paneles y utilizarlos para generar alertas, cambiar dinámicamente las estrategias de precios y publicidad o enviar datos a otros muchos servicios de AWS.

El tipo de datos utilizado puede incluir datos de registros de infraestructura de TI, registros de aplicaciones, redes sociales, fuentes de datos de mercado y datos de secuencias de clics en sitios web. Dado que el tiempo de respuesta necesario para la admisión y el procesamiento de datos es en tiempo real, el procesamiento suele ser ligero.

A continuación se muestran supuestos típicos en los que usar Kinesis Data Streams:

Admisión y procesamiento acelerados de transmisiones de datos y registros:

Puede hacer que los generadores de datos los inserten directamente en una secuencia. Por ejemplo, se pueden enviar logs del sistema y de las aplicaciones, y estarán disponibles para su procesamiento en cuestión de segundos. Esto impide que los datos de registro se pierdan si hay un error en el frontend o en el servidor de aplicaciones. Kinesis Data Streams proporciona una entrada de los datos acelerada, ya que no es necesario acumular lotes de datos en los servidores antes de enviarlos.

Métricas e informes en tiempo real:

Puede utilizar los datos recopilados en Kinesis Data Streams para el análisis y la elaboración de informes sencillos en tiempo real. Por ejemplo, su aplicación de procesamiento de datos puede utilizar las métricas y los análisis de los registros de sistemas y aplicaciones a medida que entran los datos del streaming, en lugar de esperar a que lleguen lotes completos de datos

Análisis de datos en tiempo real:

Así se combina la eficacia del procesamiento paralelo con el valor de los datos en tiempo real. Por ejemplo, puede procesar secuencias de clics de sitios web en tiempo real y, a continuación, analizar el uso del sitio mediante diferentes aplicaciones de Kinesis Data Streams ejecutándose en paralelo.

Procesamiento de secuencias complejas:

Puede crear gráficos acíclicos dirigidos (DAG) de aplicaciones y secuencias de datos de Kinesis Data Streams. Para ello, normalmente es necesario insertar datos de varias aplicaciones de Kinesis Data Streams en otra secuencia para su posterior procesamiento por otra aplicación de Kinesis Data Streams.

--

--