Dalam dunia data engineering yang dynamic, ada konsep fundamental yang sering terlupakan, tetapi justru menjadi tulang punggung dari seluruh proses pengolahan data, Generation atau generasi sumber data.
Generation dalam konteks ini bukan merujuk pada generasi manusia, melainkan pada asal-usul, karakteristik, dan siklus hidup data yang masuk ke dalam sistem.
Memahami generation sumber data adalah langkah pertama yang kritis untuk membangun pipeline data yang robust, scalable, dan dapat dipercaya.
Apa Itu Generation?
Generation merujuk pada tahap atau titik asal di mana data pertama kali diciptakan, dikumpulkan, atau dihasilkan dalam siklus hidupnya. Ini adalah “sumber mata air” dari aliran data yang akan diolah, dianalisis, dan ditransformasi menjadi insight.
Seorang Data Engineer harus sepenuhnya memahami generation sumber data karena hal ini menentukan:
- Struktur dan Format Data, Apakah data lahir sebagai log JSON dari aplikasi, transaksi terstruktur dari database, file CSV dari sensor IoT, atau stream event real-time?
- Volume dan Velocity, Seberapa besar dan seberapa cepat data dihasilkan? (Batch harian vs. streaming terus-menerus).
- Kualitas dan Kebersihan Data, Data dari generasi awal sering kali mentah, belum terstruktur dengan baik, dan mungkin mengandung noise atau anomali.
- Konteks Bisnis, Data lahir dari suatu aksi atau proses bisnis tertentu (misal: klik user, pembayaran, pembacaan sensor). Memahami konteks ini vital untuk interpretasi yang benar.
Klasifikasi Generation Data
Data Engineer umumnya Mengkategorikan generation data menjadi beberapa tipe utama:
1. Sumber Data Generasi Pertama (Langsung/Direct)
Data yang dihasilkan langsung dari interaksi dengan sistem atau dunia nyata.
Contoh:
- Application Logs: Setiap klik, login, atau error di aplikasi web/mobile.
- Database Transaction Logs: Catatan setiap INSERT, UPDATE, DELETE di database OLTP (seperti MySQL, PostgreSQL).
- IoT Sensors: Data suhu, kelembaban, lokasi dari perangkat fisik.
- Clickstream Data: Perilaku navigasi pengguna di website.
- Karakteristik: Sangat mentah, bervolume tinggi, sering kali semi-terstruktur atau tidak terstruktur, membutuhkan pemrosesan awal (parsing, filtering).
2. Sumber Data Generasi Kedua (Turunan/Derived)
Data yang sudah mengalami proses transformasi, agregasi, atau pengayaan dari sumber generasi pertama.
Contoh:
- Data Warehouse Tables: Tabel fakta dan dimensi yang telah melalui proses ETL/ELT dari berbagai sumber.
- Aggregated Batch Reports: Laporan harian/mingguan yang sudah diringkas.
- Feature Stores untuk ML: Fitur-fitur data yang sudah dibersihkan dan untuk model machine learning.
- Karakteristik: Lebih terstruktur, lebih bersih, sudah memiliki skema yang jelas, dan digunakan untuk analisis atau konsumsi langsung.
3. Sumber Data Generasi Ketiga (Sumber Eksternal)
Data yang dihasilkan di luar organisasi, diperoleh melalui pembelian, partnership, atau API publik.
Contoh:
- Data Pasar dari Third-Party: Data demografis, tren sosial media, data cuaca.
- Public APIs: Data dari pemerintah, platform sosial media (Twitter, Facebook Graph API), atau layanan finansial.
- Karakteristik: Skema dan kualitas bervariasi, membutuhkan proses ingesti dan harmonisasi dengan data internal, sering kali melibatkan pertimbangan legal dan compliance.
4. Berdasarkan Mode Generasi
- Batch Generation: Data dihasilkan dan dikumpulkan dalam interval tertentu (setiap jam, hari, minggu). Contoh: Laporan penjualan harian.
- Stream Generation: Data dihasilkan secara terus-menerus dalam aliran (stream) event. Contoh: Log aktivitas user real-time, data saham.
- On-Demand Generation: Data dihasilkan hanya ketika ada permintaan spesifik. Contoh: Hasil query yang kompleks, data untuk dashboard interaktif.
Mengapa Pemahaman Generation Sumber Data Sangat Penting bagi Data Engineer?
1. Desain Pipeline yang Tepat
Memilih tools dan arsitektur (Lambda vs. Kappa, tools ETL vs. ELT) sangat bergantung pada karakteristik generation sumber data. Streaming data membutuhkan Kafka atau Apache Flink, sedangkan data batch besar mungkin cocok dengan Apache Spark.
2. Data Lineage & Governance
Melacak asal-usul data (generation) hingga ke dashboard akhir adalah inti dari data lineage. Ini penting untuk debugging, audit, dan memastikan compliance (seperti GDPR, yang mengharuskan pengetahuan dari mana data berasal).
3. Manajemen Kualitas Data (Data Quality)
Menetapkan aturan kualitas data (validasi, cleansing) harus dimulai dari titik generation. Jika data salah sejak dari sumber, seluruh pipeline akan menghasilkan output yang salah (“Garbage In, Garbage Out”).
4. Efisiensi Biaya dan Performa
Memahami volume dan pola generasi data membantu dalam merencanakan kapasitas penyimpanan (storage) dan komputasi, sehingga mengoptimalkan biaya cloud.
5. Kolaborasi dengan Tim Lain
Data Engineer harus dapat “berbicara bahasa” generation data dengan Data Scientist (yang butuh data mentah untuk eksplorasi), Analis (yang butuh data terstruktur), dan Product Manager (yang memahami proses bisnis penghasil data).
Contoh Penerapan dalam Alur Kerja
Sebuah perusahaan e-commerce memiliki:
- Generasi 1 (Stream): Log klik user dari aplikasi (JSON) yang dikirim ke Apache Kafka.
- Generasi 1 (Batch): Data transaksi dari database PostgreSQL yang diekstrak setiap tengah malam.
- Generasi 2: Data dari Kafka dan PostgreSQL diproses (dijoin, di-agregasi) di Apache Spark dan dimuat ke Data Warehouse (BigQuery/Redshift) menjadi tabel fakt_penjualan_harian.
- Generasi 3: Data cuaca dari API eksternal di-enrich ke dalam tabel fakta untuk analisis pengaruh cuaca terhadap penjualan.
- Konsumsi: Analis membuat dashboard dari tabel fakt_penjualan_harian (Generasi 2) untuk dilaporkan ke manajemen.

