YCQL features
Explore core features in YCQL
YugabyteDB's YCQL API has its roots in the Cassandra Query Language (CQL) and runs on top of YugabyteDB's distributed storage layer called DocDB. This architecture allows YCQL to support most Cassandra features, such as data types, queries, expressions, operators, and so on, and at the same provide seamless scalability and resilience.
Tip
A large portion of the documentation and examples written for Cassandra would work against YCQL.
Cassandra features in YCQL
The following table lists the most important YCQL features which you would find familiar if you have worked with Cassandra.
YCQL Feature | Description |
---|---|
Data definition | YCQL shell with ycqlsh , keysapces, tables, indexes, and types |
Data Types | String, numeric, frozen types, UUID, JSONB ... |
Data Manipulation | SELECT , INSERT , UPDATE , DELETE ... |
Expressions | Simple Values, Function calls, Subscript ... |
Operators | Binary, Unary, Null operators ... |
Security | Roles and Permissions |
Going beyond Cassandra
YCQL has a number of features that are not present in Cassandra, as summarized in the following table.
YCQL Feature | Description |
---|---|
Strongly consistent with Raft replication | Enables strong consistency across replicas |
Fast transactions | Single round-trip distributed transactions |
Native JSONB support | Enables document data modelling like MongoDB |
Fast and consistent Secondary Indexes | Immediately consistent indexes with point lookups (no fan-out) |
Secondary indexes with JSONB datatype | Efficient reads with consistency and flexibility in data model |