Importación de datos en hbase con sqoop

Sqoop se puede utilizar para transformar un esquema de base de datos relacional en un esquema HBase. Por supuesto, el objetivo principal aquí es demostrar cómo Sqoop puede importar datos de un RDBMS o almacén de datos directamente en HBase, pero siempre es mejor ver cómo se utiliza una herramienta de contexto frente a cómo se utiliza en el resumen.

La figura muestra cómo la base de datos de órdenes de servicio podría parecer después de haber sido transformado en un esquema HBase.

Video: Hadoop (HDFS architecture,HIVE,OOZIE,SQOOP,HBase )

Para este ejemplo particular de importación, que desea importar la customercontactinfo tabla directamente en una tabla de HBase en preparación para la construcción del esquema de base de HBase orden de servicio. Para completar el esquema HBase, que tendría que ejecutar los mismos pasos para importar la información del producto mesa, y luego el serviceorders tabla podría ser construido con una aplicación Java MapReduce.

Sqoop ahora no permite importar, todos a la vez, una tabla relacional directamente en una mesa de HBase tener múltiples familias de columna. Para evitar esta limitación, se crea la tabla HBase primero y luego ejecutar tres operaciones de importación Sqoop para terminar la tarea. La lista muestra la tarea de crear la tabla.

Video: Sqoop 3: How to import tables into Hadoop using Sqoop

hbase (principal): 017: 0gt; crear `customercontactinfo`, `CustomerName`, hbase (principal): 018: 0 * `ContactInfo`, `ProductNums`0 fila (s) en 1.0680 segundos

En el listado siguiente, para cada comando de importación Sqoop, tenga en cuenta que el objetivo de la familia HBase la columna especificada por el -column familiar CLA y las correspondientes columnas de MySQL especificados por el -Columnas CLA están en negrita. los customernum clave primaria también se convierte en la clave de fila HBase, según lo especificado por el -hbase fila de clave CLA.

$ Importación Sqoop - conectar jdbc: mysql: // localhost / serviceorderdb - nombre de usuario raíz -P - customercontactinfo mesa  --columnas "customernum, CustomerName" --customercontactinfo hbase mesa  --CustomerName columna familiar --customernum-clave hbase fila -m contraseña 1Ingrese: 13/08/17 16:53:01 ... INFO mapreduce.ImportJobBase: Obtenido 5 registros $ Sqoop importación - conectar jdbc: mysql.: // localhost / serviceorderdb-- nombre de usuario raíz -P - customercontactinfo mesa  --columnas "customernum, contactinfo" --customercontactinfo hbase mesa  --columna familiar ContactInfo --customernum-clave hbase fila -m contraseña 1Ingrese: 13/08/17 17:00:59 ... INFO mapreduce.ImportJobBase: Obtenido 5 registros $ Sqoop importación - conectar jdbc: mysql.: // localhost / serviceorderdb-- nombre de usuario raíz -P - customercontactinfo-- mesacolumnas "customernum, productnums" --customercontactinfo-- hbase mesaProductNums columna de la familia --hbase fila de clave customernum -m 1Ingrese contraseña: 13/08/17 17:05:54 ... INFO mapreduce.ImportJobBase: Obtenido 5 registros.

Si se va a llevar a cabo una exploración HBase de la nueva tabla, verías que la importación y la traducción de una tabla de base de datos relacional en MySQL directamente en HBase fue un éxito.

Video: Sqoop to Hbase Import

los customercontactinfo tabla de este ejemplo es bastante pequeña, pero imagina el poder que ahora tienen, usando Sqoop y HBase, para moverse rápidamente tablas relacionales que pueden exceder la capacidad de su RDBMS o almacén de datos en HBase, donde la capacidad es prácticamente ilimitada y la escalabilidad es automática.

hbase (principal): 033: 0gt; escanear `customercontactinfo`ROWCOLUMN + CELL10000column = ContactInfo: contactinfo, marca de tiempo = 1376773256317, valor = 1 Hadoop Lane, NY, 11111, [email protected]=CustomerName: CustomerName, marca de tiempo = 1376772776684, valor = John Timoteo Smith10000column = ProductNums: productnums, marca de tiempo = 1376773551221, valor = B50010001column = contactInfo: contactinfo, marca de tiempo = 1376773256317, valor = 2 HBase Ave, CA, 2222210001column = CustomerName: CustomerName, marca de tiempo = 1376772776684, valor = Bill Jones10001column = productNums: productnums, marca de tiempo = 1376773551221, el valor = A100, A200, A300, B400, B500, C500, C600, D70020000column = contactInfo: contactinfo, marca de tiempo = 1376773256317, valor = 1 Experto HBase Ave, CA, 2222220000column = CustomerName: CustomerName, marca de tiempo = 1376772776684, valor = Jane Ann Doe20000column = productNums: productnums, marca de tiempo = 1376773551221, valor = A100, A200, A30020001column = contactInfo: contactinfo, marca de tiempo = 1376773256317, valor = 1 PigLatin Ave, CO, 3333320001column = CustomerName: CustomerName, marca de tiempo = 13767727 76684, valor = Joe Developer20001column = ProductNums: productnums, marca de tiempo = 1376773551221, valor = D70030000column = ContactInfo: contactinfo, marca de tiempo = 1376773256317, valor = 1 Estadísticas Lane, MA, 3333330000column = CustomerName: CustomerName, marca de tiempo = 1376772776684, valor = Datos Scientist30000column = productNums: productnums, fecha y hora = 1376773551221, valor = fila (s) C5005 en 0.1120 segundos

La importación de datos relacionales existentes a través de Sqoop en tablas HBase Colmena y potencialmente puede permitir una amplia gama de nuevos y emocionantes flujos de trabajo de análisis de datos. Si esta función es de interés para usted, echa un vistazo a la documentación de Apache Sqoop de argumentos y características adicionales de línea de comandos de la colmena y HBase.

Artículos Relacionados