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
Legend
Syntax conventions Description

UPPERCASE

Literal keyword.

Lowercase

Not literal.

< >

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.

<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

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
WARNING: cqlsh was built against 5.0-beta1, but this server is 5.0.  All features may not work!

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 additional_write_policy = '99p'
    AND allow_auto_snapshot = true
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': '100'}
    AND cdc = false
    AND comment = 'Based on table cyclist_base'
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy', 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB', 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333', 'target_sstable_size': '1GiB'}
    AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND memtable = 'default'
    AND crc_check_chance = 1.0
    AND extensions = {}
    AND gc_grace_seconds = 864000
    AND incremental_backups = true
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair = 'BLOCKING'
    AND speculative_retry = '99p';

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com