Utilizar Apache Airflow con Teradata Vantage
Información general
Este tutorial demuestra cómo utilizar Airflow con Teradata Vantage. Airflow se instalará en el sistema Ubuntu.
Prerrequisitos
- Ubuntu 22.x
- Acceso a una instancia de Teradata Vantage.
Nota
Si necesita una instancia de prueba de Vantage, puede obtener una de forma gratuita en https://clearscape.teradata.com
- Python 3.8, 3.9, 3.10 o 3.11 instalado.
- pip
Instalar Apache Airflow
-
Configure la variable de entorno AIRFLOW_HOME. Airflow requiere un directorio de inicio y usa ~/airflow de forma predeterminada, pero puede establecer una ubicación diferente si lo prefiere. La variable de entorno AIRFLOW_HOME se utiliza para informar a Airflow de la ubicación deseada.
-
Instale la versión estable 2.8.1 de
apache-airflow
desde el repositorio de PyPI: -
Instale la versión estable del proveedor Airflow Teradata desde el repositorio PyPI.
NotaPor razones de seguridad, la funcionalidad de conexión de prueba está deshabilitada de forma predeterminada en la interfaz de usuario, la API y la CLI de Airflow. La disponibilidad de la funcionalidad se puede controlar mediante el indicador test_connection en la sección principal de la configuración de Airflow ($AIRFLOW_HOME/airflow.cfg) o puede definir la siguiente variable de entorno antes de iniciar el servidor de Airflow. export AIRFLOW__CORE__TEST_CONNECTION=Enabled
Iniciar Airflow independiente
- Ejecute Airflow de forma independiente ```bash airflow standalone
- Acceda a la interfaz de usuario de Airflow. Visite https://localhost:8080 en el navegador e inicie sesión con los detalles de la cuenta de administrador que se muestran en el terminal.
Las conexiones Teradata se pueden definir en Airflow de las siguientes formas:
- Mediante la interfaz de usuario web de Airflow
- Mediante una variable de entorno
Definir una conexión Teradata en la interfaz de usuario de Airflow
-
Abra la sección Administración -> Conexiones de la interfaz de usuario. Haga clic en el enlace Crear para crear una nueva conexión.
-
Complete los detalles de entrada en la página Nueva conexión.
- ID de conexión: ID único de la conexión Teradata.
- Tipo de conexión: tipo de sistema. Seleccione Teradata.
- URL del servidor de base de datos (obligatorio): nombre de host de la instancia de Teradata al que conectarse.
- Base de datos (opcional): especifique el nombre de la base de datos a la que conectarse
- Iniciar sesión (obligatorio): especifique el nombre de usuario para conectarse.
- Contraseña (obligatoria): especifique la contraseña para conectarse.
- Haga clic en Probar y guardar.
Definir una conexión Teradata en una variable de entorno
Las conexiones de Airflow se pueden definir en variables de entorno en cualquiera de los formatos siguientes.
-
Formato JSON
-
Formato URI
NotaLa convención de nomenclatura es AIRFLOW_CONN_CONN_ID, todo en mayúsculas (tenga en cuenta los guiones bajos simples junto a CONN). Si su ID de conexión es teradata_conn_id, el nombre de la variable debe ser AIRFLOW_CONN_TERADATA_CONN_ID
Ejemplo de formato JSON
Ejemplo de formato URI
Consulte Enlace de Teradata para obtener información detallada sobre la conexión Teradata en Airflow.
Definir un DAG en Airflow
- En Airflow, los DAG se definen como código Python.
- Cree un DAG como un archivo de Python como sample.py en el directorio DAG_FOLDER - $AIRFLOW_HOME/files/dags.
Cargar DAG
Airflow carga DAG desde archivos fuente de Python, que busca dentro de su directorio DAG_FOLDER - $AIRFLOW_HOME/files/dags configurado.
Ejecutar DAG
Los DAG se ejecutarán de dos maneras:
- Cuando se activen manualmente o mediante la API
- En una programación definida, que se define como parte del DAG
example_teradata_operator
se define para activarse manualmente. Para definir una programación, cualquier valor de programación de Crontab válida se puede pasar al argumento de programación.
Resumen
Este tutorial demostró cómo utilizar Airflow y el proveedor de Airflow Teradata con una instancia de Teradata Vantage. El DAG de ejemplo proporcionado crea la tabla my_users
en la instancia de Teradata Vantage definida en la interfaz de usuario de Connection.
Lectura adicional
Si tiene alguna pregunta o necesita más ayuda, visite nuestro foro de la comunidad donde podrá obtener ayuda e interactuar con otros miembros de la comunidad.