Delta Lake adalah kerangka kerja penyimpanan sumber terbuka yang memungkinkan pembangunan arsitektur Lakehouse dengan mesin komputasi termasuk Spark, PrestoDB, Flink, Trino, dan Hive serta API untuk Scala, Java, Rust, Ruby, dan Python.
Berikut ini adalah beberapa integrasi Delta Lake yang lebih populer, lihat delta.io/integrations untuk daftar lengkapnya:
Lihat dokumentasi online untuk rilis terbaru.
Pustaka Delta Standalone adalah pustaka Java node tunggal yang dapat digunakan untuk membaca dan menulis ke tabel Delta. Secara khusus, perpustakaan ini menyediakan API untuk berinteraksi dengan metadata tabel di log transaksi, menerapkan Protokol Log Transaksi Delta untuk mencapai jaminan transaksional format Delta Lake.
Ada dua jenis API yang disediakan oleh proyek Delta Lake.
DataFrameReader
/ Writer
(yaitu spark.read
, df.write
, spark.readStream
dan df.writeStream
). Opsi untuk API ini akan tetap stabil dalam rilis besar Delta Lake (misalnya, 1.xx).Delta Lake menjamin kompatibilitas ke belakang untuk semua tabel Delta Lake (yaitu, versi Delta Lake yang lebih baru akan selalu dapat membaca tabel yang ditulis oleh versi Delta Lake yang lebih lama). Namun, kami berhak untuk menghentikan kompatibilitas seiring dengan diperkenalkannya fitur-fitur baru pada protokol transaksi (yaitu, versi Delta Lake yang lebih lama mungkin tidak dapat membaca tabel yang dihasilkan oleh versi yang lebih baru).
Perubahan yang dapat menyebabkan gangguan pada protokol ditunjukkan dengan menambah versi pembaca/penulis minimum dalam tindakan Protocol
.
Dokumen Delta Transaction Log Protocol memberikan spesifikasi protokol transaksi.
Jaminan Delta Lake ACID didasarkan pada jaminan atomisitas dan ketahanan sistem penyimpanan. Secara khusus, kami memerlukan sistem penyimpanan untuk menyediakan hal berikut.
Lihat dokumentasi online tentang Konfigurasi Penyimpanan untuk detailnya.
Delta Lake memastikan kemampuan serial untuk membaca dan menulis secara bersamaan. Silakan lihat Kontrol Konkurensi Delta Lake untuk detail selengkapnya.
Kami menggunakan Masalah GitHub untuk melacak masalah yang dilaporkan komunitas. Anda juga dapat menghubungi komunitas untuk mendapatkan jawaban.
Kami menyambut baik kontribusi ke Delta Lake. Lihat CONTRIBUTING.md kami untuk lebih jelasnya.
Kita juga mematuhi Kode Etik Delta Lake.
Delta Lake dikompilasi menggunakan SBT.
Untuk mengkompilasi, jalankan
build/sbt compile
Untuk menghasilkan artefak, jalankan
build/sbt package
Untuk menjalankan tes, jalankan
build/sbt test
Untuk menjalankan rangkaian pengujian tunggal, jalankan
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
Untuk menjalankan satu pengujian di dalam dan satu rangkaian pengujian, jalankan
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
Lihat dokumen SBT untuk perintah lebih lanjut.
IntelliJ adalah IDE yang direkomendasikan untuk digunakan saat mengembangkan Delta Lake. Untuk mengimpor Delta Lake sebagai proyek baru:
~/delta
.File
> New Project
> Project from Existing Sources...
dan pilih ~/delta
.Import project from external model
pilih sbt
. Klik Next
.Project JDK
tentukan Java 1.8
JDK yang valid dan pilih untuk menggunakan shell SBT untuk memuat ulang dan builds
project reload
.Finish
.Setelah menunggu IntelliJ mengindeks, verifikasi pengaturan Anda dengan menjalankan rangkaian pengujian di IntelliJ.
DeltaLogSuite
Run 'DeltaLogSuite'
Jika Anda melihat kesalahan formulir
Error:(46, 28) object DeltaSqlBaseParser is not a member of package io.delta.sql.parser
import io.delta.sql.parser.DeltaSqlBaseParser._
...
Error:(91, 22) not found: type DeltaSqlBaseParser
val parser = new DeltaSqlBaseParser(tokenStream)
lalu ikuti langkah-langkah berikut:
build/sbt compile
.File
> Project Structure...
> Modules
> delta-spark
.Source Folders
, hapus semua folder target
, misalnya target/scala-2.12/src_managed/main [generated]
Apply
lalu jalankan kembali pengujian Anda. Lisensi Apache 2.0, lihat LISENSI.
Ada dua media komunikasi dalam komunitas Delta Lake.