
Siempre nos faltan datos. Y no solo queremos más datos ... queremos nuevos tipos de datos que nos permitan comprender mejor nuestros productos, clientes y mercados. Siempre estamos en busca de nuevos datos, datos de todas las formas y tamaños, estructurados y no muy. Queremos abrir nuestras puertas a una nueva generación de profesionales de negocios y especialistas técnicos que abrirán con entusiasmo nuevas bases de datos y tecnologías con nosotros, lo que posteriormente cambiará la naturaleza de cómo interactuamos con los datos y el impacto que tienen en nuestras vidas.
Daré un ejemplo de vida para que entiendas mejor lo que quiero decir. Hace unos dos años, los datos salvaron la vida de la hija de mi amigo. Cuando nació, le diagnosticaron siete defectos cardíacos. Gracias a las nuevas tecnologías, como gráficos 3D interactivos, modelado virtual, análisis de ECG más inteligente, soluciones modernas para monitorear a los pacientes que se encuentran en reposo en cama y gracias a otros procedimientos médicos avanzados basados en datos, logró sobrevivir a dos cirugías a corazón abierto y ahora vive una vida saludable. . Los datos le salvaron la vida. Esto es lo que me empuja todos los días a buscar nuevas soluciones innovadoras y formas de transferir datos más rápido a aquellos que los necesitan más que otros.
Estoy orgulloso de ser parte del equipo de Cloudera Data Warehouse (CDW), impulsado por Cloudera Data Platform (CDP). CDP se creó desde cero como una nube de datos empresariales o Enterprise Data Cloud (EDC). EDC es una herramienta multifuncional para implementar muchas tareas en una plataforma. Gracias al uso de sistemas híbridos y de múltiples nubes, CDP puede trabajar en cualquier lugar, tanto en una plataforma sin un sistema operativo como en una nube pública y privada. A medida que se introducen más soluciones en la nube como parte de nuestro plan de desarrollo digital, vemos que las soluciones híbridas y multi-nube se convierten en la nueva norma. Sin embargo, estas soluciones combinadas crean problemas para administrarlas, lo que a su vez crea nuevos riesgos de seguridad, la probabilidad de vigilancia por parte del usuario y, posteriormente, una violación de la ley. Para resolver estos problemas, CDP cuenta con capacidades avanzadas de seguridad y control que harán que el acceso a los datos se abra sin correr el riesgo de violar la política de seguridad de nadie o incluso la ley.
CDW en CDP es un nuevo servicio que le permite crear un almacén de datos de autoservicio para los equipos de análisis de BI. Puede crear rápidamente nuevos almacenes de datos y usarlos usted mismo, o darles acceso a un grupo de personas y usar una sola base de datos con ellos. ¿Recuerdas los momentos en que podías administrar tu almacén de datos por tu cuenta? ¿Lo gestiona sin la participación de plataformas y la infraestructura necesaria para su funcionamiento? Esto nunca ha sucedido antes. CDW hizo esto posible.
Gracias a CDW, varios motores SQL están disponibles, pero la confusión viene con excelentes opciones. Echemos un vistazo a los motores SQL disponibles en CDW en CDP, y analicemos qué opción SQL es más adecuada para una tarea específica.
¡Qué gran elección! Impala? Colmena LLAP? Chispa? ¿Qué usar y cuándo? Vamos a resolverlo.
Motor Impala sql
Impala es un popular motor MPP de código abierto con una amplia gama de características en Cloudera Distribution Hadoop (CDH) y CDP. Impala se ha ganado la confianza del mercado con sus consultas SQL altamente interactivas de baja latencia. Las capacidades de Impala son muy amplias, Impala no solo admite el Sistema de archivos distribuidos de Hadoop (HDFS - Sistema de archivos distribuidos de Hadoop) con Parquet, Optimized Row Columnar (ORC - Nodo de almacenamiento optimizado), JavaScript Object Notation (JSON), Avro y formatos de texto, sino que también tiene soporte incorporado para Kudu, Microsoft Azure Data Lake Storage (ADLS) y Amazon Simple Storage Service (S3). Impala tiene un alto nivel de seguridad utilizando centinela o guardabosques y, como saben, puede admitir a miles de usuarios con clústeres de cientos de nodos en conjuntos de datos de múltiples petabytes. Veamos la arquitectura general de Impala.

Impala usa StateStore para verificar el estado del clúster. Si por alguna razón el nodo Impala se desconecta, StateStore enviará un mensaje sobre esto a todos los nodos y omitirá el nodo inaccesible. El servicio de directorio Impala administra metadatos para todas las declaraciones SQL para todos los nodos en el clúster. StateStore y el servicio de directorio intercambian datos con Hive MetaStore para almacenar bloques y archivos, y luego transfieren los metadatos a los nodos de trabajo. Cuando llega una solicitud, se pasa a uno de los muchos programas coincidentes donde se realiza la compilación y se inicia la planificación. Se devuelven fragmentos del plan y el programa de coordinación organiza su implementación. Los resultados intermedios se pasan entre los servicios de Impala y luego se devuelven.
Esta arquitectura es ideal para casos en los que necesitamos datos de inteligencia de negocios para recibir respuestas a consultas con baja latencia, como suele ser el caso con los tipos ad-hoc, autoservicio y descubrimiento. En este escenario, tenemos clientes que nos dicen respuestas a consultas complejas de menos de un segundo a cinco segundos.
Para datos de Internet de las cosas (IoT) y escenarios relacionados, Impala, junto con soluciones de transmisión como NiFi, Kafka o Spark Streaming, y almacenes de datos relacionados como Kudu, puede proporcionar una canalización continua con un tiempo de retraso de menos de diez segundos . Con capacidades de lectura / escritura integradas en S3, ADLS, HDFS, Hive, HBase y más, Impala es un excelente motor SQL para usar cuando se inicia un clúster de hasta 1000 nodos y más de 100 billones de filas en tablas o conjuntos de datos de 50BP o más.
Colmena LLAP
Live Long And Process, o Long Delay Analytics Processing, también conocido como LLAP, es un motor de ejecución basado en Hive que admite procesos de larga duración que utilizan los mismos recursos de almacenamiento en caché y procesamiento. Este mecanismo de procesamiento nos da una respuesta de SQL con una latencia muy baja, ya que no tenemos tiempo para iniciar los recursos solicitados.

Además, LLAP proporciona y establece el control sobre la ejecución de las políticas de seguridad, por lo que todo el trabajo de LLAP para el usuario es transparente, lo que ayuda a Hive a competir en términos de rendimiento de la carga de trabajo, incluso con los medios de almacenamiento más populares y utilizados en la actualidad.
Hive LLAP ofrece el motor SQL más avanzado en el ecosistema de big data. Hive LLAP se creó para una gran cantidad de datos, proporcionando a los usuarios las amplias capacidades del Enterprise Data Warehouse (EDW), que admite la conversión de grandes volúmenes de datos, la ejecución de consultas largas o consultas SQL pesadas con cientos de uniones. Hive admite vistas materializadas, claves sustitutas y varias restricciones similares a los sistemas tradicionales de administración de bases de datos relacionales, incluido el almacenamiento en caché incorporado para consultar resultados y consultar datos. Hive LLAP puede reducir la carga de las solicitudes repetidas al reducir el tiempo de respuesta a una fracción de segundo. Hive LLAP puede admitir solicitudes federadas para HDFS (Hadoop Distributed File System) y almacenes de objetos, así como la transmisión en tiempo real, trabajando con Kafka y Druid.
Por lo tanto, Hive LLAP es ideal como solución de Enterprise Data Warehouse (EDW), en la que nos enfrentaremos a una gran cantidad de consultas largas que requieren grandes transformaciones o múltiples uniones entre tablas y grandes conjuntos de datos. Gracias a la tecnología de almacenamiento en caché incluida en Hive LLAP, ahora tenemos clientes que pueden unir 330 mil millones de registros con 92 mil millones de otros registros con o sin clave de partición y obtener resultados en segundos.
Spark sq
Spark es un motor de procesamiento de datos de propósito general de alto rendimiento que admite el procesamiento y la distribución de datos y tiene una amplia gama de aplicaciones. Hay muchas bibliotecas de datos de Spark para expertos en ciencia de datos y aprendizaje automático que admiten el modelo de programación de nivel superior para un desarrollo rápido. Spark SQL, MLlib, Spark Streaming y GrapX se encuentran sobre Spark.

Spark SQL es un módulo para el procesamiento de datos estructurados, compatible con varias fuentes de datos, con soporte para Hive, Avro, Parquet, ORC, JSON y JDBC. Spark SQL es eficiente en conjuntos de datos semiestructurados y se integra con los repositorios Hive MetaStore y NoSQL como HBase. Spark se usa a menudo con varias API de software en nuestros lenguajes de programación favoritos, como Java, Python, R y Scala.
Spark puede ser muy útil si necesita incrustar consultas SQL con programas Spark si funciona con grandes cantidades de datos y alta carga. Spark ayuda a muchos de nuestros usuarios que trabajan en compañías de Global 100 a reducir el procesamiento de la transmisión de datos. Combinando esto con MLlib, vemos cuántos de nuestros clientes responden positivamente a Spark como un excelente sistema de aprendizaje automático cuando trabajan con aplicaciones de almacenamiento de datos. Con alto rendimiento, baja latencia y excelente integración de herramientas de terceros, Spark SQL proporciona las mejores condiciones para cambiar entre programación y SQL.
Entonces, ¿qué motor SQL utilizar?
Como puede combinar los mismos datos en CDW a CDP, puede elegir el motor adecuado para cada tipo de carga de trabajo, como ingeniería de datos, EDW tradicional, análisis ad hoc, paneles de control de BI, procesamiento analítico en línea (OLAP) o en línea Procesamiento de transacciones (OLTP). El siguiente diagrama muestra algunos principios destinados a simplificar la selección, según los cuales los motores y sus mecanismos son adecuados para cada uno de los objetivos establecidos.

Conclusión
Si usa EDW que admite paneles de BI, Hive LLAP le dará los mejores resultados. Cuando necesite almacenamiento de datos ad-hoc, autoservicio e investigación, diríjase a los beneficios de Impala. Si observa la Ingeniería de datos con consultas de larga duración y sin alta concurrencia, Spark SQL es una excelente opción. Si necesita soporte de alta concurrencia, puede echar un vistazo a Hive en Tez. Busque soporte OLAP con datos de series de tiempo, agregue Druid, y si está buscando OLTP con baja latencia y alta concurrencia, entonces tal vez debería agregar Phoenix.
Total: hay muchos motores SQL en CDW a CDP, y esto se hace a propósito. Tomar decisiones antes de tomar una decisión es la mejor manera de optimizar los procesos para aplicaciones de alto rendimiento con procesamiento de subprocesos múltiples en almacenes de datos masivos. CDW en CDP proporciona datos compartidos y compartidos bajo un único sistema de seguridad, administración, seguimiento de datos y metadatos, que le permite combinar componentes SQL en repositorios optimizados. Por lo tanto, esto le da al usuario la libertad de elegir el mejor motor SQL en función de sus cargas de trabajo.