How is KDM different from other tools?

KDM is the first tool to automate schema design for Cassandra. It streamlines an end-to-end data modeling process that starts with a conceptual data model visualized in a familiar Chen’s notation and ends with a CQL script. Using its built-in intelligence, it automates several complex mappings that yield a physical data model.

How can KDM help me?

  • If you need to query your big data using Cassandra, KDM will perform complex data modeling tasks for you, and will ensure correctness of your schema design.
  • If you are trying to learn the basics of Cassandra database design, KDM will help you get started, as it only requires knowledge of conceptual modeling.
  • If you are a Cassandra expert, KDM will help you automate tedious tasks that you normally perform by hand, namely conceptual-to-logical mapping, logical-to-physical mapping, physical optimization, and CQL generation.
  • If you are teaching a big data or database course, KDM can help you explain the basics of NoSQL query-driven schema design to your students.

Learn More

What is Apache Cassandra?

Apache Cassandra is a transactional, scalable, and highly-available distributed database. It is known to manage some of the world’s largest datasets on clusters with many thousands of nodes deployed across multiple data centers. Cassandra data management use cases include product catalogs and playlists, sensor data and Internet of Things, messaging and social networking, recommendation, personalization, fraud detection, and numerous other applications. It belongs to the category of NoSQL and features a data model that differs significantly from the relational data model. Cassandra provides an SQL-like query language called Cassandra Query Language (CQL).

Why is Cassandra data modeling important?

Data modeling is essential when using Cassandra for big data applications. The performance of big data queries depends primarily on the correctness and efficiency of the data model. Incorrect or poorly designed data models may result in slow queries or even an inability to support query requirements. Therefore, data modeling is absolutely critical when storing and querying big data.

Why use Cassandra?

Cassandra offers a number of key advantages, including scalable and fault-tolerant peer-to-peer architecture, versatile and flexible data model that evolved from the BigTable data model, declarative and user-friendly Cassandra Query Language (CQL), and very efficient write and read access paths that enable critical big data applications to stay always on, scale to millions of transactions per second, and handle node and even entire data center failures with ease. These and other benefits have motivated hundreds of companies around the world to replace their relational storage solutions with Cassandra.

How is Cassandra used today?

Apple, Netflix, Ebay, Target, Comcast, New York Times, NASA, and hundreds of other companies and organizations around the world are using Cassandra to manage big data. The use cases include messaging, fraud detection, product catalogs and playlists, Internet of Things, Recommendations and Personalization, etc.

Can we use the relational approach with Cassandra?

No. The traditional data-driven philosophy of normalization and minimizing data redundancy is rather opposite to data modeling for Cassandra. Traditional database design is not suitable for developing correct, let alone efficient Cassandra data models.

How is Cassandra data modeling different?

First, Cassandra data modeling starts with and revolves around application queries (data access patterns). 
Second, Cassandra database schema design relies on data nesting, or schema denormalization. It is common (and perfectly OK!) that the same data is stored in multiple Cassandra tables to support different queries, which results in data duplication.

Do I need to know Cassandra to use KDM?

No. All you need is a basic understanding of conceptual modeling.

Can I see some sample data models to help me get started?

Sure, once you log in KDM, see the “Mapping Patterns” menu for a list of simple data models, and the “Use Cases” menu for more complex data models. Select any of the examples and click on “Logical” button to generate a logical data model.