Sqoop Eğitimi: Apache Sqoop nedir? ArchiYapı ve Örnek

Hadoop'ta SQOOP nedir?

Apache SQOOP (SQL-to-Hadoop), ilişkisel veritabanları, kurumsal veri ambarları ve NoSQL sistemleri gibi yapılandırılmış veri depolarından HDFS'ye toplu veri aktarımını ve aktarımını desteklemek için tasarlanmış bir araçtır. Yeni harici sistemlere bağlantı sağlamak için eklentileri destekleyen bir bağlayıcı mimarisine dayalı bir veri taşıma aracıdır.

Hadoop Sqoop'un örnek bir kullanım durumu, günün verilerini üretim işlemsel bir RDBMS'den bir RDBMS'ye yüklemek için her gece Sqoop içe aktarımı çalıştıran bir kuruluştur. kovan Daha fazla analiz için veri ambarı.

Bu Apache Sqoop eğitimimizin bir sonraki bölümünde Apache Sqoop mimarisini öğreneceğiz.

kepçe Archidoku

mevcut tüm Veritabanı Yönetim Sistemleri ile tasarlanmıştır SQL akılda standart. Bununla birlikte, her DBMS lehçeye göre bir dereceye kadar farklılık gösterir. Dolayısıyla bu fark, sistemler arasında veri aktarımı söz konusu olduğunda zorluklara yol açmaktadır. Sqoop Konektörleri bu zorlukların üstesinden gelmeye yardımcı olan bileşenlerdir.

Sqoop Hadoop ile harici depolama sistemi arasındaki veri aktarımı Sqoop'un konnektörleri yardımıyla mümkün olmaktadır.

Sqoop, aşağıdakiler de dahil olmak üzere bir dizi popüler ilişkisel veritabanlarıyla çalışmak için bağlayıcılara sahiptir: MySQL, PostgreSQL, Oracle, SQL Server ve DB2. Bu bağlayıcıların her biri, ilişkili DBMS ile nasıl etkileşim kuracağını bilir. Destekleyen herhangi bir veritabanına bağlanmak için genel bir JDBC konektörü de vardır. JavaJDBC protokolü. Ayrıca Sqoop Big data, optimize edilmiş MySQL ve PostgreSQL Toplu aktarımları verimli bir şekilde gerçekleştirmek için veritabanına özgü API'leri kullanan bağlayıcılar.

kepçe Archidoku
kepçe Archidoku

Buna ek olarak, büyük veride Sqoop, veri depoları için kurumsaldan kurumsala kadar çeşitli üçüncü taraf konektörlere sahiptir. veri depoları (Netezza, Teradata ve Oracle) NoSQL mağazalarına (Couchbase gibi). Ancak bu konektörler Sqoop paketiyle birlikte gelmiyor; bunların ayrı olarak indirilmesi gerekir ve mevcut bir Sqoop kurulumuna kolayca eklenebilir.

Neden Sqoop'a ihtiyacımız var?

Hadoop kullanarak analitik işleme, çeşitli kaynaklardan büyük miktarda verinin Hadoop kümelerine yüklenmesini gerektirir. Bu, heterojen kaynaklardan Hadoop'a toplu veri yükleme ve ardından işleme süreci, belirli bir dizi zorlukla birlikte gelir. Veri tutarlılığını korumak ve sağlamak ve kaynakların verimli kullanımını sağlamak, veri yükleme için doğru yaklaşımı seçmeden önce dikkate alınması gereken bazı faktörlerdir.

Büyük sorunlar:

1. Komut Dosyalarını kullanarak veri yükleme

Veri yüklemek için komut dosyalarının kullanılmasına yönelik geleneksel yaklaşım, Hadoop'a toplu veri yükleme için uygun değildir; bu yaklaşım verimsizdir ve çok zaman alıcıdır.

2. Map-Reduce uygulamasıyla harici verilere doğrudan erişim

Harita azaltma uygulamaları için harici sistemlerde bulunan verilere (Hadoop'a yükleme yapmadan) doğrudan erişim sağlamak, bu uygulamaları karmaşık hale getirir. Dolayısıyla bu yaklaşım mümkün değildir.

3. Hadoop, muazzam verilerle çalışabilme yeteneğine sahip olmasının yanı sıra, çeşitli farklı biçimlerdeki verilerle de çalışabilir. Bu nedenle, bu tür heterojen verileri Hadoop'a yüklemek için farklı araçlar geliştirilmiştir. kepçe ve suyolu bu tür iki veri yükleme aracıdır.

Örneklerle dolu bu Sqoop eğitiminde bir sonraki adımda Sqoop, Flume ve HDFS arasındaki farkı öğreneceğiz.

Hadoop'ta Sqoop vs Flume vs HDFS

kepçe suyolu HDFS
Sqoop, RDBMS gibi yapılandırılmış veri kaynaklarından veri içe aktarmak için kullanılır. Flume, toplu akış verilerini HDFS'ye taşımak için kullanılır. HDFS, Hadoop ekosistemi tarafından veri depolamak için kullanılan dağıtılmış bir dosya sistemidir.
Sqoop bağlayıcı tabanlı bir mimariye sahiptir. Bağlayıcılar ilgili veri kaynağına nasıl bağlanacağını ve verileri nasıl alacağını bilir. Flume, ajan tabanlı bir mimariye sahiptir. Burada, veriyi almakla ilgilenen bir kod yazılır (buna 'ajan' denir). HDFS, verilerin birden fazla veri düğümüne dağıtıldığı dağıtılmış bir mimariye sahiptir.
HDFS, Sqoop kullanılarak veri aktarımı için bir hedeftir. Veriler HDFS'ye sıfır veya daha fazla kanal üzerinden akar. HDFS, veri depolama için nihai hedeftir.
Sqoop veri yüklemesi olaya dayalı değildir. Flume veri yükü bir olay tarafından tetiklenebilir. HDFS, herhangi bir yolla kendisine sağlanan verileri saklar.
Yapılandırılmış veri kaynaklarından veri aktarmak için yalnızca Sqoop komutlarını kullanmak gerekir çünkü bağlayıcıları yapılandırılmış veri kaynaklarıyla nasıl etkileşime gireceğini ve onlardan veri almayı bilir. Twitter'da oluşturulan tweet'ler veya bir web sunucusunun günlük dosyaları gibi akış verilerini yüklemek için Flume kullanılmalıdır. Flume aracıları akış verilerini almak için oluşturulmuştur. HDFS'nin, verileri depolamak için kendi yerleşik kabuk komutları vardır. HDFS akış verilerini içe aktaramıyor