Big Data Colmena en realidad no es difícil en absoluto, desde el foso a renunciar? No existe

Colmena

En primer lugar, vamos a explicar lo que es la colmena. No sólo algunas personas piensan, Colmena para escribir SQL no hace. Sí, la sintaxis y estructura como, Colmena SQL, de hecho, no hay mucha diferencia entre los dos, e incluso se puede decir, Colmena a SQL escritura. Sin embargo, surgió la pregunta - lo que realmente es que SQL todavía? Es base de datos SQL y cuál es la diferencia? Y otra base de datos fuera de línea tradicional ¿Cuál es la diferencia y qué relación existe? Una serie de problemas de clase, no se preocupe, que poco a poco análisis.

1, colmena implementadas por Facebook abierta y
2, se basa en una herramienta de almacén de datos Hadoop
3, los datos estructurados se pueden asignar a una tabla de base de datos
4, y proporciona HQL (Colmena SQL) consulta
5, los datos subyacentes se almacena en el la HDFS
6, se convierte esencialmente tarea declaración MapReduce Colmena SQL se ejecuta
7, un poco familiar usuario con MapReduce HQL utilizar simplemente computar y procesar en la estructura de datos de la HDFS, adecuado para los datos a granel fuera de línea calculados.

El padre de la gracia puerta del almacén de datos de Bill (Bill Inmon) en 1991 publicó "La construcción del almacén de datos" ( "almacén de datos") en su libro La definición propuesta es ampliamente aceptado - Almacén de Datos (Data Warehouse) es una orientado a objeto (orientado Asunto), integrada (integrada), una relativamente estable (no volátil), refleja los cambios históricos (variante) Tiempo de recogida de datos a (apoyo a la decisión) de toma de decisiones de gestión de apoyo.

Colmena se basa en HDFS para almacenar datos, convierte la colmena HQL para ejecutar MapReduce, colmena está basada en Hadoop para que una herramienta de almacenamiento de datos, en esencia, un cálculo basado en el marco de MapReduce HDFS, los datos almacenados en el análisis y gestión de HDFS.
Aquí Insertar imagen Descripción

fondo de la colmena de
la era de los grandes datos, grandes cantidades de datos sobre los costos de mantenimiento de bases de datos relacionales tradicionales son muy alto, ¿qué vamos a hacerlo? Colmena nació en este momento, a partir de la fuente abierta de Facebook, los datos de registro iniciales para estadísticos masiva estructurado de resolución de problemas; ETL (Extracción-Transformación-Carga ) herramientas a los almacenes de datos se basan en la Hadoop; datos calculados utilizando MR, los datos HDFS el uso de almacenamiento.

clase Colmena define un lenguaje de consulta SQL llamado HQL; SQL similar, pero no idéntica, que se utiliza generalmente para los datos fuera de línea de tratamiento (usando el MapReduce); HQL MR puede ser pensado como un traductor del lenguaje.

software de almacenamiento de datos Apache Hive puede utilizar SQL para leer fácilmente, escribir y gestionar la distribución de almacenamiento distribuido de grandes conjuntos de datos. Estructura puede ser proyectada sobre los datos ya almacenados. Proporcionar una herramienta de línea de comandos y el controlador JDBC para conectar a los usuarios de la colmena. Antecedentes en las siguientes áreas:

  1. programación inconveniente MapReduce
  2. HDFS archivo faltante en algunos campos

posición Hadoop colmena en el ecosistema

Aquí Insertar imagen Descripción

colmena Arquitectura

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Una vez dicho esto, usted sabe sobre la colmena no es mucho mayor, por lo que la pregunta es, ¿por qué queremos utilizar Colmena ella? Lo que es único sobre él todavía? El uso de MapReduce ¿no? Así que, primero, hagamos que el uso directo de MapReduce enfrentó:

  • los costes de aprendizaje del personal son demasiado altos;
  • requerimientos del ciclo de proyectos demasiado cortos;
  • MapReduce el desarrollo de la lógica consulta compleja demasiado difícil;

El uso de la colmena:

  • Cuenta con una interfaz amigable, interfaz de operador utilizando la sintaxis SQL-como, la capacidad de proporcionar un rápido desarrollo.
  • Reducir los costos de los costos de aprendizaje, evitar la escritura de MapReduce, los desarrolladores a reducir el costo de aprendizaje.
  • Mejor escalabilidad, tamaño de clúster puede ser libre para expandirse sin tener que reiniciar el servicio, también es compatible con las funciones definidas por el usuario.

Hablemos de las ventajas y desventajas de la colmena:

ventaja
  • escalable escalable, la escala, la colmena se puede ampliar la libertad clúster, en general, no es necesario reiniciar el servicio. Escala: el tamaño de la agrupación a modo de una presión de equilibrio de expansión; extensión longitudinal: una CPU del servidor i7-6700k 4 hilos de núcleo 8, 8 de núcleo 16 hilos, la memoria 64G => 128G
  • Ductilidad, el apoyo de la colmena de las funciones personalizadas, los usuarios pueden poner en práctica sus propias funciones de acuerdo a sus necesidades
  • ejecución buena tolerancia a fallos, puede garantizar, incluso si hay un nodo problema, sigue las instrucciones SQL se pueden completar

defecto

  • Colmena no es compatible con las operaciones CRUD nivel récord, pero el usuario puede crear una nueva tabla o consulta de los resultados de la consulta en un archivo (colmena-2.3.2 versión de la inserción de apoyo a nivel de registro actualmente seleccionado).
  • latencia de consulta colmena es muy grave, porque el proceso de MapReduce Trabajo arranque consume mucho tiempo, no se puede utilizar en el sistema de consulta interactiva.
  • Colmena no admite transacciones (porque no hay adiciones y supresiones, que se utiliza principalmente para OLAP (procesamiento analítico en línea), en lugar de OLTP (procesamiento de transacciones en línea), que es el procesamiento de datos de dos niveles).

resumen:

Colmena tiene la apariencia de una base de datos SQL, pero el escenario es completamente diferente, colmena sólo es adecuado para aplicaciones en las que el análisis estadístico masivo fuera de línea, es decir, el almacén de datos.

Colmena es también muy fácil de usar, tiene una mirada a qué funciones.

función de relaciones

  • comparación de equivalencia: =

    • Sintaxis : A = B. Si la expresión A y B son iguales expresión, en comparación TRUE, de lo contrario FALSO
  • No hay comparación de equivalencia: <>

    • Sintaxis : A <> B. A Si la expresión es NULL, la expresión o B es NULL, NULL retorno; no si la expresión es igual a A y Expresión B, era verdad, de lo contrario FALSO
  • Más pequeño que la comparación: <

    • Sintaxis : A <B. A Si la expresión es NULL, la expresión o B es NULL, NULL retorno; si A es menor que la expresión de la expresión de B, TRUE, de lo contrario FALSO
  • Menos de o igual comparación: <=

    • Sintaxis : A <= B. A Si la expresión es NULL, la expresión o B es NULL, NULL retorno; si es menor que o igual Expresión expresión de A a B, TRUE, de lo contrario FALSO
  • Igual o mayor que la comparación:> =

    • Gramática : A> = B. A Si la expresión es NULL, la expresión o B es NULL, NULL retorno; si A es mayor que o igual a la expresión expresión a B, TRUE, de lo contrario FALSO
  • la determinación del valor Null: IS NULL

    • Gramática : A es nulo. Si el valor es la expresión nulo de A, que era verdad, de lo contrario FALSO
  • Analizando no vacía: NO ES NULO

    • Gramática : A no es NULL. Si el valor es NULL expresión de A, era falso, de lo contrario TRUE
  • COMO 比较: COMO

    • Sintaxis : A [NO] Al igual que B. A o B cadena si la cadena es NULL, se devuelve NULL; si la cadena A de expresión regular en la línea B de la gramática, para el verdadero, de lo contrario FALSE. B, el carácter "_" significa cualquier carácter individual, y el carácter "%" representa cualquier número de caracteres.
      Ejemplo: SELECT * DONDE partition_pay_date de dw.topic_order = '04/22/2016' y client_type como 'ip%' ## capaz de igualar todas las cadenas que comienzan con la ip.
      Nota: Cuando los caracteres especiales que se traduce, utilizando dos barra invertida \
  • Similar a Java / operaciones REGEXP: RLIKE / REGEXP

    • Gramática : Un RLIKE / REGEXP B. Si la cadena Una cadena o B es NULL, se devuelve NULL; si Java cadena A de cumplimiento regular de sintaxis de expresiones regulares B, era verdad, de lo contrario FALSO
      ejemplo : SELECT * FROM dw.topic_order donde partition_pay_date = '2016- 04-22 'y client_type RLIKE / expresión regular' ^ androide * '
      Nota: comodín' % 'en RLIKE / expresión regular la función, solamente que coincida con un carácter' % '' 'sólo puede coincidir con un' personaje'

Funciones de fecha

  • la función de transferencia de la fecha marca de tiempo UNIX: FROM_UNIXTIME
    • Sintaxis: FROM_UNIXTIME (unixtime bigint [, cadena de formato]). UNIX conversión marca de tiempo (desde 1970-01-01 00:00:00 hora UTC para el número especificado de segundos) a la corriente de formato de hora zona horaria
      ejemplo : seleccione FROM_UNIXTIME (1323308943, 'AAAAMMDD ') de la doble; ## valor de retorno 20111208
  • En la fecha de la función de transferencia: años
    • Sintaxis : año (fecha de cadena). Devuelve el año en una fecha.
  • Fecha función de transferencia de enero: mes
    • Sintaxis : mes (fecha de cadena). Devuelve el mes de la fecha.
  • función de la fecha día siguiente: día
    • Sintaxis : día (fecha de cadena). Devuelve el día de la fecha.
  • Fecha función de transferencia hora: hora
    • Sintaxis : hora (fecha de cadena). Devuelve la hora del día.
  • Fecha de la función de transferencia min: minuto
    • Sintaxis : minuto (fecha de cadena). Devuelve la fecha del acta.
      Por ejemplo : select minutos ( '2011-12-08 10:03:01' ) de la doble; ## devuelve un valor de 3
  • Segunda función de transferencia fecha: segundo
    • Sintaxis : segundo (fecha de cadena). Fecha de regreso en cuestión de segundos.
      Por ejemplo : seleccione segunda ( '2011-12-08 10:03:01' ) de la doble; ## devuelve un valor de 1
  • Fecha función de transferencia Semana: WEEKOFYEAR
    • Sintaxis : WEEKOFYEAR (fecha de cadena). Devuelve la fecha en las semanas actuales.
      Por ejemplo : seleccione WEEKOFYEAR ( '2011-12-08 10:03:01' ) de la doble; ## devuelve un valor de 49
  • función de comparación Fecha: datediff
    • Sintaxis : datediff (enddate secuencia, secuencia de startdate ). Devuelve la fecha de finalización menos el número de días desde la fecha de inicio.
      Por ejemplo : seleccione datediff ( '08/12/2012', '2012-05-09') de la doble; ## valor de retorno 213
  • Fecha de aumento de la función: DATE_ADD
    • Sintaxis : DATE_ADD (startdate cadena, int días ). Devuelve los días de inicio fecha StartDate días después de la fecha del aumento.
      Por ejemplo : seleccione DATE_ADD ( '08/12/2012', 10) de la doble; ## valor de retorno 12/18/2012
  • Fecha función decreciente: DATE_SUB
    • Sintaxis : DATE_SUB (startdate cadena, int días ). Devuelve la fecha de inicio Fecha de inicio reducen días después de la fecha del día.
      Por ejemplo : seleccione DATE_SUB ( '08/12/2012', 10) de la doble; ## valor de retorno 11/28/2012

Funciones condicionales

  • Si la función: si
    • Sintaxis : if (testCondition boolean, T valueTrue , T valueFalseOrNull)
      Descripción : Cuando el testCondition condición es verdadera, valueTrue volver, de lo contrario valueFalseOrNull.
      Por ejemplo : seleccionar si (nombre_apl = 'grupo ', object_id, null) como deal_id de dw.topic_order donde partition_pay_date = '04/22/2016'
  • Encontrar una función que no está vacía: COALESCE
    • Sintaxis : COALESCE (T v1, v2 T , ...)
      Descripción : Devuelve el primer parámetro de valor no nulo, y si cada valor es NULL, devolverá NULL
      por ejemplo : seleccione se unen (UUID, '' ) como UUID de DW. topic_order donde partition_pay_date = '04/22/2016'
  • funciones condicionales: CASO
    • Sintaxis : caso A cuando B entonces C [ cuando D entonces E] * [ELSE f] END
      Descripción : Si a es igual a b, a continuación, devuelve C; si a es igual a d, y luego volver E, de lo contrario f
      Ejemplo : seleccionar object_id, user_id, uuid, caso cuando client_type como 'ip %' y luego 'ios'when client_type como' andr% 'y luego' androide 'else' otro 'extremo como utm_mediumfrom dw.topic_order donde partition_pay_date =' 04/22/2016 '
      Nota: relative , caso cuando una función es la condición más completa, se puede utilizar para determinar diversas condiciones; si se sigue la función, que pertenecen a dos puntos se determina, por último función coalesce, que sólo puede ser nula y no nula determinación.

Funciones estadísticas

  • El número de funciones estadísticas: recuento
    • Sintaxis : COUNT ( ), COUNT (expr), COUNT (expr DISTINCT [, expr_.]). contar ( el número de recuento (expr) Devuelve el campo especificado de valores no nulos ;; contar el número de filas recuperadas), un recuento de filas valor NULL (expr DISTINCT [., expr_ ]) Devuelve el campo especificado de diferente no el número de valores nulos
  • La suma de las funciones estadísticas: suma
    • Sintaxis : suma (col), suma ( col distintas). El resultado suma de la adición (col) estadísticas de col concentrada; (el col DISTINCT) estadísticas suma de diferentes valores de la col resultado de la suma
  • Las funciones estadísticas promedio: promedio
    • Sintaxis : avg (col), avg ( col distintas). se añaden (la col DISTINCT) en valores medios col diferentes estadísticas avg; avg (col) el valor medio estadístico del conjunto de resultados de col
  • El mínimo funciones estadísticas: min
    • Sintaxis : min (col). campo col estadística en el mínimo conjunto de resultados
  • funciones estadísticas Máximo: máx
    • Sintaxis : max (col). La concentración máxima de campo de las estadísticas col
  • función Mediana: precentile Sintaxis: percentil (BIGINT col, p). Busque Exactitud de la PTH percentil, p debe estar entre 0 y 1, campo col pero en la actualidad sólo es compatible número entero, no se admite tipo de punto flotante.

Estos son la declaración de función de la colmena, hay muchos, yo estoy aquí acabamos de mencionar, creo que una parte muy importante, se parecía mucho a SQL no está bien, ja, ja, ja. De hecho, no es difícil. Así, decimos que son las similitudes y diferencias y bases de datos.

Desde la Colmena utiliza un tipo SQL lenguaje de consulta HQL, es fácil de entender para la base de datos de la colmena. De hecho, desde un punto de vista estructural, la colmena, y, además, tiene un lenguaje de consulta de bases de datos similares, no hay similitudes. base de datos en línea se puede utilizar en aplicaciones en, pero Colmena es un almacén de datos diseñada, consciente de ello, desde el punto de vista de la aplicación ayuda a entender las características de la colmena.

base de datos de la colmena y tabla comparativa a continuación:

Aquí Insertar imagen Descripción

Resumen: base de datos de SQL colmena con una mirada, pero el escenario es completamente diferente, Colmena sólo es adecuado para aplicaciones en las que el análisis estadístico masivo fuera de línea, es decir, el almacén de datos.
Publicado 36 artículos originales · alabanza ganado 13 · vistas 1052

Supongo que te gusta

Origin blog.csdn.net/weixin_44598691/article/details/105016295
Recomendado
Clasificación