Tutorial Sqoop: Apa itu Apache Sqoop? Senibina & Contohnya

Isi kandungan:

Anonim

Apakah SQOOP di Hadoop?

Apache SQOOP (SQL-to-Hadoop) adalah alat yang dirancang untuk menyokong eksport pukal dan mengimport data ke HDFS dari kedai data berstruktur seperti pangkalan data hubungan, gudang data perusahaan, dan sistem NoSQL. Ini adalah alat migrasi data berdasarkan seni bina penyambung yang menyokong pemalam untuk menyediakan sambungan ke sistem luaran baru.

Contoh kes penggunaan Hadoop Sqoop adalah perusahaan yang menjalankan import Sqoop setiap malam untuk memuatkan data hari dari RDBMS transaksional pengeluaran ke gudang data Hive untuk analisis lebih lanjut.

Selanjutnya dalam tutorial Apache Sqoop ini, kita akan belajar mengenai seni bina Apache Sqoop.

Senibina Sqoop

Semua Sistem Pengurusan Pangkalan Data yang ada dirancang dengan mempertimbangkan standard SQL. Walau bagaimanapun, setiap DBMS berbeza sehubungan dengan dialek hingga tahap tertentu. Jadi, perbezaan ini menimbulkan cabaran ketika berkaitan dengan pemindahan data ke seluruh sistem. Sqoop Connectors adalah komponen yang membantu mengatasi cabaran ini.

Pemindahan data antara Sqoop Hadoop dan sistem storan luaran dimungkinkan dengan bantuan penyambung Sqoop.

Sqoop mempunyai penyambung untuk bekerja dengan pelbagai pangkalan data hubungan yang popular, termasuk MySQL, PostgreSQL, Oracle, SQL Server, dan DB2. Setiap penyambung ini tahu bagaimana berinteraksi dengan DBMS yang berkaitan. Terdapat juga penyambung JDBC generik untuk menyambung ke pangkalan data yang menyokong protokol JDBC Java. Di samping itu, data Sqoop Big menyediakan penyambung MySQL dan PostgreSQL yang dioptimumkan yang menggunakan API khusus pangkalan data untuk melakukan pemindahan pukal dengan berkesan.

Senibina Sqoop

Selain itu, Sqoop dalam data besar mempunyai pelbagai penyambung pihak ketiga untuk kedai data, mulai dari gudang data perusahaan (termasuk Netezza, Teradata, dan Oracle) hingga ke kedai NoSQL (seperti Couchbase). Walau bagaimanapun, penyambung ini tidak disertakan dengan Sqoop bundle; semuanya perlu dimuat turun secara berasingan dan boleh ditambahkan dengan mudah ke pemasangan Sqoop yang ada.

Mengapa kita memerlukan Sqoop?

Pemprosesan analitik menggunakan Hadoop memerlukan pemuatan sejumlah besar data dari pelbagai sumber ke dalam kelompok Hadoop. Proses pemuatan data pukal ini ke Hadoop, dari sumber yang heterogen dan kemudian memprosesnya, hadir dengan sejumlah cabaran. Menjaga dan memastikan konsistensi data dan memastikan penggunaan sumber yang cekap, adalah beberapa faktor yang perlu dipertimbangkan sebelum memilih pendekatan yang tepat untuk pemuatan data.

Isu Utama:

1. Pemuatan data menggunakan Skrip

Pendekatan tradisional menggunakan skrip untuk memuat data tidak sesuai untuk pemuatan data pukal ke Hadoop; pendekatan ini tidak cekap dan sangat memakan masa.

2. Akses terus ke data luaran melalui aplikasi Map-Reduce

Menyediakan akses langsung ke data yang berada di sistem luaran (tanpa memuat ke Hadoop) untuk aplikasi pengurangan peta menyukarkan aplikasi ini. Oleh itu, pendekatan ini tidak dapat dilaksanakan.

3. Selain memiliki kemampuan untuk bekerja dengan data yang sangat besar, Hadoop dapat bekerja dengan data dalam beberapa bentuk yang berbeda. Jadi, untuk memuatkan data heterogen ke Hadoop, alat yang berbeza telah dikembangkan. Sqoop dan Flume adalah dua alat pemuatan data seperti itu.

Selanjutnya dalam tutorial Sqoop ini dengan contoh, kita akan belajar tentang perbezaan antara Sqoop, Flume dan HDFS.

Sqoop vs Flume vs HDFS di Hadoop

Sqoop Flume HDFS
Sqoop digunakan untuk mengimport data dari sumber data berstruktur seperti RDBMS. Flume digunakan untuk memindahkan data streaming pukal ke HDFS. HDFS adalah sistem fail diedarkan yang digunakan oleh ekosistem Hadoop untuk menyimpan data.
Sqoop mempunyai seni bina berasaskan penyambung. Penyambung tahu cara menyambung ke sumber data masing-masing dan mengambil data. Flume mempunyai seni bina berasaskan ejen. Di sini, kod ditulis (yang disebut sebagai 'ejen') yang mengurus pengambilan data. HDFS mempunyai seni bina yang diedarkan di mana data diedarkan di pelbagai nod data.
HDFS adalah destinasi untuk mengimport data menggunakan Sqoop. Data mengalir ke HDFS melalui saluran sifar atau lebih. HDFS adalah destinasi utama untuk penyimpanan data.
Beban data Sqoop tidak didorong oleh peristiwa. Beban data flume dapat didorong oleh suatu peristiwa. HDFS hanya menyimpan data yang diberikan kepadanya dengan cara apa pun.
Untuk mengimpor data dari sumber data terstruktur, seseorang harus menggunakan perintah Sqoop saja, kerana penghubungnya tahu bagaimana berinteraksi dengan sumber data berstruktur dan mengambil data dari mereka. Untuk memuatkan data streaming seperti tweet yang dihasilkan di Twitter atau fail log pelayan web, Flume harus digunakan. Ejen flume dibina untuk mengambil data streaming. HDFS mempunyai perintah shell terbina dalam untuk menyimpan data ke dalamnya. HDFS tidak dapat mengimport data streaming