10 Skill Penting Yang Dapat Membantu Menjadi Data Engineer

Tri Juhari
4 min readJul 18, 2021

--

Tulisan ini dapat membantu sebagai gambaran umum tentang 10 skill utama yang dibutuhkan ketika ingin menjadi seorang Data Engineer. Banyak dari kita yang ingin menjadi seorang Data Engineer namun tidak tahu untuk memulainya, tidak tahu apa yang harus dipelajari. Oleh karena itu dalam tulisan ini kita akan mengulasnya.

1. LINUX

Sebagian besar aplikasi dibangun di atas sistem operasi linux sehingga sangat penting untuk memahami cara bekerja dengannya. Konsep kunci yang perlu diketahui adalah

  1. perintah dalam management file system seperti ls, cd, pwd, mkdir, rmdir
  2. perintah untuk mendapatkan metadata ( informasi terkait penjelasan tentang data data tersebut seperti kolom payment = data transaksi penjualan ) seperti head, tail, wc, grep, ls -lh
  3. Perintah dalam pemrosesan data seperti awk, sed
  4. Konsep Bash scripting , contohnya aliran kontrol ( control flow ), perulangan (looping ), parameter input ( passing input parameter )

2. SQL

SQL menjadi sangat penting ketika kita akan mengakses data terutama data yang disimpan di dalam basis data. SQL tidak hanya digunakan untuk keperluan dalam melakukan analisis data saja, SQL juga digunakan untuk keperluan dari aplikasi kita. misalnya kita ingin menampilkan top rangking user di aplikasi mobile atau web, tentu untuk bisa mendapatkan data tersebut yang ada di basis data perlu SQL untuk melakukan querynya yang kemudian bisa diakses menggunakan API yang telah dibuat sebelumnya. Konsep kunci yang biasanya perlu diketahui adalah

  • Basic CRUD ( Create,Read,Update dan Delete ) seperti select, where, join (seluruh jenis joins), group by, having, window functions
SQL joins
SQL window functions
  • Internal SQL, seperti indeks: berbagai jenis indexing pada SQL dan cara kerjanya.
  • Pemodelan data ( Data Modeling ) , Data modeling OLTP menggunakan normalisasi dan skema pemodelan data OLAP seperti skema star dan snowflake.
Skema Star
skema snowflake

3. Scripting

Pengetahuan tentang bahasa pemrograman seperti python misalnya sangat membantu untuk mengotomatisasi beberapa langkah yang diperlukan dalam pemrosesan data. Konsep kunci yang perlu diketahui adalah

  • Konsep dasar struktur data , seperti list , dictionary , map, filter, reduce
  • Control flow dan looping , seperti if , for loop
  • Library yang biasa digunakan dalam melakukan pemrosesan data seperti pandas atau dask, pyspark ( big data ) di python
Pandas library
Dask: Scalable analytics in Python

4. Distributed Data Storage

Pemahaman terkait penyimpanan data terdistribusi contohnya HDFS ,AWS S3 dan Google cloud storage .konsepnya seperti data replication, serialization, partitioned data storage, file chunking dan sebagainya.

5. Distributed Data processing

Pemahaman bagaimana pemrosesn data secara terdistribusi misalnya

  1. konsep pemrosesan data secara terdistribusi seperti Mapreduce, contoh lainnya jika pemrosesan data didalam memori maksudnya itu memori digunakan sebagai tempat penyimpanan sementaranya yaitu menggunakan apache spark
  2. Berbagai jenis proses join untuk seluruh kumpulan data, seperti map side and reduce side joins
  3. Teknik dan pola umum untuk pemrosesan data seperti: partitioning, reducing data shuffles, handling data skews on partitioning
  4. Mengoptimalkan kode pemrosesan data untuk memanfaatkan semua inti dan memori yang tersedia di cluster

6. Building data pipelines

Pemahaman bagaimana mengkoneksikan setiap sistem data yang berbeda untuk membangun sebuah aliran data atau data pipeline. Konsep kunci yang perlu diketahui adalah

  1. Tool data orchestration misalnya airflow
  2. Bagaimana menghindari jebakan umum dengan cara melakukan data quality checkssetelah dilakukan pemrosesan
  3. membangun idempotent data pipelines yang bertujuan untuk melakukan apakah terdapat kegagalan-pemeriksaan data pipeline.

7. OLAP database

Pemahaman bagaimana teknologi OLAP database beroperasi dan kapan harus mengggunakannya. Konsep kunci yang perlu diketahui adalah

  1. apa itu penyimpanan berdasarkan kolom dan mengapa cara ini lebih baik untuk sebagian besar jenis kueri dalam melakukan agregasi
  2. Konsep pemodelan data seperti partioning, fact and dimensions, data skew
  3. Mencari tahu bagaimana pola kueri data klien dan bagaimana mendesain database yang sesuai dengan kebutuhan

8. Queuing systems

Pemahaman terkait sistem antrian dan kapan dan bagaimana menggunakan sistem ini. Konsep kunci yang perlu diketahui adalah

  1. Apa yang dimaksud dengan produsen dan konsumen data?
  2. Pengetahuan tentang offset dan log compaction

9. Stream processing

Pemahaman tentang apa itu stream processing dan bagaimana menggunakannya. Konsep kunci yang perlu diketahui adalah

  1. Apa itu stream processing dan apa bedanya dengan pemrosesan batch ?
  2. Teknologi yang digunakan dalam melakukan data stream processing menggunakan kafka
  3. Berbagai jenis pemrosesan aliran seperti pemrosesanEvent based dan micro batching.
Apache Kafka

10. JVM language

Pemahaman terkait bahasa pemrograman berbasis JVM seperti Java atau Scala karena untuk kedepannya sangat berguna, karena sebagian besar data processing tools ditulis menggunakan bahasa JVM. misalnya Apache Spark, Apache Flink, dll

--

--

No responses yet