Logotipo de Zephyrnet

Apache Sqoop: características, arquitectura y operaciones

Fecha:

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Introducción

Apache SQOOP es una herramienta diseñada para ayudar en la exportación e importación a gran escala de datos en HDFS desde repositorios de datos estructurados. Las bases de datos relacionales, los almacenes de datos empresariales y los sistemas NoSQL son ejemplos de almacenamiento de datos. Es una herramienta de migración de datos basada en una arquitectura de conector que incluye complementos para mejorar las conexiones de datos a nuevos sistemas externos.

¿Qué es Apache Sqoop?

Apache Sqoop, una herramienta de interfaz de línea de comandos, mueve datos entre bases de datos relacionales y Hadoop. Se utiliza para exportar datos del sistema de archivos Hadoop a bases de datos relacionales y para importar datos de bases de datos relacionales como MySQL y Oracle al sistema de archivos Hadoop.

¿Por qué usar Sqoop?

Un componente del ecosistema de Hadoop es Apache Sqoop. Se necesitaba una herramienta especializada para realizar este proceso rápidamente porque era necesario mover una gran cantidad de datos de los sistemas de bases de datos relacionales a Hadoop. Fue entonces cuando Apache Sqoop entró en escena y ahora se usa ampliamente para mover datos de archivos RDBMS al ecosistema de Hadoop para el procesamiento de MapReduce y otros usos.

(Fuente: https://www.freecodecamp.org/news/an-in-depth-introduction-to-sqoop-architecture-ad4ae0532583/)

Primero, los datos deben introducirse en los clústeres de Hadoop desde varias fuentes para que se procesen con Hadoop. Sin embargo, resultó que cargar datos de varias fuentes heterogéneas era una tarea desafiante. Los problemas con los que se encontraron los administradores incluyeron:

  • Mantener los datos consistentes
  • Garantizar una gestión eficaz de los recursos
  • No fue posible la carga masiva de datos en Hadoop.
  • La carga de datos con scripts era lenta.

La aplicación MapReduce no puede acceder directamente a los datos almacenados en bases de datos relacionales externas. Este enfoque pone al sistema en peligro de que los nodos del clúster generen demasiado estrés. Sqoop fue la respuesta. Las dificultades del método convencional se superaron por completo mediante el uso de Sqoop en Hadoop, que también simplificó la carga de grandes cantidades de datos de RDBMS en Hadoop.

La mayor parte del procedimiento está automatizado por Sqoop, que se basa en la base de datos para especificar la estructura de importación de datos. Sqoop importa y exporta datos utilizando la arquitectura MapReduce, que ofrece un enfoque paralelo y tolerancia a fallas. Sqoop proporciona una interfaz de línea de comandos para facilitar la vida de los desarrolladores. Todo lo que los desarrolladores deben incluir en el comando sqoop son detalles simples como la fuente, el destino y la información de autenticación de la base de datos. Sqoop se encarga de la parte restante.

Características importantes de Apache Sqoop

Apache Sqoop tiene muchas características esenciales. Algunos de ellos se discuten aquí:

  • Sqoop utiliza el marco YARN para importar y exportar datos. El paralelismo se ve reforzado por la tolerancia a fallas de esta manera.
  • Podemos importar los resultados de una consulta SQL en HDFS usando Sqoop.
  • Para varios RDBMS, incluidos los servidores MySQL y Microsoft SQL, Sqoop ofrece conectores.
  • Sqoop es compatible con el protocolo de autenticación de red informática Kerberos, lo que permite que los nodos autentiquen a los usuarios mientras se comunican de forma segura a través de una red insegura.
  • Con un solo comando, Sqoop puede cargar la tabla completa o secciones específicas de la tabla.

Arquitectura Sqoop

La migración de datos entre Sqoop Hadoop y un sistema de almacenamiento externo es posible mediante conectores Sqoop. Debido a sus conectores, Sqoop puede usar varias bases de datos relacionales conocidas, incluidas MySQL, PostgreSQL, Oracle, SQL Server y DB2. Cada una de estas conexiones puede comunicarse con el DBMS al que está vinculado. También se proporciona un conector JDBC genérico para conectarse a cualquier base de datos que admita el estándar JDBC. Sqoop Big Data también proporciona conectores optimizados para PostgreSQL y MySQL que utilizan mejor las API específicas de la base de datos.

apache sqoop

(Fuente: https://www.guru99.com/introduction-to-flume-and-sqoop.html)

Además, Sqoop para big data admite una variedad de conectores de terceros para almacenes de datos, que van desde almacenes de datos empresariales hasta almacenes NoSQL, incluidos Netezza, Teradata y Oracle (como Couchbase). Estos conectores deben descargarse por separado y aplicarse sin dificultad a una instalación de Sqoop existente; no vienen con el paquete Sqoop.

Lo que sucede cuando ejecuta Sqoop en el back-end es bastante simple. El conjunto de datos transferido se divide en varias divisiones y se crea un trabajo de solo mapa con distintos mapeadores a cargo de transferir cada partición. Sqoop usa la información de la base de datos para deducir los tipos de datos, manejando cada registro de datos de manera segura.

¿Cómo funciona Sqoop?

Sqoop ejecuta comandos de usuario a través de una interfaz de línea de comandos. Los conectores ayudan en la transferencia de datos desde cualquier fuente externa a Hadoop. También están obligados a aislar las tablas de producción en caso de que se produzcan daños en el fallo del trabajo. El trabajo de mapa llena las tablas y las fusiona con la tabla de destino para transmitir los datos.

Puede utilizar conexiones especializadas a sistemas externos, optimizando la importación y exportación. Esto es incompatible con la conectividad de base de datos de Java integrada (JDBC). El marco de extensión de Sqoop contiene complementos que se pueden usar para instalar Sqoop.

Sqoop solo es capaz de importar y exportar datos según las instrucciones humanas; no puede agregar datos.

Veamos en detalle las dos operaciones principales de Sqoop:

Importación Sqoop:

El procedimiento se lleva a cabo con la ayuda del comando de importación sqoop. Podemos importar una tabla desde el sistema de gestión de bases de datos relacionales al servidor de bases de datos Hadoop con la ayuda del comando de importación. Cada registro cargado en el servidor de la base de datos de Hadoop como un único registro se guarda en archivos de texto como parte del marco de trabajo de Hadoop. Al importar datos, también podemos cargar y dividir Hive. Sqoop también permite la importación incremental de datos, lo que significa que si ya hemos importado una base de datos y queremos agregar algunas filas más, solo podemos hacerlo con la ayuda de estas funciones, no toda la base de datos.

Exportación Sqoop:

El comando de exportación de Sqoop facilita la ejecución de la tarea con la ayuda del comando de exportación, que realiza las operaciones a la inversa. Aquí, podemos transferir datos desde el sistema de archivos de la base de datos de Hadoop al sistema de gestión de la base de datos relacional con la ayuda del comando de exportación. Antes de que finalice la operación, los datos que se exportarán se convierten en registros. Dos procesos están involucrados en la exportación de datos: el primero es buscar metadatos en la base de datos y el segundo es mover los datos.

Ventajas de usar Sqoop

Usar Apache Sqoop tiene muchas ventajas. Están:

  1. Implica la transferencia de datos de numerosas fuentes estructuradas, como Oracle, Postgres, etc.
  2. Debido al transporte paralelo de datos, es rápido y eficiente.
  3. Muchos procedimientos pueden automatizarse, lo que aumenta la eficiencia.
  4. La integración con la autenticación de seguridad de Kerberos es factible.
  5. La carga directa de datos es posible desde HBase y Hive.
  6. Es una herramienta poderosa con una red de apoyo considerable.
  7. Como resultado de su constante desarrollo y aportes, se actualiza con frecuencia.

Limitaciones del uso de Sqoop

Al igual que las ventajas, existen algunas limitaciones al usar Sqoop; están:

1. Apache Sqoop no se puede detener ni iniciar de nuevo.

2. La configuración del hardware del servidor RDBMS afecta el rendimiento de Sqoop Export.

3. Sqoop es lento ya que el procesamiento de back-end usa el modelo MapReduce.

4. Se requiere un manejo especial para las fallas parciales de importación y exportación.

5. Apache Sqoop ofrece conectores más grandes para algunas de las bases de datos.

Conclusión

Se deben cargar cantidades masivas de datos en Hadoop clusters para procesamiento analítico utilizando Hadoop. Varias dificultades están involucradas con la carga de fuentes de datos masivas heterogéneas en Hadoop y su procesamiento. Antes de elegir la mejor estrategia para la carga de datos, es importante mantener y garantizar la coherencia de los datos y la utilización óptima de los recursos. Para resumir el funcionamiento de Sqoop:

  • Sqoop se utiliza en el clúster de Hadoop.
  • HDFS recibe importaciones de datos de bases de datos RDBMS o NoSQL.
  • Los datos se cargan en HDFS después de dividirse en varios formularios mediante mapeadores.
  • Sqoop exporta datos de nuevo al RDBMS mientras garantiza que se mantenga y siga el esquema de datos de la base de datos.

En el mundo moderno, donde los datos deben transferirse desde múltiples fuentes y en varias formas a Hadoop y, posteriormente, volver a trasladarse a los sistemas de bases de datos relacionales, Apache Sqoop es una herramienta valiosa. Con el lanzamiento de sus versiones más recientes, Apache Sqoop solo aumentará debido a la creciente importancia de los grandes datos en todos los sectores comerciales en un mundo impulsado por la tecnología.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

punto_img

Información más reciente

punto_img