SQOOP
DIEGO RODRÍGUEZ
WILLIAM HENAO
UN POCO DE HISTORIA
Se empezó a desarrollar por medio de Aaron Kimball en el 2009, por la multitud
de conectores que se estaban realizando para ingresar datos en Hadoop y
unificar el acceso a bases de datos para importar y exportar datos. Cloudera lo
propuso para la incubadora de proyectos. Apache lo aceptó en el 2011 y en 2012
se graduó y paso a ser un proyecto Top-Level. “SQL to Hadoop and Hadoop to
SQL”
¿QUÉ ES SQOOP?
Apache Sqoop es una herramienta diseñada para soportar cargas de volúmenes
elevados de datos entre Hadoop y una base de datos relacional. Se puede utilizar
para importar datos desde un almacenamiento externo en el sistema de ficheros
distribuido de Hadoop, en Hive o en HBase. Inversamente, Sqoop puede
utilizarse para extraer datos de HDFS y exportarlo a una base de datos
relacional como MySQL, Oracle, Postgres o a un data warehouse.
¿CÓMO FUNCIONA?
IMPORT EXPORT
Sqoop escribe desde las tablas o consultas Sql específicas, registro por registro paralelamente, por lo cual el
resultado pueden ser múltiples archivos almacenados en HDFS con una copia de los datos importados.
Estos archivos podrían ser txt separados por comas o tabulaciones, binarios Avro o SequenceFiles.
EJEMPLOS
Importando desde Mysql
$ sqoop import –connect jdbc:mysql://database.example.com/employees –username jacagudelo –password
678456
Importando desde SQl Server
$ sqoop import –driver com.microsoft.jdbc.sqlserver.SQLServerDriver –connect <connect-string>
IMPORT
SELECCIONANDO DATOS A IMPORTAR
Generalmente Sqoop selecciona todos los campos de la tabla o vista origen a importar manteniendo el
orden natural de los mismos.
$ sqoop import –query ‘SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS’ –split-
by a.id /
–target-dir /user/foo/joinresults
IMPORT
La herramienta de exportación genera un conjunto de archivos de HDFS a un RDBMS. Los archivos dados
como entrada a Sqoop contienen registros, que se llaman como filas en la tabla. Éstos se leen y analizan en
un conjunto de registros y se delimitan con el delimitador especificado por el usuario.
EJEMPLOS
$ sqoop export –connect jdbc:mysql://db.example.com/foo –table retail –export-dir /results/bar_data
Sqoop por defecto realiza un append en la tabla de destino, en esencia realiza un insert sobre cada registro.
Al igual que con los campos en el caso anterior, las tablas destino podrían tener Primary Key con los cual
podrían generar error de duplicidad. Este modo está destinado principalmente a exportar registros a una
nueva tabla vacía destinada a recibir estos resultados.
EXPORT
Tipos de Destino en Hadoop
Una de las principales virtudes de Hadoop es que nos brinda una gran variedad de proyectos disponibles
para usar de acuerdo a nuestras necesidades, para este caso puntual contamos con 3 proyectos específicos:
Hive
Hbase
Accumulo
EXPORT
CONCLUSIONES
BIBLIOGRAFÍA
https://bigdatadummy.com/2017/01/31/apache-
sqoop/#:~:text=Sqoop%20proporciona%20una%20API%20Java,con%20las%20q
ue%20se%20trabaja.
http://blog.jacagudelo.com/sqoop-hadoop/
https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_introduction
https://es.coursera.org/lecture/adquisicion-almacenamiento-de-datos/sqoop-
TGoQ8
GRACIAS!