airflow.providers.apache.cassandra.hooks.cassandra

This module contains hook to integrate with Apache Cassandra.

Module Contents

Classes

CassandraHook

Hook used to interact with Cassandra

Attributes

Policy

airflow.providers.apache.cassandra.hooks.cassandra.Policy[source]
class airflow.providers.apache.cassandra.hooks.cassandra.CassandraHook(cassandra_conn_id=default_conn_name)[source]

Bases: airflow.hooks.base.BaseHook, airflow.utils.log.logging_mixin.LoggingMixin

Hook used to interact with Cassandra

Contact points can be specified as a comma-separated string in the 'hosts' field of the connection.

Port can be specified in the port field of the connection.

If SSL is enabled in Cassandra, pass in a dict in the extra field as kwargs for ssl.wrap_socket(). For example:

{
    'ssl_options' : {
        'ca_certs' : PATH_TO_CA_CERTS
    }
}

Default load balancing policy is RoundRobinPolicy. To specify a different LB policy:

- DCAwareRoundRobinPolicy
    {
        'load_balancing_policy': 'DCAwareRoundRobinPolicy',
        'load_balancing_policy_args': {
            'local_dc': LOCAL_DC_NAME,                      // optional
            'used_hosts_per_remote_dc': SOME_INT_VALUE,     // optional
        }
     }
- WhiteListRoundRobinPolicy
    {
        'load_balancing_policy': 'WhiteListRoundRobinPolicy',
        'load_balancing_policy_args': {
            'hosts': ['HOST1', 'HOST2', 'HOST3']
        }
    }
- TokenAwarePolicy
    {
        'load_balancing_policy': 'TokenAwarePolicy',
        'load_balancing_policy_args': {
            'child_load_balancing_policy': CHILD_POLICY_NAME, // optional
            'child_load_balancing_policy_args': { ... }       // optional
        }
    }

For details of the Cluster config, see cassandra.cluster.

conn_name_attr = cassandra_conn_id[source]
default_conn_name = cassandra_default[source]
conn_type = cassandra[source]
hook_name = Cassandra[source]
get_conn(self)[source]

Returns a cassandra Session object

get_cluster(self)[source]

Returns Cassandra cluster.

shutdown_cluster(self)[source]

Closes all sessions and connections associated with this Cluster.

static get_lb_policy(policy_name, policy_args)[source]

Creates load balancing policy.

Parameters
  • policy_name (str) -- Name of the policy to use.

  • policy_args (Dict[str, Any]) -- Parameters for the policy.

table_exists(self, table)[source]

Checks if a table exists in Cassandra

Parameters

table (str) -- Target Cassandra table. Use dot notation to target a specific keyspace.

record_exists(self, table, keys)[source]

Checks if a record exists in Cassandra

Parameters
  • table (str) -- Target Cassandra table. Use dot notation to target a specific keyspace.

  • keys (Dict[str, str]) -- The keys and their values to check the existence.

Was this entry helpful?