blob: ee11afc4db5e3266dc4441f4307529e50b32c5ca [file] [log] [blame]
:py:mod:`airflow.providers.apache.cassandra.hooks.cassandra`
============================================================
.. py:module:: airflow.providers.apache.cassandra.hooks.cassandra
.. autoapi-nested-parse::
This module contains hook to integrate with Apache Cassandra.
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
airflow.providers.apache.cassandra.hooks.cassandra.CassandraHook
Attributes
~~~~~~~~~~
.. autoapisummary::
airflow.providers.apache.cassandra.hooks.cassandra.Policy
.. py:data:: Policy
.. py:class:: CassandraHook(cassandra_conn_id = default_conn_name)
Bases: :py:obj:`airflow.hooks.base.BaseHook`, :py:obj:`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.
.. py:attribute:: conn_name_attr
:annotation: = cassandra_conn_id
.. py:attribute:: default_conn_name
:annotation: = cassandra_default
.. py:attribute:: conn_type
:annotation: = cassandra
.. py:attribute:: hook_name
:annotation: = Cassandra
.. py:method:: get_conn(self)
Returns a cassandra Session object
.. py:method:: get_cluster(self)
Returns Cassandra cluster.
.. py:method:: shutdown_cluster(self)
Closes all sessions and connections associated with this Cluster.
.. py:method:: get_lb_policy(policy_name, policy_args)
:staticmethod:
Creates load balancing policy.
:param policy_name: Name of the policy to use.
:param policy_args: Parameters for the policy.
.. py:method:: table_exists(self, table)
Checks if a table exists in Cassandra
:param table: Target Cassandra table.
Use dot notation to target a specific keyspace.
.. py:method:: record_exists(self, table, keys)
Checks if a record exists in Cassandra
:param table: Target Cassandra table.
Use dot notation to target a specific keyspace.
:param keys: The keys and their values to check the existence.