https://qiita.com/iisaka51/items/45f23df873ea5be433c7
@ iisaka51 (Goichi (Iisaka) Yukawa)
الصدأ
قاعدة البيانات
روكس دي بي
تيكف
سوريالدب
تم التحديث الأخير في 15 مايو 2023
نُشر في 21 يناير 2023
مقدمة
تلخص هذه الوثيقة SurrealDB ، الذي صدر في يوليو 2022.
تاريخ SurrealDB
لقد مر وقت قصير منذ إصداره ، ولكن بدأ التطوير في عام 2016.
فبراير 2016 بدأ التطوير في GoLang
2017 بدأت العملية كقاعدة بيانات خلفية لـ Jul SaaS
قررت النشر كمصدر مفتوح في أكتوبر 2021 ، أعيد بناؤها باستخدام Rust
إصدار 2022 Jul Beta.1
2022 أغسطس إصدار بيتا 5
إصدار 2022 Oct Beta.8
SurrealDB Inc.
2021: إنشاء Nov SurrealDB Ltd. في لندن
جمعت يناير 2023 6 ملايين دولار لـ DBaaS
خلفية SurrealDB
اتجاه كبير
تجريد قواعد البيانات ، السحابة ، بدون خادم
المزيد والمزيد من الشركات التي تتبنى DBaaS
أظهر استطلاع MariaDB أن 61٪ من المطورين / المشغلين قد أكملوا أو على وشك إكمال الترحيل الكامل إلى DBaaS
توسيع حجم سوق DBaaS
24.8 مليار دولار بحلول عام 2025
بيئة استثمارية غنية لـ DBaaS
سينغل ستور ترفع 30 مليون دولار (2022 / أكتوبر)
إيدج دي بي ترفع 15 مليون دولار (2022 / نوفمبر)
SurrealDB يجمع 6 ملايين دولار (2023 / يناير)
شعبية SurrealDB
أعلى الصفحة أخبار هاك
رقم 4 2022 / أغسطس
رقم 2 2022 / سبتمبر
مرتبة في مستودعات جيثب المميزة
2022 / أغسطس
2022 / ديسمبر
جيثب ستار
48 ساعة من 180 نجمة إلى 1500 نجمة
حقق 5000 نجمة في 3 أسابيع بعد الإطلاق
حقق 10000 نجمة في 4 أسابيع بعد الإطلاق
# 1 على القائمة الساخنة لقسم البرمجة والصدأ في Reddit
ترخيص SurrealDB
كود مصدر SurrealDB هو ترخيص برامج الأعمال التجارية 1.1
SDK والمكتبات / السائقين هي معهد ماساتشوستس للتكنولوجيا
يمكن لـ SurrealDB BSL استخدام SurrealDB مع عدم وجود حد لعدد العقد ما لم يتم توفيرها على أنها DBaaS تجارية.
يمكن دمجها في المنتجات
SurrealDB BSL صالح لمدة 4 سنوات
1 يناير 2026 تنتهي صلاحية هذا القيد ويصبح الرمز مفتوح المصدر بموجب ترخيص Apache 2.0 الحالي
مجاني للاستخدام لأي غرض
ميزات SurrealDB
نفذت في الصدأ
من غير المرجح أن يحدث خطأ الانقسام
عبر التجميع
سريع نسبيًا مقارنة باللغات الأخرى
خفيف الوزن: حجم ثنائي Linux 24 ميجابايت ، macOS: 44 ميجابايت
ثنائي واحد لكل من الخادم والعميل REPL
سهل التركيب
يدعم HTTP / API المريح
يدعم WebSockets
قواعد بيانات الخلفية: EchoDB و RocksDB و TiKV و FoundationDB و IndexedDB
الميزات كقاعدة بيانات
المخطط: لا بأس في تحديد مخطط
تنسيقات تخزين متنوعة: جداول ، مستندات ، رسوم بيانية ، إلخ.
معاملات حمض متعدد الصفوف ، متعدد الجداول
سجل الروابط ووصلات الرسم البياني الموجهة
لا تنضم ، وتجنب ذكي لمشكلة N + 1
التحديد المسبق للاستعلامات التحليلية
التحديد والتجميع والتجميع والترتيب أثناء كتابة البيانات
يمكن توسيع الاستعلامات باستخدام JavaScript مدمج
يمكن كتابة التعبيرات العادية في الاستعلامات (/ regex /)
يدعم GeoJSON
يمكن تنفيذ عمليات CRUD بالتوازي
قدرات SurrealDB
كما أن لديها ميزات مميزة
يمكن للمستخدم الوصول مباشرة من الواجهة الأمامية
يمكن تعيين المصادقة والتفويض بشكل صحيح على جانب قاعدة البيانات
يمكن مزامنة البيانات في الوقت الحقيقي
هناك عدد قليل من الخيول المتنافسة ، مثل Google Firestore
قاعدة بيانات واحدة فقط عند استخدامها في أماكن العمل
إذا كان من الممكن إجراء المصادقة والتفويض على جانب قاعدة البيانات ...
سيكون قادرًا على توفير التحكم في الوصول المستند إلى الدور
التحكم في الوصول استنادًا إلى الأدوار المحددة مثل المسؤول والمحرر والعارض
نقاط الضعف في SurrealDB
لم يمض وقت طويل على نشره (يوليو 2022)
قد توجد ثغرات أمنية وأخطاء محتملة
تم إصدار PostgreSQL لأول مرة في عام 1997 ، وسابقه Postgress في عام 1989)
الإصدار الأول من MySQL في عام 1995
تم إصدار MariaDB لأول مرة في عام 2009
تم إصدار MongoDB لأول مرة في عام 2009
القليل من المعلومات
كما يتم إنتاج وثيقة رسمية.
إذا كنت تواجه مشكلة ، اقرأ الكود المصدري
لم يتم تنفيذ جميع الميزات
SurrealDB غير مربح في الوقت الحالي: إطلاق خدمة DBaaS في عام 2023
الميزات قيد التطوير حاليًا (ليست كاملة حتى في الإصدار التجريبي 9)
دعم متعدد العقد في الوضع الموزع
تكرار
فحص طبي
GraphQL
FULLTEXT - فهرس النص الكامل
مجال التعلم
تم تكوينه تلقائيًا استنادًا إلى تحليل التعلم الآلي لحقول محددة
إصدار جدول مؤقت
القدرة على "العودة في الوقت المناسب" عند تصفح البيانات
تمييز كود IDE (Atom ، VSCode ، Vim ...)
تم التخطيط لإصدار تطبيق I / F للمستخدم كـ 1.x
نظرة عامة على هندسة SurrealDB 2-Tier
surrealdb_arch.png
نظرة عامة على عملية SurrealDB
surrealdb_dataflow.png
مصدر الرمز
الرقم هو عدد الأسطر بما في ذلك التعليقات (SurrealDB 1.0.0-beta.8)
بالمناسبة ، يحتوي MariaDB 10.9 على أكثر من 1.3 مليون صف (أكثر من 12000 صف للعميل وحده)
| - src // API layer 4172
| - نت 1981
| - CLI 895
| - RPC 174
...
| - lib / src // BL Layer 32261
| - SQL 19030
| - fnc3524
...
| - كيلو فولت 3286
| - indexdb 220
| - روكسدب 316
| - تكف 269
...
SurrealDB تنفذ وظائف قليلة بشكل مدهش
استخدام الاسم لتحليل الاستعلام
يمكن تجميع الوظائف لبناء موزعي تدريجي
استخدام echodb لتخزين الذاكرة (توبي)
في الذاكرة KVS DB مع التحكم في التزامن متعدد الإصدارات
استخدم storekey للتخزين في KVS (Tobie)
ترميز ثنائي مع الحفاظ على ترتيب القاموس
مفيد عند إنشاء مفاتيح KVS مرتبة
يستخدم التسلسل / إلغاء التسلسل MsgPack و serde (rmp-serde)
استخدم geo لتحليل GeoJSON
استخدم RocksDB عند استخدام الملفات المحلية كمخزن بيانات
يتم استخدام TiKV و FoundationDB كوظائف DB موزعة
عناصر مخازن SurrealDB في KVS
البيانات الوصفية
الهياكل مثل الجداول والفهارس والنطاقات
بيانات
قيمة الكائن التي يحتفظ بها SurealDB
كيفية حفظ SurrealDB إلى KVS
قم بتعيين هياكل Rust و MsgPack باستخدام روابط serde
توفير حجم التخزين
التسلسل الفعال / إلغاء التسلسل
هناك طريقتان للوصول إلى بيانات KVS
قائم على المفتاح: احصل على قيمة عن طريق تحديد مفتاح معين (سريع)
مسح ضوئي: احصل على جميع القيم المعطاة لمجموعة من المفاتيح (بطيئة)
احتفظ بالهيكل الهرمي كمفتاح
مساحة الاسم -> قاعدة البيانات -> الجدول -> المعرف
يحول SurrealDB النطاقات للمسح الضوئي عن طريق إنشاء المفاتيح بشكل هرمي
التثبيت (سهل وسريع)
لينكس
$ curl -sSf https://install.surrealdb.com | sh
macOS
$ brew install surrealdb / tap / surreal
شبابيك
ملاحظة C: \> iwr https://windows.surrealdb.com -useb | iex
عامل ميناء / بودمان
تشغيل Docker $ --rm -p 8000: 8000 Surrealdb / Surrealdb: أحدث بداية
تشغيل podman $ --rm -p 8000: 8000 Surrealdb / Surrealdb: أحدث بداية
ابدأ SurrealDB
الوسيطة الأولى للأمر الفرعي start هي وجهة البيانات
الافتراضي هو الذاكرة
بداية سريالية $ - جذر المستخدم - تجاوز ذاكرة الجذر
وجهات أخرى
file: ///path/to/data.db نظام الملفات (RocksDB)
rocksdb: ///path/to/data.db RocksDB
tikv: // endpoiint TiKV TiKV
fdb: [/// مسار / إلى / ملف الكتلة] FoundationDB (يتطلب إعادة البناء)
الوضع الصارم
ابدأ بخيار - صارم
سيحدث خطأ إذا لم يتم تعريف NAMESPACE و DATABASE
إذا لم تقم بتعريف TABLE ، سيحدث خطأ
تفريغ / استعادة
تفريغ إلى ملف باستخدام الأمر الفرعي للتصدير
الاستعادة من ملف باستخدام الأمر الفرعي للاستيراد
تصدير سريالية $ --conn http: // dev00: 8000 - ns test --db test dump.db
استيراد سريالي $ --conn http: // dev00: 8000 - ns test --db test dump.db
الاتصال من عميل CLI
قم بتنفيذ الأمر الفرعي sql
$ Surreal sql --conn http: // dev00: 8000 - اختبار ns - اختبار db - جميل
- المستخدم و- تمرير مستخدم / كلمة مرور مصادقة ROOT
إذا أخرجت JSON بعلامة - جميلة ، فسيتم تنسيقها وعرضها.
--ns NAMESPACE يشير إلى قاعدة بيانات --db
سريالي د
0 コメント:
コメントを投稿