Pengenalan Konsep Data Processing Pipelines

Pipelines adalah bagian dasar dari setiap data processing, dibuat oleh data engineer untuk “memindahkan” data dari satu point ke point yang lain.

Secara konsep abstrak, terdapat empat stages data pipelines:

  • Ingestion
  • Storage
  • Processing
  • Visualization

Ingestion

Adalah tahap memindahkan data kedalam data processing system. Data pada tahap ini sangat variatif, bisa dari berbagai sumber dan berbagai format.

Tujuan akhir dari ingestion dapat berupa data warehouse atau data lake.

Terdapat dua cara data ingestion yaitu batch atau streaming.

Sebagai gambaran, berikut contoh proses ingestion:

  • Archive data dari relational database, di-ingest ke analytics system, misalnya BigQuery.
  • Agregasi log dari berbagai system untuk analysis.
  • Streaming real-time metrics dari IoT, contoh alat kesehatan, turbin angin atau kendaraan.

Tahap ingestion memiliki tantangan teknikal, jika Anda berhadapan dengan big data, data ini sangatlah besar. Anda perlu mempertimbangkan:

  • Network design, apakah menggunakan http atau ftp atau lainnya.
  • Storage dan processor berdasarkan tipe data yang di ingest. Jika salah memilih, bisa saja solusi menjadi terlalu mahal, atau terlalu lambat.
  • Pemilihan batch atau streaming juga perlu dipertimbangkan.

Sementara untuk tantangan non teknikal, data yang Anda simpan harus:

  • Memiliki nilai dan bermanfaat untuk disimpan.
  • Masalah sekuritas, memindahkan data dapat terjadi celah keamanan, pastikan data aman.

Storage

Setelah desain tahap ingestion, tahap selanjutnya adalah storage, atau menyimpan data. Kita akan bahas pada modul terpisah lebih mendalam.

Processing

Adalah tahap dimana bagaimana kita memproses data yang sudah disimpan di storage.

Masih ingat konsep ETL yang dibahas pada modul sebelumnya? ETL umumnya digunakan dalam tahap ingestion, dimana data diambil dari source, kemudian dimanipulasi agar sesuai dengan parameter pada sistem tujuan.

Dengan berkembangnya cloud system, ETL sering diganti menjadi ELT (extract, load and transform). Dimana data dapat di load ke data lake, dan proses transform dapat dilakukan belakangan.

Pada penerapannya, Anda mungkin menggunakan kedua konsep diatas.

Terdapat transformasi umum yang dilakukan:

  • Formating, untuk menyamakan dengan system storage tujuan.
  • Labeling, misalnya penggunaan meta data.
  • Filtering, menyaring data yang tidak digunakan atau data yang rusak.
  • Validating, memastikan data memenuhi kriteria tertentu.

Contoh, Smart lamp, memiliki format data:

Lamp ID: 44RgK3rn
Illumination: 0.8
Bulb Status: 0.914
Local Wifi: SP01

Pada tahap formating, misalnya system tujuan digunakan No SQL:

{ "id" : "lamp-44RgK3rn-20222704001",
"bulb-lumen" : 0.8,
"bulb-stat" : 0.914,
"wifi-ssid" : "SP01"
}

Pada tahap labeling, misalnya ditambahkan label dari sumber data yang lain, yaitu customer ID.

{ "id" : "lamp-44RgK3rn-20222704001",
"bulb-lumen" : 0.8,
"bulb-stat" : 0.914,
"wifi-ssid" : "SP01",
"customer-id" : "Joko-7721"
}

Contoh melakukan filtering, misalnya sistem tidak membutuhkan informasi wifi-ssid. Dan menyimpan data wifi-ssid data mungkin dapat menimbulkan masalah dikemudian.

{ "id" : "lamp-44RgK3rn-20222704001",
"bulb-lumen" : 0.8,
"bulb-stat" : 0.914,
"customer-id" : "Joko-7721"
}

Terakhir Anda dapat melakukan validasi untuk memenuhi kriteria tertentu.

Visualization

Setelah data di ingest, disimpan dan diproses, tahap akhir adalah melakukan visualisasi.

Dalam Google Cloud, data divisualisasikan dalam tool dashboard untuk menampilkan status data. Contohnya adalah Google Data Studio.

Pada gambar diatas, menggunakan Google Data Studio untuk visualisasi data adwords. Data studio dapat membuat interaktif report yang dapat diakses oleh business analyst untuk mendapatkan wawasan dari data.

Visualisasi hanyalah salah satu tahap akhir dari suatu pipeline. Umumnya data digunakan untuk membantu proses pengambilan keputusan pada sistem lainnya. Misalnya untuk e-commerce recommendation system, atau data digunakan untuk machine learning.

Sampai disini kita sudah memperlajari konsep tingkat atas. Kita akan bahas lebih mendalam pada modul berikutnya.

Sharing is caring: