DataStax News: Astra Streaming now GA with new built-in support for Kafka and RabbitMQ. Read the press release.
DataStax DevCenter 1.5 is now MATERIALIZED with Apache Cassandra™ 3.0 support!
We’re very pleased to announce the availability of DataStax DevCenter 1.5, which can be downloaded here.
This new version is compatible with Apache Cassandra™ 3.0 supporting Materialized Views (blogdocs) and Multiple Indexes (docs) with content assist, quick fix suggestions, validations, and wizards!
You will also find numerous improvements and bug fixes in this release. Without further ado, let me walk you through the most notable features.
Apache Cassandra™ 3.0 introduced Materialized Views, which is a powerful feature to handle automated server-side denormalization, removing the need for client-side handling of this denormalization and ensuring eventual consistency between the base and view data.
The new CQL statements for Materialized Views are very similar to the statements to those for Tables. They support pretty much the same properties, with a few exceptions, but don’t worry, DevCenter will help you with that:
Fig 1: Materialized View statements highlighting and validation
Also, when you create a new Materialized View, it requires that you specify as its primary key the same columns in the primary key definition of the base table. This happens automatically for your convenience, if you’re using the Wizard:
Fig 2: Create Materialized View wizard
Of course, there’s an ALTER wizard too, but please note that you are not allowed to change the definition of a Materialized View meaning that you cannot drop or add columns to an existing view, and therefore we take you straight to the Advanced Settings page:
Fig 3: Alter Materialized View wizard
Once the views are created they can be found in the Schema View panel at two different levels: as a top-level element under its keyspace node along with all other views in that keyspace, and nested under the base table node, where you will also find all the other views for that specific table only.
Fig 4: Materialized Views shown in the Schema View panel
And by right clicking on the Materialized Views in this panel you will have the options to DROP and CLONE them as any other element.
It’s worth mentioning that you cannot drop a base table if you still have views associated with it. If you try to do that, DevCenter will display an error message like this:
Fig 5: Drop Table dialog checks for associated views
Starting in Cassandra 3.0, it’s possible to create multiple indices on the same column as long as they don’t duplicate themselves. Let’s see some examples of how that works in the DevCenter CQL editor:
Fig 6: Multiple Indexes support
Also, as you can see in the screenshot above, Cassandra 3.0 introduced the keyword VALUES for indices on a Map column. Previously, if there was no specific index type for a Map column, Cassandra would assume it was a values index, but now you can make it explicit by using the keyword. In DevCenter, it’s fine to use both notations, we treat them as the same thing, so in the example above, you can see that the index in line 13 is actually duplicating the index in line 12.
The Index Wizard has been updated, too. Up until now the Index Wizard would propose each column only once, but starting in DevCenter 1.5, it will recognize when you’re connected to a Cassandra 3.0 cluster and propose the same column multiple times.
UDF/UDT Drop Dialogs
DevCenter 1.5 now makes it easy to drop User-defined Types and User-defined Functions.
Dropping a schema element in CQL usually takes the form DROP <element-type> <element-name>, but for functions, when there are overloads, it’s required that you specify the entire function signature like this:
Fig 7: Drop function with full signature
Instead of doing that, now you can simply right-click on the function you want to drop in the Schema View and select the Drop Function option:
Fig 8: Drop function context menu
Similarly to the Materialized View and base Table reference check, we also check for references when dropping a function (that could be referenced by an Aggregate) and a Type (that could be referenced by a Table or another UDT) and if that’s the case you will see an error message listing all the dependencies.
Improved Timestamp Format
It has been requested by a few of our users (through the built-in Feedback form – don’t hesitate to use it, too) to have the dates in DevCenter use the same format as in cqlsh (the CQL shell for command-line queries) and now this is the format used:
Fig 9: Improved date format in the results grid and details panel
New Icons for Schema Entities
DevCenter 1.5 has some new and updated icons for schema entities that stand out more and provide a better indication of their purpose, check them out in the screenshot below:
Fig 10: New icons for functions, aggregates, types and materialized views