2012-04-03 16 views
5

1) Empecé a usar la colmena de los últimos 2 meses. Tengo una misma tarea que en SQL. Descubrí que Hive es lento y lleva más tiempo ejecutar consultas mientras SQL lo ejecuta en muy pocos minutos/segundos.Funcionamiento de Hive vs SQL Server

Después de ejecutar la tarea en Hive cuando verifico el resultado en ambos (SQL y Hive), encontré alguna diferencia en los resultados (No todos pero en algunas tablas). p. : Tengo una tabla que tiene registros de 2012, cuando ejecuté una tarea en Hive en la misma tabla en Hive obtuve los registros de 2007.

¿Por qué está sucediendo?

2) Si pienso acelerar mi ejecución en Hive, ¿qué debo hacer? (Actualmente estoy ejecutando todo esto en un solo clúster. Si pienso aumentar los clústeres, ¿cuántos clústeres debería necesitar para aumentar el rendimiento?)

Por favor sugierame alguna solución o algunas buenas prácticas para que yo pueda puede hacerlo con entusiasmo

Gracias.

+1

Realmente no puedo responder a su pregunta, pero no veo cómo puede comparar SQL Server y Hive directamente: son productos completamente diferentes con objetivos y arquitecturas completamente diferentes. Preguntar cómo mejorar el rendimiento de Hive es una buena pregunta, pero no creo que SQL Server tenga relevancia para Hive (o viceversa). Aunque si desea asesoramiento sobre cómo mejorar el rendimiento de cualquier sistema, deberá proporcionar mucha más información que hasta ahora. – Pondlife

+0

@Pondlife: gracias por su respuesta. Sí, sé que ambos son diferentes. Solo quiero saber que Hive tiene un comportamiento diferente para ejecutar las consultas que SQL. ¿Hay alguna diferencia en los criterios de coincidencia? También me gustaría saber los diferentes factores para aumentar el rendimiento en Hive en función de varios factores. –

+0

@Pondlife: no veo por qué no se pueden comparar los dos cuando ambos se utilizan como motor de consulta de datos. Sí, las arquitecturas informáticas y de datos subyacentes son diferentes, pero los propósitos son idénticos. Si omito algo, por favor infórmeme sobre cómo se usaría colmena que no sea el tipo de consulta de SQL. – Causality

Respuesta

4
  • Hive y SQL Server no son comparables de ninguna otra manera que la similitud en la sintaxis del lenguaje de consulta.
  • Mientras SQL Server está diseñado para poder responder en tiempo real desde una única máquina, colmena es para procesar grandes conjuntos de datos que pueden abarcar cientos o miles de máquinas.
  • Hive (a través de hadoop) tiene una gran cantidad de gastos generales para iniciar un trabajo.
  • Hive y hadoop no almacenarán en caché los datos en la memoria como lo hace el servidor sql.
  • Hive solo tiene índices añadidos recientemente, por lo que la mayoría de las consultas terminan siendo un escaneo de tabla.
  • Si su conjunto de datos se ajusta a una sola computadora, es probable que desee seguir con SQL Server y no colmena. El ajuste del rendimiento de Hive se basa principalmente en la optimización del rendimiento de Hadoop aunque, dependiendo de los tipos de consultas que se ejecuten, puede haber un rendimiento gratuito al utilizar LazyBinarySerDe.

Hive tiene algunas diferencias con el SQL normal que pueden estar afectando su consulta. Sin más detalles, no puedo especular sobre por qué.