Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Skytable is a modern scalable NoSQL database with BlueQL, designed for performance, scalability and flexibility. Skytable gives you spaces, models, data types, complex collections and more to build powerful experiences

License

NotificationsYou must be signed in to change notification settings

skytable/skytable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A modern NoSQL database, powered by BlueQL.

GitHub release (with filter)GitHub Workflow Status (with event)DiscordDocsStatic Badge

What is Skytable?

Skytable is aNoSQL database implemented using modern design paradigms, that focuses onperformance, flexibility, and scalability.

Skytable is primarily in-memory, uses multithreaded asynchronous I/O and a custom AOF-based storage engine with advanced delayed durability transactions for efficient disk I/O. Skytable's data model is based on a column-oriented structure with support for additional data models(WIP). Querying is done using BlueQL, a SQL-based query language hardened against injection attacks, written specifically for Skytable.

Skytable is best-suited for applications that need to store large-scale data, need high-performance and low latencies.

You can read more about Skytable's architecture, including information on the clustering and HA implementation that we're currently working on, and limitationson this page.

Features

  • Spaces, models and more: For flexible data definition
  • Powerful querying with BlueQL: A modern query language based on SQL
  • Rich data modeling: Usemodels to define data with complex types, collections and more
  • Performant: Optimized multithreaded network I/O, write batching and several other optimizations
  • Secure: Injection deterrence using BlueQL and other memory safety measures
  • Enforces best practices: If you're building with Skytable today, the practices you'll get used to here will let you easily take on the job of building performant systems, even outside Skytable

Learn more aboutSkytable's features here.

Getting started

  1. Set up Skytable on your machine: You'll need to download a bundled release filefrom the releases page. Unzip the files and you're ready to go.
  2. Start the database server:./skyd --auth-root-password <password> with your choice of a password for theroot account. Theroot account is just like aroot account on Unix based systems that has control over everything.
  3. Start the interactive client REPL:./skysh and then enter your password.
  4. Your setup is now complete.

For a more detailed guide on installation and deployment,follow the guide here.

Using Skytable

Skytable hasSPACEs instead ofDATABASEs due to signficant operational differences (and becauseSPACEs store a lot more than tabular data).

With the REPL started, follow this guide:

  1. Create aspace and switch to it:

    CREATE SPACE myspaceUSE myspace
  2. Create amodel:

    CREATE MODELmyspace.mymodel(username: string, password: string, notes: list { type: string })

    The rough representation for this in Rust would be:

    pubstructMyModel{username:String,password:String,notes:Vec<String>,}
  3. INSERT some data:

    INSERT INTO mymodel('sayan','pass123', [])
  4. UPDATE some data:

    UPDATE mymodelSET notes+="my first note"WHERE username='sayan'
  5. SELECT some data

    SELECT*FROM mymodelWHERE username='sayan'
  6. Modify and run your own queries to understand how things work.And then make sure youread the documentation learn BlueQL.

For a complete guide on Skytable, it's architecture, BlueQL, queries and more we strongly recommend you toread the documentation here.

While you're seeing strings and other values being used here, this is so because the REPL client smartly parameterizes queries behind the scenes.BlueQL has mandatory parameterization. (See below to see how the Rust client handles this)

Find a client driver

You need a client driver to use Skytable in your programs. Officially, we maintain a regularly updatedRust client driver which is liberally license under the Apache-2.0 license so that you can use it anywhere.

Using the Rust client driver, it's very straightforward to run queries thanks to Rust's powerful type system and macros:

use skytable::{Config, query};fnmain(){letmut 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}

You can find more information on client drivers onthis page. If you want to help write a client driver for your language of choice,we're here to support your work. Please reach out to:hey@skytable.io or leave a message on our Discord server.

Getting help

We exclusively useDiscord for most real-time communications — you can chat with developers, maintainers, and our amazing users. Outside that, we recommend that you use ourGitHub Discussions page for any questions or open a new issue if you think you've found a bug.

Contributing

Please read thecontributing guide here.

Acknowledgements

Please read theacknowledgements document.

License

Skytable is distributed under theAGPL-3.0 License.You may not use Skytable's logo for other projects.

About

Skytable is a modern scalable NoSQL database with BlueQL, designed for performance, scalability and flexibility. Skytable gives you spaces, models, data types, complex collections and more to build powerful experiences

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors11

Languages


[8]ページ先頭

©2009-2025 Movatter.jp