ALTER MATERIALIZED VIEW
Changes the table properties of a materialized view, Cassandra 3.0 and later.
Changes materialized view table properties. The statement returns no results.
Synopsis
ALTER MATERIALIZED VIEW [keyspace_name.] view_name [WITH table_options]
Syntax conventions | Description |
---|---|
UPPERCASE | Literal keyword. |
Lowercase | Not literal. |
Italics |
Variable value. Replace with a user-defined value. |
[] |
Optional. Square brackets ( [] ) surround optional command
arguments. Do not type the square brackets. |
( ) |
Group. Parentheses ( ( ) ) identify a group to choose from. Do
not type the parentheses. |
| |
Or. A vertical bar ( | ) separates alternative elements. Type
any one of the elements. Do not type the vertical bar. |
... |
Repeatable. An ellipsis ( ... ) indicates that you can repeat
the syntax element as often as required. |
'Literal string' |
Single quotation ( ' ) marks must surround literal strings in
CQL statements. Use single quotation marks to preserve upper case. |
{ key : value } |
Map collection. Braces ( { } ) enclose map collections or key
value pairs. A colon separates the key and the value. |
<datatype1,datatype2> |
Set, list, map, or tuple. Angle brackets ( < > ) enclose
data types in a set, list, map, or tuple. Separate the data types with a comma.
|
cql_statement; |
End CQL statement. A semicolon ( ; ) terminates all CQL
statements. |
[--] |
Separate the command line options from the command arguments with two hyphens (
-- ). This syntax is useful when arguments might be mistaken for
command line options. |
' <schema> ... </schema> ' |
Search CQL only: Single quotation marks ( ' ) surround an
entire XML schema declaration. |
@xml_entity='xml_entity_type' |
Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files. |
- keyspace_name
- To alter a materialized view in a keyspace other than the current keyspace, put the keyspace name in front of the name of the materialized view, followed by a period.
- view_name
- The name of the new materialized view.
- table_options
-
Table options are defined when the materialized view is created. Modify the table property in the WITH clause using the following syntax:
- Single
value:
Enclose string values in single quotes.option_name = 'string_value'
- Specify options with multiple subproperties in simple JSON
format:
option_name = { 'subproperty_name' : 'value', 'subproperty_name' : 'value', 'subproperty_name' : 'value' [, ...] }
- Separate multiple options with
AND:
ALTER MATERIALIZED VIEW keyspace_name.table_name WITH option_name = 'string_value' AND option_name = { 'subproperty_name' : 'string_value', 'subproperty_name' : numeric_value[, ...] };
- Single
value:
Examples
Modifying table properties
For an overview of properties that apply to materialized views, see table_options.
ALTER MATERIALIZED VIEW cycling.cyclist_by_age WITH comment = 'A most excellent and useful view' AND bloom_filter_fp_chance = 0.02;
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
CREATE MATERIALIZED VIEW cycling.cyclist_by_age AS
SELECT age, cid, birthday, country, name
FROM cycling.cyclist_mv
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.02
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = 'A most excellent and useful view'
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.DeflateCompressor'}
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';