
由BlueQl提供支持的現代NOSQL數據庫。
SkyTable是使用現代設計範式實施的NOSQL數據庫,重點是性能,靈活性和可擴展性。
SkyTable主要是內存中的,使用多線程異步I/O和基於自定義的AOF存儲引擎,具有高級延遲耐久性交易,以實現高效磁盤I/O。 SkyTable的數據模型基於面向列的結構,並支持其他數據模型(WIP) 。查詢是使用BlueQl進行的,BlueQL是一種基於SQL的查詢語言,該語言對注射攻擊進行了硬化,專門針對SkyTable編寫。
SkyTable最適合需要存儲大型數據,需要高性能和低潛伏期的應用程序。
您可以閱讀有關SkyTable架構的更多信息,包括有關我們當前正在處理的群集和HA實現的信息以及此頁面上的限制。
model S定義具有復雜類型,收藏等的數據在此處了解有關SkyTable功能的更多信息。
./skyd --auth-root-password <password>使用您選擇的root帳戶密碼。 root帳戶就像基於UNIX的系統上的root帳戶一樣,它可以控制所有內容。./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。
有關天空塔的完整指南,它的架構,blueql,查詢等等,我們強烈建議您在此處閱讀文檔。
當您在此處看到字符串和其他值時,之所以如此,是因為REPL客戶端智能參數化了幕後的查詢。 BlueQL具有強制性參數化。 (請參閱下面查看Rust客戶如何處理此問題)
您需要客戶驅動程序在程序中使用天空塔。正式地,我們維護定期更新的Rust Client驅動程序,該驅動程序在Apache-2.0許可下自由許可,以便您可以在任何地方使用它。
使用Rust Client驅動程序,由於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的徽標用於其他項目。