blob: d3aabf3dc6f83d372f825226d6ff0512c71bb177 [file] [log] [blame]
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
``apache-airflow-providers-google``
===================================
Content
-------
.. toctree::
:maxdepth: 1
:caption: Guides
Connection types <connections/index>
Logging handlers <logging/index>
Secrets backends <secrets-backends/google-cloud-secret-manager-backend>
API Authentication backend <api-auth-backend/google-openid>
Operators <operators/index>
.. toctree::
:maxdepth: 1
:caption: References
Python API <_api/airflow/providers/google/index>
Configuration <configurations-ref>
.. toctree::
:maxdepth: 1
:caption: Resources
Example DAGs <example-dags>
PyPI Repository <https://pypi.org/project/apache-airflow-providers-google/>
.. THE REMINDER OF THE FILE IS AUTOMATICALLY GENERATED. IT WILL BE OVERWRITTEN AT RELEASE TIME!
.. toctree::
:maxdepth: 1
:caption: Commits
Detailed list of commits <commits>
Package apache-airflow-providers-google
------------------------------------------------------
Google services including:
- `Google Ads <https://ads.google.com/>`__
- `Google Cloud (GCP) <https://cloud.google.com/>`__
- `Google Firebase <https://firebase.google.com/>`__
- `Google LevelDB <https://github.com/google/leveldb/>`__
- `Google Marketing Platform <https://marketingplatform.google.com/>`__
- `Google Workspace <https://workspace.google.pl/>`__ (formerly Google Suite)
Release: 2.2.0
Provider package
----------------
This is a provider package for ``google`` provider. All classes for this provider package
are in ``airflow.providers.google`` python package.
Installation
------------
.. note::
On November 2020, new version of PIP (20.3) has been released with a new, 2020 resolver. This resolver
does not yet work with Apache Airflow and might lead to errors in installation - depends on your choice
of extras. In order to install Airflow you need to either downgrade pip to version 20.2.4
``pip install --upgrade pip==20.2.4`` or, in case you use Pip 20.3, you need to add option
``--use-deprecated legacy-resolver`` to your pip install command.
You can install this package on top of an existing airflow 2.* installation via
``pip install apache-airflow-providers-google``
PIP requirements
----------------
====================================== ===================
PIP package Version required
====================================== ===================
``PyOpenSSL``
``google-ads`` ``>=4.0.0,<8.0.0``
``google-api-core`` ``>=1.25.1,<2.0.0``
``google-api-python-client`` ``>=1.6.0,<2.0.0``
``google-auth-httplib2`` ``>=0.0.1``
``google-auth`` ``>=1.0.0,<2.0.0``
``google-cloud-automl`` ``>=2.1.0,<3.0.0``
``google-cloud-bigquery-datatransfer`` ``>=3.0.0,<4.0.0``
``google-cloud-bigtable`` ``>=1.0.0,<2.0.0``
``google-cloud-container`` ``>=0.1.1,<2.0.0``
``google-cloud-datacatalog`` ``>=3.0.0,<4.0.0``
``google-cloud-dataproc`` ``>=2.2.0,<3.0.0``
``google-cloud-dlp`` ``>=0.11.0,<2.0.0``
``google-cloud-kms`` ``>=2.0.0,<3.0.0``
``google-cloud-language`` ``>=1.1.1,<2.0.0``
``google-cloud-logging`` ``>=2.1.1,<3.0.0``
``google-cloud-memcache`` ``>=0.2.0``
``google-cloud-monitoring`` ``>=2.0.0,<3.0.0``
``google-cloud-os-login`` ``>=2.0.0,<3.0.0``
``google-cloud-pubsub`` ``>=2.0.0,<3.0.0``
``google-cloud-redis`` ``>=2.0.0,<3.0.0``
``google-cloud-secret-manager`` ``>=0.2.0,<2.0.0``
``google-cloud-spanner`` ``>=1.10.0,<2.0.0``
``google-cloud-speech`` ``>=0.36.3,<2.0.0``
``google-cloud-storage`` ``>=1.30,<2.0.0``
``google-cloud-tasks`` ``>=2.0.0,<3.0.0``
``google-cloud-texttospeech`` ``>=0.4.0,<2.0.0``
``google-cloud-translate`` ``>=1.5.0,<2.0.0``
``google-cloud-videointelligence`` ``>=1.7.0,<2.0.0``
``google-cloud-vision`` ``>=0.35.2,<2.0.0``
``google-cloud-workflows`` ``>=0.1.0,<2.0.0``
``grpcio-gcp`` ``>=0.2.2``
``json-merge-patch`` ``~=0.2``
``pandas-gbq`` ``<0.15.0``
``plyvel``
====================================== ===================
Cross provider package dependencies
-----------------------------------
Those are dependencies that might be needed in order to use all the features of the package.
You need to install the specified provider packages in order to use them.
You can install such cross-provider dependencies when installing from PyPI. For example:
.. code-block:: bash
pip install apache-airflow-providers-google[amazon]
======================================================================================================================== ====================
Dependent package Extra
======================================================================================================================== ====================
`apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
`apache-airflow-providers-apache-beam <https://airflow.apache.org/docs/apache-airflow-providers-apache-beam>`_ ``apache.beam``
`apache-airflow-providers-apache-cassandra <https://airflow.apache.org/docs/apache-airflow-providers-apache-cassandra>`_ ``apache.cassandra``
`apache-airflow-providers-cncf-kubernetes <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes>`_ ``cncf.kubernetes``
`apache-airflow-providers-facebook <https://airflow.apache.org/docs/apache-airflow-providers-facebook>`_ ``facebook``
`apache-airflow-providers-microsoft-azure <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure>`_ ``microsoft.azure``
`apache-airflow-providers-microsoft-mssql <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-mssql>`_ ``microsoft.mssql``
`apache-airflow-providers-mysql <https://airflow.apache.org/docs/apache-airflow-providers-mysql>`_ ``mysql``
`apache-airflow-providers-oracle <https://airflow.apache.org/docs/apache-airflow-providers-oracle>`_ ``oracle``
`apache-airflow-providers-postgres <https://airflow.apache.org/docs/apache-airflow-providers-postgres>`_ ``postgres``
`apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
`apache-airflow-providers-salesforce <https://airflow.apache.org/docs/apache-airflow-providers-salesforce>`_ ``salesforce``
`apache-airflow-providers-sftp <https://airflow.apache.org/docs/apache-airflow-providers-sftp>`_ ``sftp``
`apache-airflow-providers-ssh <https://airflow.apache.org/docs/apache-airflow-providers-ssh>`_ ``ssh``
`apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
======================================================================================================================== ====================
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
Changelog
---------
2.2.0
.....
Features
~~~~~~~~
* ``Adds 'Trino' provider (with lower memory footprint for tests) (#15187)``
* ``update remaining old import paths of operators (#15127)``
* ``Override project in dataprocSubmitJobOperator (#14981)``
* ``GCS to BigQuery Transfer Operator with Labels and Description parameter (#14881)``
* ``Add GCS timespan transform operator (#13996)``
* ``Add job labels to bigquery check operators. (#14685)``
* ``Use libyaml C library when available. (#14577)``
* ``Add Google leveldb hook and operator (#13109) (#14105)``
Bug fixes
~~~~~~~~~
* ``Google Dataflow Hook to handle no Job Type (#14914)``
2.1.0
.....
Features
~~~~~~~~
* ``Corrects order of argument in docstring in GCSHook.download method (#14497)``
* ``Refactor SQL/BigQuery/Qubole/Druid Check operators (#12677)``
* ``Add GoogleDriveToLocalOperator (#14191)``
* ``Add 'exists_ok' flag to BigQueryCreateEmptyTable(Dataset)Operator (#14026)``
* ``Add materialized view support for BigQuery (#14201)``
* ``Add BigQueryUpdateTableOperator (#14149)``
* ``Add param to CloudDataTransferServiceOperator (#14118)``
* ``Add gdrive_to_gcs operator, drive sensor, additional functionality to drive hook (#13982)``
* ``Improve GCSToSFTPOperator paths handling (#11284)``
Bug Fixes
~~~~~~~~~
* ``Fixes to dataproc operators and hook (#14086)``
* ``#9803 fix bug in copy operation without wildcard (#13919)``
2.0.0
.....
Breaking changes
~~~~~~~~~~~~~~~~
Updated ``google-cloud-*`` libraries
````````````````````````````````````
This release of the provider package contains third-party library updates, which may require updating your
DAG files or custom hooks and operators, if you were using objects from those libraries.
Updating of these libraries is necessary to be able to use new features made available by new versions of
the libraries and to obtain bug fixes that are only available for new versions of the library.
Details are covered in the UPDATING.md files for each library, but there are some details
that you should pay attention to.
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| Library name | Previous constraints | Current constraints | Upgrade Documentation |
+=====================================================================================================+======================+=====================+=======================================================================================================================================+
| `google-cloud-automl <https://pypi.org/project/google-cloud-automl/>`_ | ``>=0.4.0,<2.0.0`` | ``>=2.1.0,<3.0.0`` | `Upgrading google-cloud-automl <https://github.com/googleapis/python-automl/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-bigquery-datatransfer <https://pypi.org/project/google-cloud-bigquery-datatransfer>`_ | ``>=0.4.0,<2.0.0`` | ``>=3.0.0,<4.0.0`` | `Upgrading google-cloud-bigquery-datatransfer <https://github.com/googleapis/python-bigquery-datatransfer/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-datacatalog <https://pypi.org/project/google-cloud-datacatalog>`_ | ``>=0.5.0,<0.8`` | ``>=3.0.0,<4.0.0`` | `Upgrading google-cloud-datacatalog <https://github.com/googleapis/python-datacatalog/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-dataproc <https://pypi.org/project/google-cloud-dataproc/>`_ | ``>=1.0.1,<2.0.0`` | ``>=2.2.0,<3.0.0`` | `Upgrading google-cloud-dataproc <https://github.com/googleapis/python-dataproc/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-kms <https://pypi.org/project/google-cloud-kms>`_ | ``>=1.2.1,<2.0.0`` | ``>=2.0.0,<3.0.0`` | `Upgrading google-cloud-kms <https://github.com/googleapis/python-kms/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-logging <https://pypi.org/project/google-cloud-logging/>`_ | ``>=1.14.0,<2.0.0`` | ``>=2.0.0,<3.0.0`` | `Upgrading google-cloud-logging <https://github.com/googleapis/python-logging/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-monitoring <https://pypi.org/project/google-cloud-monitoring>`_ | ``>=0.34.0,<2.0.0`` | ``>=2.0.0,<3.0.0`` | `Upgrading google-cloud-monitoring <https://github.com/googleapis/python-monitoring/blob/master/UPGRADING.md)>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-os-login <https://pypi.org/project/google-cloud-os-login>`_ | ``>=1.0.0,<2.0.0`` | ``>=2.0.0,<3.0.0`` | `Upgrading google-cloud-os-login <https://github.com/googleapis/python-oslogin/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-pubsub <https://pypi.org/project/google-cloud-pubsub>`_ | ``>=1.0.0,<2.0.0`` | ``>=2.0.0,<3.0.0`` | `Upgrading google-cloud-pubsub <https://github.com/googleapis/python-pubsub/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| `google-cloud-tasks <https://pypi.org/project/google-cloud-tasks>`_ | ``>=1.2.1,<2.0.0`` | ``>=2.0.0,<3.0.0`` | `Upgrading google-cloud-task <https://github.com/googleapis/python-tasks/blob/master/UPGRADING.md>`_ |
+-----------------------------------------------------------------------------------------------------+----------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+
The field names use the snake_case convention
`````````````````````````````````````````````
If your DAG uses an object from the above mentioned libraries passed by XCom, it is necessary to update the
naming convention of the fields that are read. Previously, the fields used the CamelSnake convention,
now the snake_case convention is used.
**Before:**
.. code-block:: python
set_acl_permission = GCSBucketCreateAclEntryOperator(
task_id="gcs-set-acl-permission",
bucket=BUCKET_NAME,
entity="user-{{ task_instance.xcom_pull('get-instance')['persistenceIamIdentity']"
".split(':', 2)[1] }}",
role="OWNER",
)
**After:**
.. code-block:: python
set_acl_permission = GCSBucketCreateAclEntryOperator(
task_id="gcs-set-acl-permission",
bucket=BUCKET_NAME,
entity="user-{{ task_instance.xcom_pull('get-instance')['persistence_iam_identity']"
".split(':', 2)[1] }}",
role="OWNER",
)
Features
~~~~~~~~
* ``Add Apache Beam operators (#12814)``
* ``Add Google Cloud Workflows Operators (#13366)``
* ``Replace 'google_cloud_storage_conn_id' by 'gcp_conn_id' when using 'GCSHook' (#13851)``
* ``Add How To Guide for Dataflow (#13461)``
* ``Generalize MLEngineStartTrainingJobOperator to custom images (#13318)``
* ``Add Parquet data type to BaseSQLToGCSOperator (#13359)``
* ``Add DataprocCreateWorkflowTemplateOperator (#13338)``
* ``Add OracleToGCS Transfer (#13246)``
* ``Add timeout option to gcs hook methods. (#13156)``
* ``Add regional support to dataproc workflow template operators (#12907)``
* ``Add project_id to client inside BigQuery hook update_table method (#13018)``
Bug fixes
~~~~~~~~~
* ``Fix four bugs in StackdriverTaskHandler (#13784)``
* ``Decode Remote Google Logs (#13115)``
* ``Fix and improve GCP BigTable hook and system test (#13896)``
* ``updated Google DV360 Hook to fix SDF issue (#13703)``
* ``Fix insert_all method of BigQueryHook to support tables without schema (#13138)``
* ``Fix Google BigQueryHook method get_schema() (#13136)``
* ``Fix Data Catalog operators (#13096)``
1.0.0
.....
Initial version of the provider.