Sqoop Tutorial: Co je Apache Sqoop? Architecture & Příklad

Co je SQOOP v Hadoopu?

Apache SQOOP (SQL-to-Hadoop) je nástroj navržený pro podporu hromadného exportu a importu dat do HDFS ze strukturovaných datových úložišť, jako jsou relační databáze, podnikové datové sklady a systémy NoSQL. Jedná se o nástroj pro migraci dat založený na architektuře konektoru, který podporuje zásuvné moduly pro připojení k novým externím systémům.

Příkladem použití Hadoop Sqoop je podnik, který spouští noční import Sqoop pro načtení denních dat z produkčního transakčního RDBMS do Úl datový sklad pro další analýzu.

Dále se v tomto tutoriálu Apache Sqoop seznámíme s architekturou Apache Sqoop.

Sqoop Architecture

Všechny stávající Systémy pro správu databází jsou navrženy s SQL standard v mysli. Každý DBMS se však do určité míry liší s ohledem na dialekt. Tento rozdíl tedy představuje problémy, pokud jde o přenosy dat mezi systémy. Sqoop Connectors jsou komponenty, které pomáhají překonat tyto výzvy.

Přenos dat mezi Sqoop Hadoop a externím úložným systémem je možný pomocí konektorů Sqoop.

Sqoop má konektory pro práci s řadou oblíbených relačních databází, včetně MySQL, PostgreSQL, Oracle, SQL Server a DB2. Každý z těchto konektorů ví, jak interagovat s přidruženým DBMS. K dispozici je také obecný konektor JDBC pro připojení k jakékoli databázi, která podporuje Javaprotokol JDBC. Navíc Sqoop Big data poskytuje optimalizované MySQL a PostgreSQL konektory, které používají rozhraní API specifická pro databázi k efektivnímu provádění hromadných přenosů.

Sqoop Architecture
Sqoop Architecture

Kromě toho má Sqoop v oblasti velkých dat různé konektory třetích stran pro úložiště dat, od podnikových datové sklady (včetně Netezza, Teradata a Oracle) do obchodů NoSQL (jako je Couchbase). Tyto konektory se však nedodávají se svazkem Sqoop; ty je třeba stáhnout samostatně a lze je snadno přidat do stávající instalace Sqoop.

Proč potřebujeme Sqoop?

Analytické zpracování pomocí Hadoop vyžaduje načítání obrovského množství dat z různých zdrojů do clusterů Hadoop. Tento proces hromadného načítání dat do Hadoopu z heterogenních zdrojů a jejich následného zpracování s sebou nese určitou sadu výzev. Udržování a zajištění konzistence dat a zajištění efektivního využití zdrojů jsou některé faktory, které je třeba zvážit před výběrem správného přístupu k načítání dat.

Hlavní problémy:

1. Načítání dat pomocí skriptů

Tradiční přístup používání skriptů k načítání dat není vhodný pro hromadné načítání dat do Hadoop; tento přístup je neefektivní a časově velmi náročný.

2. Přímý přístup k externím datům přes aplikaci Map-Reduce

Poskytování přímého přístupu k datům uloženým na externích systémech (bez načítání do Hadoop) pro aplikace pro redukci map tyto aplikace komplikuje. Tento přístup tedy není proveditelný.

3. Kromě schopnosti pracovat s obrovskými daty může Hadoop pracovat s daty v několika různých formách. Takže pro načtení takových heterogenních dat do Hadoopu byly vyvinuty různé nástroje. Sqoop a Tok jsou dva takové nástroje načítání dat.

Dále v tomto tutoriálu Sqoop s příklady se dozvíme o rozdílu mezi Sqoop, Flume a HDFS.

Sqoop vs Flume vs HDFS v Hadoopu

Sqoop Tok HDFS
Sqoop se používá pro import dat ze strukturovaných datových zdrojů, jako je RDBMS. Flume se používá pro přesun hromadných datových proudů do HDFS. HDFS je distribuovaný souborový systém používaný ekosystémem Hadoop k ukládání dat.
Sqoop má architekturu založenou na konektorech. Konektory vědí, jak se připojit k příslušnému zdroji dat a načíst data. Flume má architekturu založenou na agentech. Zde je napsán kód (který se nazývá 'agent'), který se stará o načítání dat. HDFS má distribuovanou architekturu, kde jsou data distribuována přes více datových uzlů.
HDFS je cíl pro import dat pomocí Sqoop. Data proudí do HDFS přes žádný nebo více kanálů. HDFS je konečným cílem pro ukládání dat.
Načítání dat Sqoop není řízeno událostmi. Načtení dat kanálu může být řízeno událostí. HDFS pouze ukládá data, která mu byla poskytnuta jakýmkoli způsobem.
Aby bylo možné importovat data ze zdrojů strukturovaných dat, je třeba používat pouze příkazy Sqoop, protože jeho konektory vědí, jak interagovat se zdroji strukturovaných dat a získávat z nich data. Aby bylo možné načíst streamovaná data, jako jsou tweety generované na Twitteru nebo soubory protokolu webového serveru, měl by být použit Flume. Agenti flume jsou navrženi pro načítání streamovaných dat. HDFS má své vlastní vestavěné příkazy shellu pro ukládání dat do něj. HDFS nemůže importovat data streamování

Shrňte tento příspěvek takto: