Migrazione dei DAG esterni dalla versione 4.2 alla versione 5.0

Questa guida illustra i passaggi necessari per spostare le tabelle di output dai grafici acicli diretti (DAG) esterni alle nuove posizioni all'interno dell'architettura di Cortex Data Foundation 5.0. Ad esempio, Meteo e Tendenze. Questa guida è progettata specificamente per gli utenti che hanno implementato DAG esterni nelle versioni precedenti di Cortex Framework Data Foundation (da 4.2 a 5.0) e ora stanno eseguendo l'upgrade. Se non hai utilizzato DAG esterni o non hai eseguito il deployment di SAP, questa guida non è applicabile.

Contesto

Le versioni di Cortex Framework Data Foundation precedenti alla 4.2 utilizzavano un flag _GEN_EXT per gestire il deployment di origini dati esterne, con alcune origini legate a workload specifici (come la conversione di valute per SAP). Tuttavia, con la versione 5.0, questo indicatore è stato rimosso. Ora è disponibile un nuovo modulo dedicato alla gestione delle DAG che può gestire più workload. Questa guida illustra i passaggi per modificare le tue pipeline di dati esistenti in modo che funzionino con questa nuova struttura.

DAG riutilizzabili tra carichi di lavoro

La versione 5.0 di Cortex Framework Data Foundation introduce K9, un nuovo componente responsabile dell'importazione, dell'elaborazione e della modellazione di elementi di dati riutilizzabili condivisi tra varie origini dati. Le visualizzazioni dei report ora fanno riferimento al set di dati K9_PROCESSING per accedere a questi componenti riutilizzabili, semplificando l'accesso ai dati e riducendo la ridondanza. Le seguenti origini dati esterne sono ora messe in produzione come parte di K9 nel set di dati K9_PROCESSING:

  • date_dimension
  • holiday_calendar
  • trends
  • weather

DAG dipendenti da SAP

I seguenti DAG dipendenti da SAP vengono ancora attivati dallo scriptgenerate_external_dags.sh, ma ora vengono eseguiti durante il passaggio di compilazione dei report e ora scrivono nel set di dati dei report SAP anziché nella fase CDC (Change Data Capture).

  • currency_conversion
  • inventory_snapshots
  • prod_hierarchy_texts

Guida alla migrazione

Questa guida illustra i passaggi per eseguire l'upgrade di Data Foundation di Cortex Framework alla versione 5.0.

Esegui il deployment di Cortex Framework Data Foundation 5.0

Innanzitutto, esegui il deployment della versione più recente (v5.0) di Cortex Framework Data Foundation nei tuoi progetti, seguendo le seguenti linee guida:

  1. Utilizza i set di dati RAW e CDC esistenti di implementazioni di sviluppo o di staging precedenti come set di dati RAW e CDC di questa implementazione, poiché non vengono apportate modifiche durante l'implementazione.
  2. Imposta sia testData che SAP.deployCDC su False in config/config.json.
  3. Crea un nuovo progetto SAP Reporting separato dall'ambiente v4.2 esistente per scopi di test. In questo modo puoi valutare in sicurezza la procedura di upgrade senza influire sulle tue operazioni attuali.
  4. Facoltativo. Se hai DAG Airflow attivi per la versione precedente di Cortex Framework Data Foundation, mettili in pausa prima di procedere con la migrazione. Questa operazione può essere eseguita tramite l'interfaccia utente di Airflow. Per istruzioni dettagliate, consulta la documentazione su come aprire la UI di Airflow da Composer e su come mettere in pausa il DAG.

Se segui questi passaggi, puoi eseguire la transizione a Cortex Framework Data Foundation nella versione 5.0 e convalidare le nuove funzionalità.

Esegui la migrazione delle tabelle esistenti

Per eseguire la migrazione delle tabelle esistenti nella nuova posizione, utilizza jinja-cli per formattare il modello di script di migrazione fornito per completare la migrazione.

  1. Installa jinja-cli con il seguente comando:

    pip install jinja-cli
    
  2. Identifica i seguenti parametri dalla versione 4.2 esistente e dal nuovo deployment della versione 5.0:

    Nome Descrizione
    project_id_src Progetto Google Cloud di origine: il progetto in cui si trova il set di dati CDC SAP esistente dal deployment della versione 4.2. Anche il set di dati K9_PROCESSING viene creato in questo progetto.
    project_id_tgt Destinazione Google Cloud dove si trova il set di dati SAP Reporting appena disegnato dal deployment della nuova versione 5.0. Potrebbe essere diverso dal progetto di origine.
    dataset_cdc_processed Set di dati BigQuery del CDC: set di dati BigQuery in cui vengono caricati i dati elaborati dal CDC gli ultimi record disponibili. Potrebbe essere lo stesso del set di dati di origine.
    dataset_reporting_tgt Set di dati dei report BigQuery di destinazione: set di dati BigQuery in cui viene eseguito il deployment dei modelli di dati predefiniti di Data Foundation for SAP.
    k9_datasets_processing Set di dati BigQuery K9: set di dati BigQuery in cui è implementato K9 (origini dati aumentate).
  3. Crea un file JSON con i dati di input richiesti. Assicurati di rimuovere eventuali DAG di cui non vuoi eseguire la migrazione dalla sezione 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
    

    Ad esempio, se vuoi rimuovere weather e trends, lo script sarà simile al seguente:

    {
      "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 cartella di output con il seguente comando:

      mkdir output
    
  5. Genera lo script di migrazione analizzato con il seguente comando (si assume che tu sia nella directory principale del repository):

      jinja -d data.json -o output/migrate_external_dags.sql docs/external_dag_migration/scripts/migrate_external_dags.sql
    
  6. Esamina il file SQL di output ed eseguilo in BigQuery per eseguire la migrazione delle tabelle nella nuova posizione.

Aggiorna e riattiva i DAG di Airflow

Esegui il backup dei file DAG correnti nel bucket Airflow. Poi, sostituiscili con i file appena generati dal deployment di Cortex Framework Data Foundation versione 5.0. Per istruzioni dettagliate, consulta la seguente documentazione:

Convalida e pulizia

La migrazione è stata completata. Ora puoi verificare che tutte le visualizzazioni dei report nel nuovo deployment dei report della versione 5.0 funzionino correttamente. Se tutto funziona correttamente, ripeti la procedura, questa volta scegliendo come target il deployment della versione 5.0 nel set di report di produzione. Successivamente, puoi rimuovere tutte le tabelle utilizzando lo script seguente:

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