
Una moderna base de datos NoSQL, impulsada por BlueQL.
SkyTable es una base de datos NoSQL implementada utilizando paradigmas de diseño modernos, que se centra en el rendimiento, la flexibilidad y la escalabilidad .
SkyTable es principalmente en memoria, utiliza E/S asíncronas multiproceso y un motor de almacenamiento basado en AOF personalizado con transacciones avanzadas de durabilidad retrasada para E/S de disco eficiente. El modelo de datos de SkyTable se basa en una estructura orientada a columnas con soporte para modelos de datos adicionales (WIP) . La consulta se realiza con BlueQL, un lenguaje de consulta basado en SQL endurecido contra ataques de inyección, escritos específicamente para SkyTable.
SkyTable es más adecuado para aplicaciones que necesitan almacenar datos a gran escala, necesitan un alto rendimiento y latencias bajas.
Puede leer más sobre la arquitectura de SkyTable, incluida la información sobre la implementación de clúster y HA en la que actualmente estamos trabajando y limitaciones en esta página.
model S para definir datos con tipos complejos, colecciones y másObtenga más información sobre las características de SkyTable aquí.
./skyd --auth-root-password <password> con su elección de una contraseña para la cuenta root . La cuenta root es como una cuenta root en sistemas basados en UNIX que tiene control sobre todo../skysh y luego ingrese su contraseña.Para una guía más detallada sobre la instalación y la implementación, siga la guía aquí.
SkyTable tiene SPACE en lugar de DATABASE debido a diferencias operativas significativas (y porque SPACE s almacena mucho más que los datos tabulares).
Con la replica iniciada, siga esta guía :
Crea un space y cambia a él:
CREATE SPACE myspace
USE myspace Crear un model :
CREATE MODEL myspace . mymodel (username: string, password: string, notes: list { type: string })La representación aproximada de esto en Rust sería:
pub struct MyModel {
username : String ,
password : String ,
notes : Vec < String > ,
} INSERT algunos datos:
INSERT INTO mymodel( ' sayan ' , ' pass123 ' , []) UPDATE algunos datos:
UPDATE mymodel SET notes + = " my first note " WHERE username = ' sayan ' SELECT algunos datos
SELECT * FROM mymodel WHERE username = ' sayan 'Modifique y ejecute sus propias consultas para comprender cómo funcionan las cosas. Y luego asegúrese de leer la documentación Learn Blueql.
Para una guía completa sobre SkyTable, es arquitectura, blueql, consultas y más, le recomendamos encarecidamente que lea la documentación aquí.
Mientras ve cuerdas y otros valores que se usan aquí, esto es así porque el cliente replica parametriza de manera inteligente las consultas detrás de escena. BlueQL tiene parametrización obligatoria . (Vea a continuación para ver cómo el cliente de óxido maneja esto)
Necesita un controlador de cliente para usar SkyTable en sus programas. Oficialmente, mantenemos un conductor de cliente de óxido actualizado regularmente que es una licencia generosamente bajo la licencia Apache-2.0 para que pueda usarlo en cualquier lugar.
Usando el controlador de cliente Rust, es muy sencillo ejecutar consultas gracias al poderoso sistema de tipos de Rust y 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
}Puede encontrar más información sobre los controladores de clientes en esta página. Si desea ayudar a escribir un controlador de cliente para su idioma de elección, estamos aquí para apoyar su trabajo . Comuníquese con: [email protected] o deje un mensaje en nuestro servidor de discordias.
Usamos exclusivamente Discord para la mayoría de las comunicaciones en tiempo real: puede chatear con desarrolladores, mantenedores y nuestros increíbles usuarios. Fuera de eso, le recomendamos que use nuestra página de discusiones de GitHub para cualquier pregunta o abra un nuevo problema si cree que ha encontrado un error.
Lea la guía contribuyente aquí.
Lea el documento de Agradecimientos.
SkyTable se distribuye bajo la licencia AGPL-3.0. No puede usar el logotipo de SkyTable para otros proyectos.