Migración de DAGs externos de la versión 4.2 a la 5.0

En esta guía se describen los pasos necesarios para trasladar las tablas de resultados de los gráficos acíclicos dirigidos (DAGs) externos a sus nuevas ubicaciones en la arquitectura de Cortex Data Foundation v5.0. Por ejemplo, El tiempo y Tendencias. Esta guía está diseñada específicamente para los usuarios que han implementado DAGs externos en versiones anteriores de Data Foundation de Cortex Framework (de la 4.2 a la 5.0) y que ahora van a actualizar. Si no has usado DAGs externos o no has implementado SAP, esta guía no es aplicable.

Contexto

Las versiones anteriores a la 4.2 de Cortex Framework Data Foundation usaban una marca _GEN_EXT para gestionar la implementación de fuentes de datos externas. Algunas fuentes estaban vinculadas a cargas de trabajo específicas (como la conversión de moneda para SAP). Sin embargo, en la versión 5.0, esta marca se ha eliminado. Ahora hay un nuevo módulo dedicado a gestionar DAGs que pueden servir para varias cargas de trabajo. En esta guía se describen los pasos que debes seguir para ajustar tus pipelines de datos actuales de forma que funcionen con esta nueva estructura.

DAGs reutilizables entre cargas de trabajo

La versión 5.0 de Data Foundation de Cortex Framework incorpora K9, un nuevo componente encargado de ingerir, procesar y modelar elementos de datos reutilizables que se comparten entre varias fuentes de datos. Las vistas de informes ahora hacen referencia al conjunto de datos K9_PROCESSING para acceder a estos componentes reutilizables, lo que agiliza el acceso a los datos y reduce la redundancia. Las siguientes fuentes de datos externas se han implementado como parte de K9 en el conjunto de datos K9_PROCESSING:

  • date_dimension
  • holiday_calendar
  • trends
  • weather

DAGs dependientes de SAP

Los DAGs que dependen de SAP se siguen activando mediante la secuencia de comandos generate_external_dags.sh, pero ahora se ejecutan durante el paso de compilación de informes y escriben en el conjunto de datos de informes de SAP en lugar de en la fase de CDC (captura de datos de cambios).

  • currency_conversion
  • inventory_snapshots
  • prod_hierarchy_texts

Guía de migración

En esta guía se describen los pasos para actualizar tu Data Foundation de Cortex Framework a la versión 5.0.

Implementar Cortex Framework Data Foundation 5.0

Primero, implementa la versión más reciente (5.0) de Cortex Framework Data Foundation en tus proyectos siguiendo estas directrices:

  1. Usa los conjuntos de datos RAW y CDC que ya tengas de implementaciones de desarrollo o de staging anteriores como conjuntos de datos RAW y CDC de esta implementación, ya que no se les hará ninguna modificación durante la implementación.
  2. Asigna el valor False a testData y SAP.deployCDC en config/config.json.
  3. Crea un proyecto de informes de SAP independiente de tu entorno de la versión 4.2 para hacer pruebas. De esta forma, se evalúa el proceso de actualización de forma segura sin que afecte a tus operaciones actuales.
  4. Opcional. Si tienes DAGs de Airflow activos en ejecución para tu versión anterior de Data Foundation de Cortex Framework, pausa esos DAGs antes de continuar con la migración. Puedes hacerlo a través de la interfaz de usuario de Airflow. Para obtener instrucciones detalladas, consulta la documentación sobre cómo abrir la interfaz de usuario de Airflow desde Composer y pausar el DAG.

Si sigues estos pasos, podrás pasar a la versión 5.0 de Cortex Framework Data Foundation de forma segura y validar las nuevas funciones.

Migrar tablas

Para migrar las tablas a su nueva ubicación, usa jinja-cli para dar formato a la plantilla de secuencia de comandos de migración proporcionada y completar la migración.

  1. Instala jinja-cli con el siguiente comando:

    pip install jinja-cli
    
  2. Identifica los siguientes parámetros de tu implementación de la versión 4.2 y de la nueva versión 5.0:

    Nombre Descripción
    project_id_src Proyecto de origen: proyecto en el que se encuentra el conjunto de datos de CDC de SAP de la versión 4.2. Google Cloud También se crea un conjunto de datos K9_PROCESSING en este proyecto.
    project_id_tgt Google Cloud Indica dónde se encuentra el conjunto de datos de informes de SAP que acabas de implementar con la versión 5.0. Puede ser diferente del proyecto de origen.
    dataset_cdc_processed Conjunto de datos de BigQuery de CDC: conjunto de datos de BigQuery en el que se almacenan los datos procesados de CDC y los registros disponibles más recientes. Puede ser el mismo que el conjunto de datos de origen.
    dataset_reporting_tgt Conjunto de datos de informes de BigQuery de destino: conjunto de datos de BigQuery en el que se implementan los modelos de datos predefinidos de Data Foundation for SAP.
    k9_datasets_processing Conjunto de datos de BigQuery de K9: conjunto de datos de BigQuery en el que se implementa K9 (fuentes de datos aumentadas).
  3. Crea un archivo JSON con los datos de entrada necesarios. Asegúrate de quitar los DAGs que no quieras migrar de la sección migrate_list:

    {
      "project_id_src": "your-source-project",
      "project_id_tgt": "your-target-project",
      "dataset_cdc_processed": "your-cdc-processed-dataset",
      "dataset_reporting_tgt": "your-reporting-target-dataset-OR-SAP_REPORTING",
      "k9_datasets_processing": "your-k9-processing-dataset-OR-K9_REPORTING",
      "migrate_list":
        [
            "holiday_calendar",
            "trends",
            "weather",
            "currency_conversion",
            "inventory_snapshots",
            "prod_hierarchy_texts"
        ]
    }
    EOF
    

    Por ejemplo, si quieres quitar weather y trends, la secuencia de comandos sería la siguiente:

    {
      "project_id_src": "kittycorn-demo",
      "project_id_tgt": "kittycorn-demo",
      "dataset_cdc_processed": "CDC_PROCESSED",
      "dataset_reporting_tgt": "SAP_REPORTING",
      "k9_datasets_processing": "K9_PROCESSING",
      "migrate_list":
        [
            "holiday_calendar",
            "currency_conversion",
            "inventory_snapshots",
            "prod_hierarchy_texts"
        ]
        }
    
  4. Crea una carpeta de salida con el siguiente comando:

      mkdir output
    
  5. Genera la secuencia de comandos de migración analizada con el siguiente comando (se presupone que estás en la raíz del repositorio):

      jinja -d data.json -o output/migrate_external_dags.sql docs/external_dag_migration/scripts/migrate_external_dags.sql
    
  6. Examina el archivo SQL de salida y ejecútalo en BigQuery para migrar tus tablas a la nueva ubicación.

Actualizar y reactivar los DAGs de Airflow

Crea una copia de seguridad de los archivos DAG actuales en tu segmento de Airflow. A continuación, sustitúyelos por los archivos recién generados de tu implementación de la versión 5.0 de Data Foundation de Cortex Framework. Para obtener instrucciones detalladas, consulta la siguiente documentación:

Validación y limpieza

La migración ya se ha completado. Ahora puede validar que todas las vistas de informes de la nueva implementación de la versión 5.0 funcionan correctamente. Si todo funciona correctamente, repita el proceso, pero esta vez diríjase a la implementación de la versión 5.0 en su conjunto de informes de producción. Después, puedes eliminar todas las tablas con la siguiente secuencia de comandos:

    jinja -d data.json -o output/delete_old_dag_tables.sql docs/external_dag_migration/scripts/delete_old_dag_tables.sql