| :mod:`airflow.contrib.hooks.gcp_spanner_hook` |
| ============================================= |
| |
| .. py:module:: airflow.contrib.hooks.gcp_spanner_hook |
| |
| |
| Module Contents |
| --------------- |
| |
| .. py:class:: CloudSpannerHook(gcp_conn_id='google_cloud_default', delegate_to=None) |
| |
| Bases: :class:`airflow.contrib.hooks.gcp_api_base_hook.GoogleCloudBaseHook` |
| |
| Hook for Google Cloud Spanner APIs. |
| |
| All the methods in the hook where project_id is used must be called with |
| keyword arguments rather than positional. |
| |
| .. attribute:: _client |
| |
| |
| |
| |
| |
| .. method:: _get_client(self, project_id) |
| |
| Provides a client for interacting with the Cloud Spanner API. |
| |
| :param project_id: The ID of the GCP project. |
| :type project_id: str |
| :return: google.cloud.spanner_v1.client.Client |
| :rtype: object |
| |
| |
| |
| |
| .. method:: get_instance(self, instance_id, project_id=None) |
| |
| Gets information about a particular instance. |
| |
| :param project_id: Optional, The ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :type project_id: str |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :return: google.cloud.spanner_v1.instance.Instance |
| :rtype: object |
| |
| |
| |
| |
| .. method:: _apply_to_instance(self, project_id, instance_id, configuration_name, node_count, display_name, func) |
| |
| Invokes a method on a given instance by applying a specified Callable. |
| |
| :param project_id: The ID of the GCP project that owns the Cloud Spanner |
| database. |
| :type project_id: str |
| :param instance_id: The ID of the instance. |
| :type instance_id: str |
| :param configuration_name: Name of the instance configuration defining how the |
| instance will be created. Required for instances which do not yet exist. |
| :type configuration_name: str |
| :param node_count: (Optional) Number of nodes allocated to the instance. |
| :type node_count: int |
| :param display_name: (Optional) The display name for the instance in the Cloud |
| Console UI. (Must be between 4 and 30 characters.) If this value is not set |
| in the constructor, will fall back to the instance ID. |
| :type display_name: str |
| :param func: Method of the instance to be called. |
| :type func: Callable |
| |
| |
| |
| |
| .. method:: create_instance(self, instance_id, configuration_name, node_count, display_name, project_id=None) |
| |
| Creates a new Cloud Spanner instance. |
| |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param configuration_name: The name of the instance configuration defining how the |
| instance will be created. Possible configuration values can be retrieved via |
| https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instanceConfigs/list |
| :type configuration_name: str |
| :param node_count: (Optional) The number of nodes allocated to the Cloud Spanner |
| instance. |
| :type node_count: int |
| :param display_name: (Optional) The display name for the instance in the GCP |
| Console. Must be between 4 and 30 characters. If this value is not set in |
| the constructor, the name falls back to the instance ID. |
| :type display_name: str |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :type project_id: str |
| :return: None |
| |
| |
| |
| |
| .. method:: update_instance(self, instance_id, configuration_name, node_count, display_name, project_id=None) |
| |
| Updates an existing Cloud Spanner instance. |
| |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param configuration_name: The name of the instance configuration defining how the |
| instance will be created. Possible configuration values can be retrieved via |
| https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instanceConfigs/list |
| :type configuration_name: str |
| :param node_count: (Optional) The number of nodes allocated to the Cloud Spanner |
| instance. |
| :type node_count: int |
| :param display_name: (Optional) The display name for the instance in the GCP |
| Console. Must be between 4 and 30 characters. If this value is not set in |
| the constructor, the name falls back to the instance ID. |
| :type display_name: str |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :type project_id: str |
| :return: None |
| |
| |
| |
| |
| .. method:: delete_instance(self, instance_id, project_id=None) |
| |
| Deletes an existing Cloud Spanner instance. |
| |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :type project_id: str |
| :return: None |
| |
| |
| |
| |
| .. method:: get_database(self, instance_id, database_id, project_id=None) |
| |
| Retrieves a database in Cloud Spanner. If the database does not exist |
| in the specified instance, it returns None. |
| |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param database_id: The ID of the database in Cloud Spanner. |
| :type database_id: str |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :type project_id: str |
| :return: Database object or None if database does not exist |
| :rtype: google.cloud.spanner_v1.database.Database or None |
| |
| |
| |
| |
| .. method:: create_database(self, instance_id, database_id, ddl_statements, project_id=None) |
| |
| Creates a new database in Cloud Spanner. |
| |
| :type project_id: str |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param database_id: The ID of the database to create in Cloud Spanner. |
| :type database_id: str |
| :param ddl_statements: The string list containing DDL for the new database. |
| :type ddl_statements: list[str] |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :return: None |
| |
| |
| |
| |
| .. method:: update_database(self, instance_id, database_id, ddl_statements, project_id=None, operation_id=None) |
| |
| Updates DDL of a database in Cloud Spanner. |
| |
| :type project_id: str |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param database_id: The ID of the database in Cloud Spanner. |
| :type database_id: str |
| :param ddl_statements: The string list containing DDL for the new database. |
| :type ddl_statements: list[str] |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :param operation_id: (Optional) The unique per database operation ID that can be |
| specified to implement idempotency check. |
| :type operation_id: str |
| :return: None |
| |
| |
| |
| |
| .. method:: delete_database(self, instance_id, database_id, project_id=None) |
| |
| Drops a database in Cloud Spanner. |
| |
| :type project_id: str |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param database_id: The ID of the database in Cloud Spanner. |
| :type database_id: str |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :return: True if everything succeeded |
| :rtype: bool |
| |
| |
| |
| |
| .. method:: execute_dml(self, instance_id, database_id, queries, project_id=None) |
| |
| Executes an arbitrary DML query (INSERT, UPDATE, DELETE). |
| |
| :param instance_id: The ID of the Cloud Spanner instance. |
| :type instance_id: str |
| :param database_id: The ID of the database in Cloud Spanner. |
| :type database_id: str |
| :param queries: The queries to execute. |
| :type queries: str |
| :param project_id: Optional, the ID of the GCP project that owns the Cloud Spanner |
| database. If set to None or missing, the default project_id from the GCP connection is used. |
| :type project_id: str |
| |
| |
| |
| |
| .. staticmethod:: _execute_sql_in_transaction(transaction, queries) |
| |
| |
| |
| |