Utilizar dbt y FEAST para crear un almacén de funciones en Teradata Vantage
Información general
Este tutorial muestra un enfoque para crear una canalización dbt que toma datos sin procesar y los convierte en funciones FEAST. La canalización aprovecha las "funciones de ClearScape Analytics" para transformaciones de datos. El resultado de las transformaciones se carga en FEAST para materializar características que se pueden usar en modelos de ML.
Introducción
dbt
dbt (Data Build Tool) es una herramienta de transformación de datos que es la piedra angular de las pilas de datos modernas. Se encarga de la T en ELT (Extract Load Transform). Se supone que algún otro proceso trae datos sin procesar a su almacén o lago de datos. Luego, estos datos deben transformarse.
Feast
Feast (Feature Store) es un sistema de datos flexible que utiliza tecnología existente para administrar y proporcionar funciones de aprendizaje automático a modelos en tiempo real. Permite la personalización para satisfacer necesidades específicas. También nos permite hacer que las funciones estén disponibles de manera coherente para entrenamiento y servicio, evitar la fuga de datos y desacoplar el aprendizaje automático de la infraestructura de datos.
Prerrequisitos
-
Acceso a una instancia de base de datos de Teradata Vantage.
NotaSi necesita una instancia de prueba de Vantage, puede obtener una de forma gratuita en https://clearscape.teradata.com
-
Feast-Teradata instalado localmente. Consulte las Instrucciones de instalación de Feast-Teradata
-
dbt instalado localmente. Consulte las Instrucciones de instalación de dbt
Objetivo
El objetivo es crear una canalización de datos con Teradata Vantage como fuente y realizar la transformación de datos en algunas variables en dbt. La principal transformación de datos que hacemos en dbt es la codificación one-hot de varias columnas como género, estado civil, código de estado, etc. Además de eso, los datos de la columna del tipo de cuenta se transformarán realizando operaciones de agregación en un par de columnas. Todo esto en conjunto genera el conjunto de datos deseado con datos transformados. El conjunto de datos transformado se utiliza como entrada en FEAST para almacenar características. Luego, las funciones se utilizan para generar un conjunto de datos de entrenamiento para modelos.
Primeros pasos
-
Cree un nuevo entorno Python para administrar dbt, feast y sus dependencias. Active el entorno:
-
Clone el repositorio del tutorial y cambie el directorio al directorio del proyecto:
La estructura de directorios del proyecto clonado se ve así:
Sobre el almacén bancario
teddy_bank es un conjunto de datos ficticio de clientes bancarios, que consta principalmente de 3 tablas de clientes, cuentas y transacciones, con el siguiente diagrama entidad-relación:
dbt toma estos datos sin procesar y construye el siguiente modelo, que es más adecuado para herramientas de análisis y modelado de ML:
Configurar dbt
Cree el archivo $HOME/.dbt/profiles.yml
con el siguiente contenido. Ajuste los archivos <host>
, <user>
y <password>
para que coincidan con su instancia de Teradata.
El siguiente perfil dbt apunta a una base de datos llamada teddy_bank
. Puede cambiar el valor schema
para que apunte a una base de datos existente en su instancia de Teradata Vantage:
Validar la configuración:
Si el comando de depuración devolvió errores, es probable que tenga un problema con el contenido de profiles.yml
.
Configurar FEAST
La configuración de Feast aborda la conexión a su base de datos Vantage. El archivo yaml creado al inicializar el proyecto de feast
, $HOME/.feast/feature_repo/feature_store.yml
puede contener los detalles de almacenamiento fuera de línea, almacenamiento en línea, proveedor
y registro. Ajuste <host>
, <user>
, <password>
para que coincida con su instancia de Teradata.
El siguiente perfil dbt apunta a una base de datos llamada teddy_bank
. Puede cambiar el valor schema
para que apunte a una
base de datos existente en su instancia de Teradata Vantage
Configuración de tienda sin conexión
Sintaxis para el Registro SQL de Teradata
Ejecutar dbt
En este paso, completaremos las siguientes tablas de datos: customers
, accounts
, y transactions
.
Crear el modelo dimensional
Ahora que tenemos las tablas de datos sin procesar, podemos instruir a dbt para que cree el modelo dimensional:
Ejecutar FEAST
Definición del repositorio de funciones
-
TeradataSource:
Fuente de datos para funciones almacenadas en Teradata (Enterprise o Lake) o accesibles a través de una tabla externa desde Teradata (NOS, QueryGrid) -
Entity:
Una colección de características relacionadas semánticamente. -
Feature View:
Una vista de características es un grupo de datos de características de una fuente de datos específica. Las vistas de características le permiten definir de forma coherente características y sus fuentes de datos, lo que permite la reutilización de grupos de características en un proyecto.
Generar datos de entrenamiento
El enfoque para generar datos de entrenamiento puede variar. Dependiendo de los requisitos, 'entitydf' se puede unir a las tablas de datos de origen mediante la asignación de vistas de características. A continuación se muestra una función de ejemplo que genera un conjunto de datos de entrenamiento.
Resumen
Este tutorial demostró cómo usar dbt y FEAST con Teradata Vantage. El proyecto de muestra toma datos sin procesar de Teradata Vantage y produce funciones con dbt. Luego se crearon metadatos de características que forman la base para generar un conjunto de datos de entrenamiento para un modelo con FEAST; todas sus tablas correspondientes que crean el almacén de características también se generan en tiempo de ejecución dentro de la misma base de datos.