Konsep Dasar Data Processing

Pengenalan Big Data

Karena data processing yang dilakukan akan berkaitan dengan Big Data, pertama kita akan bahas mengenai apa itu Big Data.

Jika orang membicarakan Big Data, maka ada dua kemungkinan: Dataset yang besar atau teknologi yang digunakan untuk menangani dataset yang besar. Pada modul ini kita akan bahas mengenai big data sebagai dataset yang besar.

Kita perlu memahami apa yang mendefinisikan suatau dataset adalah big data. Umumnya didefinsikan dengan 3V.

  • Volume: Ukuran yang harus ditangani data processing system.
  • Velocity: Kecepatan pemrosesan data (ingested, analyzed dan visualized).
  • Variety: Keragaman data sources, formats dan quality.

Jika kita gambarkan dalam sumbu 3 dimensi:

Jika data Anda dipetakan dalam grafik diatas memiliki ukuran yang besar, maka kemungkinan besar Anda memiliki big data.

Teminologi Big Data

Setelah kita memahami apa itu big data, berikutnya kita perlu pahami terminologi seputar big data yang sering ditemui ketika Anda bekerja sebagai data engineer.

Data Warehouses dan Data Lakes

Konsep abstrak bagaimana data disimpan.

Data warehouse memiliki data yang:

  • Terstruktur dan/atau sudah diproses. Data kemungkina sudah diorganisasikan, ditransform dan disimpan secara terstruktur. Seperti rack barang dalam gudang, dimana barang disusun secara tersetruktur.
  • Data siap digunakan, data dalam warehouses memiliki tujuan tertentu dan dalam format yang sudah siap digunakan. Contoh untuk keperluan Business Intelligence atau Reporting.
  • Rigid, Struktur tidak mudah diubah. Data mudah dipahami namun tidak uptodate.

Sementara Data Lakes:

  • Raw dan/atau tidak terstruktur, Data disimpan dalam bentuk mentah, belum diproses, belum ditransformasi dan diorganisasikan. Dapat dibayangkan, jika pada data warehouses, air dalam kemasan yang sudah siap dikonsumsi, sementara pada data lakes, adalah air mentah, belum bisa dikonsumsi.
  • Dapat dianalisa, walau belum bisa dikonsumsi, data lakes siap untuk dianalisa. Data uptodate, namun diperlukan tools yang advance untuk melakukan analisis.
  • Flexible, tidak ada stuktur data, menerima semua tipe data kapan saja.

OLTP vs OLAP

Ini juga konsep abstrak mengenai data processing system.

OLTP: Online Transactional Processing.

  • Umumnya memproses transaksi pendek yang banyak. Contoh Select, Insert.
  • Query harus cepat.
  • Memiliki integritas data yang tinggi.

Contohnya adalah database yang menyimpan data penjualan dalam SQL database.

OLAP: Online Analytical Processing

  • Umumnya memproses long-running queries dengan jumlah transaksi kecil.
  • Umumnya query berupa agregat data history. Sumber data dapat dari system OLTP.

Contohnya untuk membuat report trend penjualan.

Secara general, untuk membedakan OLTP dan OLAP adalah akan memodifikasi isi data, sementara OLAP akan melakukan query data.

Proses untuk menarik data OLTP menjadi OLAP disebut ETL (Extract, Transform dan Load).

SQL vs NoSQL

SQL Database, memiliki data yang terstruktur dalam bentuk tabel.

Contoh menyimpan data customer. Informasi yang disimpan misalnya:

idfirstnamelastnameaddresstotal_spendsatisfaction
1JokoSembungJl. Aspal No 1005000005

SQL Database adalah Relational Database, dimana antara tabel data memiliki relationship. Misalnya table customer akan memiliki relasi dengan table penjualan.

idcust_iditempriceqtytotal
2391Mouse Logila1000001100000

Contoh SQL database adalah MySQL dan PostgreSQL

Sementara No SQL database seperti namanya bukan SQL, menyimpan data dalam format non tabular seperti:

Key Value Stores

total_purchase = 3
checked_out = True

JSON Document Stores

{ "name" : "Joko",
  "umur" : 21
}

No SQL database yang umum digunakan adalah mongoDB dan Casandra.

Batch vs Streaming

Adalah cara ingest (menerima) data.

Batch: data dikumpulkan dalam time windowtertentu, kemudian dimasukan kedalam sistem dalam sekali jadi.
Umumnya untuk memproses data besar, contoh import data system terdahulu.

Streaming: adalah koleksi data secara continue, setiap data yang diterima langsung dimasukan kedalam sistem. Sulit untuk memproses streaming data, namun cocok untuk melakukan near-real-time analytics. Streaming juga bisa menerapkan time window dan micro-batches.

Sampai disini kita sudah membahas konsep-konsep dasar mengenai pemrosesan data. Pada modul selanjutnya kita akan membahas mengenai Data Pipeline.

Sharing is caring: