Unirse a las tablas con la colmena

Usted probablemente ya sabe que los expertos en el modelado de bases de datos relacionales y diseño normalmente pasan mucho de su tiempo a diseñar bases de datos normalizados, o esquemas. Base de datos normalización es una técnica que protege contra la pérdida de datos, la redundancia y otras anomalías como datos se actualiza y se recupera.

Los expertos siguen una serie de reglas para llegar a una base de datos normalizado, pero Regla 1 es que se debe terminar con una grupo de mesas. (Una gran mesa de almacenar todos sus datos no es normal -. Nunca mejor dicho) Hay excepciones, en función del caso de uso, pero la ley de muchas tablas generalmente es seguido muy de cerca, especialmente para las bases de datos que soportan transacciones o procesamiento analítico (inteligencia de negocios, por ejemplo).

Cuando usted comienza a consultar y analizar los datos, las tablas se unió basan en las relaciones definidas entre ellos el uso de SQL - lo que significa que los discos son en última instancia, ocupado en su servidor al iniciar unión de tablas, y los discos ocupados generalmente resultan en más lentos los tiempos de respuesta de los usuarios . Sin embargo, la buena noticia es que los RDBMS y EDWs están afinados para que se une lo más rápido posible.

¿Qué tiene todo esto que ver con las combinaciones en la colmena? Bueno, recuerda que el sistema operativo subyacente para Hive es Hadoop (¡sorpresa!): MapReduce es el motor para la unión de las tablas, y el Sistema de Archivo Hadoop (HDFS) es el almacenamiento subyacente. Todo es una buena noticia para el usuario que quiere crear, gestionar y analizar grandes mesas con Hive.

El potencial para desbloquear la información que se esconde en las estructuras de datos masivos es emocionante. Sin embargo, se une con la colmena por lo general no funcionan tan bien como lo hacen en el mundo RDBMS / EDW, para que los usuarios de primera vez se sorprenden por el " pokiness " de la respuesta del sistema.

Recuerde que MapReduce y HDFS están optimizados para el rendimiento con el análisis de datos grandes y que, en este mundo, latencias - los tiempos de respuesta del usuario, en otras palabras - son generalmente altos. Colmena está diseñado para el procesamiento analítico de estilo lotes, no para un rápido procesamiento de transacciones en línea. Los usuarios que quieran el mejor rendimiento posible con SQL en Hadoop tienen soluciones disponibles.

Mantener esta dinámica en cuenta a la hora de empezar a unir tablas con Hive. También tenga en cuenta que los arquitectos Hive generalmente Desnormalizar sus bases de datos, en cierta medida, por lo que tienen menos mesas más grandes es un lugar común. Eso es por qué tipos de datos complejos como STRUCTs y ARRAYs se proporcionan. Puede utilizar estos tipos de datos complejos para empacar muchos más datos en una sola tabla.

Debido mesa Colmena lee y escribe a través de HDFS suele implicar grandes bloques de datos, más datos se pueden gestionar por completo en una tabla, mejor será el rendimiento general.

Discos y acceso a la red es mucho más lento que el acceso a la memoria, por lo que minimizan HDFS lee y escribe tanto como sea posible.

Con estos antecedentes en mente, usted puede hacer frente a la toma se une a la colmena. Afortunadamente, la comunidad de desarrollo de la colmena era realista y entiende que los usuarios quieren y necesitan para unir tablas con HiveQL. Este conocimiento se vuelve especialmente importante con EDW aumento. Los casos de uso como " consultable " archivos menudo requieren une para el análisis de datos.

Aquí está una colmena unen ejemplo utilizando tablas de datos de vuelo. El listado muestra cómo crear y mostrar una myflightinfo2007 mesa y un myflightinfo2008 tabla de la mayor FlightInfo2007 y FlightInfo2008 mesas. El plan desde el principio era utilizar el CTAS creado myflightinfo2007 y myflightinfo2008 tablas para ilustrar cómo se puede realizar une Colmena.

La figura muestra el resultado de una combinación interna con el myflightinfo2007 y myflightinfo2008 tablas utilizando el cliente SQuirreL SQL.

imagen0.jpg

Soportes Colmena equi-une, un tipo específico de unirse que sólo utiliza comparaciones de igualdad en el predicado de combinación. (EN m8.FlightNum = m7.FlightNum es un ejemplo de un equi-join) Otros comparadores como Menor que (lt;.) no son compatibles. Esta restricción es sólo debido a limitaciones en el motor MapReduce subyacente. Además, no se puede utilizar Oregón en el EN cláusula.

La figura ilustra el ejemplo anterior del interior se unen y otros dos tipos Hive unirse. Observe que puede confirmar los resultados de una combinación interna mediante la revisión de los contenidos de la myflight2007 y myflight2008 mesas.

La siguiente figura ilustra cómo una combinación interna obras utilizando un diagrama de Venn, en caso de que usted no está familiarizado con la técnica. La idea básica es que una combinación interna devuelve los registros que coincidan entre dos tablas. Así que una combinación interna es una herramienta de análisis perfecta para determinar qué vuelos son los mismos desde JFK (Nueva York) a ORD (Chicago) en julio de 2007 y julio de 2008.

image1.jpg

Optimización Colmena une es un tema candente en la comunidad de la colmena. Para obtener más información sobre las técnicas de optimización actuales, consulte la página de Ingreso Optimización en el wiki de la Colmena.




» » » » Unirse a las tablas con la colmena