Pertanyaan Wawancara Data Engineer, per Tahap

Oleh Aaron Cao · Diperbarui

Pertanyaan Wawancara Data Engineer, per Tahap
Rangkaian wawancara data engineer mencakup SQL tingkat lanjut, pemodelan data, desain pipeline dan ETL, pemrosesan terdistribusi, dan tahap perilaku. Tahap desain pipeline menentukan sebagian besar hasil: pertanyaannya adalah bagaimana Anda menangani data yang terlambat, pengulangan proses, dan kegagalan, bukan alat mana yang Anda sukai.

Rangkaian wawancara data engineer mencakup SQL tingkat lanjut, pemodelan data, desain pipeline dan ETL, pemrosesan terdistribusi, dan tahap perilaku. Tahap desain pipeline menentukan sebagian besar hasil: pertanyaannya adalah bagaimana Anda menangani data yang terlambat, pengulangan proses, dan kegagalan, bukan alat mana yang Anda sukai.

Tahap apa saja yang ada dalam rangkaian wawancara data engineer?

Anda mungkin bersiap dengan cara yang sama seperti untuk rangkaian wawancara software engineering dan bertanya-tanya apa bedanya. Bagian ini memetakan tahap-tahap yang biasa dipakai ulang dalam wawancara ini, sehingga Anda bisa memakai waktu untuk dua tahap yang benar-benar membedakan kandidat. Filter teknis jarang menjadi tempat tawaran kerja hilang.

  • SQL. Window function, deduplikasi, dan performa query, biasanya langsung di layar.
  • Pemodelan data. Merancang tabel untuk bisnis yang dideskripsikan, dan mempertahankan grain yang Anda pilih.
  • Desain pipeline dan ETL. Tahap system design terbuka yang berfokus pada pergerakan data.
  • Pemrosesan terdistribusi. Bagaimana sebuah framework benar-benar menjalankan job Anda, dan mengapa itu lambat.
  • Coding. Python atau Scala, sering kali lebih ringan daripada tahap software engineering.
  • Perilaku. Insiden on call, dashboard yang rusak, dan stakeholder yang menginginkan angkanya kemarin.

Jabatan-jabatan ini banyak tumpang tindih dengan analytics engineering dan peran platform, sehingga campurannya bisa berubah. Bank pertanyaan peran terkait ada di hub pertanyaan wawancara berdasarkan peran.

Pertanyaan SQL dan pemodelan data apa saja yang muncul?

SQL

  • Deduplikasi sebuah tabel dengan hanya menyisakan baris terbaru untuk setiap key.
  • Tulis query yang mengembalikan jumlah sesi tiap pengguna menggunakan jeda tidak aktif 30 menit.
  • Hitung running total dan perubahan month over month dalam satu query.
  • Temukan baris yang ada di snapshot kemarin tetapi hilang dari snapshot hari ini.
  • Apa fungsi QUALIFY, dan apa yang akan Anda tulis tanpa itu?
  • Query ini memindai satu miliar baris dan memakan waktu dua puluh menit. Bagaimana Anda mendiagnosisnya?
  • Jelaskan perbedaan antara partitioning dan clustering, dan kapan masing-masing membantu.

Pemodelan data

  • Rancang tabel untuk riwayat pesanan sebuah marketplace online. Apa grain dari fact table Anda?
  • Jelaskan star schema, dan kapan Anda akan sengaja mendenormalisasi lebih lanjut.
  • Apa itu slowly changing dimension, dan bagaimana Anda mengimplementasikan tipe dua?
  • Seorang stakeholder ingin laporan historis mencerminkan wilayah pelanggan saat ini. Apa yang akan rusak?
  • Bagaimana Anda akan memodelkan event stream yang datang tidak berurutan?
  • Kapan Anda akan memilih wide table dibanding model yang dinormalisasi?

Tahap pemodelan menghargai kandidat yang berkomitmen pada satu grain dan mempertahankannya. Kandidat yang mendeskripsikan tiga desain yang mungkin tanpa memilih satu mendapat skor lebih rendah daripada kandidat yang memilih desain yang masuk akal dan menyebut kelemahannya.

Pertanyaan pipeline dan pemrosesan terdistribusi apa saja yang muncul?

Desain pipeline dan ETL

  • Rancang pipeline yang memuat transaksi harian ke warehouse untuk pelaporan.
  • Sumber upstream mengirim ulang data kemarin. Apa yang terjadi pada job Anda?
  • Bagaimana Anda membuat pipeline idempotent, dan mengapa itu penting untuk rerun?
  • Bagaimana Anda akan melakukan backfill dua tahun riwayat tanpa mengganggu proses muat harian?
  • Data yang datang terlambat muncul tiga hari setelah partisi ditutup. Apa yang Anda lakukan?
  • Bagaimana Anda mendeteksi bahwa pipeline berhasil tetapi menghasilkan data yang salah?
  • Apa yang Anda pantau, dan apa yang akan membangunkan seseorang jam tiga pagi?

Pemrosesan terdistribusi dan streaming

  • Apa yang menyebabkan shuffle, dan mengapa itu mahal?
  • Job Anda lambat dan satu task memakan waktu jauh lebih lama daripada yang lain. Apa yang terjadi?
  • Jelaskan data skew dan dua cara menanganinya.
  • Kapan Anda akan memilih streaming dibanding scheduled batch job?
  • Apa sebenarnya yang dijamin oleh exactly once processing, dan di mana jaminan itu tidak berlaku?
  • Bagaimana watermark menangani event yang tidak berurutan dalam windowed aggregation?

Perhatikan betapa sedikit dari pertanyaan ini yang meminta Anda menyebut nama alat. Menyebut satu nama hanyalah awal dari jawaban, bukan jawabannya. Pertanyaan lanjutannya selalu mengapa, dan apa yang bisa rusak.

Bagaimana sebaiknya Anda berlatih untuk semua ini?

Membaca daftar ini membangun pengenalan. Tahap desain menguji hal lain: mempertahankan sebuah sistem di kepala Anda sementara seseorang menyela Anda dengan skenario kegagalan. Itu hanya didapat dari mengucapkan desain dengan suara keras.

  • Gambar dan narasikan sebuah pipeline dalam lima belas menit. Source, landing, transform, serve, plus bagaimana tiap tahap bisa gagal.
  • Serang desain Anda sendiri. Setelah tiap sesi latihan, tanyakan apa yang terjadi saat rerun, saat data terlambat, dan saat ada perubahan skema.
  • Siapkan angka untuk skala. Baris per hari, ukuran, anggaran latensi. Menyebutkan asumsi skala Anda lebih dulu akan dinilai.
  • Tulis SQL dengan tangan. Tahap langsung sering menggunakan editor polos tanpa autocomplete dan tanpa eksekusi.
  • Latih satu cerita insiden dengan baik. Apa yang rusak, bagaimana Anda menemukannya, apa yang Anda ubah agar itu tidak terulang.

Seorang data engineer dengan enam tahun pengalaman pada pipeline batch bersiap dengan meninjau ulang internal framework, lalu tersendat pada "sumber upstream mengirim ulang file kemarin" karena dia hanya pernah menanganinya secara manual, tidak pernah menjelaskannya. Pengetahuannya ada; jawaban lisannya tidak. Berlatih tahap desain dengan pertanyaan lanjutan adalah tujuan dibangunnya mode mock interview.

FAQ

Apa bedanya wawancara data engineer dengan wawancara software engineer?

Tahap coding biasanya lebih ringan dan tahap desain berfokus pada pergerakan data, bukan layanan. Pertanyaan berpusat pada kebenaran (correctness) di bawah rerun, data terlambat, dan perubahan skema, yang jarang muncul dalam tahap software design umum.

Apakah saya perlu Spark secara spesifik, atau konsepnya saja sudah cukup?

Konsep membawa sebagian besar tahap ini: shuffle, skew, partitioning, dan mengapa sebuah job lambat. Jika deskripsi pekerjaan menyebut sebuah framework tertentu, harapkan setidaknya satu pertanyaan tentang model eksekusinya, jadi pastikan Anda bisa menjelaskan apa yang terjadi saat job Anda berjalan.

Seberapa banyak pemodelan data yang diuji dalam wawancara ini?

Lebih banyak daripada yang diperkirakan sebagian besar kandidat. Star schema, grain fact table, dan slowly changing dimension muncul secara rutin, dan pewawancara mendorong Anda pada konsekuensi dari pilihan Anda, bukan meminta definisi buku teks.

Apa alasan paling umum kandidat gagal dalam rangkaian wawancara data engineer?

Merancang pipeline yang hanya berfungsi pada happy path. Pewawancara sengaja memasukkan rerun, pengiriman duplikat, dan data yang datang terlambat, dan desain yang tidak punya jawaban untuk itu semua biasanya menjadi mode kegagalan.

Bagaimana saya berlatih tahap desain sendirian?

Pilih sebuah bisnis yang dideskripsikan, rancang pipeline-nya dengan suara keras memakai timer, lalu introgasi desain Anda sendiri dengan skenario kegagalan. Seorang AI mock interviewer juga bisa menjalankan tahap ini dan menyela dengan pertanyaan lanjutan, yang lebih mendekati tekanan sesungguhnya.

Pertanyaan terkait

← Selengkapnya tentang Pertanyaan Wawancara Berdasarkan Peran & Topik