Delta Lake เป็นเฟรมเวิร์กพื้นที่จัดเก็บข้อมูลแบบโอเพ่นซอร์สที่ช่วยให้สามารถสร้างสถาปัตยกรรม Lakehouse ด้วยกลไกการประมวลผล รวมถึง Spark, PrestoDB, Flink, Trino และ Hive และ API สำหรับ Scala, Java, Rust, Ruby และ Python
ต่อไปนี้คือบางส่วนของการผสานรวม Delta Lake ที่ได้รับความนิยม โปรดดู delta.io/integrations สำหรับรายการทั้งหมด:
ดูเอกสารออนไลน์สำหรับรุ่นล่าสุด
ไลบรารี Delta Standalone เป็นไลบรารี Java โหนดเดียวที่สามารถใช้เพื่ออ่านและเขียนลงในตาราง Delta โดยเฉพาะอย่างยิ่ง ไลบรารีนี้มี API เพื่อโต้ตอบกับข้อมูลเมตาของตารางในบันทึกธุรกรรม โดยใช้ Delta Transaction Log Protocol เพื่อให้บรรลุการรับประกันธุรกรรมในรูปแบบ Delta Lake
มี API สองประเภทที่จัดทำโดยโครงการ Delta Lake
DataFrameReader
/ Writer
(เช่น spark.read
, df.write
, spark.readStream
และ df.writeStream
) ตัวเลือกสำหรับ API เหล่านี้จะยังคงมีเสถียรภาพภายในรุ่นหลักของ Delta Lake (เช่น 1.xx)Delta Lake รับประกันความเข้ากันได้แบบย้อนหลังสำหรับตาราง Delta Lake ทั้งหมด (เช่น Delta Lake เวอร์ชันใหม่กว่าจะสามารถอ่านตารางที่เขียนโดย Delta Lake เวอร์ชันเก่าได้เสมอ) อย่างไรก็ตาม เราขอสงวนสิทธิ์ในการทำลายความเข้ากันได้เนื่องจากมีการนำคุณสมบัติใหม่ๆ มาใช้กับโปรโตคอลธุรกรรม (เช่น Delta Lake เวอร์ชันเก่าอาจไม่สามารถอ่านตารางที่สร้างโดยเวอร์ชันที่ใหม่กว่าได้)
การเปลี่ยนแปลงที่สำคัญในโปรโตคอลจะถูกระบุโดยการเพิ่มเวอร์ชันตัวอ่าน/ตัวเขียนขั้นต่ำในการดำเนินการ Protocol
เอกสาร Delta Transaction Log Protocol ระบุข้อกำหนดของโปรโตคอลธุรกรรม
การรับประกัน Delta Lake ACID นั้นขึ้นอยู่กับการรับประกันความเป็นอะตอมมิกและความทนทานของระบบจัดเก็บข้อมูล โดยเฉพาะอย่างยิ่ง เราต้องการระบบจัดเก็บข้อมูลเพื่อจัดเตรียมสิ่งต่อไปนี้
ดูเอกสารออนไลน์เกี่ยวกับการกำหนดค่าพื้นที่เก็บข้อมูลสำหรับรายละเอียด
Delta Lake ช่วยให้มั่นใจได้ถึง ความสามารถในการซีเรียลไลซ์ สำหรับการอ่านและเขียนพร้อมกัน โปรดดูการควบคุมการทำงานพร้อมกันของ Delta Lake สำหรับรายละเอียดเพิ่มเติม
เราใช้ปัญหา GitHub เพื่อติดตามปัญหาที่ชุมชนรายงาน คุณยังสามารถติดต่อชุมชนเพื่อรับคำตอบได้
เรายินดีต้อนรับการมีส่วนร่วมของ Delta Lake ดู CONTRIBUTING.md ของเราสำหรับรายละเอียดเพิ่มเติม
นอกจากนี้เรายังปฏิบัติตามหลักจรรยาบรรณของ Delta Lake
Delta Lake รวบรวมโดยใช้ SBT
เพื่อคอมไพล์รัน
build/sbt compile
หากต้องการสร้างสิ่งประดิษฐ์ ให้รัน
build/sbt package
หากต้องการดำเนินการทดสอบ ให้รัน
build/sbt test
หากต้องการดำเนินการชุดทดสอบชุดเดียว ให้รัน
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
หากต้องการดำเนินการทดสอบเดียวภายในและชุดทดสอบเดียว ให้รัน
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
อ้างถึงเอกสาร SBT สำหรับคำสั่งเพิ่มเติม
IntelliJ เป็น IDE ที่แนะนำให้ใช้ในการพัฒนา Delta Lake หากต้องการนำเข้า Delta Lake เป็นโครงการใหม่:
~/delta
File
> New Project
> Project from Existing Sources...
และเลือก ~/delta
Import project from external model
ให้เลือก sbt
คลิก Next
Project JDK
ให้ระบุ Java 1.8
JDK ที่ถูกต้อง และเลือกใช้เชลล์ SBT สำหรับ project reload
และ builds
โปรเจ็กต์Finish
หลังจากรอให้ IntelliJ สร้างดัชนี ให้ตรวจสอบการตั้งค่าของคุณโดยการรันชุดทดสอบใน IntelliJ
DeltaLogSuite
Run 'DeltaLogSuite'
หากพบเห็นข้อผิดพลาดของแบบฟอร์ม
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)
จากนั้นทำตามขั้นตอนเหล่านี้:
build/sbt compile
File
> Project Structure...
> Modules
> delta-spark
Source Folders
ให้ลบโฟลเดอร์ target
ใด ๆ เช่น target/scala-2.12/src_managed/main [generated]
Apply
จากนั้นทำการทดสอบของคุณอีกครั้ง Apache License 2.0 ดูใบอนุญาต
มีสองสื่อในการสื่อสารภายในชุมชนเดลต้าเลค