Migração de DAGs externos da versão 4.2 para a 5.0

Este guia descreve os passos necessários para mudar as tabelas de saída de grafos acíclicos dirigidos (DAGs) externos para as respetivas novas localizações na arquitetura da Cortex Data Foundation v5.0. Por exemplo, meteorologia e tendências. Este guia foi concebido especificamente para utilizadores que implementaram DAGs externos em versões anteriores da base de dados do framework Cortex (4.2 a 5.0) e que estão a fazer a atualização. Se não usou DAGs externos ou não implementou o SAP, este guia não é aplicável.

Contexto

As versões da base de dados do Cortex Framework anteriores à 4.2 usavam uma flag _GEN_EXT para gerir a implementação de origens de dados externas, com algumas origens associadas a cargas de trabalho específicas (como a conversão de moeda para o SAP). No entanto, com a versão 5.0, esta flag foi removida. Agora, existe um novo módulo dedicado à gestão de DAGs que podem processar várias cargas de trabalho. Este guia descreve os passos para ajustar os pipelines de dados existentes de modo a funcionarem com esta nova estrutura.

DAGs reutilizáveis em várias cargas de trabalho

A Data Foundation v5.0 do Cortex Framework introduz o K9, um novo componente responsável por carregar, processar e modelar elementos de dados reutilizáveis que são partilhados em várias origens de dados. As visualizações de relatórios referem-se agora ao conjunto de dados K9_PROCESSING para aceder a estes componentes reutilizáveis, simplificando o acesso aos dados e reduzindo a redundância. As seguintes origens de dados externos são agora implementadas como parte do K9 no conjunto de dados K9_PROCESSING:

  • date_dimension
  • holiday_calendar
  • trends
  • weather

DAGs dependentes do SAP

Os DAGs dependentes do SAP seguintes ainda são acionados pelo script generate_external_dags.sh, mas agora são executados durante o passo de compilação de relatórios e escrevem no conjunto de dados de relatórios do SAP em vez da fase de CDC (captura de dados de alterações).

  • currency_conversion
  • inventory_snapshots
  • prod_hierarchy_texts

Guia de migração

Este guia descreve os passos para atualizar a base de dados do Cortex Framework para a versão 5.0.

Implemente a base de dados do Cortex Framework 5.0

Primeiro, implemente a versão mais recente (v5.0) da base de dados do Cortex Framework nos seus projetos, seguindo estas diretrizes:

  1. Use os seus conjuntos de dados RAW e CDC existentes de implementações de desenvolvimento ou de preparação anteriores como os conjuntos de dados RAW e CDC desta implementação, uma vez que não são feitas modificações aos mesmos durante a implementação.
  2. Defina testData e SAP.deployCDC como False em config/config.json.
  3. Crie um novo projeto de relatórios SAP separado do seu ambiente v4.2 existente para fins de teste. Isto permite avaliar em segurança o processo de atualização sem afetar as suas operações atuais.
  4. Opcional. Se tiver DAGs do Airflow ativos em execução para a versão anterior da base de dados do Cortex Framework, pause-os antes de continuar com a migração. Pode fazê-lo através da IU do Airflow. Para obter instruções detalhadas, consulte a documentação Abra a IU do Airflow a partir do Composer e Pause o DAG.

Seguindo estes passos, pode fazer a transição em segurança para a versão 5.0 da Data Foundation do Cortex Framework e validar as novas funcionalidades.

Migre tabelas existentes

Para migrar as tabelas existentes para a nova localização, use jinja-cli para formatar o modelo de script de migração fornecido para concluir a migração.

  1. Instale o jinja-cli com o seguinte comando:

    pip install jinja-cli
    
  2. Identifique os seguintes parâmetros da sua implementação da versão 4.2 existente e da nova versão 5.0:

    Nome Descrição
    project_id_src Google Cloud Projeto: projeto onde se encontra o seu conjunto de dados do SAP CDC existente da implementação da versão 4.2. O conjunto de dados K9_PROCESSING também é criado neste projeto.
    project_id_tgt Segmente Google Cloud onde se encontra o conjunto de dados de relatórios SAP recém-implementado da implementação da nova versão 5.0. Pode ser diferente do projeto de origem.
    dataset_cdc_processed Conjunto de dados do BigQuery da CDC: Conjunto de dados do BigQuery onde os dados processados da CDC são carregados com os registos mais recentes disponíveis. Este pode ser o mesmo que o conjunto de dados de origem.
    dataset_reporting_tgt Conjunto de dados de relatórios do BigQuery de destino: conjunto de dados do BigQuery onde os modelos de dados predefinidos da base de dados de dados para SAP são implementados.
    k9_datasets_processing Conjunto de dados do BigQuery do K9: conjunto de dados do BigQuery onde o K9 (origens de dados aumentadas) está implementado.
  3. Crie um ficheiro JSON com os dados de entrada necessários. Certifique-se de que remove todos os DAGs que não quer migrar da secção 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 exemplo, se quiser remover weather e trends, o script teria o seguinte aspeto:

    {
      "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. Crie uma pasta de saída com o seguinte comando:

      mkdir output
    
  5. Gere o script de migração analisado com o seguinte comando (este comando pressupõe que está na raiz do repositório):

      jinja -d data.json -o output/migrate_external_dags.sql docs/external_dag_migration/scripts/migrate_external_dags.sql
    
  6. Examine o ficheiro SQL de saída e execute-o no BigQuery para migrar as tabelas para a nova localização.

Atualize e retome os DAGs do Airflow

Faça uma cópia de segurança dos ficheiros DAG atuais no seu contentor do Airflow. Em seguida, substitua-os pelos ficheiros gerados recentemente a partir da implementação da versão 5.0 da Data Foundation do Cortex Framework. Para ver instruções detalhadas, consulte a seguinte documentação:

Validação e limpeza

A migração está agora concluída. Agora, pode validar se todas as vistas de relatórios na nova implementação de relatórios v5.0 estão a funcionar corretamente. Se tudo funcionar corretamente, repita o processo, desta vez segmentando a implementação da versão 5.0 para o conjunto de relatórios de produção. Depois, pode remover todas as tabelas com o seguinte script:

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