This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch v2-8-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit ba5278b75a61ef25243ea2f878a65f4d746ae749 Author: Jens Scheffler <[email protected]> AuthorDate: Mon Jan 1 21:19:33 2024 +0100 Announce MSSQL support end in Airflow 2.9.0, add migration script hints (#36509) * Announce MSSQL support end in Airflow 2.9.0, add migration script hints * Fix Sphinx formatting * Update README as well (cherry picked from commit eecb4793ab9081e5235d0740e05844e634b69419) --- README.md | 2 +- docs/apache-airflow/howto/set-up-database.rst | 30 +++++++++++++++------- docs/apache-airflow/installation/prerequisites.rst | 2 +- generated/PYPI_README.md | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5cc0968245..a6ae71141b 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Apache Airflow is tested with: \* Experimental -\*\* **Discontinued soon**, not recommended for the new installation +\*\* **Discontinued in 2.9.0**, not recommended for the new installation **Note**: MySQL 5.x versions are unable to or have limitations with running multiple schedulers -- please see the [Scheduler docs](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/scheduler.html). diff --git a/docs/apache-airflow/howto/set-up-database.rst b/docs/apache-airflow/howto/set-up-database.rst index 168b79c558..52c0c44514 100644 --- a/docs/apache-airflow/howto/set-up-database.rst +++ b/docs/apache-airflow/howto/set-up-database.rst @@ -34,7 +34,7 @@ Airflow supports the following database engine versions, so make sure which vers * PostgreSQL: 12, 13, 14, 15, 16 * MySQL: 8.0, `Innovation <https://dev.mysql.com/blog-archive/introducing-mysql-innovation-and-long-term-support-lts-versions>`_ -* MSSQL (Experimental, **Discontinued soon**): 2017, 2019 +* MSSQL (was experimental, **will be discontinued in 2.9.0**): 2017, 2019 * SQLite: 3.15.0+ If you plan on running more than one scheduler, you have to meet additional requirements. @@ -323,6 +323,7 @@ Setting up a MsSQL Database After `discussion <https://lists.apache.org/thread/r06j306hldg03g2my1pd4nyjxg78b3h4>`__ and a `voting process <https://lists.apache.org/thread/pgcgmhf6560k8jbsmz8nlyoxosvltph2>`__, the Airflow's PMC and Committers have reached a resolution to no longer maintain MsSQL as a supported Database Backend. + Support for MsSQL will be removed from the codebase in Airflow 2.9.0. For new Airflow installations, it is advised against using MsSQL as the database backend. @@ -359,6 +360,16 @@ Official Docker image we have ODBC driver installed, so you need to specify the mssql+pyodbc://<user>:<password>@<host>[:port]/<db>[?driver=ODBC+Driver+18+for+SQL+Server] +Migrating off MsSQL Server +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As with Airflow 2.9.0 the support of MSSQL has will end, a migration script can help migrating with +Airflow version 2.7.x or 2.8.x off the database. The migration script is available in +`airflow-mssql-migration repo on Github <https://github.com/apache/airflow-mssql-migration>`_. + +Note that the migration script is provided without support. + + Other configuration options --------------------------- @@ -390,14 +401,15 @@ Airflow extensively utilizes a relational metadata database for task scheduling Monitoring and proper configuration of this database are crucial for optimal Airflow performance. Key Concerns -............ +~~~~~~~~~~~~ + 1. **Performance Impact**: Long or excessive queries can significantly affect Airflow's functionality. These may arise due to workflow specifics, lack of optimizations, or code bugs. 2. **Database Statistics**: Incorrect optimization decisions by the database engine, often due to outdated data statistics, can degrade performance. Responsibilities -................ +~~~~~~~~~~~~~~~~ The responsibilities for database monitoring and maintenance in Airflow environments vary depending on whether you're using self-managed databases and Airflow instances or opting for managed services. @@ -421,7 +433,7 @@ its performance, managing backups, periodic cleanups and ensuring its optimal op are matching the sizing and configuration of the managed service. Monitoring Aspects -.................. +~~~~~~~~~~~~~~~~~~ Regular monitoring should include: @@ -432,7 +444,7 @@ Regular monitoring should include: - Analysis of disk swap versus memory usage and cache swapping frequency. Tools and Strategies -.................... +~~~~~~~~~~~~~~~~~~~~ - Airflow doesn't provide direct tooling for database monitoring. - Use server-side monitoring and logging to obtain metrics. @@ -440,7 +452,7 @@ Tools and Strategies - Regularly run house-keeping tasks (like ``ANALYZE`` SQL command) for maintenance. Database Cleaning Tools -....................... +~~~~~~~~~~~~~~~~~~~~~~~ - **Airflow DB Clean Command**: Utilize the ``airflow db clean`` command to help manage and clean up your database. @@ -448,7 +460,7 @@ Database Cleaning Tools database cleanup and maintenance, offering more fine-grained control and customization for specific needs. Recommendations -............... +~~~~~~~~~~~~~~~ - **Proactive Monitoring**: Implement monitoring and logging in production without significantly impacting performance. @@ -458,7 +470,7 @@ Recommendations database provider. SQLAlchemy Logging -.................. +~~~~~~~~~~~~~~~~~~ For detailed query analysis, enable SQLAlchemy client logging (``echo=True`` in SQLAlchemy engine configuration). @@ -473,7 +485,7 @@ You can do it with ``echo=True`` as sqlalchemy engine configuration as explained Use :ref:`config:database__sql_alchemy_engine_args` configuration parameter to set echo arg to True. Caution -....... +~~~~~~~ - Be mindful of the impact on Airflow's performance and system resources when enabling extensive logging. - Prefer server-side monitoring over client-side logging for production environments to minimize diff --git a/docs/apache-airflow/installation/prerequisites.rst b/docs/apache-airflow/installation/prerequisites.rst index 8af1e7bf5f..47a61ad55c 100644 --- a/docs/apache-airflow/installation/prerequisites.rst +++ b/docs/apache-airflow/installation/prerequisites.rst @@ -27,7 +27,7 @@ Airflowâ„¢ is tested with: * PostgreSQL: 12, 13, 14, 15, 16 * MySQL: 8.0, `Innovation <https://dev.mysql.com/blog-archive/introducing-mysql-innovation-and-long-term-support-lts-versions>`_ * SQLite: 3.15.0+ - * MSSQL (Experimental, **Discontinued soon**): 2017, 2019 + * MSSQL (was experimental, **will be discontinued in 2.9.0**): 2017, 2019 * Kubernetes: 1.25, 1.26, 1.27, 1.28 diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md index c8d3d58a3d..88dad85d69 100644 --- a/generated/PYPI_README.md +++ b/generated/PYPI_README.md @@ -59,7 +59,7 @@ Apache Airflow is tested with: \* Experimental -\*\* **Discontinued soon**, not recommended for the new installation +\*\* **Discontinued in 2.9.0**, not recommended for the new installation **Note**: MySQL 5.x versions are unable to or have limitations with running multiple schedulers -- please see the [Scheduler docs](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/scheduler.html).
