
由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。
有关SkyTable的完整指南,它的架构,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的徽标用于其他项目。