
BlueQLを搭載した最新のNOSQLデータベース。
SkyTableは、パフォーマンス、柔軟性、およびスケーラビリティに焦点を当てた最新のデザインパラダイムを使用して実装されたNOSQLデータベースです。
SkyTableは主にメモリで、マルチスレッドの非同期I/Oと、効率的なディスクI/Oの高度な遅延耐久性トランザクションを備えたカスタムAOFベースのストレージエンジンを使用しています。 SkyTableのデータモデルは、追加のデータモデル(WIP)をサポートする列指向の構造に基づいています。クエリは、SkyTable専用に記述されたインジェクション攻撃に対して強化されたSQLベースのクエリ言語であるBlueQLを使用して行われます。
SkyTableは、大規模なデータを保存する必要があるアプリケーションに最適です。高性能と低レイテンシが必要です。
SkyTableのアーキテクチャの詳細については、現在取り組んでいるクラスタリングやHAの実装に関する情報や、このページの制限などをご覧ください。
model Sを使用して、複雑なタイプ、コレクションなどのデータを定義しますSkyTableの機能の詳細については、こちらをご覧ください。
./skyd --auth-root-password <password> rootアカウントのパスワードを選択してください。 rootアカウントは、すべてを制御するUNIXベースのシステムのrootアカウントのようなものです。./skyshを起動してから、パスワードを入力します。インストールと展開に関するより詳細なガイドについては、こちらのガイドをご覧ください。
SkyTableは、大幅な運用上の違いのためにDATABASE Sの代わりにSPACE sを備えています( SPACE Sは表形式データよりもはるかに多く保存されているため)。
REPLを開始した状態で、このガイドに従ってください。
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の完全なガイドについては、アーキテクチャ、BlueQL、クエリなど、こちらのドキュメントをお読みください。
ここで使用されている文字列やその他の値が見られている間、これは、REPLクライアントが舞台裏のクエリをスマートにパラメーター化するためです。 BlueQLには必須のパラメーター化があります。 (Rustクライアントがこれをどのように処理するかを確認するには、以下を参照してください)
プログラムでSkyTableを使用するには、クライアントドライバーが必要です。公式には、Apache-2.0ライセンスに基づいて自由にライセンスされている定期的に更新されたRustクライアントドライバーを維持しているため、どこでも使用できます。
Rustクライアントドライバーを使用すると、Rustの強力なタイプシステムとマクロのおかげでクエリを実行するのは非常に簡単です。
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のロゴを使用することはできません。