Tutorial Sqoop: Apa itu Apache Sqoop? Architekstur & Contoh
Apa itu SQOOP di Hadoop?
Apache SQOOP (SQL-to-Hadoop) adalah alat yang dirancang untuk mendukung ekspor dan impor data massal ke HDFS dari penyimpanan data terstruktur seperti basis data relasional, gudang data perusahaan, dan sistem NoSQL. Ini adalah alat migrasi data berdasarkan arsitektur konektor yang mendukung plugin untuk menyediakan konektivitas ke sistem eksternal baru.
Contoh kasus penggunaan Hadoop Sqoop adalah perusahaan yang menjalankan impor Sqoop setiap malam untuk memuat data hari itu dari RDBMS transaksional produksi ke dalam Sarang lebah gudang data untuk analisis lebih lanjut.
Berikutnya dalam tutorial Apache Sqoop ini, kita akan mempelajari tentang arsitektur Apache Sqoop.
Skup Architekstur
Semua yang ada Sistem Manajemen Basis Data dirancang dengan SQL standar dalam pikiran. Namun, setiap DBMS berbeda dalam hal dialek sampai batas tertentu. Jadi, perbedaan ini menimbulkan tantangan dalam hal transfer data antar sistem. Konektor Sqoop adalah komponen yang membantu mengatasi tantangan ini.
Transfer data antara Sqoop Hadoop dan sistem penyimpanan eksternal dimungkinkan dengan bantuan konektor Sqoop.
Sqoop memiliki konektor untuk bekerja dengan berbagai database relasional populer, termasuk MySQL, PostgreSQL, Oracle, SQL Server, dan DB2. Masing-masing konektor mengetahui cara berinteraksi dengan DBMS terkait. Ada juga konektor JDBC generik untuk menyambung ke database apa pun yang mendukung Javaprotokol JDBC. Selain itu, Sqoop Big menyediakan data yang dioptimalkan MySQL dan PostgreSQL konektor yang menggunakan API khusus database untuk melakukan transfer massal secara efisien.
Selain itu, Sqoop di big data memiliki berbagai konektor pihak ketiga untuk penyimpanan data, mulai dari perusahaan gudang data (termasuk Netezza, Teradata, dan Oracle) ke penyimpanan NoSQL (seperti Couchbase). Namun, konektor ini tidak disertakan dengan paket Sqoop; itu perlu diunduh secara terpisah dan dapat ditambahkan dengan mudah ke instalasi Sqoop yang sudah ada.
Mengapa kita membutuhkan Sqoop?
Pemrosesan analitis menggunakan Hadoop memerlukan pemuatan sejumlah besar data dari berbagai sumber ke dalam kluster Hadoop. Proses pemuatan data massal ke Hadoop, dari berbagai sumber heterogen, lalu memprosesnya, disertai serangkaian tantangan tertentu. Mempertahankan dan memastikan konsistensi data serta memastikan pemanfaatan sumber daya yang efisien, adalah beberapa faktor yang perlu dipertimbangkan sebelum memilih pendekatan yang tepat untuk pemuatan data.
Masalah Utama:
1. Pemuatan data menggunakan Script
Pendekatan tradisional menggunakan skrip untuk memuat data tidak cocok untuk memuat data massal ke Hadoop; pendekatan ini tidak efisien dan sangat memakan waktu.
2. Akses langsung ke data eksternal melalui aplikasi Map-Reduce
Menyediakan akses langsung ke data yang berada di sistem eksternal (tanpa memuat ke Hadoop) untuk aplikasi pengurangan peta mempersulit aplikasi ini. Jadi, pendekatan ini tidak mungkin dilakukan.
3. Selain memiliki kemampuan untuk mengolah data yang sangat besar, Hadoop dapat mengolah data dalam beberapa bentuk yang berbeda. Jadi, untuk memuat data yang heterogen tersebut ke dalam Hadoop, berbagai alat telah dikembangkan. Skup dan Mengalir adalah dua alat pemuatan data tersebut.
Selanjutnya dalam tutorial Sqoop ini beserta contohnya, kita akan belajar tentang perbedaan antara Sqoop, Flume dan HDFS.
Sqoop vs Flume vs HDFS di Hadoop
Skup | Mengalir | HDFS |
---|---|---|
Sqoop digunakan untuk mengimpor data dari sumber data terstruktur seperti RDBMS. | Flume digunakan untuk memindahkan data streaming massal ke HDFS. | HDFS adalah sistem berkas terdistribusi yang digunakan oleh ekosistem Hadoop untuk menyimpan data. |
Sqoop memiliki arsitektur berbasis konektor. Konektor mengetahui cara menghubungkan ke sumber data terkait dan mengambil data. | Flume memiliki arsitektur berbasis agen. Di sini, kode ditulis (yang disebut sebagai 'agen') yang menangani pengambilan data. | HDFS memiliki arsitektur terdistribusi di mana data didistribusikan ke beberapa node data. |
HDFS merupakan tujuan import data menggunakan Sqoop. | Data mengalir ke HDFS melalui nol atau lebih saluran. | HDFS adalah tujuan akhir untuk penyimpanan data. |
Pemuatan data Sqoop tidak didorong oleh peristiwa. | Pemuatan data Flume dapat didorong oleh suatu peristiwa. | HDFS hanya menyimpan data yang diberikan dengan cara apa pun. |
Untuk mengimpor data dari sumber data terstruktur, kita harus menggunakan perintah Sqoop saja, karena konektornya mengetahui cara berinteraksi dengan sumber data terstruktur dan mengambil data dari sumber tersebut. | Untuk memuat data streaming seperti tweet yang dihasilkan di Twitter atau file log server web, Flume harus digunakan. Agen Flume dibuat untuk mengambil data streaming. | HDFS memiliki perintah shell bawaannya sendiri untuk menyimpan data ke dalamnya. HDFS tidak dapat mengimpor data streaming |