Bekerja Dengan Data

Sebagai data engineer, berikut beberapa hal yang perlu dipertimbangkan dalam bekerja dengan data.

Managing Data

  • Sources and sinks, darimana sumber data? Kemana data akan disimpan? Apakah data dapat digunakan apa adanya? Atau perlu melakukan persiapan agar data sesuai dengan format data sink.
  • Structure and unstructured, tipe data akan selalu terstruktur atau tidak terstruktur. Anda perlu mempertimbangkan bagaimana memproses dan menyimpan data tersebut (dengan menggunakan produk flowchart pada modul sebelumnya). Anda juga perlu mempertimbangkan data model.
  • Batched and streaming. Data engineer juga perlu mempertimbangkan data ingestion akan menggunakan sistem batch atau streaming. Bagaimana membuat data pipeline? Bagaimana dengan pertimbangan latency atau time-windowing?

Data Modeling

  • Structured data selalu memerlukan model yang konsisten.
  • Jika model sudah tersedia dalam sistem, data engineer harus mampu menangani proses ingest data.
  • Data mungkin memerlukan persiapan atau transformasi.

Terdapat 3 tahap dasar dalam data modeling.

  • Conceptual. Apa entitas dari data? Bagaimana dengan atribut dan relasinya? Contoh membuat database untuk toko suplemen, tersedia tabel customer dan product.
  • Logical. Modeling data untuk mendefinisikan struktur dari data. Atribut apa yang diperlukan, tipe data apa yang digunakan. Contoh: tabel customer akan memiliki id (int) dan name (string). Sementara produk akan berisi id(int) dan namasuplemen (string). Pada tahap ini juga kita melakukan normalisasi untuk mencegah duplikasi data.
  • Physical, disini kita mempertimbangkan bagaimana implementasi database. Menentukan Keys dan indexes apa yang dibutuhkan. Contoh untuk keperluan ini digunakan Relational Database. Dimana tabel customer dan product menggunakan id sebagai key.

Ketika memilih relational database kita perlu pertimbangkan:

  • Database memiliki relational schema design.
  • Melakukan normalisasi, contoh Anda tidak akan menyimpan data belanja customer di tabel customer.
  • Menggunakan Primary keys dan table relationship.
  • Akurasi dan integritas dari database.

Jika Anda memilih non relational database. Anda perlu dipertimbangkan opsi yang tepat dengan aplikasi yang dibuat, apakah key/value, flexible document store atau high volume columnar database.

Data Pipelines

Data engineer juga perlu mempertimbangkan data pipelines, bagaimana mereka memindahkan data dari satu point ke point lainnya. Contohnya:

Dari contoh diatas, sumber data adalah aplikasi dan cloud storage bucket. Sistem akan mentriger ingestion yang akan ditangani oleh Pub/Sub. Data perlu dilakukan transformasi yang akan ditangani oleh Dataflow. Kemudian data akan disimpan di BigQuery. Dan untuk analitik digunakan Data Studio.

Sampai disini kita sudah membahas konsep abstrak mengenai bekerja dengan data. Kita akan bahas lebih mendalam beberapa topik-topik penting diatas pada modul terpisah.

Sharing is caring: