Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Cómo elegir un motor SQL basado en Hadoop

Cómo elegir un motor SQL basado en Hadoop

En las tecnologías Hadoop y NoSQL, la gente ha cambiado gradualmente su enfoque hacia el motor SQL en Hadoop. Hoy en día, hay cada vez más motores entre los que elegir, lo que coloca a las organizaciones ante un dilema de elección. Este artículo enumerará varios factores a considerar al elegir un motor para su referencia.

Una ventaja importante de la tecnología SQL basada en Hadoop es que puede utilizar el conocido lenguaje SQL para acceder a grandes conjuntos de datos almacenados en Hadoop.

Los usuarios pueden utilizar casi cualquier informe o herramienta para analizar y estudiar datos. Cuando SQL no se puede aplicar a Hadoop, acceder a grandes conjuntos de datos en Hadoop requiere una buena comprensión de las interfaces de aplicaciones técnicas de Hadoop, como HDFS, MapReduce o HBase. Ahora, con el motor SQL basado en Hadoop, todos pueden usar su herramienta favorita. Para las empresas, equivale a que Hadoop abra una ventana más grande y más empresas puedan aplicar Hadoop para procesar big data.

Qué tecnologías están disponibles

El primer motor SQL basado en Hadoop fue Apache Hive, pero en el último año han aparecido muchos productos nuevos, incluidos CitusDB y Cloudera

Impala, Concurrent Lingual, Hadapt, InfiniDB, JethroData, MammothDB, Apache

Drill, MemSQL, Pivotal HawQ, Progress DataDirect, ScleraDB, Simba y Splice

Machine.

Además de los motores anteriores, los servidores de virtualización de datos también deben incluirse en esta columna porque implementan el acceso SQL a los datos de Hadoop. Los servidores virtualizados pueden acceder a todas las fuentes de datos, incluido Hadoop, y se pueden integrar diferentes fuentes de datos. Hay muchos servidores de virtualización de datos, incluidos Cirro Data Hub, Cisco/Composite.

Por supuesto, también existen algunos sistemas de administración de bases de datos SQL que también admiten múltiples fuentes de datos. Almacenan datos en su propia base de datos SQL o Hadoop y brindan acceso SQL a los datos de Hadoop. Como

EMC/Greenplum UAP, HP Vertica (en MapR), Microsoft PolyBase, Actian

ParAccel y Teradata Aster Database (a través de SQL-H).

Con tantas herramientas SQL basadas en Hadoop disponibles, se puede decir que las organizaciones están deslumbradas. Entonces, ¿cómo elegir? ¿Cuál es la diferencia entre ellos?

De hecho, existen grandes diferencias entre las diferentes tecnologías. Por ejemplo, CitusDB sabe dónde se almacenan los datos y puede acceder a ellos más rápido; JethroData almacena índices y puede acceder directamente a los datos. interfaz.

Elegir la tecnología adecuada requiere comparar los detalles. Las siguientes son consideraciones específicas:

Lenguaje SQL

Cuanto más lenguajes SQL sean compatibles, más aplicaciones se podrán utilizar. Además, cuanto más ricos sean los lenguajes admitidos, más programas de consulta podrá ejecutar Hadoop y menos aplicaciones y herramientas de informes tendrán que funcionar.

Uniones de nodos

Realizar uniones de nodos de forma rápida y eficiente en tablas grandes no es fácil, especialmente cuando el motor SQL no sabe dónde se almacenan los datos. Los procesos de conexión ineficientes pueden generar una gran cantidad de E/S y enormes transferencias de datos entre diferentes nodos, lo que en última instancia afecta la velocidad de procesamiento.

Datos no estructurados

SQL está diseñado para datos estructurados

. Cada registro de la tabla se encuentra en la misma columna y cada columna tiene los mismos atributos. Pero en la era del big data, no todos los datos están estructurados. Los archivos Hadoop pueden contener datos anidados, datos mutables (con una estructura jerárquica), datos sin esquema y datos autodescriptivos. El motor SQL basado en Hadoop debe poder convertir todos los datos en datos relacionales y optimizar las consultas entre estos datos.

Modo de almacenamiento

Hadoop admite algunos formatos de almacenamiento estándar, como Parquet, Avro y ORCFile. Cuantos más formatos utilice la tecnología SQL basada en Hadoop, más formatos podrán leer otros motores y tecnologías. Esto reduce en gran medida el esfuerzo de copiar datos.

Funciones definidas por el usuario

Para realizar funciones de análisis complejas en SQL, como el análisis discriminante gaussiano y el análisis de la cesta de la compra, un requisito previo muy importante es que SQL admita esta función. Estas funciones se denominan funciones definidas por el usuario (UDF). Los motores SQL basados ​​en Hadoop deben poder ejecutar funciones definidas por el usuario en partes en múltiples nodos.

Cargas de trabajo multiusuario

Otro factor a considerar es cómo el motor debe dividir los recursos entre diferentes consultas y diferentes tipos de consultas. Por ejemplo, las consultas de diferentes aplicaciones tienen diferentes prioridades de procesamiento; las consultas que tardan mucho en ejecutarse deben dar paso a consultas que deben procesarse de inmediato, si las consultas no planificadas o que requieren muchos recursos consumen muchos recursos; la consulta debe ser cancelada o suspendida. La tecnología SQL basada en Hadoop requiere una gestión de carga de trabajo más inteligente

.

Federación de datos

No todos los datos se almacenan en Hadoop. La mayoría de los datos empresariales también se almacenan en otras fuentes de datos, como bases de datos SQL. Los motores SQL basados ​​en Hadoop deben admitir la conexión de datos almacenados en diferentes tipos de fuentes de datos. En otras palabras, debe soportar la federación de datos.

Es una tendencia general entre las empresas que utilizan Hadoop para implementar motores SQL. Las empresas esperan tener en cuenta los factores anteriores al elegir diferentes tecnologías.