Apache Pig - Arsitektur

Bahasa yang digunakan untuk menganalisis data di Hadoop menggunakan Pig dikenal sebagai Pig Latin. Ini adalah bahasa pemrosesan data tingkat tinggi yang menyediakan serangkaian tipe data dan operator untuk melakukan berbagai operasi pada data.

Untuk melakukan tugas tertentu Pemrogram menggunakan Pig, pemrogram perlu menulis skrip Pig menggunakan bahasa Pig Latin, dan menjalankannya menggunakan salah satu mekanisme eksekusi (Grunt Shell, UDFs, Embedded). Setelah dieksekusi, skrip ini akan melalui serangkaian transformasi yang diterapkan oleh Pig Framework, untuk menghasilkan keluaran yang diinginkan.

Secara internal, Apache Pig mengubah skrip ini menjadi serangkaian pekerjaan MapReduce, dan dengan demikian, membuat pekerjaan programmer menjadi mudah. Arsitektur Apache Pig ditunjukkan di bawah ini.

Komponen Apache Pig

Seperti yang ditunjukkan pada gambar, ada berbagai komponen dalam framework Apache Pig. Mari kita lihat komponen utamanya.

Parser

Awalnya Skrip Babi ditangani oleh Parser. Ia memeriksa sintaks skrip, melakukan pemeriksaan jenis, dan pemeriksaan lain-lain. Output dari parser akan menjadi DAG (grafik asiklik terarah), yang mewakili pernyataan Pig Latin dan operator logika.

Di DAG, operator logika skrip direpresentasikan sebagai node dan aliran data direpresentasikan sebagai edge.

Pengoptimal

Rencana logis (DAG) diteruskan ke pengoptimal logis, yang menjalankan pengoptimalan logis seperti proyeksi dan pushdown.

Penyusun

Kompilator menyusun rencana logis yang dioptimalkan menjadi serangkaian tugas MapReduce.

Mesin eksekusi

Akhirnya pekerjaan MapReduce dikirim ke Hadoop dalam urutan yang diurutkan. Akhirnya, pekerjaan MapReduce ini dijalankan di Hadoop menghasilkan hasil yang diinginkan.

Model Data Pig Latin

Model data Pig Latin sepenuhnya bersarang dan memungkinkan tipe data non-atom yang kompleks seperti map dan tuple. Diberikan di bawah ini adalah representasi diagram dari model data Pig Latin.

Atom

Setiap nilai tunggal dalam Pig Latin, terlepas dari datanya, jenisnya dikenal sebagai Atom. Ini disimpan sebagai string dan dapat digunakan sebagai string dan angka. int, long, float, double, chararray, dan bytearray adalah nilai atom Pig. Sepotong data atau nilai atom sederhana dikenal sebagai afield.

Example - 'raja' atau '30'

Tuple

Rekaman yang dibentuk oleh sekumpulan bidang yang dipesan dikenal sebagai tupel, bidang dapat berupa jenis apa pun. Tupel mirip dengan baris dalam tabel RDBMS.

Example - (Raja, 30)

Tas

Tas adalah satu set tupel yang tidak berurutan. Dengan kata lain, koleksi tupel (non-unik) disebut tas. Setiap tupel dapat memiliki sejumlah bidang (skema fleksibel). Tas diwakili oleh '{}'. Ini mirip dengan tabel di RDBMS, tetapi tidak seperti tabel di RDBMS, tidak perlu setiap tupel berisi jumlah bidang yang sama atau bahwa bidang dalam posisi (kolom) yang sama memiliki jenis yang sama.

Example - {(Raja, 30), (Mohammad, 45)}

Tas bisa menjadi bidang dalam suatu hubungan; dalam konteks itu, itu dikenal sebagaiinner bag.

Example - {Raja, 30, {9848022338, [email protected],}}

Peta

Peta (atau peta data) adalah sekumpulan pasangan nilai-kunci. Itukeyharus bertipe chararray dan harus unik. Ituvaluemungkin dari jenis apa pun. Ini diwakili oleh '[]'

Example - [nama # Raja, usia # 30]

Hubungan

Relasi adalah sekantong tupel. Relasi dalam Pig Latin tidak berurutan (tidak ada jaminan bahwa tupel diproses dalam urutan tertentu).