cassandra.metadata - Schema and Ring Topology

cassandra.metadata.cql_keywords

Set of keywords in CQL.

Derived from .../cassandra/src/java/org/apache/cassandra/cql3/Cql.g

cassandra.metadata.cql_keywords_unreserved

Set of unreserved keywords in CQL.

Derived from .../cassandra/src/java/org/apache/cassandra/cql3/Cql.g

cassandra.metadata.cql_keywords_reserved

Set of reserved keywords in CQL.

class cassandra.metadata.Metadata[source]

Holds a representation of the cluster schema and topology.

cluster_name = None

The string name of the cluster.

partitioner = None

The string name of the partitioner for the cluster.

token_map = None

A TokenMap instance describing the ring topology.

keyspaces = None

A map from keyspace names to matching KeyspaceMetadata instances.

export_schema_as_string()[source]

Returns a string that can be executed as a query in order to recreate the entire schema. The string is formatted to be human readable.

get_replicas(keyspace, key)[source]

Returns a list of Host instances that are replicas for a given partition key.

add_or_return_host(host)[source]

Returns a tuple (host, new), where host is a Host instance, and new is a bool indicating whether the host was newly added.

all_hosts()[source]

Returns a list of all known Host instances in the cluster.

Schemas

class cassandra.metadata.KeyspaceMetadata[source]

A representation of the schema for a single keyspace.

name = None

The string name of the keyspace.

durable_writes = True

A boolean indicating whether durable writes are enabled for this keyspace or not.

replication_strategy = None

A ReplicationStrategy subclass object.

tables = None

A map from table names to instances of TableMetadata.

indexes = None

A dict mapping index names to IndexMetadata instances.

user_types = None

A map from user-defined type names to instances of UserType.

New in version 2.1.0.

functions = None

A map from user-defined function signatures to instances of Function.

New in version 2.6.0.

aggregates = None

A map from user-defined aggregate signatures to instances of Aggregate.

New in version 2.6.0.

views = None

A dict mapping view names to MaterializedViewMetadata instances.

export_as_string()[source]

Returns a CQL query string that can be used to recreate the entire keyspace, including user-defined types and tables.

as_cql_query()[source]

Returns a CQL query string that can be used to recreate just this keyspace, not including user-defined types and tables.

class cassandra.metadata.UserType[source]

A user defined type, as created by CREATE TYPE statements.

User-defined types were introduced in Cassandra 2.1.

New in version 2.1.0.

keyspace = None

The string name of the keyspace in which this type is defined.

name = None

The name of this type.

field_names = None

An ordered list of the names for each field in this user-defined type.

field_types = None

An ordered list of the types for each field in this user-defined type.

as_cql_query(formatted=False)[source]

Returns a CQL query that can be used to recreate this type. If formatted is set to True, extra whitespace will be added to make the query more readable.

class cassandra.metadata.Function[source]

A user defined function, as created by CREATE FUNCTION statements.

User-defined functions were introduced in Cassandra 2.2

New in version 2.6.0.

keyspace = None

The string name of the keyspace in which this function is defined

name = None

The name of this function

argument_types = None

An ordered list of the types for each argument to the function

argument_names = None

An ordered list of the names of each argument to the function

return_type = None

Return type of the function

language = None

Language of the function body

body = None

Function body string

called_on_null_input = None

Flag indicating whether this function should be called for rows with null values (convenience function to avoid handling nulls explicitly if the result will just be null)

as_cql_query(formatted=False)[source]

Returns a CQL query that can be used to recreate this function. If formatted is set to True, extra whitespace will be added to make the query more readable.

class cassandra.metadata.Aggregate[source]

A user defined aggregate function, as created by CREATE AGGREGATE statements.

Aggregate functions were introduced in Cassandra 2.2

New in version 2.6.0.

keyspace = None

The string name of the keyspace in which this aggregate is defined

name = None

The name of this aggregate

argument_types = None

An ordered list of the types for each argument to the aggregate

state_func = None

Name of a state function

state_type = None

Type of the aggregate state

final_func = None

Name of a final function

initial_condition = None

Initial condition of the aggregate

return_type = None

Return type of the aggregate

as_cql_query(formatted=False)[source]

Returns a CQL query that can be used to recreate this aggregate. If formatted is set to True, extra whitespace will be added to make the query more readable.

class cassandra.metadata.TableMetadata[source]

A representation of the schema for a single table.

primary_key

A list of ColumnMetadata representing the components of the primary key for this table.

is_cql_compatible

A boolean indicating if this table can be represented as CQL in export

keyspace_name = None

String name of this Table’s keyspace

name = None

The string name of the table.

partition_key = None

A list of ColumnMetadata instances representing the columns in the partition key for this table. This will always hold at least one column.

clustering_key = None

A list of ColumnMetadata instances representing the columns in the clustering key for this table. These are all of the primary_key columns that are not in the partition_key.

Note that a table may have no clustering keys, in which case this will be an empty list.

columns = None

A dict mapping column names to ColumnMetadata instances.

indexes = None

A dict mapping index names to IndexMetadata instances.

options = None

A dict mapping table option names to their specific settings for this table.

triggers = None

A dict mapping trigger names to TriggerMetadata instances.

views = None

A dict mapping view names to MaterializedViewMetadata instances.

export_as_string()[source]

Returns a string of CQL queries that can be used to recreate this table along with all indexes on it. The returned string is formatted to be human readable.

as_cql_query(formatted=False)[source]

Returns a CQL query that can be used to recreate this table (index creations are not included). If formatted is set to True, extra whitespace will be added to make the query human readable.

class cassandra.metadata.ColumnMetadata[source]

A representation of a single column in a table.

table = None

The TableMetadata this column belongs to.

name = None

The string name of this column.

cql_type = None

The CQL type for the column.

is_static = False

If this column is static (available in Cassandra 2.1+), this will be True, otherwise False.

is_reversed = False

If this column is reversed (DESC) as in clustering order

class cassandra.metadata.IndexMetadata[source]

A representation of a secondary index on a column.

keyspace_name = None

A string name of the keyspace.

table_name = None

A string name of the table this index is on.

name = None

A string name for the index.

kind = None

A string representing the kind of index (COMPOSITE, CUSTOM,...).

index_options = {}

A dict of index options.

as_cql_query()[source]

Returns a CQL query that can be used to recreate this index.

export_as_string()[source]

Returns a CQL query string that can be used to recreate this index.

class cassandra.metadata.MaterializedViewMetadata[source]

A representation of a materialized view on a table

keyspace_name = None

A string name of the view.

name = None

A string name of the view.

base_table_name = None

A string name of the base table for this view.

partition_key = None

A list of ColumnMetadata instances representing the columns in the partition key for this view. This will always hold at least one column.

clustering_key = None

A list of ColumnMetadata instances representing the columns in the clustering key for this view.

Note that a table may have no clustering keys, in which case this will be an empty list.

columns = None

A dict mapping column names to ColumnMetadata instances.

include_all_columns = None

A flag indicating whether the view was created AS SELECT *

where_clause = None

String WHERE clause for the view select statement. From server metadata

options = None

A dict mapping table option names to their specific settings for this view.

as_cql_query(formatted=False)[source]

Returns a CQL query that can be used to recreate this function. If formatted is set to True, extra whitespace will be added to make the query more readable.

Tokens and Ring Topology

class cassandra.metadata.TokenMap[source]

Information about the layout of the ring.

token_class = None

A subclass of Token, depending on what partitioner the cluster uses.

ring = None

An ordered list of Token instances in the ring.

token_to_host_owner = None

A map of Token objects to the Host that owns that token.

tokens_to_hosts_by_ks = None

A map of keyspace names to a nested map of Token objects to sets of Host objects.

get_replicas(keyspace, token)[source]

Get a set of Host instances representing all of the replica nodes for a given Token.

class cassandra.metadata.Token[source]

Abstract class representing a token.

class cassandra.metadata.Murmur3Token(token)[source]

A token for Murmur3Partitioner.

token is an int or string representing the token.

class cassandra.metadata.MD5Token(token)[source]

A token for RandomPartitioner.

class cassandra.metadata.BytesToken(token)[source]

A token for ByteOrderedPartitioner.

classmethod from_string(token_string)[source]

token_string should be the string representation from the server.

cassandra.metadata.ReplicationStrategy

alias of _ReplicationStrategy

class cassandra.metadata.SimpleStrategy(options_map)[source]
replication_factor = None

The replication factor for this keyspace.

export_for_schema()[source]

Returns a string version of these replication options which are suitable for use in a CREATE KEYSPACE statement.

class cassandra.metadata.NetworkTopologyStrategy(dc_replication_factors)[source]
dc_replication_factors = None

A map of datacenter names to the replication factor for that DC.

export_for_schema()[source]

Returns a string version of these replication options which are suitable for use in a CREATE KEYSPACE statement.

class cassandra.metadata.LocalStrategy(options_map)[source]
export_for_schema()[source]

Returns a string version of these replication options which are suitable for use in a CREATE KEYSPACE statement.