
Une base de données NoSQL moderne, alimentée par BlueQL.
SkyTable est une base de données NoSQL implémentée à l'aide de paradigmes de conception modernes, qui se concentre sur les performances, la flexibilité et l'évolutivité .
Skyable est principalement en mémoire, utilise des E / S asynchrones multithreads et un moteur de stockage basé sur AOF personnalisé avec des transactions de durabilité retardées avancées pour des E / S de disque efficaces. Le modèle de données de SkyTable est basé sur une structure axée sur la colonne avec prise en charge des modèles de données supplémentaires (WIP) . La requête est réalisée à l'aide de BlueQL, un langage de requête basé sur SQL endurci contre les attaques d'injection, écrits spécifiquement pour Skyable.
SkyTable est le mieux adapté aux applications qui doivent stocker des données à grande échelle, ont besoin de latences hautes et faibles.
Vous pouvez en savoir plus sur l'architecture de SkyTable, y compris des informations sur le clustering et l'implémentation HA sur lesquelles nous travaillons actuellement et les limitations de cette page.
model S pour définir des données avec des types complexes, des collections et plusEn savoir plus sur les fonctionnalités de Skyable ici.
./skyd --auth-root-password <password> avec votre choix de mot de passe pour le compte root . Le compte root est comme un compte root sur les systèmes basés sur UNIX qui contrôle tout../skysh , puis entrez votre mot de passe.Pour un guide plus détaillé sur l'installation et le déploiement, suivez le guide ici.
SkyTable a SPACE au lieu DATABASE en raison de différences opérationnelles significatives (et parce que SPACE S stockage beaucoup plus que les données tabulaires).
Avec le REPORT démarré, suivez ce guide :
Créez un space et passez-y:
CREATE SPACE myspace
USE myspace Créer un model :
CREATE MODEL myspace . mymodel (username: string, password: string, notes: list { type: string })La représentation rugueuse pour cela dans Rust serait:
pub struct MyModel {
username : String ,
password : String ,
notes : Vec < String > ,
} INSERT certaines données:
INSERT INTO mymodel( ' sayan ' , ' pass123 ' , []) UPDATE certaines données:
UPDATE mymodel SET notes + = " my first note " WHERE username = ' sayan ' SELECT des données
SELECT * FROM mymodel WHERE username = ' sayan 'Modifiez et exécutez vos propres requêtes pour comprendre comment les choses fonctionnent. Et puis assurez-vous de lire la documentation Apprenez BlueQL.
Pour un guide complet sur Skyable, c'est Architecture, BlueQL, des requêtes et plus encore, nous vous recommandons fortement de lire la documentation ici.
Bien que vous voyez des chaînes et d'autres valeurs utilisées ici, c'est ainsi parce que le client REPS paramétrize intelligemment les requêtes dans les coulisses. BlueQL a un paramétrage obligatoire . (Voir ci-dessous pour voir comment le client Rust gère cela)
Vous avez besoin d'un pilote client pour utiliser SkyTable dans vos programmes. Officiellement, nous maintenons un pilote client de rouille régulièrement mis à jour qui est généreusement licence sous la licence Apache-2.0 afin que vous puissiez l'utiliser n'importe où.
En utilisant le pilote client Rust, il est très simple d'exécuter des requêtes grâce au système de type puissant de Rust et aux macros:
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
}Vous pouvez trouver plus d'informations sur les pilotes clients sur cette page. Si vous souhaitez aider à rédiger un pilote client pour votre langue de choix, nous sommes là pour soutenir votre travail . Veuillez contacter: [email protected] ou laisser un message sur notre serveur Discord.
Nous utilisons exclusivement Discord pour la plupart des communications en temps réel - vous pouvez discuter avec les développeurs, les mainteneurs et nos incroyables utilisateurs. En dehors de cela, nous vous recommandons d'utiliser notre page de discussions GitHub pour toute question ou d'ouvrir un nouveau problème si vous pensez que vous avez trouvé un bogue.
Veuillez lire le guide de contribution ici.
Veuillez lire le document des remerciements.
SkyTable est distribué sous la licence AGPL-3.0. Vous ne pouvez pas utiliser le logo de Skyable pour d'autres projets.