Nusacodes
Kembali ke Showcase
14 Agustus 2026 Vivi Alfiah

Final Project Bootcamp Data Engineer with Python: Membangun Pipeline Data Olist dari OLTP hingga OLA

Bootcamp Data Engineer Python

Final Project Bootcamp Data Engineer with Python: Membangun Pipeline Data Olist dari OLTP hingga OLA
Kunjungi

Pada Final Project Bootcamp Data Engineer with Python, peserta mengerjakan studi kasus pembangunan data pipeline menggunakan dataset Olist. Fokus project bukan hanya memasukkan data ke database, tetapi menyusun alur pengolahan data dari sumber CSV, penyimpanan pada sistem OLTP dan OLAP, transformasi data, analisis dengan SQL, hingga proses orchestration yang dapat dijalankan secara terjadwal.

Melalui project ini, peserta berlatih melihat data sebagai sebuah alur yang saling terhubung, mulai dari proses ingestion sampai data siap digunakan untuk kebutuhan analitik.

Studi Kasus: Membangun Pipeline Data Olist

Dataset yang digunakan terdiri dari beberapa kelompok data seperti customer, geolocation, product, product category, seller, order, order item, payment, dan review.

Peserta menyusun data tersebut menjadi tabel dimensi dan fakta, seperti dim_customer, dim_product, dim_seller, fact_order, fact_order_item, fact_order_payment, dan fact_order_review. Data CSV kemudian dimuat menggunakan Python ke PostgreSQL.

Struktur ini memberikan latihan kepada peserta untuk memahami bahwa data transaksi tidak selalu digunakan langsung dalam bentuk file mentah. Data perlu ditempatkan pada struktur yang lebih terorganisasi agar proses query, transformasi, dan analisis berikutnya dapat dilakukan dengan lebih terarah.

Menyiapkan Infrastruktur dengan Docker

Pada project ini, peserta menjalankan PostgreSQL dan ClickHouse sebagai dua database yang memiliki peran berbeda.

Environment database dijalankan menggunakan Docker dan Docker Compose, sehingga PostgreSQL dan ClickHouse dapat berjalan sebagai container pada environment lokal. Dari sisi praktik, pendekatan ini membantu peserta mengenal bagaimana service data dapat dipisahkan dan dijalankan dalam environment yang lebih konsisten.

PostgreSQL digunakan sebagai bagian dari proses penyimpanan data transaksional atau OLTP, sedangkan ClickHouse digunakan untuk kebutuhan OLAP dan pemrosesan data analitik.

Peserta juga menggunakan DBeaver untuk melakukan koneksi, mengecek struktur database, melihat isi tabel, dan menjalankan query SQL.

Data Ingestion Menggunakan Python

Tahap berikutnya adalah membangun proses ingestion.

Dengan Python, Pandas, dan SQLAlchemy, peserta membaca beberapa file CSV dan memasukkannya ke PostgreSQL. Script juga dilengkapi logging untuk mencatat proses pembacaan file, koneksi database, penghapusan tabel lama, serta proses loading data.

Untuk ClickHouse, peserta membuat proses ingestion terpisah menggunakan Python dan clickhouse_connect. Data dibaca menggunakan Pandas, tipe data dipetakan menjadi tipe yang sesuai di ClickHouse, kemudian tabel dibuat menggunakan engine MergeTree sebelum data dimasukkan.

Dari tahap ini, peserta mendapat gambaran bahwa pekerjaan data engineer tidak berhenti pada penggunaan read_csv(). Perlu ada penanganan koneksi, struktur tabel, tipe data, error, dan logging agar proses pemindahan data lebih mudah dipantau.

Mengolah Data untuk Kebutuhan Analitik

Setelah data tersedia, peserta melakukan pengolahan untuk menghasilkan informasi yang lebih berguna.

Salah satu analisis yang dibuat adalah performa produk. Data order item digabungkan dengan order, product, dan product category. Order dengan status canceled dan unavailable dikeluarkan dari perhitungan.

Peserta kemudian menghitung beberapa metrik seperti:

  • Total item terjual
  • Total pendapatan
  • Rata-rata harga
  • Total ongkir
  • Produk dengan pendapatan tertinggi

Proses tersebut dibuat menggunakan Pandas dengan operasi filter, merge, grouping, aggregation, dan sorting.

Selain melalui Python, peserta juga menjalankan analisis menggunakan SQL melalui DBeaver. Query yang dibuat mencakup performa produk, performa seller, serta analisis review pelanggan dan hubungannya dengan selisih waktu pengiriman.

Dengan pendekatan ini, peserta berlatih menggunakan Python dan SQL untuk kebutuhan yang saling melengkapi.

OLAP dan Transformasi Data

Pada sisi analytical database, data mentah dimasukkan ke ClickHouse sebagai raw atau bronze layer.

Selanjutnya, project menggunakan dbt untuk menjalankan proses transformasi menuju layer silver dan gold. Pipeline ini menghasilkan data yang sudah lebih siap digunakan untuk analitik. Pada hasil project terlihat beberapa tabel hasil pengolahan seperti gold_fct_orders dan gold_dim_customers.

Pendekatan berlapis ini memperkenalkan peserta pada konsep bahwa raw data sebaiknya tidak langsung menjadi sumber akhir untuk seluruh kebutuhan analitik.

Membuat Pipeline Otomatis dengan Prefect

Salah satu bagian penting dari final project adalah menggabungkan proses yang sebelumnya berjalan terpisah menjadi sebuah pipeline.

Peserta menggunakan Prefect untuk melakukan orchestration terhadap tiga proses utama:

  1. Extract dan load data ke PostgreSQL.
  2. Load raw data ke ClickHouse.
  3. Menjalankan transformasi dbt dari silver hingga gold.

Ketiga proses tersebut disusun ke dalam flow olist-etl-elt-pipeline. Masing-masing task juga dilengkapi mekanisme retry jika proses mengalami kegagalan.

Pipeline kemudian dibuat sebagai deployment dengan scheduling. Pada konfigurasi project, flow dijadwalkan menggunakan cron untuk berjalan setiap 10 menit. Dashboard Prefect digunakan untuk melihat deployment, status proses, task yang sedang berjalan, serta log eksekusi pipeline.

Teknologi yang Digunakan

Final project ini menggabungkan beberapa teknologi yang umum ditemui dalam workflow data engineering, yaitu Python, Pandas, SQL, PostgreSQL, ClickHouse, Docker, Docker Compose, dbt, Prefect, DBeaver, dan Visual Studio Code.

Setiap teknologi digunakan untuk bagian yang berbeda: Python untuk proses data, PostgreSQL untuk database transaksional, ClickHouse untuk analytical database, dbt untuk transformasi, dan Prefect untuk orchestration serta scheduling.

Insight dan Benefit Final Project

Melalui project ini, peserta mendapatkan pengalaman melihat proses data secara end-to-end. Data tidak hanya dianalisis setelah tersedia, tetapi perlu melalui proses ingestion, penyimpanan, transformasi, validasi, query, hingga orchestration.

Peserta juga belajar bahwa membangun pipeline berarti memikirkan hubungan antar-komponen. Kegagalan pada proses ingestion akan memengaruhi transformasi berikutnya, sehingga logging, struktur database, monitoring task, dan pemisahan tahapan menjadi bagian yang penting.

Final project ini dapat menjadi contoh portofolio peserta untuk menunjukkan pemahaman dasar mengenai ETL/ELT, OLTP dan OLAP, data warehouse layer, Python data processing, SQL analytics, containerization, serta workflow orchestration dalam satu studi kasus yang saling terintegrasi.