john-jac opened a new pull request, #65816:
URL: https://github.com/apache/airflow/pull/65816

   ## What does this PR do?
   
   Add `S3TablesCreateTableOperator` and `S3TablesHook` to the Amazon provider 
package, providing Airflow support for the Amazon S3 Tables service.
   
   ## Motivation
   
   **Low-code / YAML-driven DAG support:** Tools like DagFactory and MWAA 
Serverless YAML workflows can only reference pre-built operators — they cannot 
use `PythonOperator` with custom callables or `@task` decorators. Without this 
operator, creating S3 Tables is impossible in those environments.
   
   **Zero existing coverage:** S3 Tables is a GA AWS service with no Airflow 
support at all — no hook, no operator, no sensor. This is the foundational 
operator for the service, enabling Iceberg table creation as a declarative DAG 
step.
   
   **Data lakehouse pipelines:** S3 Tables provides managed Iceberg tables that 
integrate with Athena, Spark, and Redshift. Pipelines that provision tables as 
part of ETL workflows need an operator to create tables with schema 
definitions, rather than embedding boto3 calls in `@task` functions.
   
   ## Changes
   
   - **Hook:** `S3TablesHook(AwsBaseHook)` wrapping the `s3tables` boto3 client 
with a `create_table()` method
   - **Operator:** `S3TablesCreateTableOperator(AwsBaseOperator[S3TablesHook])` 
— creates an Iceberg table with optional schema metadata, returns the table ARN
   - **Unit tests:** 3 operator tests + 2 hook tests (mock-based; moto does not 
support s3tables)
   - **System test:** `example_s3tables.py` — creates table bucket → namespace 
→ table → tears down (SETUP/BODY/TEARDOWN pattern)
   - **Docs:** New `operators/s3tables/index.rst` with example snippet
   
   ^ Add meaningful description above
   Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to