Unir tablas con colmena

Video: Cómo unir madera de palets con tarugos o espigas

Usted probablemente ya sabe que los expertos en el modelado de datos relacional y un diseño típicamente 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.

Video: Cómo unir madera con tornillos inclinados

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

Cuando se empieza a consultar y analizar sus datos, tablas se combinan basan en las relaciones definidas entre ellas el uso de SQL - lo que significa que los discos son en última instancia, ocupado en su servidor cuando se inicia unión de tablas, y los discos ocupadas por lo general dan como resultado tiempos de respuesta de los usuarios más lentos . Sin embargo, la buena noticia es que los RDBMS y EDWs están sintonizados para que se une lo más rápido posible.

¿Qué tiene todo esto que ver con combinaciones en la colmena? Bueno, recordar que el sistema operativo subyacente para la colmena es Apache Hadoop (¡sorpresa!): MapReduce es el motor para la unión de tablas, y el sistema de archivos de Hadoop (HDFS) es el almacenamiento subyacente. Es todo son buenas noticias para el usuario que quiere crear, administrar y analizar tablas de gran tamaño con la colmena.

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 un rendimiento con el análisis de grandes volúmenes de datos y que, en este mundo, latencias - tiempos de respuesta del usuario, en otras palabras - son generalmente altos. Colmena está diseñado para el procesamiento analítico-estilo por lotes, no para el procesamiento de transacciones en línea rápido. Los usuarios que deseen el mejor rendimiento posible con SQL en Apache Hadoop tienen soluciones disponibles.

Mantener esta dinámica en cuenta a la hora de empezar a unir tablas con Colmena. También tenga en cuenta que los arquitectos de la colmena por lo general Desnormalizar sus bases de datos, en cierta medida, por lo que tienen menos mesas más grandes es un lugar común. Esa es la razón por tipos de datos complejos, tales como STRUCTs y FORMACIÓNs se proporcionan. Puede utilizar estos tipos de datos complejos para empacar muchos más datos en una sola tabla.

Porque la tabla Colmena lee y escribe a través de HDFS implican generalmente muy grandes bloques de datos, cuantos más datos se puede administrar por completo en una mesa, mejor será el rendimiento general.

Disco 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 se entiende que los usuarios quieren y necesitan para unir tablas con HiveQL. Este conocimiento es especialmente importante con el aumento EDW. Los casos de uso como archivos “consultables” requieren a menudo se une para el análisis de datos.

Aquí está una colmena se unen ejemplo utilizando tablas de datos de vuelo. La lista se muestra cómo crear y mostrar una myflightinfo2007 mesa y una 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 en la colmena.

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

soportes de la colmena equi-une, un tipo específico de unirse a que sólo utiliza las comparaciones de igualdad en el predicado de combinación. (EN m8.FlightNum = m7.FlightNum es un ejemplo de una equicombinación) Otros comparadores tal como menor que (lt;.) no son compatibles. Esta restricción es sólo a causa de limitaciones en el motor MapReduce subyacente. Además, no se puede utilizar O en el EN cláusula.

La figura ilustra el ejemplo anterior de la combinación interna y otros dos tipos colmena 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 muestra cómo una combinación interna obras utilizando un diagrama de Venn, en caso de que no está familiarizado con la técnica. La idea básica aquí 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.

La optimización de la colmena se 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, ver la página Optimización de Ingreso en el wiki colmena.

Artículos Relacionados