Apache Pig - Sekilas
Apa itu Apache Pig?
Apache Pig adalah abstraksi dari MapReduce. Ini adalah alat / platform yang digunakan untuk menganalisis kumpulan data yang lebih besar yang merepresentasikannya sebagai aliran data. Pig umumnya digunakan denganHadoop; kita dapat melakukan semua operasi manipulasi data di Hadoop menggunakan Apache Pig.
Untuk menulis program analisis data, Pig menyediakan bahasa tingkat tinggi yang disebut Pig Latin. Bahasa ini menyediakan berbagai operator yang dapat digunakan pemrogram untuk mengembangkan fungsi mereka sendiri untuk membaca, menulis, dan memproses data.
Untuk menganalisis data menggunakan Apache Pig, programmer perlu menulis skrip menggunakan bahasa Pig Latin. Semua skrip ini secara internal dikonversi ke tugas Peta dan Kurangi. Apache Pig memiliki komponen yang dikenal sebagaiPig Engine yang menerima skrip Pig Latin sebagai masukan dan mengubah skrip tersebut menjadi pekerjaan MapReduce.
Mengapa Kita Membutuhkan Apache Pig?
Programmer yang tidak begitu pandai Java biasanya biasanya kesulitan bekerja dengan Hadoop, terutama saat melakukan tugas MapReduce. Apache Pig adalah anugerah bagi semua programmer seperti itu.
Menggunakan Pig Latin, programmer dapat melakukan tugas MapReduce dengan mudah tanpa harus mengetikkan kode kompleks di Java.
Apache Pig menggunakan multi-query approach, sehingga mengurangi panjang kode. Misalnya, operasi yang mengharuskan Anda mengetik 200 baris kode (LoC) di Java dapat dengan mudah dilakukan hanya dengan mengetik 10 LoC di Apache Pig. Akhirnya Apache Pig mengurangi waktu pengembangan hampir 16 kali lipat.
Pig Latin adalah SQL-like language dan mudah mempelajari Apache Pig jika Anda sudah terbiasa dengan SQL.
Apache Pig menyediakan banyak operator bawaan untuk mendukung operasi data seperti gabungan, filter, pemesanan, dll. Selain itu, Apache Pig juga menyediakan tipe data bersarang seperti tupel, tas, dan peta yang hilang dari MapReduce.
Fitur Babi
Apache Pig hadir dengan fitur-fitur berikut -
Rich set of operators - Ini menyediakan banyak operator untuk melakukan operasi seperti join, sort, filer, dll.
Ease of programming - Pig Latin mirip dengan SQL dan mudah untuk menulis skrip Pig jika Anda mahir dalam SQL.
Optimization opportunities - Tugas di Apache Pig mengoptimalkan eksekusinya secara otomatis, sehingga pemrogram hanya perlu fokus pada semantik bahasa.
Extensibility - Dengan menggunakan operator yang ada, pengguna dapat mengembangkan fungsinya sendiri untuk membaca, mengolah, dan menulis data.
UDF’s - Pig menyediakan fasilitas untuk berkreasi User-defined Functions dalam bahasa pemrograman lain seperti Java dan memanggil atau menyematkannya dalam Pig Scripts.
Handles all kinds of data- Apache Pig menganalisis semua jenis data, baik yang terstruktur maupun yang tidak terstruktur. Ini menyimpan hasil dalam HDFS.
Apache Pig Vs MapReduce
Di bawah ini adalah perbedaan utama antara Apache Pig dan MapReduce.
Apache Pig | MapReduce |
---|---|
Apache Pig adalah bahasa aliran data. | MapReduce adalah paradigma pemrosesan data. |
Ini adalah bahasa tingkat tinggi. | MapReduce adalah level rendah dan kaku. |
Melakukan operasi Join di Apache Pig cukup sederhana. | Sangat sulit di MapReduce untuk melakukan operasi Gabungan di antara kumpulan data. |
Setiap programmer pemula dengan pengetahuan dasar SQL dapat bekerja dengan nyaman dengan Apache Pig. | Eksposur ke Java harus bekerja dengan MapReduce. |
Apache Pig menggunakan pendekatan multi-kueri, sehingga mengurangi sebagian besar panjang kode. | MapReduce akan membutuhkan hampir 20 kali lebih banyak jumlah baris untuk melakukan tugas yang sama. |
Tidak perlu kompilasi. Saat eksekusi, setiap operator Apache Pig diubah secara internal menjadi tugas MapReduce. | Pekerjaan MapReduce memiliki proses kompilasi yang lama. |
Apache Pig Vs SQL
Di bawah ini adalah perbedaan utama antara Apache Pig dan SQL.
Babi | SQL |
---|---|
Pig Latin adalah a procedural bahasa. | SQL adalah declarative bahasa. |
Di Apache Pig, schemabersifat opsional. Kita dapat menyimpan data tanpa merancang skema (nilai disimpan sebagai $ 01, $ 02 dll.) | Skema wajib ada di SQL. |
Model data di Apache Pig adalah nested relational. | Model data yang digunakan dalam SQL is flat relational. |
Apache Pig memberikan kesempatan terbatas untuk Query optimization. | Ada lebih banyak peluang untuk pengoptimalan kueri dalam SQL. |
Selain perbedaan di atas, Apache Pig Latin -
- Memungkinkan perpecahan di dalam pipa.
- Izinkan pengembang untuk menyimpan data di mana saja dalam pipeline.
- Menyatakan rencana eksekusi.
- Menyediakan operator untuk menjalankan fungsi ETL (Ekstrak, Transformasi, dan Muat).
Apache Pig Vs Sarang
Baik Apache Pig dan Hive digunakan untuk membuat pekerjaan MapReduce. Dan dalam beberapa kasus, Hive beroperasi pada HDFS dengan cara yang sama seperti Apache Pig. Dalam tabel berikut, kami telah membuat daftar beberapa poin penting yang membedakan Apache Pig dari Hive.
Apache Pig | Sarang lebah |
---|---|
Apache Pig menggunakan bahasa yang disebut Pig Latin. Ini awalnya dibuat diYahoo. | Hive menggunakan bahasa yang disebut HiveQL. Ini awalnya dibuat diFacebook. |
Pig Latin adalah bahasa aliran data. | HiveQL adalah bahasa pemrosesan kueri. |
Pig Latin adalah bahasa prosedural dan cocok dengan paradigma pipeline. | HiveQL adalah bahasa deklaratif. |
Apache Pig dapat menangani data terstruktur, tidak terstruktur, dan semi-terstruktur. | Sarang sebagian besar untuk data terstruktur. |
Aplikasi Apache Pig
Apache Pig umumnya digunakan oleh data scientist untuk melakukan tugas yang melibatkan pemrosesan ad-hoc dan pembuatan prototipe cepat. Apache Pig digunakan -
- Untuk memproses sumber data yang sangat besar seperti web log.
- Untuk melakukan pemrosesan data untuk platform pencarian.
- Untuk memproses beban data sensitif waktu.
Apache Pig - Sejarah
Di 2006, Apache Pig dikembangkan sebagai proyek penelitian di Yahoo, terutama untuk membuat dan menjalankan pekerjaan MapReduce di setiap kumpulan data. Di2007, Apache Pig bersumber terbuka melalui inkubator Apache. Di2008, rilis pertama Apache Pig keluar. Di2010, Apache Pig lulus sebagai proyek tingkat atas Apache.