Está en la página 1de 23

Sesion 02 – Apache Sqoop

Instructor:
- MBA Jimmy Farfán

Agosto del 2020


Importación de
datos En este capítulo aprenderá
relacionales con • Cómo importar tablas desde un RDBMS a su clúster de
Apache Sqoop Hadoop
• Cómo cambiar el delimitador y el formato de archivo de
las tablas importadas
• Cómo controlar qué tablas, columnas y filas se importan
Temas del Importación de datos
capítulo relacionales con Apache
Sqoop

• Descripción general de
Apache Sqoop
• Importación de datos
• Opciones de importación
de archivos
• Exportación de datos
• Puntos esenciales
▪ Proyecto Apache de código abierto desarrollado originalmente
¿Qué es por Cloudera
El nombre es una contracción de "SQL-to-Hadoop"
Apache
▪ Sqoop intercambia datos entre una base de datos y HDFS
Sqoop? –Puede importar todas las tablas, una sola tabla o una tabla
parcial a HDFS
–Los datos se pueden importar en una variedad de formatos
–Sqoop también puede exportar datos de HDFS a una base de
datos

Database Hadoop Cluster


¿Cómo
▪ Sqoop es una aplicación del lado del
funciona cliente que importa datos usando
Hadoop MapReduce Database Server
Sqoop?
▪ Una importación básica implica 1
tres pasos orquestados por Sqoop
–Examinar los detalles de la User
Sqoop 3

tabla
–Crear y enviar trabajo al
2

clúster
–Obtener registros de la tabla y
escribir estos datos en HDFS Hadoop Cluster
▪ Sqoop es una utilidad de línea de comandos con varios subcomandos,
llamados herramientas
Sintaxis básica –Hay herramientas para importar, exportar, enumerar el contenido de
la base de datos y más
–Ejecute la ayuda de sqoop para ver una lista de todas las herramientas
–Ejecute sqoop help tool-name para obtener ayuda sobre el uso de una
herramienta específica
▪ Sintaxis básica de una invocación de Sqoop

$ sqoop tool-name [tool-options]


▪ Este comando enumerará todas las tablas en la base de datos
Explorando loudacre en MySQL
una base de
datos con $ sqoop list-tables \
--connect jdbc:mysql://dbhost/loudacre \
Sqoop --username dbuser \
--password pw

▪ Puede realizar consultas a la base de datos utilizando la


herramienta eval
$ sqoop eval \
--query "SELECT * FROM my_table LIMIT 5" \
--connect jdbc:mysql://dbhost/loudacre \
--username dbuser \
--password pw
Temas del
capítulo
Importación de datos
relacionales con Apache Sqoop

▪ Visión general de Apache Sqoop

▪ Importación de Datos

▪ Importar File Options

▪ Exportación de Datos

▪ Puntos esenciales
▪ Las importaciones se realizan mediante trabajos de Hadoop
Descripción MapReduce
general del ▪ Sqoopcomienza examinando la tabla que se va a importar.
proceso de –Determina la clave principal, si es posible
–Ejecuta una consulta de límites para ver cuántos registros se
importación importarán.
–Divide el resultado de la consulta de límites por el número de
tareas (mapeadores)
- Utiliza esto para configurar tareas para que tengan cargas
iguales
▪ Sqoop también genera un archivo fuente de Java para cada tabla
que se importa
–Compila y usa esto durante el proceso de importación.
–El archivo permanece después de la importación, pero se puede
eliminar de forma segura
▪ La herramienta de importación de todas las
Importación de tablas importa una base de datos completa
–Almacenado como archivos delimitados por comas
una base de –La ubicación base predeterminada es su directorio de inicio
datos completa HDFS
–Los datos estarán en subdirectorios correspondientes al nombre
con Sqoop de cada tabla
$ sqoop import-all-tables \
--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw

▪ Use la opción --warehouse-dir para especificar un directorio base


diferente
$ sqoop import-all-tables \
--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--warehouse-dir /loudacre
Importar una ▪ La herramienta de importación importa una sola tabla
sola tabla con ▪ Este ejemplo importa la tabla de cuentas
Sqoop -Almacena los datos en HDFS como campos delimitados
por comas

$ sqoop import --table accounts \


--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw
Importación de ▪ Importar solo columnas específicas de la tabla de
cuentas
tablas parciales $ sqoop import --table accounts \
con Sqoop --connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--columns "id,first_name,last_name,state"

▪ Importar solo filas coincidentes de la tabla de


cuentas
$ sqoop import --table accounts \
--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--where "state='CA'"
Temas del
Importación de datos
capítulo relacionales con Apache
Sqoop

▪ Visión general de Apache Sqoop

▪ Importación de Datos

▪ Importar File Options

▪ Exportación de Datos

▪ Puntos esenciales
Especificar una
▪ De forma predeterminada, Sqoop almacena los datos en el
ubicación de directorio de inicio HDFS del usuario.
–En un subdirectorio correspondiente al nombre de la tabla
archivo –Por ejemplo / usuario / formación / cuentas

▪ Este ejemplo especifica una ubicación alternativa

$ sqoop import --table accounts \


--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--target-dir /loudacre/customer_accounts
Especificar un ▪ De forma predeterminada, Sqoop genera archivos de texto con
delimitador campos delimitados por comas

alternativo ▪ Este ejemplo escribe campos delimitados por tabulaciones en su


lugar

$ sqoop import --table accounts \


--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--fields-terminated-by "\t"
Usar
compresión ▪ Sqoop admite el almacenamiento de datos en
un archivo comprimido
con Sqoop – Use the --compression-codec flag

 $ sqoop import --table accounts\


 --connect jdbc:mysql://dbhost/loudacre\
 --username dbuser --password pw \
 --compression-codec \ org.apache.hadoop.io.compress.SnappyCodec
Almacenamien ▪ De forma predeterminada, Sqoop almacena datos en
archivos de formato de texto
to de datos en
▪ Sqoop admite la importación de datos como archivos
otros formatos Parquet o Avro

de datos
 $ sqoop import --table accounts\
 --connect jdbc:mysql://dbhost/loudacre\
 --username dbuser --password pw \
 --as-parquetfile

$ sqoop import --table accounts \


--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--as-avrodatafile
Temas del
capítulo Importación de datos
relacionales con Apache
Sqoop

▪ Visión general de Apache Sqoop

▪ Importación de Datos

▪ Importar File Options

▪ Exportación de Datos

▪ Puntos esenciales
▪ La herramienta de importación de Sqoop extrae registros de un
RDBMS a HDFS
Exportación ▪ A veces es necesario enviar datos en HDFS a un RDBMS
de datos de –Buena solución cuando debe realizar procesamiento por lotes
en grandes conjuntos de datos
Hadoop a –Exportar resultados a una base de datos relacional para que
otros sistemas puedan acceder a ellos
RDBMS con
▪ Sqoop admite esto a través de la herramienta de exportación
Sqoop –La tabla RDBMS ya debe existir antes de la exportación

$ sqoop export \
--connect jdbc:mysql://dbhost/loudacre \
--username dbuser --password pw \
--export-dir /loudacre/recommender_output \
--update-mode allowinsert \
--table product_recommendations
Temas del
capítulo
Importación de datos
relacionales con Apache
Sqoop

▪ Visión general de Apache Sqoop

▪ Importación de Datos

▪ Importar File Options

▪ Exportación de Datos

▪ Puntos esenciales
Puntos
▪ Sqoop intercambia datos entre una base de datos y un clúster de
esenciales Hadoop
Proporciona subcomandos (herramientas) para importar,
exportar y más
▪ Las tablas se importan mediante trabajos de MapReduce
Estos están escritos como texto delimitado por comas de forma
predeterminada
▪ Puede especificar delimitadores o formatos de archivo
alternativos
Sqoop ofrece muchas opciones para controlar las
importaciones
Puede seleccionar solo ciertas columnas o limitar filas
Bibliografía

A continuación se ofrece más información sobre los temas tratados en este


capítulo.
▪ Sqoop User Guide
–http://tiny.cloudera.com/sqoopuser

▪ Apache Sqoop Cookbook (published by O’Reilly)


–http://tiny.cloudera.com/sqoopcookbook
Gracias

También podría gustarte