Transição para o glossário empresarial no Dataplex Universal Catalog

Este documento fornece instruções para migrar da versão de pré-visualização do glossário empresarial, que suportava metadados do Data Catalog, para a versão geralmente disponível do glossário empresarial, que suporta metadados do Dataplex Universal Catalog. O processo de transição requer que exporte glossários, categorias, termos e links do Data Catalog e, em seguida, os importe para o Dataplex Universal Catalog.

Para fazer a transição para o glossário empresarial no Dataplex Universal Catalog, siga estes passos:

  1. Exporte glossários e links de entradas do catálogo de dados.
  2. Importe glossários, categorias e termos para o Dataplex Universal Catalog.
  3. Importe associações entre termos para o Dataplex Universal Catalog.
  4. Importe associações entre termos e colunas para o Dataplex Universal Catalog.

Antes de começar

Instale gcloud ou pacotes Python.

Funções necessárias

Para exportar um glossário do Data Catalog, tem de ter a função roles/datacatalog.glossaryOwner nos projetos em que o glossário está presente. Consulte as autorizações necessárias para esta função.

Para obter as autorizações de que precisa para importar o glossário empresarial para o Dataplex Universal Catalog, peça ao seu administrador que lhe conceda a função IAM de administrador do Dataplex (roles/dataplex.admin) nos projetos. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para importar o glossário empresarial para o Dataplex Universal Catalog. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para importar o glossário empresarial para o catálogo universal do Dataplex:

  • dataplex.glossaries.import no recurso de glossário
  • dataplex.entryGroups.import no grupo de entradas do Dataplex Universal Catalog fornecido no campo entry_groups e nos grupos de entradas onde as entradas do Data Catalog estão presentes e que estão associadas aos termos do glossário
  • dataplex.entryGroups.useSynonymEntryLink no grupo de entradas do Dataplex Universal Catalog fornecido no campo entry_groups e nos grupos de entradas onde as entradas do Data Catalog estão presentes e que estão associadas aos termos do glossário
  • dataplex.entryGroups.useRelatedEntryLink no grupo de entradas do Dataplex Universal Catalog fornecido no campoentry_groups e nos grupos de entradas onde as entradas do Data Catalog estão presentes e que estão associadas aos termos do glossário
  • dataplex.entryLinks.reference em todos os projetos indicados no campo referenced_entry_scopes

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Exporte glossários, categorias e termos do catálogo de dados

Pode exportar um glossário de cada vez.

  1. Clone o repositório dataplex-labs e, de seguida, altere os diretórios para o subdiretório business-glossary-import:

    git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
    cd dataplex-labs
    cd dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import
    
  2. Obtenha a sua chave de acesso:

    export GCLOUD_ACCESS_TOKEN=$(gcloud auth print-access-token)
    
  3. Execute o guião de exportação:

    python3 bg_import/business_glossary_export_v2.py \
    --user-project="PROJECT_ID" \
    --url="DATA_CATALOG_GLOSSARY_URL"

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto que contém o glossário.
    • DATA_CATALOG_GLOSSARY_URL: o URL do glossário empresarial do Data Catalog na consola.

    O script cria um ficheiro JSON que segue o mesmo formato que o ficheiro de importação de metadados usado para tarefas de importação de metadados. Os nomes do glossário, das categorias e dos termos usam os seguintes formatos:

    • Glossário: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID
    • Termo: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID/terms/TERM_ID
    • Categoria: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID/categories/CATEGORY_ID

    Em que GLOSSARY_ID, CATEGORY_ID, TERM_ID, PROJECT_NUMBER e LOCATION_ID são iguais aos valores do glossário do Data Catalog.

Importe glossários, categorias e termos

Tem de importar os glossários, as categorias e os termos do Dataplex Universal Catalog exportados no passo anterior. Esta secção descreve como importar através da API de tarefas de metadados.

  1. Crie um contentor do Cloud Storage e, de seguida, carregue o ficheiro para o contentor.

  2. Conceda à conta de serviço do Dataplex Universal Catalog acesso de leitura ao contentor do Cloud Storage.

  3. Execute uma tarefa de importação de metadados para importar o glossário.

    # Set GCURL alias
    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
    # Import CURL Command
    gcurl "https://dataplex.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/metadataJobs\?metadata_job_id=JOB_ID" -X POST -H "Content-Type: application/json" -d "$(cat<<EOF
    {
    "type":"IMPORT",
    "import_spec":{
        "log_level": "DEBUG",
        "source_storage_uri": "gs://STORAGE_BUCKET/",
        "entry_sync_mode": "FULL",
        "aspect_sync_mode": "INCREMENTAL",
        "scope": {
          "glossaries": ["projects/PROJECT_NUMBER/locations/global/glossaries/GLOSSARY_ID"]
        }
    }
    }
    EOF
    )"

    Substitua o seguinte:

    • JOB_ID: (opcional) um ID da tarefa de importação de metadados que pode usar para acompanhar o estado da tarefa. Se não fornecer um ID, o comando gcurl gera um ID exclusivo.
    • STORAGE_BUCKET: o URI do contentor ou da pasta do Cloud Storage que contém o ficheiro de glossário exportado.
    • PROJECT_NUMBER: o número do projeto que contém o glossário.
  4. Opcional: para acompanhar o estado da tarefa de importação de metadados, use o método metadataJobs.get:

    gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/global/metadataJobs/JOB_ID

    Se receber erros na tarefa de importação de metadados, estes são apresentados nos registos.

Importe associações entre termos para o Dataplex Universal Catalog

Tem de importar associações entre termos exportados no passo anterior. Esta secção descreve como importar através da API de tarefas de metadados.

  1. Crie um novo contentor do Cloud Storage e, de seguida, carregue o ficheiro de links de entradas exportado do passo anterior para o contentor.

  2. Conceda à conta de serviço do Dataplex Universal Catalog acesso de leitura ao contentor do Cloud Storage.

  3. Execute uma tarefa de importação de metadados para importar os links de entrada:

    # Import CURL Command
    gcurl "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/global/metadataJobs?metadata_job_id=JOB_ID" -X POST -H "Content-Type: application/json" -d "$(cat<<EOF
    {
    "type": "IMPORT",
    "import_spec": {
      "log_level": "DEBUG",
      "source_storage_uri": "gs://STORAGE_BUCKET/",
      "entry_sync_mode": "FULL",
      "aspect_sync_mode": "INCREMENTAL",
      "scope": {
        "entry_groups": ["projects/GLOSSARY_PROJECT_ID/locations/global/entryGroups/@dataplex"],
        "entry_link_types": [
          "projects/dataplex-types/locations/global/entryLinkTypes/synonym",
          "projects/dataplex-types/locations/global/entryLinkTypes/related"
        ],
        "referenced_entry_scopes": ["projects/GLOSSARY_PROJECT_ID","projects/LINKED_GLOSSARY_PROJECT_ID_1","projects/LINKED_GLOSSARY_PROJECT_ID_2"]
      }
    }
    }
    EOF
    )"

    Substitua o seguinte:

    • GLOSSARY_PROJECT_ID: o ID do projeto que contém o glossário
    • Opcional: LINKED_GLOSSARY_PROJECT_ID_1: se os termos estiverem associados em glossários de projetos diferentes, indique o ID do projeto
    • Opcional: LINKED_GLOSSARY_PROJECT_ID_2: se os termos estiverem associados em glossários de projetos diferentes, indique o ID do projeto

    Tenha em conta o seguinte:

    • O objeto entry_groups contém o grupo de entradas onde os links de entrada são criados. Este é o grupo de entradas do sistema @dataplex no mesmo projeto e localização que o glossário.
    • O objeto entry_link_types permite-lhe importar sinónimos, termos relacionados ou ambos:

      • Sinónimos: projects/dataplex-types/locations/global/entryLinkTypes/synonym
      • Termos relacionados: projects/dataplex-types/locations/global/entryLinkTypes/related
    • O objeto referenced_entry_scopes inclui os IDs dos projetos de links de entrada que associam termos de diferentes glossários.

Importe associações entre termos e colunas

Tem de importar associações entre termos e colunas exportadas no passo anterior. Esta secção descreve como importar através da API de tarefas de metadados.

  1. Carregue cada ficheiro exportado no passo anterior para um contentor do Cloud Storage.

  2. Execute um comando de importação separado para cada ficheiro carregado no contentor do Cloud Storage. Cada ficheiro corresponde a um grupo de entradas único que contém associações entre termos e colunas desse grupo de entradas.

gcurl "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/ENTRY_GROUP_LOCATION_ID/metadataJobs?metadata_job_id=JOB_ID" -X POST -H "Content-Type: application/json" -d "$(cat<<EOF
{
"type": "IMPORT",
"import_spec": {
    "log_level": "DEBUG",
    "source_storage_uri": "gs://STORAGE_BUCKET/",
    "entry_sync_mode": "FULL",
    "aspect_sync_mode": "INCREMENTAL",
    "scope": {
        "entry_groups": ["projects/ENTRY_GROUP_PROJECT_ID/locations/ENTRY_GROUP_LOCATION_ID/entryGroups/ENTRY_GROUP_ID"],
        "entry_link_types": ["projects/dataplex-types/locations/global/entryLinkTypes/definition"],
        "referenced_entry_scopes": ["projects/ENTRY_GROUP_PROJECT_ID", "projects/GLOSSARY_PROJECT_ID"]
    }
}
}
EOF
)"

O que se segue?