2023年8月5日土曜日

IRAN=PERUSHA. Rust سیستم وب سریع و بسیار امن شماره 1 است (اما اگر برنامه نویس هستید، Rust دشوار است، بنابراین بسیاری از افراد از آن اجتناب می کنند. بنابراین، به عنوان کاندید بعدی، زبان V سریع است، بنابراین پس از آن باید آن را ارتقا دهید تا ایمن تر شود. جدیدترین Python را بر اساس زبان V یا Rust توسعه دهید که سرعت بالا و امنیت بالا را با بودجه ادامه می دهد، و در اسرع وقت از چارچوب و WunderGraph FastAPI، React، Kintone و DATABASE پشتیبانی کنید. برای پاسخ به این امر، اگر دولت‌های سراسر جهان بتوانند هزینه‌های نظامی خود را کاهش دهند و هر سال و هر ماه بودجه‌ای برای صنعت وب و کاربران فراهم کنند، استفاده صلح‌آمیز از اینترنت که در اصل برای مقاصد نظامی بود، موهبتی خواهد بود. ماساهیرو ایشیزوکا، مدیر عامل Aon 090-7555-5011) معرفی پایگاه داده Rust SurrealDB.

https://qiita.com/iisaka51/items/45f23df873ea5be433c7


@iisaka51 (گویچی (ایساکا) یوکاوا)


زنگ

پایگاه داده

RocksDB

TiKV

surrealdb

آخرین به روز رسانی در 15 مه 2023

ارسال شده در 21 ژانویه 2023

معرفی

این سند SurrealDB را که در جولای 2022 منتشر شد، خلاصه می کند.


تاریخچه SurrealDB

مدت کوتاهی از عرضه آن می گذرد، اما توسعه آن در سال 2016 آغاز شد.

فوریه 2016 توسعه در GoLang آغاز شد

2017 به عنوان یک DB پشتیبان برای Jul SaaS شروع به کار کرد

تصمیم گرفت به عنوان منبع باز در اکتبر 2021 منتشر شود، بازسازی شده با Rust

نسخه بتا.1 ژوئیه 2022

نسخه بتای 5 اوت 2022

انتشار نسخه بتای ۸ اکتبر ۲۰۲۲

SurrealDB Inc.

2021 Nov SurrealDB Ltd. را در لندن تأسیس کرد

2023 ژانویه 6 میلیون دلار برای DBaaS جمع آوری کرد

پس زمینه SurrealDB

روند بزرگ

انتزاع پایگاه داده، ابری، بدون سرور

شرکت های بیشتری از DBaaS استفاده می کنند

نظرسنجی MariaDB نشان می‌دهد که 61% از توسعه‌دهندگان/اپراتورها انتقال کامل به DBaaS را تکمیل کرده‌اند یا در شرف تکمیل هستند.

در حال گسترش اندازه بازار DBaaS

24.8 میلیارد دلار تا سال 2025

محیط سرمایه گذاری غنی برای DBaaS

SingleStore 30 میلیون دلار جمع آوری می کند (2022/اکتبر)

EdgeDB 15 میلیون دلار جمع آوری می کند (2022/نوامبر)

SurrealDB 6 میلیون دلار جمع آوری می کند (2023/ژانویه)

محبوبیت SurrealDB

صفحه بالای اخبار Hacke

شماره 4 2022 / آگوست

شماره 2 2022/سپتامبر

رتبه بندی در مخازن ویژه GitHub

2022 / آگوست

2022 / دسامبر

ستاره گیت هاب

48 ساعت از 180 ستاره تا 1500 ستاره

در عرض 3 هفته پس از پرتاب به 5000 ستاره دست یافت

در 4 هفته پس از پرتاب به 10000 ستاره دست یافت

شماره 1 در لیست داغ بخش برنامه نویسی و Rust Reddit

مجوز SurrealDB

کد منبع SurrealDB مجوز کسب و کار نرم افزار 1.1 است

SDK و کتابخانه ها/درایورها MIT هستند

SurrealDB BSL می تواند از SurrealDB بدون محدودیت در تعداد گره ها استفاده کند مگر اینکه به عنوان یک DBaaS تجاری ارائه شود.

می تواند در محصولات گنجانده شود

SurrealDB BSL به مدت 4 سال معتبر است

1 ژانویه 2026 این محدودیت منقضی می شود و کد تحت مجوز فعلی آپاچی 2.0 منبع باز می شود.

رایگان برای استفاده برای هر منظور

ویژگی های SurrealDB

در Rust پیاده سازی شده است

احتمال وقوع خطای بخش بندی کمتر است

تلفیقی متقابل

نسبتا سریع در مقایسه با زبان های دیگر

سبک وزن: باینری اندازه لینوکس 24 مگابایت، macOS: 44 مگابایت

یک باینری هم برای سرور و هم برای کلاینت REPL

نصب آسان

پشتیبانی از HTTP/Restful API

پشتیبانی از WebSockets

DB های Backend: EchoDB، RocksDB، TiKV، FoundationDB، IndexedDB

ویژگی ها به عنوان پایگاه داده

بدون طرحواره: اشکالی ندارد که یک طرحواره تعریف کنید

فرمت های مختلف ذخیره سازی: جداول، اسناد، نمودارها و غیره.

تراکنش های ACID چند ردیفی و چند جدولی

پیوندها و اتصالات گراف جهت دار را ضبط کنید

بدون JOIN، اجتناب هوشمند از مشکل N+1

از پیش تعریف پرس و جوهای تحلیلی

انتخاب، تجمیع، گروه بندی و ترتیب به عنوان داده نوشته شده است

پرس و جوها را می توان با جاوا اسکریپت تعبیه شده گسترش داد

می تواند عبارات منظم در پرس و جو بنویسد (/regex/)

از GeoJSON پشتیبانی می کند

عملیات CRUD را می توان به صورت موازی اجرا کرد

نقاط قوت SurrealDB

همچنین دارای ویژگی های متمایز کننده است

کاربر می تواند مستقیماً از فرانت اند دسترسی داشته باشد

احراز هویت و مجوز را می توان به درستی در سمت پایگاه داده تنظیم کرد

داده ها را می توان در زمان واقعی همگام کرد

اسب های رقیب کمی مانند Google Firestore وجود دارد

فقط یک DB در هنگام استفاده در محل

اگر احراز هویت و مجوز می تواند در سمت پایگاه داده انجام شود ...

قادر به ارائه کنترل دسترسی مبتنی بر نقش خواهد بود

کنترل دسترسی بر اساس نقش های تعریف شده مانند مدیر، ویرایشگر و بیننده

نقاط ضعف 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 برنامه ریزی شده است

بررسی اجمالی معماری 2 لایه SurrealDB

surrealdb_arch.png


نمای کلی عملیات SurrealDB

surrealdb_dataflow.png


کد منبع

تعداد، تعداد خطوط شامل نظرات است (SurrealDB 1.0.0-beta.8)


به هر حال، MariaDB 10.9 بیش از 1.3 میلیون ردیف دارد (بیش از 12000 ردیف فقط برای مشتری)


|-- src // لایه API 4172

   |-- خالص 1981

|-- cli 895

|-- rpc 174

  ...

|-- lib/src // BL Layer 32261

   |-- sql 19030

  |-- fnc3524

  ...

|-- kvs 3286

|-- indexdb 220

|-- rocksdb 316

  |-- tikv 269

       ...

SurrealDB به طور شگفت انگیزی توابع کمی را پیاده سازی می کند

از nom برای تجزیه پرس و جو استفاده کنید

توابع را می توان برای ساختن تجزیه کننده ها به صورت تدریجی به هم متصل کرد

استفاده از echodb برای ذخیره سازی حافظه (Tobie)

KVS DB درون حافظه با کنترل همزمانی چند نسخه

استفاده از storekey برای ذخیره در KVS (Tobie)

رمزگذاری باینری حفظ نظم فرهنگ لغت

هنگام ایجاد کلیدهای KVS مرتب شده مفید است

Serialization/Deserialization از MsgPack و serde (rmp-serde) استفاده می کند.

از geo برای تجزیه GeoJSON استفاده کنید

از RocksDB در هنگام استفاده از فایل های محلی به عنوان ذخیره داده استفاده کنید

TiKV و FoundationDB به عنوان توابع DB توزیع شده استفاده می شوند

مواردی که SurrealDB را در KVS ذخیره می کند

فراداده

ساختارهایی مانند جداول، نمایه ها و دامنه ها

داده ها

مقدار شی که توسط SurealDB نگهداری می شود

نحوه ذخیره SurrealDB در KVS

ساختارهای Map Rust و MsgPack با اتصالات serde

صرفه جویی در اندازه ذخیره سازی

سریال‌سازی/آسیال‌زدایی کارآمد

دو راه برای دسترسی به داده های KVS وجود دارد

مبتنی بر کلید: با تعیین یک کلید خاص (سریع) یک مقدار دریافت کنید

اسکن: دریافت همه مقادیر با توجه به طیف وسیعی از کلیدها (آهسته)

ساختار سلسله مراتبی را به عنوان کلید حفظ کنید

فضای نام -> پایگاه داده -> جدول -> شناسه

SurrealDB محدوده ها را با ساختن کلیدها به صورت سلسله مراتبی به اسکن تبدیل می کند

نصب (آسان و سریع)

لینوکس

$ curl -sSf https://install.surrealdb.com | sh

سیستم عامل مک

$ brew install surrealdb/tap/surreal

پنجره ها

PS C:\> iwr https://windows.surrealdb.com -useb | iex

بارانداز/پادمن بارانداز

$ docker run --rm -p 8000:8000 surrealdb/surrealdb: آخرین شروع

$ podman run --rm -p 8000:8000 surrealdb/surrealdb: آخرین شروع

SurrealDB را شروع کنید

اولین آرگومان فرمان فرعی start، مقصد داده است


پیش فرض حافظه است

$ start surreal --user root --pass root memory

مقاصد دیگر


file:///path/to/data.db سیستم فایل (RocksDB)

rocksdb:///path/to/data.db RocksDB

tikv://endpoiint TiKV TiKV

fdb:[///path/to/clusterfile] FoundationDB (نیاز به بازسازی دارد)

حالت سختگیرانه


با گزینه --strict شروع کنید

اگر NAMESPACE، DATABASE تعریف نشده باشند، خطایی رخ می دهد

اگر TABLE را تعریف نکنید، خطایی رخ می دهد

تخلیه/بازیابی

با دستور فرعی صادرات به یک فایل تخلیه کنید

بازیابی از فایل با دستور فرعی import

صادرات سورئال $ --conn http://dev00:8000 --ns test --db test dump.db

واردات سورئال $ --conn http://dev00:8000 --ns test --db test dump.db

از کلاینت CLI متصل شوید

زیر دستور sql را اجرا کنید

$ سورئال sql --conn http://dev00:8000 --ns test --db test --pretty

--user و --pass احراز هویت کاربر/رمز عبور ROOT

اگر JSON را با -pretty خروجی بگیرید، فرمت شده و نمایش داده می شود.

--ns NAMESPACE نشان دهنده --db DATABASE است

سورئالD

0 コメント:

コメントを投稿