Delta Lake adalah format penyimpanan data sumber terbuka yang menggabungkan berkas data Apache Parquet dengan log metadata yang tangguh. Format Delta Lake menghadirkan fungsi manajemen data utama, seperti transaksi ACID dan pembuatan versi data, ke danau data, menjadikannya dasar bagi banyak data lakehouses.
Pertama kali dikembangkan oleh Databricks pada tahun 2016, Delta Lake adalah format tabel terbuka, kerangka kerja sumber terbuka untuk data tabular yang membangun lapisan metadata di atas format file yang ada. Delta Lake secara khusus menggunakan tabel Parquet untuk penyimpanan data. Format tabel terbuka lainnya termasuk Apache Iceberg dan Apache Hudi.
Lapisan metadata memungkinkan Delta Lake dan tabel terbuka lainnya untuk mengoptimalkan kueri pencarian dan mendukung operasi data tingkat lanjut yang tidak dapat dilakukan oleh banyak format tabel standar. Organisasi sering menggunakan Delta Lake untuk membuat danau data mereka lebih andal dan intuitif.
Pembuatan Danau Delta merupakan langkah kritis dalam pengembangan arsitektur data lakehouse, yang menggabungkan penyimpanan danau data dengan kinerja gudang data.
Delta Lake dan danau data sering kali dibahas bersama, tetapi penting untuk diketahui bahwa teknologi ini berbeda satu sama lain.
Danau data adalah lingkungan penyimpanan data berbiaya rendah yang dirancang untuk menangani kumpulan data besar dari jenis dan format data apa pun. Sebagian besar danau data menggunakan cloud object storage seperti Amazon Simple Storage Service (S3), Microsoft Azure Blob Storage, atau IBM Cloud Object Storage.
Delta Lake adalah format penyimpanan data tabular yang dapat digunakan organisasi dalam danau data atau penyimpanan data lainnya.
Delta Lake bukanlah jenis danau data, juga bukan alternatif danau data. Sebaliknya, kita dapat menganggap danau data sebagai “di mana” dan Danau Delta sebagai “bagaimana”:
Format Delta Lake dapat membantu membuat danau data lebih mudah dikelola dan efisien.
Danau data memiliki banyak manfaat, tetapi biasanya tidak memiliki kontrol kualitas data bawaan, dan secara langsung melakukan kueri pada danau data bisa sulit. Organisasi harus sering mengambil data dari danau, membersihkannya, dan memuatnya ke dalam gudang data dan pasar data yang terpisah sebelum dapat digunakan.
Dengan memperkenalkan lapisan metadata, Delta Lake memberi organisasi cara untuk menegakkan skema, melacak dan mengembalikan perubahan dan mendukung transaksi ACID.
Pengguna dapat menjalankan kueri bahasa kueri terstruktur (SQL), beban kerja analitik, dan aktivitas lainnya langsung di danau data, merampingkan intelijen bisnis (BI), kecerdasan data (DI), kecerdasan buatan (AI), dan machine learning (ML).
Delta Lake memiliki 2 komponen inti: file data yang berisi data dan log transaksi yang menyimpan metadata tentang file data tersebut.
Log transaksi mencatat informasi tentang file data (seperti nama kolom dan nilai minimum dan maksimum) dan perubahan yang dilakukan pada file (apa yang diubah, kapan, bagaimana, dan oleh siapa).
Log inilah yang membuat Delta Lake berbeda dari file Parquet standar. Log transaksi pada dasarnya bertindak sebagai lapisan manajemen dan serangkaian instruksi untuk semua aktivitas di danau data, yang memungkinkan fitur-fitur seperti transaksi ACID, perjalanan waktu, dan evolusi skema.
File Parquet biasa tidak dapat diubah, artinya file tersebut tidak dapat diubah setelah dibuat; file tersebut hanya dapat ditulis ulang. Log transaksi Delta Lake membuat file Parquet secara fungsional, jika tidak secara harfiah, dapat diubah dengan memisahkan tindakan fisik (tindakan yang dilakukan langsung pada data) dari tindakan logis (tindakan yang dilakukan pada metadata).
Misalnya, pengguna tidak dapat menghapus satu kolom dari tabel Parquet tanpa menulis ulang seluruh berkas. Di Delta Lake, pengguna dapat menghapus kolom tersebut secara efektif dengan mengubah metadata tabel untuk menandai kolom tersebut sebagai dihapus. Kolom tersebut tetap ada di dalam berkas, tetapi semua kueri, pembaruan, dan penulisan selanjutnya melihat metadata dan memperlakukan kolom tersebut sebagai tidak ada.
"ACID" adalah singkatan dari "atomisitas, konsistensi, isolasi, dan daya tahan"—sifat utama dari transaksi data yang andal.
Danau data Standard tidak dapat mendukung transaksi ACID. Tanpa jaminan ACID, danau data rentan terhadap transaksi yang gagal, penulisan parsial, dan masalah lain yang dapat merusak data.
Log transaksi Delta Lake dapat merekam informasi transaksi sesuai dengan prinsip ACID, membuat danau data lebih dapat diandalkan untuk streaming saluran data, intelijen bisnis, analitik, dan contoh penggunaan lainnya.
Administrator dapat menetapkan persyaratan skema dalam log transaksi, dan persyaratan ini berlaku untuk semua data setelah dimasukkan. Data yang tidak memenuhi persyaratan skema ditolak.
Admin juga dapat menggunakan log transaksi untuk mengubah skema file yang sudah ada, seperti menambahkan kolom baru atau mengubah jenis kolom. Proses ini disebut “evolusi skema.”
Meskipun bukan indeks tradisional, log transaksi dapat membantu kueri mengambil data lebih cepat dan lebih efisien.
Misalnya, katakanlah bahwa pengguna sedang mencari nilai tertentu dalam kolom. Dengan menggunakan metadata dalam log transaksi, kueri pengguna dapat melewatkan file apa pun yang nilai targetnya tidak mungkin ada. Jika nilai minimum lebih tinggi atau nilai maksimum lebih rendah dari nilai target, kueri dapat melewati file.
Log transaksi juga menyimpan jalur file. Alih-alih memindai seluruh danau data, kueri dapat menggunakan jalur file ini untuk menuju langsung ke file yang relevan.
Delta Lake dapat menggunakan teknik seperti pengurutan Z untuk menyimpan data yang serupa secara berdekatan pada disk, yang membuatnya lebih mudah untuk melewatkan file yang tidak relevan dan menemukan file yang relevan.
File Parquet normal tidak dapat diubah, tetapi pengguna dapat memanipulasi tabel Delta melalui lapisan metadata. Delta Lake mendukung semua jenis operasi data, termasuk menambah atau mengurangi kolom, memperbarui entri, dan menggabungkan file.
Karena log transaksi mencatat semua yang terjadi di tabel Delta, log ini secara efektif memelihara riwayat versi untuk setiap tabel. Pengguna dapat menanyakan versi sebelumnya dan bahkan melakukan perjalanan waktu, yaitu mengembalikan perubahan untuk memulihkan versi tabel sebelumnya.
Danau Delta memiliki ekosistem konektor yang kuat. Format ini dapat digunakan dengan berbagai mesin komputasi, seperti Apache Spark, Apache Hive, Apache Flink, atau Trino. Delta Lake juga memiliki antarmuka pemrograman aplikasi (API) untuk Python, Java, Scala dan bahasa lainnya, memungkinkan pengembang untuk mengelola dan menanyakan tabel Delta secara terprogram.
Meskipun Delta Lake tidak menerapkan kontrol keamanan secara asli, Delta Lake dapat berintegrasi dengan alat keamanan data dan tata kelola data. Alat ini kemudian dapat menggunakan metadata dari log transaksi untuk mengaudit aktivitas, melacak perubahan, dan menerapkan kebijakan kontrol akses berbasis peran (RBAC).
Delta Lake dapat menerima data streaming dan batch, dan data dapat dikirim dari tabel Delta ke layanan yang terhubung sebagai aliran atau dalam batch.
Delta Lake 4.0, rilis besar terjadwal berikutnya untuk Delta Lake, berencana untuk menambahkan lebih banyak fitur, seperti:
Apache Iceberg adalah format sumber terbuka dengan kinerja tinggi untuk tabel analitik besar. Seperti Delta Lake, Iceberg membangun lapisan metadata di atas format tabel yang ada untuk mendukung transaksi ACID dan operasi lain dalam danau data.
Iceberg dapat menyimpan data dalam file Parquet, ORC atau Avro, sedangkan Delta Lake menggunakan Parquet secara eksklusif. Iceberg juga menggunakan lapisan metadata tiga tingkat alih-alih log transaksi tunggal seperti Delta Lake.
Iceberg terintegrasi secara native dengan banyak mesin kueri yang berbeda, dan merupakan pilihan umum untuk analisis berbasis SQL di danau data.
Seperti Delta Lake dan Iceberg, Hudi mempertahankan lapisan metadata di atas lapisan data. Hudi dapat menggunakan format file Parquet, HFile dan ORC, dan lapisan metadatanya berbentuk "garis waktu" yang mencatat semua yang terjadi di lapisan data.
Hudi dirancang untuk pemrosesan data tambahan, di mana kumpulan kecil data sering diproses. Fokus pada pemrosesan inkremental ini membuat Hudi menjadi pilihan umum untuk analitik waktu nyata dan pengambilan data perubahan (CDC).
Pengembangan format Delta Lake membantu membuka jalan bagi pembuatan data lakehouse.
Untuk waktu yang lama, organisasi terutama mengelola data mereka di gudang data. Meskipun berguna untuk analitik dan BI, gudang memerlukan skema yang ketat. Mereka tidak bekerja dengan baik dengan data yang tidak terstruktur atau semistruktur, yang telah menjadi lebih umum dan lebih penting karena organisasi meningkatkan investasi mereka dalam AI dan ML.
Munculnya danau data di awal tahun 2010-an memberikan organisasi cara untuk mengumpulkan semua jenis data dari semua jenis sumber data di satu lokasi.
Namun, danau data memiliki masalah tersendiri. Mereka sering kekurangan kontrol kualitas. Mereka tidak mendukung transaksi ACID, dan tidak mudah untuk melakukan kueri pada mereka secara langsung.
Agar data dapat digunakan, organisasi sering kali perlu membangun pipeline data ekstrak, transformasi, muat (ETL) yang terpisah untuk memindahkan data dari danau data ke gudang data.
Delta Lake muncul pada tahun 2016, menambahkan transaksi ACID, penegakan skema, dan perjalanan waktu ke danau data, menjadikannya lebih dapat diandalkan untuk kueri langsung dan analitik.
Dijadikan sumber terbuka pada tahun 2019, Delta Lake memainkan peran kunci dalam membentuk arsitektur data lakehouse, yang menggabungkan fleksibilitas danau data dengan kinerja gudang data.
Banyak organisasi membuat data lakehouse dengan membangun lapisan penyimpanan Delta Lake di atas danau data yang sudah ada dan mengintegrasikannya dengan mesin pengolah data seperti Spark atau Hive.
Data lakehouse membantu mendukung integrasi data dan merampingkan arsitektur data dengan menghilangkan kebutuhan untuk memelihara danau data dan gudang data secara terpisah, yang dapat menyebabkan silo data.
Pada gilirannya, arsitektur yang disederhanakan ini membantu memastikan bahwa ilmuwan data, insinyur data, dan pengguna lain dapat mengakses data yang mereka butuhkan saat mereka membutuhkannya. Beban kerja AI dan ML adalah contoh penggunaan umum untuk rumah danau data yang didukung Delta Lake.
Danau data sendiri, dengan sendirinya, sudah berguna untuk beban kerja ini karena dapat menampung sejumlah besar data terstruktur, tidak terstruktur, dan semiterstruktur.
Dengan menambahkan fitur-fitur seperti transaksi ACID dan penegakan skema, Delta Lake membantu memastikan kualitas dan keandalan data pelatihan dengan cara yang tidak dapat dilakukan oleh danau data standar.
Manfaatkan data Anda, di mana pun data tersebut berada, dengan data lakehouse terbuka hybrid untuk AI dan analitik.
Atasi tantangan data saat ini dengan arsitektur lakehouse. Terhubung ke data dalam hitungan menit, dengan cepat mendapatkan insight tepercaya dan mengurangi biaya gudang data Anda.
Dapatkan nilai data perusahaan dengan IBM Consulting, membangun organisasi berbasis insight yang memberikan keuntungan bisnis.