cassandra.metadata - Schema and Ring Topology

Module Data

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 Metadata

Holds a representation of the cluster schema and topology.

Attributes

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.

dbaas

= False

A boolean indicating if connected to a DBaaS cluster

Methods

export_schema_as_string

()

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)

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

add_or_return_host

(host)

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

get_host

(endpoint_or_address)

Find a host in the metadata for a specific endpoint. If a string inet address is passed, iterate all hosts to match the broadcast_rpc_address attribute.

all_hosts

()

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

Schemas

class KeyspaceMetadata

A representation of the schema for a single keyspace.

Attributes

virtual
= False

A boolean indicating if this is a virtual keyspace or not. Always False for clusters running pre-4.0 versions of Cassandra.

New in version 3.15.
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.

Methods

export_as_string
()

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

as_cql_query
()

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

class UserType

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.

Attributes

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.

Methods

as_cql_query
(formatted=False)

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 Function

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.

Attributes

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)

Methods

as_cql_query
(formatted=False)

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 Aggregate

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.

Attributes

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

Methods

as_cql_query
(formatted=False)

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 TableMetadata

A representation of the schema for a single table.

Attributes

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

extensions
= None

Metadata describing configuration for table extensions

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.

virtual
= False

A boolean indicating if this is a virtual table or not. Always False for clusters running pre-4.0 versions of Cassandra.

New in version 3.15.

Methods

export_as_string
()

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)

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 ColumnMetadata

A representation of a single column in a table.

Attributes

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 IndexMetadata

A representation of a secondary index on a column.

Attributes

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.

Methods

as_cql_query
()

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

export_as_string
()

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

class MaterializedViewMetadata

A representation of a materialized view on a table

Attributes

extensions
= None

Metadata describing configuration for table extensions

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.

Methods

as_cql_query
(formatted=False)

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 TokenMap

Information about the layout of the ring.

Attributes

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.

Methods

get_replicas
(keyspace, token)

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

class Token

Abstract class representing a token.

class Murmur3Token

A token for Murmur3Partitioner.

token is an int or string representing the token.

class MD5Token

A token for RandomPartitioner.

class BytesToken

A token for ByteOrderedPartitioner.

Class Methods

classmethod
from_string
(token_string)

token_string should be the string representation from the server.

Attributes

cassandra.metadata.

ReplicationStrategy

alias of cassandra.metadata._ReplicationStrategy

class SimpleStrategy

Attributes

replication_factor
= None

The replication factor for this keyspace.

Methods

export_for_schema
()

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

class NetworkTopologyStrategy

Attributes

dc_replication_factors
= None

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

Methods

export_for_schema
()

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

class LocalStrategy

Methods

export_for_schema
()

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

Functions

cassandra.metadata.

group_keys_by_replica

(session, keyspace, table, keys)

Returns a dict with the keys grouped per host. This can be used to more accurately group by IN clause or to batch the keys per host.

If a valid replica is not found for a particular key it will be grouped under NO_VALID_REPLICA

Example usage::
result = group_keys_by_replica(

session, “system”, “peers”, ((“127.0.0.1”, ), (“127.0.0.2”, ))

)