Delta Lake هو إطار تخزين مفتوح المصدر يتيح إنشاء بنية Lakehouse باستخدام محركات حوسبة تشمل Spark وPrestoDB وFlink وTrino وHive وواجهات برمجة التطبيقات لـ Scala وJava وRust وRuby وPython.
فيما يلي بعض عمليات تكامل Delta Lake الأكثر شيوعًا، راجع delta.io/integrations للحصول على القائمة الكاملة:
راجع الوثائق عبر الإنترنت للحصول على أحدث إصدار.
مكتبة Delta المستقلة هي مكتبة Java ذات عقدة واحدة يمكن استخدامها للقراءة من جداول Delta والكتابة إليها. على وجه التحديد، توفر هذه المكتبة واجهات برمجة التطبيقات للتفاعل مع بيانات تعريف الجدول في سجل المعاملات، وتنفيذ بروتوكول Delta Transaction Log لتحقيق ضمانات المعاملات لتنسيق Delta Lake.
هناك نوعان من واجهات برمجة التطبيقات التي يقدمها مشروع دلتا ليك.
DataFrameReader
/ Writer
(على سبيل المثال spark.read
و df.write
و spark.readStream
و df.writeStream
). ستظل خيارات واجهات برمجة التطبيقات هذه مستقرة ضمن الإصدار الرئيسي من Delta Lake (على سبيل المثال، 1.xx).تضمن Delta Lake التوافق مع الإصدارات السابقة لجميع جداول Delta Lake (أي أن الإصدارات الأحدث من Delta Lake ستكون دائمًا قادرة على قراءة الجداول المكتوبة بواسطة الإصدارات الأقدم من Delta Lake). ومع ذلك، فإننا نحتفظ بالحق في تحقيق التوافق مع تقديم ميزات جديدة لبروتوكول المعاملة (على سبيل المثال، قد لا يتمكن الإصدار الأقدم من Delta Lake من قراءة جدول تم إنتاجه بواسطة إصدار أحدث).
تتم الإشارة إلى التغييرات الطارئة في البروتوكول عن طريق زيادة الحد الأدنى لإصدار القارئ/الكاتب في إجراء Protocol
.
توفر وثيقة بروتوكول سجل معاملات دلتا مواصفات بروتوكول المعاملة.
تعتمد ضمانات Delta Lake ACID على ضمانات الذرية والمتانة لنظام التخزين. وعلى وجه التحديد، نطلب من نظام التخزين توفير ما يلي.
راجع الوثائق عبر الإنترنت حول تكوين التخزين للحصول على التفاصيل.
تضمن Delta Lake إمكانية التسلسل للقراءة والكتابة المتزامنة. يرجى الاطلاع على التحكم في التزامن في Delta Lake لمزيد من التفاصيل.
نحن نستخدم مشكلات GitHub لتتبع المشكلات التي أبلغ عنها المجتمع. يمكنك أيضًا الاتصال بالمجتمع للحصول على إجابات.
نحن نرحب بالمساهمات في بحيرة دلتا. راجع 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
.File
> New Project
> Project from Existing Sources...
وحدد ~/delta
.Import project from external model
حدد sbt
. انقر فوق Next
.Project JDK
، حدد Java 1.8
JDK صالحًا واختر استخدام SBT Shell لإعادة 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
ثم أعد تشغيل الاختبار. ترخيص أباتشي 2.0، راجع الترخيص.
هناك وسيلتان للاتصال داخل مجتمع دلتا ليك.