ALTER MATERIALIZED VIEW
Changes materialized view table properties. The statement returns no results.
Restriction:
-
Changing columns is not supported.
-
Change log, CDC, is not available for materialized views.
Synopsis
ALTER MATERIALIZED VIEW [<keyspace_name>.]<view_name> WITH <table_options> [ AND <table_options> ... ] ;
Syntax legend
Syntax conventions | Description |
---|---|
UPPERCASE |
Literal keyword. |
Lowercase |
Not literal. |
|
Variable value. Replace with a user-defined value. |
|
Optional.
Square brackets ( |
|
Group.
Parentheses ( |
|
Or.
A vertical bar ( |
|
Repeatable.
An ellipsis ( |
|
Single quotation ( |
|
Map collection.
Braces ( |
Set, list, map, or tuple.
Angle brackets ( |
|
|
End CQL statement.
A semicolon ( |
|
Separate the command line options from the command arguments with two hyphens ( |
|
Search CQL only: Single quotation marks ( |
|
Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files. |
- keyspace_name
-
Selects a keyspace.
- view_name
-
Selects the materialized view.
- table_options
-
Table options are defined when the materialized view is created. Modify the table_options in the WITH clause using the following syntax:
-
Single value using the
<option_name> = '<value>'
. Enclose string values in single quotes, and no quotes for numbers, boolean, etc. -
Specify options with multiple subproperties in simple JSON format, <option_name> = { <option_map> }.
-
Set multiple table options using AND.
-
Examples
Modifying table properties
Add a comment and set the bloom filter properties:
ALTER MATERIALIZED VIEW cycling.cyclist_by_age
WITH comment = 'A most excellent and useful view'
AND bloom_filter_fp_chance = 0.02;
For an overview of properties that apply to materialized views, see table_options.
Modifying compression and compaction
Use a property map to specify new properties for compression or compaction.
ALTER MATERIALIZED VIEW cycling.cyclist_by_age
WITH compression = {
'sstable_compression' : 'DeflateCompressor',
'chunk_length_kb' : 64
}
AND compaction = {
'class' : 'SizeTieredCompactionStrategy',
'max_threshold' : 64
};
Changing caching
You can create and change caching properties using a property map.
This example changes the keys property to NONE
(the default is ALL
) and changes the rows_per_partition property to 15
.
ALTER MATERIALIZED VIEW cycling.cyclist_by_age
WITH caching = {
'keys' : 'NONE',
'rows_per_partition' : '15'
};
Viewing current materialized view properties
Use DESCRIBE MATERIALIZED VIEW to see all current properties.
DESCRIBE MATERIALIZED VIEW cycling.cyclist_by_age;
Results
CREATE MATERIALIZED VIEW cycling.cyclist_by_age AS
SELECT age, cid, birthday, country, name
FROM cycling.cyclist_base
WHERE age IS NOT NULL AND cid IS NOT NULL
PRIMARY KEY (age, cid)
WITH CLUSTERING ORDER BY (cid ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': '100'}
AND comment = 'Based on table cyclist_base'
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';