
قاعدة بيانات NOSQL الحديثة ، مدعومة من BlueQL.
SkyTable هي قاعدة بيانات NOSQL التي يتم تنفيذها باستخدام نماذج التصميم الحديثة ، والتي تركز على الأداء والمرونة وقابلية التوسع .
Skytable في الأساس في الذاكرة ، ويستخدم I/O غير المتزامن متعدد التشكل ومحرك تخزين مخصص قائم على AOF مع معاملات متأخرة متأخرة لاتخاذ القرص I/O الفعال. يعتمد نموذج بيانات SkyTable على بنية موجهة للأعمدة مع دعم لنماذج البيانات الإضافية (WIP) . يتم الاستعلام باستخدام BlueQL ، وهي لغة الاستعلام المستندة إلى SQL تصلب ضد هجمات الحقن ، مكتوبة خصيصًا لـ SkyTable.
يعد SkyTable أكثر ملاءمة للتطبيقات التي تحتاج إلى تخزين البيانات واسعة النطاق ، وتحتاج إلى اختلال عالي الأداء ومنخفضة.
يمكنك قراءة المزيد حول بنية Skytable ، بما في ذلك المعلومات المتعلقة بتنفيذ التجميع والتنفيذ الذي نعمل عليه حاليًا ، والقيود على هذه الصفحة.
model S لتحديد البيانات بأنواع معقدة ومجموعات وأكثر من ذلكتعرف على المزيد حول ميزات Skytable هنا.
./skyd --auth-root-password <password> مع اختيارك لكلمة مرور لحساب root . يشبه حساب root حساب root على الأنظمة القائمة على UNIX التي تتحكم في كل شيء../skysh ثم أدخل كلمة المرور الخاصة بك.للحصول على دليل أكثر تفصيلاً حول التثبيت والنشر ، اتبع الدليل هنا.
يحتوي SkyTable على SPACE S بدلاً من DATABASE S بسبب الاختلافات التشغيلية المميزة (ولأن SPACE S تخزن أكثر بكثير من البيانات الجدولية).
مع بدء التشغيل ، اتبع هذا الدليل :
قم بإنشاء space وتبديل إليها:
CREATE SPACE myspace
USE myspace إنشاء model :
CREATE MODEL myspace . mymodel (username: string, password: string, notes: list { type: string })التمثيل القاسي لهذا في الصدأ سيكون:
pub struct MyModel {
username : String ,
password : String ,
notes : Vec < String > ,
} INSERT بعض البيانات:
INSERT INTO mymodel( ' sayan ' , ' pass123 ' , []) UPDATE بعض البيانات:
UPDATE mymodel SET notes + = " my first note " WHERE username = ' sayan ' SELECT بعض البيانات
SELECT * FROM mymodel WHERE username = ' sayan 'قم بتعديل وتشغيل استفساراتك الخاصة لفهم كيفية عمل الأشياء. ثم تأكد من قراءة الوثائق تعلم BlueQL.
للحصول على دليل كامل على SkyTable ، إنه بنية ، بلو 2 ، الاستعلامات وأكثر من ذلك نوصيك بشدة بقراءة الوثائق هنا.
أثناء رؤية السلاسل والقيم الأخرى المستخدمة هنا ، هذا لأن عميل REPLE يقوم بذكاء بذكاء الاستعلامات وراء الكواليس. BlueQL لديه معلمة إلزامية . (انظر أدناه لترى كيف يتعامل عميل الصدأ مع هذا)
تحتاج إلى سائق عميل لاستخدام SkyTable في برامجك. من الناحية الرسمية ، نحافظ على سائق عميل Rust الذي تم تحديثه بانتظام والذي يتم ترخيصه بحرية بموجب ترخيص Apache-2.0 حتى تتمكن من استخدامه في أي مكان.
باستخدام برنامج تشغيل عميل Rust ، من السهل جدًا تشغيل الاستعلامات بفضل نظام Rust Strond Type and Macros:
use skytable :: { Config , query } ;
fn main ( ) {
let mut db = Config :: new_default ( "username" , "password" ) . connect ( ) . unwrap ( ) ;
let query = query ! ( "select username, password from myspace.mymodel where username = ?" , "sayan" ) ;
let ( username , password ) : ( String , Vec < u8 > ) = db . query_parse ( & query ) . unwrap ( ) ;
// do something with it
}يمكنك العثور على مزيد من المعلومات حول برامج تشغيل العملاء في هذه الصفحة. إذا كنت ترغب في المساعدة في كتابة برنامج تشغيل عميل للغة المفضلة لديك ، فنحن هنا لدعم عملك . يرجى الوصول إلى: [email protected] أو اترك رسالة على خادم Discord الخاص بنا.
نحن نستخدم Discord بشكل حصري لمعظم الاتصالات في الوقت الفعلي-يمكنك الدردشة مع المطورين والمحافظة ومستخدمينا المذهلين. خارج ذلك ، نوصيك باستخدام صفحة مناقشات GitHub لدينا لأي أسئلة أو فتح مشكلة جديدة إذا كنت تعتقد أنك وجدت خطأ.
يرجى قراءة الدليل المساهم هنا.
يرجى قراءة وثيقة الإقرار.
يتم توزيع Skytable بموجب ترخيص AGPL-3.0. لا يجوز لك استخدام شعار Skytable للمشاريع الأخرى.