Startup pengindeksan blockchain modern menghadapi sejumlah tantangan, antara lain:
Dengan semakin luasnya adopsi teknologi blockchain, volume data yang tersimpan di blockchain pun meningkat. Hal ini disebabkan oleh bertambahnya pengguna dan setiap transaksi yang menambah data baru ke blockchain. Selain itu, penggunaan blockchain telah berkembang dari aplikasi transfer uang sederhana—seperti Bitcoin—menjadi aplikasi yang lebih kompleks yang melibatkan logika bisnis pada smart contract. Smart contract semacam ini dapat menghasilkan data dalam jumlah besar, sehingga menambah tingkat kompleksitas dan ukuran blockchain. Dalam jangka panjang, blockchain pun menjadi semakin besar dan kompleks.
Pada artikel ini, kami membahas evolusi arsitektur teknologi Footprint Analytics secara bertahap sebagai studi kasus untuk menelaah bagaimana stack Iceberg-Trino mengatasi tantangan data on-chain.
Footprint Analytics telah mengindeks sekitar 22 data blockchain publik, 17 marketplace NFT, 1.900 proyek GameFi, dan lebih dari 100.000 koleksi NFT ke dalam lapisan data abstraksi semantik. Ini merupakan solusi gudang data blockchain paling komprehensif di dunia.
Data blockchain yang dikelola—lebih dari 20 miliar baris catatan transaksi keuangan dan sering diakses oleh analis data—berbeda dengan log ingression pada gudang data tradisional.
Dalam beberapa bulan terakhir, kami telah melakukan tiga kali peningkatan besar untuk memenuhi kebutuhan bisnis yang terus berkembang:
Pada fase awal, Footprint Analytics menggunakan Google Bigquery sebagai storage dan query engine. Bigquery menawarkan performa sangat cepat, kemudahan penggunaan, daya aritmatika dinamis, serta sintaks UDF yang fleksibel, sehingga mempercepat proses kerja tim kami.
Namun, Bigquery juga memiliki sejumlah keterbatasan.
Karena itu, kami memutuskan untuk mengeksplorasi alternatif arsitektur lainnya.
Kami sangat tertarik dengan beberapa produk OLAP yang tengah populer. Keunggulan utama OLAP adalah waktu respons query yang sangat cepat—biasanya sub-detik untuk data dalam jumlah besar—dan dukungan ribuan query secara bersamaan.
Kami memilih Doris, salah satu database OLAP terbaik, untuk diuji coba. Engine ini memberikan performa yang baik. Namun, kami segera menemukan beberapa kendala lain:
Karena itu, kami tidak dapat menggunakan Doris untuk seluruh pipeline data produksi. Kami hanya menggunakan Doris sebagai database OLAP untuk menyelesaikan sebagian masalah pipeline data produksi, bertindak sebagai query engine dan menyediakan performa query yang cepat serta konkurensi tinggi.
Sayangnya, Doris tidak dapat menggantikan Bigquery sepenuhnya, sehingga kami harus melakukan sinkronisasi data secara berkala dari Bigquery ke Doris dan hanya menggunakannya sebagai query engine. Proses sinkronisasi ini menimbulkan beberapa masalah, salah satunya adalah penulisan pembaruan yang menumpuk ketika OLAP engine sibuk melayani query front-end. Akibatnya, proses penulisan melambat dan sinkronisasi menjadi lebih lama, bahkan kadang tidak terselesaikan.
Kami menyadari OLAP dapat mengatasi beberapa masalah, namun belum menjadi solusi menyeluruh untuk Footprint Analytics—khususnya pada pipeline pemrosesan data. Permasalahan kami lebih besar dan kompleks, sehingga OLAP sebagai query engine saja tidak cukup.
Arsitektur Footprint Analytics 3.0 adalah pembaruan total pada fondasi sistem. Kami mendesain ulang arsitektur dari nol, memisahkan penyimpanan, komputasi, dan query data menjadi tiga bagian berbeda. Kami mengambil pelajaran dari dua arsitektur sebelumnya serta pengalaman proyek big data sukses seperti Uber, Netflix, dan Databricks.
Kami kemudian memfokuskan perhatian pada data lake, jenis penyimpanan baru untuk data terstruktur dan tidak terstruktur. Data lake sangat sesuai untuk penyimpanan data on-chain, mengingat format data on-chain sangat beragam, mulai dari data mentah tidak terstruktur hingga data abstraksi terstruktur seperti yang dikembangkan Footprint Analytics. Kami menargetkan data lake sebagai solusi penyimpanan data, dengan harapan dapat mendukung engine komputasi mainstream seperti Spark dan Flink, sehingga integrasi dengan berbagai engine pemrosesan tetap mudah seiring pertumbuhan Footprint Analytics.
Iceberg terintegrasi optimal dengan Spark, Flink, Trino, dan berbagai engine komputasi lainnya, sehingga kami dapat memilih engine yang paling sesuai untuk setiap metrik. Misalnya:
Setelah masalah penyimpanan dan komputasi terselesaikan dengan Iceberg, kami mempertimbangkan pilihan query engine. Pilihan yang tersedia antara lain:
Faktor utama yang kami pertimbangkan adalah kompatibilitas query engine masa depan dengan arsitektur kami saat ini.
Berdasarkan pertimbangan tersebut, kami memilih Trino yang memiliki dukungan sangat baik untuk Iceberg dan tim pengembang yang sangat responsif. Ketika kami melaporkan bug, perbaikan dilakukan keesokan hari dan dirilis ke versi terbaru pada minggu berikutnya. Ini adalah pilihan terbaik bagi tim Footprint yang juga membutuhkan kecepatan implementasi tinggi.
Setelah menetapkan arah, kami melakukan pengujian performa pada kombinasi Trino + Iceberg untuk memastikan kecocokan dengan kebutuhan kami, dan hasilnya, kecepatan query sangat mengesankan.
Selama bertahun-tahun, Presto + Hive menjadi tolok ukur performa terburuk dalam tren OLAP, namun kombinasi Trino + Iceberg benar-benar melampaui ekspektasi kami.
Berikut hasil pengujian kami:
Kasus 1: join dataset besar
Sebuah tabel 800 GB (table1) dijoin dengan tabel lain 50 GB (table2) dan dilakukan perhitungan bisnis kompleks.
Kasus 2: query distinct pada satu tabel besar
Test sql: select distinct(address) from table group by day

Kombinasi Trino+Iceberg sekitar tiga kali lebih cepat dari Doris dengan konfigurasi yang sama.
Selain itu, Iceberg dapat menggunakan format data seperti Parquet, ORC, dan lainnya, sehingga data terkompresi dan efisien dalam penyimpanan. Penyimpanan tabel Iceberg hanya membutuhkan sekitar 1/5 ruang dibandingkan gudang data lain. Berikut perbandingan ukuran penyimpanan pada tiga database:

Catatan: Pengujian di atas adalah contoh aktual yang kami temui di produksi dan hanya sebagai referensi.
・Dampak Upgrade
Hasil pengujian performa memberikan keyakinan bagi tim untuk menyelesaikan migrasi dalam waktu sekitar dua bulan. Berikut diagram arsitektur kami setelah upgrade:

Sejak diluncurkan pada Agustus 2021, tim Footprint Analytics telah melakukan tiga kali peningkatan arsitektur dalam waktu kurang dari satu setengah tahun—berkat tekad menghadirkan teknologi database terbaik bagi pengguna kripto dan eksekusi solid dalam membangun serta mengembangkan infrastruktur dasarnya.
Peningkatan arsitektur Footprint Analytics 3.0 menghadirkan pengalaman baru bagi pengguna, memungkinkan mereka dari berbagai latar belakang mendapatkan insight lebih beragam dalam penggunaan dan aplikasi: