Blog AWS Indonesia

Bagaimana Ruparupa mendapatkan insight bisnis terbaru menggunakan data lake Amazon S3, AWS Glue, Apache Hudi dan Amazon QuickSight

Ruparupa didirikan oleh PT. Omni Digitama Internusa dengan visi untuk mengembangkan sinergi dan menciptakan ekosistem digital dalam grup Kawan Lama yang menyentuh dan meningkatkan hidup orang banyak.

Ruparupa adalah platform digital pertama yang dibangun oleh grup Kawan Lama untuk memberikan pengalaman belanja terbaik untuk perlengkapan rumah tangga, furnitur dan kebutuhan gaya hidup. Tujuan Ruparupa adalah untuk membantu Anda mendapatkan hidup yang lebih baik, seperti ditunjukkan oleh arti kata ruparupa yang berarti “segalanya”. Kami percaya bahwa semua orang berhak mendapatkan yang terbaik, dan segalanya bermula dari rumah.

Dalam blog post ini kami menunjukkan bagaimana Ruparupa melakukan implementasi data lake yang diperbarui secara incremental untuk mendapatkan insight bisnis menggunakan Amazon Simple Storage Service (Amazon S3), AWS Glue, Apache Hudi, dan Amazon QuickSight. Kami juga akan menceritakan manfaat yang didapatkan Ruparupa setelah implementasi.

Data lake yang diterapkan oleh Ruparupa menggunakan Amazon S3 sebagai platform storage, AWS Database Migration Service (AWS DMS) sebagai alat untuk memuat data, AWS Glue sebagai alat ETL (extract, transform, dan load), dan QuickSight sebagai dashboard analitik.

Amazon S3 adalah sebuah layanan object storage dengan skalabilitas, durabilitas dan keamanan yang sangat tinggi yang membuatnya menjadi komponen storage yang ideal untuk sebuah data lake.. AWS DMS adalah sebuat alat migrasi database yang mendukung banyak database relasional, dan juga mendukung Amazon S3.

Sebuah job ETL AWS Glue, menggunakan konektor Apache Hudi, memperbarui data lake S3 setiap jam dengan data incremental. Job AWS Glue bisa mengubah data raw di Amazon S3 menjadi format Parquet, yang lebih optimal untuk query analitik. Data Catalog AWS Glue menyimpan metadata, dan Amazon Athena (sebuah serverless query engine) digunakan untuk melakukan query terhadap data di Amazon S3.

AWS Secrets Manager adalah sebuah layanan AWS yang bisa digunakan untuk menyimpan data sensitif, memungkinkan user menyimpan data seperti kredensial database terpisah dari source code. Dalam implementasi ini, Secrets Manager digunakan untuk menyimpan konfigurasi job Apache Hudi untuk berbagai tabel.

Berbagai tantangan data analitik

Sebagai sebuah perusahaan ecommerce, Ruparupa menghasilkan banyak data dari website ecommerce mereka, sistem inventori mereka, aplikasi finansial dan aplikasi distribusi mereka. Data bisa berupa data terstruktur dari system mereka, dan juga bisa berupa data tak terstruktur atau setengah tersetruktur dari interaksi dengan pelanggan mereka. Data ini mengandung insight yang bila ditemukan, dapat membantu manajemen untuk membuat keputusan yang membantu meningkatkan penjualan dan mengoptimalkan biaya.

Sebelum melakukan implementasi data lake di AWS, Ruparupa tidak memiliki infrastruktur yang mampu mengolah ukuran dan variasi format data dalam waktu yang singkat. Data harus diolah secara manual oleh data analist, dan data mining membutuhkan waktu yang panjang. Karena kecepatan pertumbuhan data, dibutuhkan waktu 1-1.5 jam hanya untuk memuat ratusan ribu baris data.

Proses manual diatas menyebabkan proses pembersihan data menjadi tidak konsisten. Setelah data dibersihkan, sering ada proses yang tertinggal, dan seluruh data harus melalui proses pembersihan data lagi.

Pengolahan yang makan waktu lama ini mengurangi produktivitas tim analitik. Tim analitik hanya dapat menghasilkan laporan mingguan dan laporan bulanan. Lambatnya frekuensi pelaporan mengakibatkan penundaan sampainya insight yang penting ke manajemen, sehingga mereka tidak bisa bergerak cukup cepat untuk mengantisipasi perubahan dalam bisnis mereka.

Metode yang digunakan untuk membuat dashboard analitik dulunya manual dan hanya bisa menghasilkan beberapa laporan rutin. Konsumen dari beberapa laporan ini terbatas – maksimum 20 orang dari manajemen. Unit bisnis lain dalam grup Kawan Lama hanya menggunakan laporan mingguan yang disiapkan secara manual. Bahkan laporan mingguan tidak bisa mencakup semua metrik penting, karena beberapa metrik hanya tersedia di laporan bulanan.

Solusi awal untuk dashboard real-time

Diagram berikut menggambarkan solusi awal yang diimplementasikan oleh Ruparupa.

Solusi analitik awal ruparupa

Ruparupa memulai sebuah inisiatif data dalam organisasi untuk menciptakan sebuah konsolidasi data dalam perusahaan. Sebelumnya, user bisnis hanya bisa mendapatkan data penjualan dari hari sebelumnya, dan mereka tidak memiliki akses ke aktifitas penjualan yang sedang terjadi di toko toko dan website mereka.

Untuk mendapatkan kepercayaan user bisnis, kami ingin menyediakan data yang terbaru melalui sebuah dashboard Quicksight yang bersifat interaktif. Kami menggunakan task replikasi data AWS DMS untuk mengirimkan perubahan data secara real time (CDC) ke sebuah database Amazon Aurora MySQL-Compatible Edition, dan membangun sebuah dashboard QuickSight untuk menggantikan file presentasi yang statis.

Dashboard pilot ini mendapat sambutan yang sangat baik dari para pengguna, yang sekarang bisa memiliki akses ke data terbaru. Namun, sumber data untuk dashboard masih tersimpan di database Aurora MySQL dan hanya mencakup satu domain data.

Desain awal memiliki beberapa tantangan baru:

  • Sumber data yang bervariasi – Sumber data dalam sebuah platform ecommerce terdiri dari data terstruktur, data setengah terstruktur dan data tidak terstruktur, yang membutuhkan tempat penyimpanan data yang fleksibel. Desain data warehouse awal di Ruparupa hanya menyimpan data transaksional, dan data dari system lain seperti data interaksi pengguna belum dikonsolidasikan.
  • Biaya dan skalabilitas – Ruparupa ingin membuat platform data untuk masa depan yang bisa menyimpan data berukuran multi terabyte dengan biaya yang paling efisien.

Desain awal juga memiliki keuntungan:

  • Pembaruan data – Data di dalam data warehouse awal adalah data 1 hari yang lalu. Ini merupakan perbaikan dari laporan mingguan, tapi belum cukup cepat untuk membuat keputusan yang lebih cepat.

Solusi ini hanya merupakan solusi sementara, kami membutuhkan solusi analitik yang lebih lengkap yang bisa melayani sumber data yang lebih kompleks, lebih besar, lebih cepat dan biaya yang efisien.

Solusi data lake real-time

Untuk memenuhi kebutuhan mereka, Ruparupa memperkenalkan data lake yang bersifat real-time seperti ditunjukan dalam diagram berikut.

diagram arsitektur solusi data lake real-time

Mari kita lihat tiap komponen utama secara lebih detil.

Proses CDC AWS DMS

Untuk mendapat data real-time dari sumbernya, kami menyalurkan CDC log menggunakan AWS DMS (komponen 1 di diagram arsitektur). Data CDC mencakup semua insert, update dan delete yang terjadi di database sumber. Data mentah ini disimpan di bagian raw dari S3 data lake.

Sebuah S3 lifecycle policy digunakan untuk mengatur retensi data, dimana data yang lebih tua dipindahkan ke Amazon S3 Glacier.

Job ETL AWS Glue

Bagian kedua S3 data lake adalah bagian transformed, dimana data diubah ke format yang lebih optimal yang siap untuk query dari pengguna. File-file diubah ke format kolumnar Parquet dengan kompresi yang cepat dan partisi tabel untuk mengoptimalkan query SQL dari Athena.

Untuk bisa membuat sebuah data lake dinamis yang bisa menyatukan perubahan dari sumber data, kami memperkenalkan framework datalake Apache Hudi. Dengan Apache Hudi, kita dapat melakukan upsert dan menghapus data di bagian transformed untuk menjaga data tetap konsisten dengan cara yang terjamin. Dengan sebuah data lake yang menggunakan Hudi, Ruparupa bisa membuat sebuah konsolidasi dari semua sumber data secara cepat dan mudah. Framework Hudi mengurus metadata dari pembaruan yang terjadi, sehingga mudah melakukan implementasi terhadap ratusan tabel dalam data lake. Kita hanya perlu melakukan konfigurasi writer output untuk membuat sebuah tabel copy-on-write sesuai akses yang dibutuhkan. Untuk writer, kami menggunakan AWS Glue job writer digabungkan dengan sebuah AWS Glue Hudi connector dari AWS Marketplace. Tambahan library dari konektor membantu AWS Glue mengerti bagaimana cara menullis ke Hudi.

Sebuah ETL job AWS Glue digunakan untuk mengambil perubahan dari bagian raw dan menggabungkan perubahan tersebut di bagian transformed (komponen 2 di diagram arsitektur). Dengan AWS Glue, kita bisa membuat sebuah job PySpark untuk mengambil data, dan kita menggunakan Connector AWS Glue untuk Apache Hudi untuk menyederhanakan proses import library Hudi ke job AWS Glue. Dengan AWS Glue, semua perubahan yang dikirimkan AWS DMS dapat digabungkan dengan mudah ke data lake Hudi. Job tersebut dijadwalkan setiap jam menggunakan scheduler bawaan AWS Glue.

Secrets Manager digunakan untuk menyimpan semua parameter terkait yang dibutuhkan untuk menjalankan job. Daripada membuat sebuah job transformasi untuk setiap tabel, Ruparupa membuat sebuah job generik yang bisa dipakai untuk transformasi banyak tabel dengan menggunakan sejumlah parameter. Parameter yang menjelaskan detil struktur tabel disimpan dalam Secrets Manager dan dapat diambil menggunakan nama tabel sebagai key. Dengan parameter kustom ini, Ruparupa tidak perlu membuat job untuk tiap tabel – kita bisa menggunakan satu job saja untuk melakukan pemuatan data untuk seluruh tabel yang berbeda-beda dengan cara memberikan nama tabel pada waktu pemanggilan job.

Metadata dari semua tabel disimpan di Katalog Data AWS Glue Data, termasuk tabel-tabel Hudi. Katalog ini digunakan oleh ETL job AWS Glue, query engine Athena dan dashboard QuickSight.

Query Athena

Pengguna dapat melakukan query data terbaru untuk laporan mereka menggunakan Athena (komponen 3 dalam diagram arsitektur). Athena adalah layanan serverless, jadi tidak ada infrastruktur yang harus di-provision atau dikelola. Kita bisa langsung menggunakan SQL untuk melakukan query terhadap data lake untuk membuat laporan atau menampilkan data ke dashboard.

Dashboard QuickSight

Pengguna bisnis bisa menggunakan dashboard QuickSight untuk melakukan query terhadap data lake (komponen 4 di diagram arsitektur). Dashboard yang sudah ada sebelumnya dimodifikasi untuk mengambil data dari Athena, menggantikan database yang dipakai sebelumnya. Dashboard-dashboard baru juga dibuat untuk memenuhi kebutuhan yang terus berubah untuk mendapatkan wawasan dari berbagai unit bisnis.

Quicksight juga digunakan untuk memberitahu pihak tertentu jika suatu nilai telah mencapai batas tertentu. Alert berupa email dikirimkan untuk pemberitahuan eksternal dan menggunakan platform messaging untuk memberitahu pengguna.

Hasil Bisnis

Implementasi data lake di Ruparupa memakan waktu sekitar 3 bulan, dengan tambahan satu bulan untuk validasi data, sebelum data lake tersebut dinilai siap untuk produksi. Dengan solusi ini manajemen bisa melihat informasi status bisnis sampai satu jam terakhir. Sebelumnya mereka hanya bisa menghasilkan laporan mingguan – sekarang informasi yang berguna tersedia 168 kali lebih cepat.

Dashboard QuickSight, yang bisa diperbarui secara otomatis, mempersingkat waktu yang dibutuhkan oleh tim analitik. Dashboard QuickSight sekarang memiliki lebih banyak konten – tidak hanya data transaksional yang dilaporkan, tetapi juga metrik lain seperti SKU baru, eskalasi operasi untuk memberi layanan gratis bagi pelanggan, dan pemantauan SLA. Sejak April 2021 ketika Ruparupa memulai pilot QuickSight, jumlah dashboard telah meningkat menjadi sekitar 70 berdasar permintaan pengguna bisnis.

Ruparupa telah merekrut personel baru untuk bergabung dengan tim data analitik dan untuk melakukan eksplorasi kemungkinan-kemungkinan baru. Tim analitik telah bertumbuh dari hanya satu orang menjadi tujuh orang untuk melayani berbagai use case analitik baru:

  • Merchandising
  • Operasional
  • Mengukur kinerja manajer toko
  • Insights SKUs yang sedang trending

Grup Kawan Lama juga memiliki toko offline selain platform ecommerce yang dikelola oleh Ruparupa. Dengan dashboard yang baru jadi lebih mudah untuk membandingkan data transaksi dari toko online dan offline karena mereka sekarang menggunakan platform yang sama.

Dashboard yang baru juga dikonsumsi oleh lebih banyak pengguna, termasuk dari unit bisnis lain dalam grup Kawan Lama. Total jumlah pengguna yang mengkonsumsi dashboard meningkat dari hanya 20 pengguna dari manajemen menjadi sekitar 180 pengguna (kenaikan 9 kali lipat).

Sejak implementasi, unit bisnis lain dalam grup Kawan Lama telah meningkatkan kepercayaan mereka pada platform data lake S3 yang diimplementasikan oleh Ruparupa, karena datanya lebih terbarui dan mereka bisa melakukan drill down sampai level SKU untuk melakukan validasi bahwa datanya benar. Unit bisnis lain sekarang bisa bertindak lebih cepat setelah sebuah event seperti kampanye pemasaran. Implementasi data lake ini telah membantu meningkatkan pendapatan penjualan di berbagai unit biisnis dalam grup Kawan Lama.

Kesimpulan

Implementasi data lake real time menggunakan Amazon S3, Apache Hudi, AWS Glue, Athena dan QuickSight memberi Ruparupa keuntungan-keuntungan berikut :

  • Menghasilkan insight lebih cepat (tiap jam dibandingkan tiap minggu)
  • Menemukan insight baru
  • Memungkinkan lebih banyak orang di lebih banyak unit bisnis untuk mengkonsumsi dashboard
  • Membantu unit bisnis dalam grup Kawan Lama bertindak lebih cepat dan meningkatkan pendapatan penjualan

Bila Anda tertarik untuk mendapatkan keuntungan serupa, coba lihat Build a Data Lake Foundation with AWS Glue and Amazon S3. Anda juga bisa belajar bagaimana mulai dengan QuickSight di Getting Started guide. Terakhir, Anda bisa belajar bagaimana menjalankan Apache Hdi di AWS Glue melalui Writing to Apache Hudi tables using AWS Glue Custom Connector.

Artikel ini merupakan terjemahan dari blog yang ditulis oleh Adrianus B. Kurnadi, Nico Anandito, Olivia Michele dan Dariswan Janweri pada 22 Februari 2023 berjudul How Ruparupa gained updated insights with an Amazon S3 data lake, AWS Glue, Apache Hudi, and Amazon QuickSight

Adrianus Kurnadi

Adrianus Kurnadi

Adrianus Budiardjo Kurnadi is a Senior Solutions Architect at Amazon Web Services Indonesia. He has a strong passion for databases and machine learning and work closely with Indonesian machine learning community to introduce them to various AWS Machine Learning services. In his spare time, he enjoys singing in a choir, reading and play with his two children.