Data Engineer Terpecah Antara Alur Kerja SQL Tradisional dan Praktik Pengembangan Perangkat Lunak Modern

Tim Komunitas BigGo
Data Engineer Terpecah Antara Alur Kerja SQL Tradisional dan Praktik Pengembangan Perangkat Lunak Modern

Bidang data engineering sedang mengalami perpecahan signifikan yang memicu diskusi sengit di antara para profesional. Sementara sebagian mengadvokasi konvergensi dengan praktik software engineering tradisional, yang lain mempertahankan pendekatan saat ini yang berbasis alur kerja SQL dan peralatan khusus.

Perpecahan Besar dalam Peran Data Engineering

Perpecahan yang jelas telah muncul antara dua kubu profesional data. Di satu sisi adalah para engineer dengan latar belakang ilmu komputer yang menekankan prinsip-prinsip software engineering seperti version control, continuous integration, dan kerangka kerja testing yang tepat. Di sisi lain adalah para analis yang beralih menjadi data engineer yang terutama bekerja dengan SQL, konfigurasi YAML, dan antarmuka point-and-click melalui tools seperti dbt.

Perpecahan ini telah menciptakan ketegangan di industri, dengan beberapa profesional merasa keterampilan mereka tidak dihargai. Para engineer yang dapat menyiapkan pipeline CI/CD dan men-deploy sistem kompleks mendapati diri mereka dikelompokkan dengan mereka yang hanya mengetahui operasi SQL dasar, yang menyebabkan frustrasi terkait kompensasi dan ekspektasi peran.

Klasifikasi Peran Profesional:

  • Data Engineer Tradisional: Profesional berpendidikan CS yang menekankan praktik rekayasa perangkat lunak, CI/CD, dan manajemen infrastruktur
  • Analis yang Beralih Menjadi Data Engineer: Profesional yang utamanya menggunakan SQL, YAML, dan alat point-and-click seperti dbt
  • Tool Jockeys: Profesional data yang fokus pada keahlian platform tertentu tanpa keterampilan rekayasa yang lebih luas
  • Platform Engineer: Engineer yang mengelola infrastruktur data, pengindeksan, dan optimisasi pemrosesan skala besar

Masalah Notebook dan Kesiapan Produksi

Kekhawatiran utama yang diangkat oleh komunitas berpusat pada penggunaan notebook Jupyter yang meluas di lingkungan produksi. Banyak organisasi memperlakukan alur kerja berbasis notebook sebagai sistem yang siap produksi, meskipun kurang memiliki version control yang tepat, automated testing, dan proses deployment.

Pendekatan ini telah menciptakan apa yang oleh beberapa orang digambarkan sebagai neraka notebook, di mana pipeline data kritis ada sebagai notebook yang tersebar dengan manajemen dependensi yang buruk. Masalah ini tampak sangat akut di platform seperti Databricks, di mana integrasi git sering berarti hanya melakukan checkout kode dan commit langsung ke main branch tanpa proses code review yang tepat.

Ada banyak hal yang dilakukan di notebook dan menyebutnya siap produksi. Itu sangat gila.

Platform Teknologi Utama yang Disebutkan:

  • ClickHouse: Database analitik berperforma tinggi yang menawarkan waktu query di bawah satu detik
  • Databricks: Platform analitik berbasis cloud dengan alur kerja yang berpusat pada notebook
  • dbt: Tool transformasi data yang membawa kontrol versi ke alur kerja SQL
  • Airflow / Prefect: Platform orkestrasi alur kerja untuk pipeline data
  • Snowflake: Data warehouse cloud dengan kemampuan stored procedure Python
  • AWS Glue: Layanan Apache Spark terkelola untuk pemrosesan data
  • DuckDB: Database analitik in-process yang semakin populer untuk beban kerja yang lebih cepat
Output terminal yang menggambarkan pengaturan lingkungan pengembangan untuk infrastruktur data, menekankan tantangan kesiapan produksi yang disebutkan
Output terminal yang menggambarkan pengaturan lingkungan pengembangan untuk infrastruktur data, menekankan tantangan kesiapan produksi yang disebutkan

Fenomena Tool Jockey

Isu signifikan lain yang disorot oleh komunitas adalah prevalensi tool jockey di tim data. Para profesional ini menjadi ahli dalam platform tertentu tetapi kurang memiliki keterampilan engineering fundamental seperti automated testing, version control, dan infrastructure as code.

Situasi ini sering berasal dari kendala organisasi di mana tim harus menggunakan tools standar dan fokus pada penyelesaian tugas dalam lingkungan tersebut, daripada membangun sistem yang robust dan dapat dipelihara. Hasilnya adalah infrastruktur data yang rapuh yang sering rusak dan membutuhkan waktu berlebihan untuk dipelihara.

Solusi yang Muncul dan Pendekatan Modern

Meskipun menghadapi tantangan ini, beberapa tim berhasil menjembatani kesenjangan antara pekerjaan data tradisional dan praktik software engineering. Pendekatan modern meliputi penggunaan bahasa pemrograman nyata dengan abstraksi yang tepat, implementasi strategi testing komprehensif dengan pemeriksaan kualitas data, dan adopsi platform orkestrasi seperti Airflow untuk alur kerja produksi.

Tools seperti dbt telah membantu dengan membawa version control ke transformasi SQL dan memungkinkan rehidrasi berkelanjutan model data. Namun, komunitas tetap terpecah mengenai apakah pendekatan deklaratif menggunakan YAML sudah cukup atau apakah bahasa pemrograman yang lebih tradisional diperlukan untuk sistem data yang kompleks.

Diskusi ini mengungkapkan bahwa meskipun konvergensi antara data engineering dan software engineering mungkin terjadi di beberapa organisasi, bidang ini masih menghadapi tantangan signifikan dalam menstandarkan praktik terbaik dan ekspektasi profesional di seluruh industri.

Referensi: Data engineering and software engineering are converging

Antarmuka editor kode yang menampilkan implementasi TypeScript untuk pipeline data, mencerminkan praktik engineering modern dalam data engineering
Antarmuka editor kode yang menampilkan implementasi TypeScript untuk pipeline data, mencerminkan praktik engineering modern dalam data engineering