Tutorial su Sqoop: cos'è Apache Sqoop? Archiarchitettura ed esempio

Cos'è SQOOP in Hadoop?

Apache SQOOP (SQL-to-Hadoop) è uno strumento progettato per supportare l'esportazione e l'importazione in blocco di dati in HDFS da archivi di dati strutturati come database relazionali, data warehouse aziendali e sistemi NoSQL. È uno strumento di migrazione dei dati basato su un'architettura di connettori che supporta plugin per fornire connettività a nuovi sistemi esterni.

Un esempio di caso d'uso di Hadoop Sqoop è un'azienda che esegue un'importazione Sqoop notturna per caricare i dati giornalieri da un RDBMS transazionale di produzione in un Alveare data warehouse per ulteriori analisi.

Nel prossimo tutorial su Apache Sqoop impareremo l'architettura di Apache Sqoop.

Sqop Architectura

Tutto l'esistente Sistemi di gestione di database sono progettati con SQL norma in mente. Tuttavia, ogni DBMS differisce in una certa misura rispetto al dialetto. Pertanto, questa differenza pone sfide quando si tratta di trasferimenti di dati tra i sistemi. I connettori Sqoop sono componenti che aiutano a superare queste sfide.

Il trasferimento dei dati tra Sqoop Hadoop e il sistema di archiviazione esterno è reso possibile con l'aiuto dei connettori Sqoop.

Sqoop dispone di connettori per lavorare con una gamma di database relazionali popolari, tra cui MySQL, PostgreSQL, Oracle, SQL Server e DB2. Ciascuno di questi connettori sa come interagire con il DBMS associato. Esiste anche un connettore JDBC generico per la connessione a qualsiasi database che supporti Javail protocollo JDBC di. Inoltre, Sqoop Big data fornisce dati ottimizzati MySQL and PostgreSQL connettori che utilizzano API specifiche del database per eseguire trasferimenti in blocco in modo efficiente.

Sqop Architectura
Sqop Architectura

Oltre a questo, Sqoop nei big data dispone di vari connettori di terze parti per archivi dati, che vanno dall'impresa data warehouse (inclusi Netezza, Teradata e Oracle) agli archivi NoSQL (come Couchbase). Tuttavia, questi connettori non vengono forniti con il bundle Sqoop; quelli devono essere scaricati separatamente e possono essere aggiunti facilmente a un'installazione Sqoop esistente.

Perché abbiamo bisogno di Sqoop?

L'elaborazione analitica tramite Hadoop richiede il caricamento di enormi quantità di dati da diverse fonti in cluster Hadoop. Questo processo di caricamento di dati in blocco in Hadoop, da fonti eterogenee e successiva elaborazione, comporta una serie di sfide. Mantenere e garantire la coerenza dei dati e garantire un utilizzo efficiente delle risorse sono alcuni fattori da considerare prima di selezionare l'approccio giusto per il caricamento dei dati.

Problemi maggiori:

1. Caricamento dei dati utilizzando gli script

L'approccio tradizionale che prevede l'utilizzo di script per caricare i dati non è adatto al caricamento di dati in blocco in Hadoop; questo approccio è inefficiente e richiede molto tempo.

2. Accesso diretto ai dati esterni tramite l'applicazione Map-Reduce

Fornire accesso diretto ai dati che risiedono su sistemi esterni (senza caricarli in Hadoop) per le applicazioni di riduzione delle mappe complica queste applicazioni. Quindi, questo approccio non è fattibile.

3. Oltre ad avere la capacità di lavorare con dati enormi, Hadoop può lavorare con dati in diverse forme. Quindi, per caricare dati così eterogenei in Hadoop, sono stati sviluppati diversi strumenti. Sqop and Canale artificiale sono due di questi strumenti di caricamento dati.

Successivamente in questo tutorial Sqoop con esempi, impareremo la differenza tra Sqoop, Flume e HDFS.

Sqoop vs Flume vs HDFS in Hadoop

Sqop Canale artificiale HDFS
Sqoop viene utilizzato per importare dati da origini dati strutturate come RDBMS. Flume viene utilizzato per spostare i dati di streaming in blocco in HDFS. HDFS è un file system distribuito utilizzato dall'ecosistema Hadoop per archiviare i dati.
Sqoop ha un'architettura basata sui connettori. I connettori sanno come connettersi alla rispettiva fonte di dati e recuperare i dati. Flume ha un'architettura basata su agenti. Qui, viene scritto un codice (chiamato 'agente') che si occupa di recuperare i dati. HDFS ha un'architettura distribuita in cui i dati sono distribuiti su più nodi dati.
HDFS è una destinazione per l'importazione di dati utilizzando Sqoop. I dati fluiscono verso HDFS attraverso zero o più canali. HDFS è la destinazione definitiva per l'archiviazione dei dati.
Il caricamento dei dati Sqoop non è guidato dagli eventi. Il caricamento dei dati del canale può essere guidato da un evento. HDFS memorizza semplicemente i dati forniti con qualsiasi mezzo.
Per importare dati da origini dati strutturate, è necessario utilizzare solo i comandi Sqoop, perché i suoi connettori sanno come interagire con origini dati strutturate e recuperare dati da esse. Per caricare dati in streaming come tweet generati su Twitter o file di registro di un server web, è necessario utilizzare Flume. Gli agenti dei flussi sono progettati per recuperare dati in streaming. HDFS ha i propri comandi shell integrati per archiviare i dati al suo interno. HDFS non può importare dati di streaming

Riassumi questo post con: