Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Pengenalan Big Data untuk Pemula

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Usm a932 artikel 2 lan
Usm a932 artikel 2 lan
Cargando en…3
×

Eche un vistazo a continuación

1 de 57 Anuncio

Más Contenido Relacionado

Similares a Pengenalan Big Data untuk Pemula (20)

Más de Dony Riyanto (20)

Anuncio

Más reciente (20)

Pengenalan Big Data untuk Pemula

  1. 1. Introduction to Big Data with Hadoop Pelatihan, 23-25 Oktober 2020 Dipersiapkan oleh Dony Riyanto
  2. 2. Apa itu Big Data Benar: • Sekumpulan data dalam sistem, yang sangat besar jumlahnya, • sehingga (hampir) tidak mungkin diolah menggunakan infrastruktur/sistem yang ada saat ini (yang dimiliki oleh perusahaan), • sehingga (mungkin) dibutuhkan sistem pengolahan data khusus, • yang dari situ diharapkan suatu saat bisa digali analisa yang lebih dalam, lebih cepat, untuk keperluan perusahaan/organisasi. Salah: • Mengumpulkan data tentang siapapun dan apapun yang penting jumlahnya besar. • All-in-one solution. • Pasti lebih baik daripada sistem pengolahan data secara tradisional. • Sebuah keharusan bagi semua perusahaan/organisasi untuk investasi dan membangun sistem bigdata. • Hanya dibutuhkan oleh perusahaan/organisasi besar.
  3. 3. Big Data 3 V
  4. 4. Big Data 5 V+
  5. 5. Big Picture www.ibmbigdatahub.com • Empower C-Suite • Improve Reliability • Speed Operations • Monitor & React
  6. 6. Apa gunanya Big Data? • Tempat menyimpan data dalam jumlah besar sekali, • dan mungkin dalam format yang unstructured/semi-tructured, • namun harus bisa diolah (dengan cepat/baik). Tujuan akhir big data: • Mendapatkan insight yang lebih baik, untuk pengambilan keputusan yang lebih tepat. • Untuk dapat di lakukan analisa lebih dalam suatu saat nanti. • Untuk dapat mengambil keputusan secara sistem (bahkan otomatisasi) pada saat bisnis sedang berjalan (daily operation) Tujuan big data bukan untuk: • Mengurangi biaya infrastructur pengolahan data • Secara 'magic' menyelesaikan masalah-masalah/pengambilan keputusan dalam bisnis
  7. 7. GIGO vs GIIO • Sistem Informasi yang baik umumnya dirancang untuk mencegah Garbage In Garbage Out. Informasi di filter dengan baik didepan sedemikian mungkin, untuk memastikan bahwa yang tersimpan adalah informasi inti saja. • Perusahaan minuman air dalam kemasan, menggunakan Sistem Informasi untuk mencatat, berapa botol yang di produksi tiap pabriknya, berapa yang didistribusikan per hari, siapa saja distributornya, dimana saja penjualannya, dsb. • Tetapi mereka tidak pernah tahu, kenapa pada saat-saat tertentu pembelian air minum kemasan naik di daerah tertentu (misalnya: ada konser, atau ada upacara/seremonial di lapangan). Karena mereka tidak pernah mencatat data- data pendukung, yang mungkin terlalu detail, yang mungkin dianggap tidak relevan secara langsung dengan produksi air mineral. • Bagaimana jika dari data 'sampah' bisa didapatkan insight (gargabe in insight out)? Lalu ada definisi dari data 'sampah' ini?
  8. 8. GIGO vs GIIO (2) • Pada sebuah perusahaan e-commerce platform, tentu data utama yang harus mereka kelola adalah: data barang, data penjual, data pembeli, data pemesanan, data pengantaram, data pembayaran, dsb. • Bagaimana dengan data pemesanan yang batal (sudah dimasukkan ke keranjang tapi kemudian dihapus, atau tidak diteruskan ke checkout)? Atau aktifitas penjual memasukkan/menghapus/meng-edit item barang jualan mereka? (dan data-data lain yang sifatnya temporer) • Bagaimana dengan data: berapa lama user berada dalam web app tersebut, scroll/klik kemana, arah pergerakan mouse, dsb? • Bagaimana dengan data-data dari luar web app: aktifitas iklan di web/platform lain, aktifitas user di platform lain (socmed misalnya)? • Apakah itu adalah data sampah? Jika semua data itu dikumpulkan dan disimpan, apa gunanya, dan bagaimana kita bisa memanfaatkannya?
  9. 9. Data Format vs Data Source
  10. 10. Business Intelligence vs Machine Learning • Banyak perusahaan sudah menerapkan BI dan membuat Data Warehouse untuk bisa melakukan analisa lebih dalam terhadap data yang tersimpan. “Apa yang terjadi?” “Customer kita lebih suka apa?” “Customer kita lebih mau beli item yang mana? Back during World War II, the RAF lost a lot of planes to German anti-aircraft fire. So they decided to armor them up. But where to put the armor? The obvious answer was to look at planes that returned from missions, count up all the bullet holes in various places, and then put extra armor in the areas that attracted the most fire.
  11. 11. Business Intelligence vs Machine Learning (2) • Business Intelligence secara umum bertujuan untuk 'melihat kebelakang' tentang apa yang terjadi. Pesawat tempur yang kembali dari perang, di-analisa mendalam dan didapatkan kesimpulan bahwa musuh lebih sering melakukan tembakan ke arah sayap dan bagian tengah pesawat. Untuk itu kita perlu memperkuat lapisan pesawat pada bagian itu. • Jelas kita ketahui bahwa: pesawat yang tertembak di bagian mesin dan/atau bagian kabin, tidak pulang ke pangkalan dan jatuh di medan tempur. Dan data itu tidak mereka pertimbangkan. • Machine Learning membutuhkan data lebih dari itu. Bagaimana pola terbang pesawat yang berhasil kembali ke pangkalan? Kapan serangan terjadi, berapa banyak pasukan musuh pada saat terjadi serangan, pesawat terbang ke arah mana dan dalam posisi bagaimana, profil musuh, spek engine/pesawat, dsb, sehingga bisa didapatkan/dipelajari pola yang lebih tepat. Yang dibutuhkan mungkin bukan penguatan pada bagian2 pesawat, tetapi waktu/pola/cara serangannya yang perlu disesuaikan untuk menyelamatkan pesawat2 berikutnya agar tidak jatuh di pertempuran berikutnya.
  12. 12. Contoh Pemakaian Big Data secara umum • Product Recomendation • Realtime Prediction/Estimation • Sentiment Analysis (of product/marketing campaign) • Personalized Search Result/Services • Chat bot/ Virtual Assistance • Location pin-point • Pattern Recognition (customer behaviour, type of profitable customer)
  13. 13. Apa itu Hadoop? • Hadoop adalah MR • Hadoop adalah Distributed File System (menggunakan MR) • Hadoop adalah ekosistem • Tools utk query data • Tools untuk menghubung antara SQL dan MR/HDFS • Tools untuk proses data secara stream • dsb • Hadoop dalam distro/appliance (Cloudera, Hortonworks, MapR, Pivotal)
  14. 14. Map -Reduce
  15. 15. Map -Reduce Re duce Raw Data Mapped & Shuffled Data Reducing Process Output
  16. 16. Traditional vs Map-Reduce
  17. 17. Scale Up vs Scale Out Problem • Paradigma proses data konvensional adalah centralized/ terkonsentrasi pada satu server atau cluster. Hal ini menyebabkan apabila kita ingin melakukan peningkatan kapasitas, harus dilakukan secara horizontal scaling atau sering disebut dengan scale-up
  18. 18. Scale Up vs Scale Out Problem (2) • Ketika konteks pembahasannya adalah data yang bertumbuh menjadi sangat besar dan datang terus menerus secara cepat dan sulit diprediksi, maka mekanisme scale-up menjadi terasa sangat berat dan membutuhkan biaya besar diawal. Karena scale-up harus melalui proses perencanaan yang sangat matang utk prediksi jangka menengah-panjang, dan biaya timbul di awal. Sulit juga untuk dilakukan scale-up berkali kali, karena akan menibulkan downtime yang akan merugikan/menghambat proses di perusahaan/organisasi. • Teknologi cloud computing dan distributed computing yang semakin canggih saat ini, memungkinkan kita untuk untuk melakukan peningkatan secara horisontal atau scale out. Pendekatan scale out mengadosi prinsip: berkembang secara bertahap sesuai kebutuhan tanpa harus mengubah/mematikan sistem utama. Prinsip itu juga yang dipakai pada Hadoop
  19. 19. Scale Up vs Scale Out Problem (3) • Hadoop mengadopsi prinsip Scale Out. Dimana data node bisa ditambahkan sewaktu-aktu saat dibutuhkan dan langsung join/berkoordinasi dengan data node yang lain melalui name node. • Ini yang menyebabkan Hadoop sangat populer dan ideal untuk dipakai sebagai proses/penyimpanan Big Data.
  20. 20. Map-Reduce
  21. 21. Map-Reduce (latihan) • Install Hadoop (dibutuhkan install dan konfigurasi JAVA, download dan setting aplikasi Apache Hadoop). Untuk proses instalasi Hadoop bisa dilihat dari berbagai sumber, salah satunya: https://www.tutorialspoint.com/hadoop/hadoop_enviornment_setup.htm • Pastikan Hadoop sudah jalan. Bisa coba dengan ketik hadoop version • Untuk menjalankan contoh di hadoop (pada saat download dan extract, ada beberapa contoh bawaan). Contohnya: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+' • Lebih jauh bisa dibaca pada beberapa sumber seperti https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
  22. 22. Map-Reduce (latihan wordcount dengan Python) • Salah satu tutorial yang cukup baik untuk memahami cara kerja Hadoop MR/HDFS bisa dibaca pada link berikut ini: https://www.michael- noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/ • Contoh app mapper: Pada contoh ini, tugas mapper hanya menerima input berupa text, lalu memisahkan kan berdasarkan kata, lalu menampilkan dalam bentuk 2 kolom: <kata> 1
  23. 23. Map-Reduce (latihan wordcount dengan Python) • Contoh app reducer: Pada contoh ini, tugas reducer adalah memproses data yang masuk (2 kolom: <kata> 1). Lalu selama kata berikutnya masih sama dengan sebelumnya, maka jumlahkan angkanya (1+1+1+1 dst), sampai semua baris data terproses. Hasilnya seperti ini:
  24. 24. Map-Reduce (latihan wordcount dengan Python) mapper. py Hadoop Servers mapper. py mapper. py shuffle reducer. py reducer. py result HDFS
  25. 25. Map-Reduce (latihan wordcount dengan Python)
  26. 26. Hadoop Ecosystem
  27. 27. HIVE • Apache HIVE adalah salah satu aplikasi dalam ekosistem Hadoop • HIVE membutuhkan Hadoop (HDFS dan Hadoop MapReduce) dan RDMS (untuk menyimpan meta data/metastore) untuk mengolah dan memproses data • HIVE menggunakan syntax mirip seperti SQL pada umumnya • Salah satu perbedaan utama HIVE dengan RDBMS/SQL DB adalah HIVE menggunakan “Schema on READ only”. Sehingga HIVE tidak ditujukan untuk update/insert data seperti pada SQL. • Perintah-perintah HIVE dapat di-eksekusi menggunakan command line maupun menggunakan Web UI • HIVE terdiri dari 3 komponen utama yaitu: client, service dan storage (lihat gambar berikutnya)
  28. 28. HIVE
  29. 29. HIVE • Client Berfungsi sebagai antarmuka ke manusia/sistem. Perintah-perintah HIVE diketik dan dimulai dari sini. • Service Berfungsi sebagai proses dibelakang layar, yang akan mengeksekusi perintah-perintah yang masuk dari client, lalu menarik/meyimpan/ menghasilkan data output dari storage • Storage & Computing Tempat penyimpanan data dan proses terdistribusi. Data yang ada pada HDFS dipetakan menggunakan metadata yang tersimpan pada service. Contoh: Kita memiliki data transaksi harian dari banyak cabang perusahaan yang kemudian di export menjadi sebuah file besar dengan nama transaction-2020.csv. File ini lalu di upload ke HDFS agar terdistribusi dan dapat diproses secara paralel. Data ini dalam format comma separated value (structured) dengan kolom ID, trans_data, trans_amount, customer_id, dsb. Menggunakan HIVE, struktur data ini disimpan sebagai meta data, sehingga bisa dilakukan query seolah-olah file ini adalah tabel RDBMS biasa. Misalnya: “SELECT SUM(trans_amount) FROM transaction”
  30. 30. HIVE
  31. 31. HIVE • Urutan eksekusi perintah pada HIVE digambarkan pada gambar di atas. • Perintah yang masuk dari client, dikirimkan ke service, lalu perintah tersebut diterjemahkan menjadi script khusus, dan dilakukan kompilasi, lalu verifikasi kolom/data dengan meta data yang tersimpan di metastore, lalu akan dieksekusi oleh service. • Dalam eksekusinya, HIVE akan membaca file pada HDFS dan memproses pengolahan data-nya menggunakan MapReduce. • Ini berbeda dengan contoh MapReduce yang kita lakukan pada latihan sebelumnya. Dimana di latihan sebelumnya (tanpa HIVE), kita harus membuat dulu aplikasi mapper dan reducer, menggunakan bahasa pemrograman yang didukung, seperti JAVA atau Python.
  32. 32. HIVE vs Map Reduce (manual)
  33. 33. Instalasi HIVE • HIVE membutuhkan requirement yang hampir sama dengan Hadoop (membutuhkan JAVA dan konfigurasinya) • Kemudian kita perlu meng-install database server seperti: Apache Derby, MySQL, PostgreSQL, dsb. Database ini dibutuhkan HIVE untuk tempat menyimpan meta data (metastores) • Kemudian download dan extract HIVE • Lalu lakukan konfigurasi-konfigurasi yang diperlukan untuk menghubung HIVE dengan Hadoop dan database metastore • Jalankan service HIVE • Jalankan client HIVE, baik menggunakan command line (CLI) maupun dengan menggunakan tools berbasis web agar perintah HIVE bisa dijalankan lewat browser (dibutuhkan instalasi aplikasi tambahan, seperti Apache Ambari) • Salah satu sumber untuk melihat contoh langkah-langkah instalasi HIVE bisa dilihat pada link berikut ini https://www.guru99.com/installation-configuration-hive-mysql.html
  34. 34. HIVE CLI • Jalankan aplikasi HIVE CLI dengan cara mengetik: 'hive' atau './bin/hive' • Lalu ketikkan perintah-perintah HIVE disitu Contoh:
  35. 35. HIVE Web Menggunakan Ambari
  36. 36. HIVE SQL (HIVEQL) • Berikut ini beberapa contoh membuat tabel baru dan mengolah data menggunakan perintah HIVE SQL
  37. 37. HIVE SQL (HIVEQL) • Pada contoh diatas, dibuat sebuah tabel baru dengan nama employess_guru Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) Row format delimited Fields terminated by ','; • Lalu untuk mengisi datanya ke tabel baru tersebut, diambil file CSV (bisa dari local file maupun file yang sudah tersimpan di HDFS). Contoh data local: load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru;
  38. 38. HIVE SQL (HIVEQL) • HIVE juga bisa membaca file yang SEMISTRUCTURED misalnya dalam format XML. Contoh, buat tabel baru 'xmlsample': • File XML itu kemudian kita parsing (potong-potong) dan tampilkan, misalnya seperti ini:
  39. 39. Quiz HIVE 1. Mengapa dibutuhkan HIVE, bukan RDBMS biasa? 2. Apa kelebihan pengolahan data dengan HIVE dibandingkan RDBMS biasa? 3. Kalau sudah ada Hadoop (HDFS/MR) mengapa masih membutuhkan HIVE? 4. Dari sekian banyak contoh data yang bisa diproses menggunakan Hadoop, data seperti apa yang lebih cocok diolah menggunakan HIVE?
  40. 40. Petunjuk Jawaban 1. Secara umum memang terlihat pengolahan data di HIVE mirip/sama dengan RDBMS, sama-sama menggunakan perintah SQL. Namun HIVE memproses data secara terdistribusi dan eksekusinya bisa dilakukan secara paralel, sehingga bisa mengolah data yang sangat besar. Hal ini tidak bisa dilakukan di RDBMS biasa. 2. Sudah dijelaskan sekilas diatas. 3. HIVE adalah abstraksi dari dari Hadoop. Jika menggunakan Hadoop saja, eksekusi perintah harus menggunakan aplikasi yang kita bikin dengan bahasa pemrograman yang didukung seperti JAVA, Python, nodejs, dsb. 4. Lebih cocok untuk jenis data STRUCTURED maupun SEMI-STRUCTURED. Walaupun secara umum bisa juga dipakai untuk jenis data UNSTRUCTURED, tetapi dibutuhkan konversi agar dapat dikenali sebagai kolom dan baris
  41. 41. Batch vs Stream Batch: • Data yang ada akan disimpan terlebih dahulu, • untuk dilakukan analisa di kemudian waktu yang lain. • Ukuran file-nya bisa diketahui/prediksi sebelumnya. • Stream: • Aplikasi stream menunggu data yang masuk, • untuk langsung di proses pada saat itu juga, tanpa disimpan disimpan. Hasilnya bisa dilakukan penyimpanan ke HDFS, atau ke Database, atau tidak disimpan (hanya di visualisasikan) • Ukuran datanya tidak bisa diketahui, dan tidak berujung.
  42. 42. Batch vs Stream
  43. 43. Merancang Data Lake • Sejauh ini kita sudah mengenal Hadoop, ekosistemnya dan kelebihan- kelebihan utamanya. • Dimana letak Hadoop dalam pipeline? • Contoh:
  44. 44. Merancang Data Lake
  45. 45. Merancang Data Lake
  46. 46. Merancang Data Lake https://databricks.com/blog/2017/04/26/processing-data-in-apache-kafka-with-structured-streaming-in-apache-spark-2-2.html
  47. 47. Merancang Data Lake Data Warehouse: • Tipe datanya structured • Row & Collumns • Tujuan untuk Business Intelligence Data Lake: • All (structured, unstructured, semistructured) • Files (CSV, XML, JSON, TXT, MP3, jpg, etc) • Big Data Analytics (Machine Learning/Deep Learning)
  48. 48. Merancang Data Lake 1. Identifikasi jenis data yang mau kita simpan dan sumber datanya. 2. Bagaimana kita mau memproses datanya? 1. Data yang akan diproses itu akan dilakukan secara berkala (bulanan, semester, tahunan, 3 bulanan, dsb) 2. Atau, mau diproses secara langsung saat itu juga (near realtime) 3. Jika dilakukan secara berkala, maka Hadoop bisa ditempatkan di depan (data ingestion), 4. sebaliknya kalau butuh pemrosesan data secara aktif terus menerus, maka Hadoop lebih tepat ditempatkan di belakang (lebih sebagai penyimpanan akhir)
  49. 49. Contoh Data Warehousing Biasanya proses ini dilakukan secara berkala atau disebut dengan Batch Processing
  50. 50. Cotoh Batch Proc. Pada Hadoop Hadoop Log File, Excel, Word, CSV, etc Analisa menggunakan HIVE, MR, atau lainnya
  51. 51. Cotoh Stream Proc. Pada Hadoop Hadoop Log File, Excel, Word, CSV, etc Spark (stream processing) Analisa lanjutan Stream app Python
  52. 52. Analytics Tools & Visualization Selain ekosistem utama dari Hadoop, ada beberapa tools yang bisa dipakai untuk analisis dan visualisasi big data, antara lain: • Kibana (free open source) • Knime (free open source) • Tableau (ada versi trial) • Pentaho • Qlik (ada versi trial) • Grafana (Free open source) • dsb
  53. 53. Kibana
  54. 54. HDFS to Kibana Diagram
  55. 55. Knime
  56. 56. Grafana

×