
Современная база данных NOSQL, работающая от BlueQl.
SkyTable - это база данных NOSQL , реализованная с использованием парадигм современного дизайна, которая фокусируется на производительности, гибкости и масштабируемости .
SkyTable в основном находится в памяти, использует многопоточный асинхронный ввод-вывод и пользовательский двигатель на основе AOF с расширенными транзакциями с задержкой долговечности для эффективного диска ввода-вывода. Модель данных SkyTable основана на структуре, ориентированной на столбцы с поддержкой дополнительных моделей данных (WIP) . Запрос выполняется с использованием BlueQl, языка запросов на основе SQL, затвердевшего от инъекционных атак, написанных специально для SkyTable.
SkyTable лучше всего подходит для приложений, которые необходимы для хранения крупномасштабных данных, нуждаются в высокопроизводительных и низких задержках.
Вы можете прочитать больше об архитектуре SkyTable, включая информацию о кластеризации и реализации HA, над которой мы сейчас работаем, и ограничения на этой странице.
model S для определения данных со сложными типами, коллекциями и большим количествомУзнайте больше о чертах SkyTable здесь.
./skyd --auth-root-password <password> с выбора пароля для root учетной записи. root учетная запись похожа на root учетную запись в системах UNIX, которая контролирует все../skysh , а затем введите свой пароль.Для более подробного руководства по установке и развертыванию следуйте руководству здесь.
SkyTable имеет SPACE S вместо DATABASE из -за значительных операционных различий (и потому, что SPACE S хранит гораздо больше, чем табличные данные).
С началом реплики следуйте этому руководству :
Создайте space и переключитесь на него:
CREATE SPACE myspace
USE myspace Создайте model :
CREATE MODEL myspace . mymodel (username: string, password: string, notes: list { type: string })Грубое представление для этого в Rust было бы:
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 Smartly параметризует запросы за кулисами. BlueQl имеет обязательную параметризацию . (См. Ниже, чтобы увидеть, как клиент Rust справляется с этим)
Вам нужен клиент -драйвер, чтобы использовать SkyTable в ваших программах. Официально мы поддерживаем регулярно обновленный драйвер клиента Rust, который является лицензией по лицензии Apache-2.0, чтобы вы могли использовать его в любом месте.
Используя драйвер клиента Rust, очень просто запускать запросы благодаря мощной системе типа и макросам 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 для других проектов.