
Um banco de dados moderno do NOSQL, alimentado por Blueql.
A SkyTable é um banco de dados NoSQL implementado usando paradigmas de design modernos, que se concentra no desempenho, flexibilidade e escalabilidade .
A SkyTable é principalmente na memória, usa a E/S assíncrona multithread e um mecanismo de armazenamento personalizado baseado em AOF com transações de durabilidade adiantadas avançadas para E/S eficiente de disco. O modelo de dados da SkyTable é baseado em uma estrutura orientada a coluna com suporte para modelos de dados adicionais (WIP) . A consulta é feita usando o BlueQL, uma linguagem de consulta baseada em SQL endurecida contra ataques de injeção, escritos especificamente para a SkyTable.
A SkyTable é mais adequada para aplicações que precisam armazenar dados em larga escala, precisam de latências de alto desempenho e baixas.
Você pode ler mais sobre a arquitetura da SkyTable, incluindo informações sobre a implementação de cluster e HA em que estamos trabalhando atualmente e limitações nesta página.
model S para definir dados com tipos complexos, coleções e muito maisSaiba mais sobre os recursos da SkyTable aqui.
./skyd --auth-root-password <password> com a sua opção de senha para a conta root . A conta root é como uma conta root em sistemas baseados em UNIX que têm controle sobre tudo../skysh e digite sua senha.Para um guia mais detalhado sobre instalação e implantação, siga o guia aqui.
A SkyTable possui SPACE s em vez de DATABASE devido a diferenças operacionais significativas (e porque SPACE armazena muito mais que os dados tabulares).
Com o repl, siga este guia :
Crie um space e mude para ele:
CREATE SPACE myspace
USE myspace Crie um model :
CREATE MODEL myspace . mymodel (username: string, password: string, notes: list { type: string })A representação aproximada para isso em ferrugem seria:
pub struct MyModel {
username : String ,
password : String ,
notes : Vec < String > ,
} INSERT alguns dados:
INSERT INTO mymodel( ' sayan ' , ' pass123 ' , []) UPDATE alguns dados:
UPDATE mymodel SET notes + = " my first note " WHERE username = ' sayan ' SELECT alguns dados
SELECT * FROM mymodel WHERE username = ' sayan 'Modifique e execute suas próprias consultas para entender como as coisas funcionam. E depois leia a documentação Learn BlueQL.
Para um guia completo sobre a SkyTable, é arquitetura, blueql, consultas e muito mais, recomendamos que você leia a documentação aqui.
Enquanto você vê strings e outros valores sendo usados aqui, isso ocorre porque o cliente REPT parametriora inteligentemente as consultas nos bastidores. O BlueQL possui parametrização obrigatória . (Veja abaixo para ver como o cliente de ferrugem lida com isso)
Você precisa de um driver cliente para usar o SkyTable em seus programas. Oficialmente, mantemos um driver de cliente Rust atualizado regularmente, que é liberalmente licença sob a licença Apache-2.0, para que você possa usá-lo em qualquer lugar.
Usando o driver do cliente Rust, é muito simples executar consultas graças ao poderoso sistema de tipos e macros da RUR:
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
}Você pode encontrar mais informações sobre os drivers de clientes nesta página. Se você deseja ajudar a escrever um driver cliente para o seu idioma de escolha, estamos aqui para apoiar seu trabalho . Entre em contato com: [email protected] ou deixe uma mensagem em nosso servidor Discord.
Utilizamos exclusivamente a Discord para a maioria das comunicações em tempo real-você pode conversar com desenvolvedores, mantenedores e nossos usuários incríveis. Fora disso, recomendamos que você use nossa página de discussões do Github para obter perguntas ou abra um novo problema se achar que encontrou um bug.
Por favor, leia o guia contribuinte aqui.
Leia o documento Agradecimentos.
A SkyTable é distribuída sob a licença AGPL-3.0. Você não pode usar o logotipo da SkyTable para outros projetos.