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 providing seamless scalability and resilience.
TipA 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.
|Data definition||YCQL shell with
|Data Types||String, numeric, frozen types, UUID, JSONB ...|
|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.
|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|