Skip to content

Conversation

@sc250072
Copy link


This PR introduces a new BteqOperator within the Airflow Teradata provider to support the execution of Teradata BTEQ (Basic Teradata Query) scripts as part of Airflow DAGs. The operator enhances integration with Teradata by enabling flexible orchestration of BTEQ-based workloads both locally and remotely via SSH.

🔧 Key Features:
✅ Support for inline SQL statements or external script files (.sql / .bteq).

✅ Local and remote execution modes with optional SSH integration.

✅ Configurable session and file encoding (e.g., UTF-8, UTF-16).

✅ Graceful handling of BTEQ return codes via bteq_quit_rc.

✅ Support for timeout handling, with optional continuation on timeout using timeout_rc.

✅ Built-in support for templated parameters via Jinja.

🛠️ Additional Enhancements:
Includes utility functions for:

File validation and encoding checks

Script preparation for remote/local execution

Robust error handling and comprehensive logging

Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named {pr_number}.significant.rst or {issue_number}.significant.rst, in airflow-core/newsfragments.

@sc250072 sc250072 requested review from MT255026 and snreddygopu June 10, 2025 10:25
Copy link
Collaborator

@snreddygopu snreddygopu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

with (
self.preferred_temp_directory() as tmp_dir,
):
# Preparing lo
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the above comment is incomplete. Could you please review and update it.

@sc250072 sc250072 merged commit 70f51cc into main Jun 16, 2025
5 of 6 checks passed
@sc250072 sc250072 deleted the SG255032_IDE-24616 branch June 16, 2025 14:21
sc250072 added a commit that referenced this pull request Jun 24, 2025
…he#51807)

* Add BteqOperator for Executing Teradata BTEQ Scripts in Airflow (#58)

BTEQ (Basic Teradata Query) is a command-line utility provided by Teradata for interacting with Teradata databases. The BteqOperator is designed to provide flexible and robust execution of Teradata SQL Statements and BTEQ script/SQL file using the BTEQ command-line utility within Airflow DAGs

* system test failure fixed

* unit tests issues fixed

* unit tests issues fixed

* As per airflow recommendation, removed usage of Caplog

* airflow workflow issue fixed

* Documentation is improved

---------

Co-authored-by: Satish Ch <satishchinthanippu@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants