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
KeyspaceMetadatainstances.
-
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
Hostinstances that are replicas for a given partition key.
-
add_or_return_host(host)[source]¶ Returns a tuple (host, new), where
hostis a Host instance, andnewis 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_addressandbroadcast_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
Falsefor 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
ReplicationStrategysubclass object.
-
tables= None¶ A map from table names to instances of
TableMetadata.
-
indexes= None¶ A dict mapping index names to
IndexMetadatainstances.
-
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
MaterializedViewMetadatainstances.
-
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 TYPEstatements.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 FUNCTIONstatements.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 AGGREGATEstatements.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
ColumnMetadatarepresenting 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
ColumnMetadatainstances representing the columns in the partition key for this table. This will always hold at least one column.
-
clustering_key= None¶ A list of
ColumnMetadatainstances representing the columns in the clustering key for this table. These are all of theprimary_keycolumns 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
ColumnMetadatainstances.
-
indexes= None¶ A dict mapping index names to
IndexMetadatainstances.
-
options= None¶ A dict mapping table option names to their specific settings for this table.
-
triggers= None¶ A dict mapping trigger names to
TriggerMetadatainstances.
-
views= None¶ A dict mapping view names to
MaterializedViewMetadatainstances.
-
virtual= False¶ A boolean indicating if this is a virtual table or not. Always
Falsefor 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
VertexMetadatainstance, if graph enabled
-
edge= None¶ A
EdgeMetadatainstance, if graph enabled
-
-
class
cassandra.metadata.ColumnMetadata[source]¶ A representation of a single column in a table.
-
table= None¶ The
TableMetadatathis 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
ColumnMetadatainstances representing the columns in the partition key for this view. This will always hold at least one column.
-
clustering_key= None¶ A list of
ColumnMetadatainstances 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
ColumnMetadatainstances.
-
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_replicasvalue ofcassandra.metadata.SimpleStrategy.replication_factor_info.
-
replication_factor_info= None¶ A
cassandra.metadata.ReplicationFactorinstance.
-
property
-
class
cassandra.metadata.NetworkTopologyStrategy(dc_replication_factors)[source]¶ -
dc_replication_factors_info= None¶ A map of datacenter names to the
cassandra.metadata.ReplicationFactorinstance 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_replicasvalue of thecassandra.metadata.NetworkTopologyStrategy.dc_replication_factors_infodict.
-
-
cassandra.metadata.group_keys_by_replica(session, keyspace, table, keys)[source]¶ Returns a
dictwith 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_REPLICAExample usage:
>>> result = group_keys_by_replica( ... session, "system", "peers", ... (("127.0.0.1", ), ("127.0.0.2", )))