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.
-
keyspaces
= None¶ A map from keyspace names to matching
KeyspaceMetadata
instances.
-
dbaas
= False¶ A boolean indicating if connected to a DBaaS cluster
-
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, andnew
is a bool indicating whether the host was newly added.
-
get_host
(endpoint_or_address, port=None)[source]¶ Find a host in the metadata for a specific endpoint. If a string inet address and port are passed, iterate all hosts to match the
broadcast_rpc_address
andbroadcast_rpc_port`attributes
.
-
Schemas¶
-
class
cassandra.metadata.
KeyspaceMetadata
[source]¶ A representation of the schema for a single keyspace.
-
virtual
= False¶ A boolean indicating if this is a virtual keyspace or not. Always
False
for clusters running Cassandra pre-4.0 and DSE pre-6.7 versions.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.
-
graph_engine
= None¶ A string indicating whether a graph engine is enabled for this keyspace (Core/Classic).
-
-
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.
-
-
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)
-
deterministic
= None¶ Flag indicating if this function is guaranteed to produce the same result for a particular input. This is available only for DSE >=6.0.
-
monotonic
= None¶ Flag indicating if this function is guaranteed to increase or decrease monotonically on any of its arguments. This is available only for DSE >=6.0.
-
monotonic_on
= None¶ A list containing the argument or arguments over which this function is monotonic. This is available only for DSE >=6.0.
-
-
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
-
deterministic
= None¶ Flag indicating if this function is guaranteed to produce the same result for a particular input and state. This is available only with DSE >=6.0.
-
-
class
cassandra.metadata.
TableMetadata
[source]¶ A representation of the schema for a single table.
-
property
primary_key
¶ A list of
ColumnMetadata
representing the components of the primary key for this table.
-
property
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 theprimary_key
columns that are not in thepartition_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 Cassandra pre-4.0 and DSE pre-6.7 versions.New in version 3.15.
-
property
-
class
cassandra.metadata.
TableMetadataV3
[source]¶ For C* 3.0+. option_maps take a superset of map names, so if nothing changes structurally, new option maps can just be appended to the list.
-
property
is_cql_compatible
¶ A boolean indicating if this table can be represented as CQL in export
-
property
-
class
cassandra.metadata.
TableMetadataDSE68
[source]¶ -
vertex
= None¶ A
VertexMetadata
instance, if graph enabled
-
edge
= None¶ A
EdgeMetadata
instance, if graph enabled
-
-
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
, otherwiseFalse
.
-
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.
-
-
class
cassandra.metadata.
MaterializedViewMetadata
[source]¶ A representation of a materialized view on a table
-
extensions
= None¶ Metadata describing configuration for table extensions
-
keyspace_name
= None¶ A string name of the keyspace of this 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.
-
-
class
cassandra.metadata.
VertexMetadata
[source]¶ A representation of a vertex on a table
-
keyspace_name
= None¶ A string name of the keyspace.
-
table_name
= None¶ A string name of the table this vertex is on.
-
label_name
= None¶ A string name of the label of this vertex.
-
-
class
cassandra.metadata.
EdgeMetadata
[source]¶ A representation of an edge on a table
-
keyspace_name
= None¶ A string name of the keyspace
-
table_name
= None¶ A string name of the table this edge is on
-
label_name
= None¶ A string name of the label of this edge
-
from_table
= None¶ A string name of the from table of this edge (incoming vertex)
-
from_label
= None¶ A string name of the from table label of this edge (incoming vertex)
-
from_partition_key_columns
= None¶ The columns that match the partition key of the incoming vertex table.
-
from_clustering_columns
= None¶ The columns that match the clustering columns of the incoming vertex table.
-
to_table
= None¶ A string name of the to table of this edge (outgoing vertex)
-
to_label
= None¶ A string name of the to table label of this edge (outgoing vertex)
-
to_partition_key_columns
= None¶ The columns that match the partition key of the outgoing vertex table.
-
to_clustering_columns
= None¶ The columns that match the clustering columns of the outgoing vertex table.
-
Tokens and Ring Topology¶
-
class
cassandra.metadata.
TokenMap
[source]¶ Information about the layout of the ring.
-
class
cassandra.metadata.
Murmur3Token
(token)[source]¶ A token for
Murmur3Partitioner
.token is an int or string representing the token.
-
cassandra.metadata.
ReplicationStrategy
¶ alias of
cassandra.metadata._ReplicationStrategy
-
class
cassandra.metadata.
SimpleStrategy
(options_map)[source]¶ -
property
replication_factor
¶ The replication factor for this keyspace.
For backward compatibility, this returns the
cassandra.metadata.ReplicationFactor.full_replicas
value ofcassandra.metadata.SimpleStrategy.replication_factor_info
.
-
replication_factor_info
= None¶ A
cassandra.metadata.ReplicationFactor
instance.
-
property
-
class
cassandra.metadata.
NetworkTopologyStrategy
(dc_replication_factors)[source]¶ -
dc_replication_factors_info
= None¶ A map of datacenter names to the
cassandra.metadata.ReplicationFactor
instance for that DC.
-
dc_replication_factors
= None¶ A map of datacenter names to the replication factor for that DC.
For backward compatibility, this maps to the
cassandra.metadata.ReplicationFactor.full_replicas
value of thecassandra.metadata.NetworkTopologyStrategy.dc_replication_factors_info
dict.
-
-
cassandra.metadata.
group_keys_by_replica
(session, keyspace, table, keys)[source]¶ 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", )))