Apa itu Delta Lake ?

Tri Juhari
5 min readSep 5, 2021

--

Jika dilihat dari judul pada artikel ini mungkin akan banyak yang bertanya tanya

Apa itu Delta Lake ?

Tentunya yang sudah paham terkait konsep Data Lake akan kembali muncul pertanyaan pertanyaan lainnya.

Jadi, Apa perbedaan antara Data Lake dengan Delta Lake ?

Apakah ada hubungan antara Data Lake dengan Delta Lake ?

Jadi sebenarnya Delta Lake itu merupakan sebuah lapisan penyimpanan sumber terbuka yang menghadirkan keandalan pada Data Lakes. Data Lake adalah gudang penyimpanan terpusat yang memungkinkan untuk menyimpan data dalam skala apa pun. Sebagian besar data ini dalam format mentah. Struktur data atau skema tidak ditentukan saat data diambil.

Delta lake ini dikembangkan oleh pengembang yang sama dengan Apache Spark. Tujuannya adalah untuk menghadirkan keandalan pada data lake dan menyediakan transaksi ACID, penanganan metadata yang dapat diskalakan, dan menyatukan streaming dan pemrosesan data batch.

Delta lake hadir atas kekurangan yang dimiliki oleh Data Lake diantaranya

  • Data lake itu seperti danau yang didalamnya terdapat berbagai macam jenis data, oleh karena itu Data Lake sering dianggap sebagai suatu yang berantakan. Kadang juga kita tidak memiliki alasan apakah data data yang jumlahanya hingga jutaan harus di simpan di data lake, hanya saja yang menjadi pertimbangannya adalah mungkin data sebanyak ini akan dibutuhkan di kemudian hari.
  • Kenapa dikatakan data lake sebagai suatu yang berantakan karena sebagian besar hal ini dikarenakan data lake akan memiliki banyak file kecil dan tipe data yang berbeda. Karena ada banyak file kecil yang tidak dipadatkan, jika bukan tidak mungkin akan sulit membacanya dalam bentuk aslinya atau bentuk apa pun.
  • Data lake juga sering kali berisi data yang buruk (corrupt) atau file data yang rusak sehingga akan menjadi sebuah kendala ketika akan menganalisisnya kecuali kembali kesebelumnya dan memulai dari awal lagi.

Dari masalah yang sering dialami oleh Data Lake maka Delta Lakupun lahir. Delta lake merupakan sebuah lapisan penyimpanan sumber terbuka yang membawa transaksi ACID ke beban kerja big data pada Apache Spark. Delta Lake menyediakan transaksi ACID melalui log yang dikaitkan dengan setiap tabel Delta yang dibuat di data lakenya. Log ini mencatat riwayat segala sesuatu yang pernah dilakukan pada tabel data atau kumpulan data tersebut, oleh karena itu dengan Delta Lake akan mendapatkan tingkat keandalan dan stabilitas yang tinggi pada Data Lake yang kita miliki.

Fitur utama yang dimiliki Delta Lake yaitu

ACID Transaction(atomicity, consistency, isolation, durability) : Data lake biasanya memiliki beberapa Data Pipeline yang melakuan proses read and write secara bersamaan, dan seorang Data Engineer harus melalui proses yang berulang yang disebabkan karena kurangnya transaksi untuk memastikan integritas datanya.Karena Delta Lake memiliki fitur transaksi ACID sehingga Ini akan memberikan dampak serializability, dan kemampulan isolasi yang kuat.

Scalable Metadata Handling: Pada Big Data, meskipupun metadata itu sendiri bisa menjadi “Big Data”. Delta Lake memperlakukan metadata seperti data, memanfaatkan kekuatan pemrosesan terdistribusi Spark untuk menangani semua metadatanya. Hasilnya, Delta Lake dapat menangani tabel skala petabyte dengan miliaran partisi dan file dengan mudah.

Time Travel (data versioning): Delta Lake menyediakan fitur snapshot data yang memungkinkan para developer dapat mengakses dan mengembalikan ke versi data sebelumnya untuk dilakukan audit, rollback atau melakukan percobaan lainnya.

Open Format :Semua data yang ada pada Delta Lake akan disimpan dalam format Apache Parquet hal ini memberikan manfaat yaitu proses kompresi yang efisiensi dan skema pengkodean yang asli dari Parket.

Unified Batch and Streaming Source and Sink: Tabel yang ada pada Delta Lake merupakan tabel batch serta streaming source dan sink. Proses streaming data ingest, batch historic back fill, dan interactive queries semua dilakukan diluar box (out of box).

Schema Enforcement : Delta Lake memiliki kemampuan untuk menentukan skema yang telah kita buat dan mengimplementasikannya. Hal ini membantu untuk memastikan bahwa tipe datanya sudah benar dan kolom yang dibutuhkan itu ada, selain itu untuk mencegah terjadinya data yang hasilkan buruk yang disebabkan karena adanya kerusakan data ( data corrupt).

.

Schema Evolution: Big Data tentunya akan terus mengalami perubahan, dengan teknologi Delta Lake menyediakan kemampuan untuk melakukan perubahan pada skema tabel yang dapat di implementasi secara otomatis, tanpa harus melakukan proses DDL (Data Definition Language) yang rumit.

100% Compatible with Apache Spark API: Developer dapat menggunakan Delta Lake dengan data pipeline yang ada minimal dengan perubahan yang minimal dikarenakan sepenuhnya kompitabel dengan Spark ,mesin pemrosesan Big Data yang umum digunakan.

Delta Lake Batch Operations

Create : Proses pembutan Data lake semudah mengubah jenis file saat melakukan proses write.

Code di bawah ini merupakan perintah untuk menyimpan DataFrame dengan nama “df” ke data lake yaang ada pada folder “data”.

df.write.format("delta").save("/data")

Append : Proses menambahkan data ke dalam data lake yang sudah ada.

df.write.format("delta").mode("append).save(path)

Upsert : Kombinasi antara proses update dan insert. Jadi prosesnya itu yang pertama akan dilakukan melakukan inserting baris data kemudian apabila baris datanya sudah ada maka akan melakukan proses update baris data tersebut.

Arsitektur Pada Delta Lake

Delta lake memiliki 3 tahap pada proses Data Enrichment.

Bronze Tables: Berisi data mentah yang diambil dari berbagai sumber seperti fle json, sistem RDBMS , IOT , dll.

Silver Tables: memberikan bentuk data yang lebih rapih dari data Perunggu.

Gold Tables: menyediakan data yang dapat dilakukan proses agregasi kebutuhan bisnis yang sering digunakan untuk pelaporan dan pembuat dashboard.

Referensi :

--

--

No responses yet