Processar dados usando modelos

O Dataplex oferece modelos, com tecnologia do Dataflow, para realizar tarefas comuns de processamento de dados, como ingestão de dados, processamento e gerenciamento do ciclo de vida dos dados. Este guia descreve como configurar e executar modelos de processamento de dados.

Antes de começar

Os modelos do Dataplex são gerados pelo Dataflow. Antes de usar os modelos, ative as APIs do Dataflow.

Ativar as APIs Dataflow

Observe o seguinte:

  • Todos os modelos oferecem suporte a opções de pipeline do Dataflow comuns.

  • O Dataplex usa pipelines de dados para programar as tarefas definidas pelos modelos.

  • Só é possível ver as tarefas programadas pelo Dataplex no console do Google Cloud na página Dataplex.

Modelo: converter dados brutos em dados selecionados

O modelo de conversão de formato de arquivo do Dataplex converte dados em um ativo do Dataplex Cloud Storage ou uma lista de entidades do Dataplex armazenadas em formatos CSV ou JSON para dados de formato Parquet ou Avro em outro ativo do Dataplex. O layout da partição é preservado na conversão. Ele também oferece suporte à compactação dos arquivos de saída.

Parâmetros do modelo

Parâmetro Descrição
inputAssetOrEntitiesList O recurso ou as entidades do Dataplex que contêm os arquivos de entrada. Esse parâmetro precisa seguir o formato: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> ou projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>...
outputFileFormat O formato do arquivo de saída no Cloud Storage. Esse parâmetro precisa seguir o formato: PARQUET ou AVRO.
outputAsset O nome do recurso do Dataplex que contém o bucket do Cloud Storage em que os arquivos de saída serão armazenados. Esse parâmetro precisa seguir o formato: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. Encontre o outputAsset no console do Google Cloud , na guia Details do recurso do Dataplex.
outputFileCompression Opcional: a compactação do arquivo de saída. O valor padrão desse parâmetro é SNAPPY. Outros valores para o parâmetro podem ser UNCOMPRESSED, SNAPPY, GZIP ou BZIP2. BZIP2 não é compatível com arquivos PARQUET.
writeDisposition Opcional: especifica a ação que ocorre se um arquivo de destino já existir. O valor padrão para esse parâmetro é SKIP, que indica o processamento apenas dos arquivos que não existem no diretório de destino. Outros valores para o parâmetro podem ser OVERWRITE (substitui todos os arquivos existentes) ou FAIL (não processa nada e produz um erro se pelo menos um arquivo de destino já existir).
updateDataplexMetadata

Opcional: se os metadados do Dataplex serão atualizados para as entidades recém-criadas. O valor padrão desse parâmetro é false.

Se ativada, o pipeline vai copiar automaticamente o esquema da origem para as entidades de destino do Dataplex, e a descoberta automática do Dataplex não será executada para elas. Use essa flag se o esquema dos dados de origem (brutos) for gerenciado pelo Dataplex.

Executar o modelo

Console

  1. No console do Google Cloud , acesse a página Dataplex.

    Acesse o Dataplex.

  2. Navegue até a visualização Processo.

  3. Clique em Criar tarefa.

  4. Em Converter para formatos selecionados, clique em Criar tarefa.

  5. Escolha um lake do Dataplex.

  6. Informe o nome da tarefa.

  7. Escolha uma região para a execução da tarefa.

  8. Preencha os parâmetros necessários.

  9. Clique em Continuar.

gcloud

No shell ou no terminal, execute o modelo:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
outputAsset=OUTPUT_ASSET

Substitua:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

REST

Envie uma solicitação POST HTTP:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
  "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

Substitua:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

Modelo: classificar dados de um recurso do BigQuery em um recurso do Cloud Storage

O modelo do Dataplex do BigQuery para o Cloud Storage copia dados de um recurso do BigQuery do Dataplex para um recurso do Dataplex Cloud Storage em um layout e formato compatível com o Dataplex. É possível especificar um conjunto de dados ou uma lista de tabelas do BigQuery para copiar. Para mais flexibilidade, o modelo permite copiar dados mais antigos do que uma data de modificação especificada e permite excluir dados do BigQuery após uma cópia bem-sucedida.

Ao copiar tabelas particionadas do BigQuery para o Cloud Storage:

  • O modelo cria partições no estilo Hive no bucket do Cloud Storage. O BigQuery não pode ter a chave de partição no estilo do Hive igual a uma coluna existente. Você pode usar a opção enforceSamePartitionKey para criar uma nova chave de partição ou manter a mesma chave de partição, mas renomear a coluna atual.
  • O Dataplex Discovery registra o tipo de partição como string ao criar uma tabela do BigQuery (e uma tabela no Dataproc Metastore). Isso pode afetar os filtros de partição existentes.

Há um limite de 300 tabelas e partições que podem ser transformadas em uma única execução de modelo. O número exato depende do comprimento dos nomes das tabelas e de outros fatores.

Parâmetros do modelo

Parâmetro Descrição
sourceBigQueryDataset O conjunto de dados do BigQuery de onde os dados serão extraídos. Esse parâmetro precisa conter um nome de recurso do Dataplex no formato projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> ou um ID de conjunto de dados do BigQuery no formato projects/<name>/datasets/<dataset-id>.
destinationStorageBucketAssetName O nome do recurso do Dataplex para o bucket do Cloud Storage para classificar os dados. Esse parâmetro precisa seguir o formato projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>.
tables Opcional: uma lista separada por vírgulas de tabelas do BigQuery a serem classificadas. Se nenhuma lista for fornecida, todas as tabelas serão classificadas. As tabelas precisam ser especificadas apenas pelo nome (sem prefixo de projeto ou conjunto de dados) e diferenciam maiúsculas de minúsculas.
exportDataModifiedBeforeDateTime Opcional: use esse parâmetro para mover dados mais antigos do que essa data (e hora opcional). Para tabelas particionadas do BigQuery, mova as partições modificadas pela última vez antes dessa data/hora. Para tabelas não particionadas, mova se a tabela foi modificada pela última vez antes dessa data/hora. Se não for especificado, todas as tabelas/partições serão movidas. A data/hora é analisada no fuso horário padrão por padrão, mas os sufixos opcionais Z e +HH:mm são aceitos. Esse parâmetro precisa seguir o formato YYYY-MM-DD ou YYYY-MM-DDTHH:mm:ss ou YYYY-MM-DDTHH:mm:ss+03:00. Data/hora relativa também é aceita e precisa seguir o formato -PnDTnHnMn.nS (precisa começar com -P, que indica o tempo no passado).
fileFormat Opcional: o formato do arquivo de saída no Cloud Storage. O valor padrão desse parâmetro é PARQUET. Outro valor para o parâmetro pode ser AVRO.
fileCompression Opcional: a compactação do arquivo de saída. O valor padrão desse parâmetro é SNAPPY. Outros valores para o parâmetro podem ser UNCOMPRESSED, SNAPPY, GZIP ou BZIP2. BZIP2 não oferece suporte para arquivos PARQUET.
deleteSourceData Opcional: se os dados de origem serão excluídos do BigQuery após uma exportação bem-sucedida. Os valores podem ser true ou false. O valor padrão desse parâmetro é false.
partitionIdRegExp Opcional: processe partições com o ID de partição correspondente apenas a esta expressão regular. Se nenhum valor for fornecido, o parâmetro será definido como processar todos.
writeDisposition Opcional: especifica a ação que ocorre se um arquivo de destino já existir, ou seja, se uma ou mais tabelas/partições já tiverem sido pré-classificadas. O valor padrão desse parâmetro é SKIP, que indica o processamento apenas das tabelas/partições que ainda não foram pré-classificadas. Outros valores para o parâmetro podem ser OVERWRITE (substitui todos os arquivos existentes) ou FAIL (não processa nada e produz um erro se pelo menos um arquivo de destino já existir).
enforceSamePartitionKey

Opcional: se a mesma chave de partição será aplicada. Devido a uma limitação do BigQuery, a chave de partição (no caminho do arquivo) em uma tabela externa particionada não pode ter o mesmo nome de uma das colunas do arquivo. Se esse parâmetro for verdadeiro (que é o valor padrão), a chave de partição do arquivo de destino será definida como o nome da coluna de partição original, e a coluna no arquivo será renomeada. Se for falso, a chave de partição será renomeada.

Por exemplo, se a tabela original for particionada em uma coluna chamada TS e enforceSamePartitionKey=true, o caminho do arquivo de destino será gs://<bucket>/TS=<partition ID>/<file> e a coluna será renomeada para TS_pkey no arquivo. Isso permite que as consultas atuais sejam executadas nas mesmas partições na tabela antiga ou na nova.

Se enforceSamePartitionKey=false, o caminho do arquivo de destino é gs://<bucket>/TS_pid=<partition ID>/<file>, mas o nome da coluna é mantido como TS no arquivo.

updateDataplexMetadata

Opcional: se os metadados do Dataplex serão atualizados para as entidades recém-criadas. O valor padrão desse parâmetro é false.

Se ativada, o pipeline vai copiar automaticamente o esquema da origem para as entidades de destino do Dataplex, e a descoberta automática do Dataplex não será executada para elas. Use essa flag se você estiver gerenciando o esquema das tabelas de origem do BigQuery.

Executar o modelo

Console

  1. No console do Google Cloud , acesse a página Dataplex.

    Acesse o Dataplex.

  2. Navegue até a visualização Processo.

  3. Clique em Criar tarefa.

  4. Em Nível do BQ para os recursos do GCS, clique em Criar tarefa.

  5. Escolha um lake do Dataplex.

  6. Informe o nome da tarefa.

  7. Escolha uma região para a execução da tarefa.

  8. Preencha os parâmetros necessários.

  9. Clique em Continuar.

gcloud

No shell ou no terminal, execute o modelo:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

Substitua:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket

REST

Envie uma solicitação POST HTTP:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
 "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

Substitua:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

Programe outros modelos de Dataflow personalizados ou fornecidos pelo Google Cloud.

Com o Dataplex, você pode programar e monitorar qualquer um dos modelos do Dataflow fornecidos peloGoogle Cloudou seu modelo personalizado do Dataflow no console.

Programar

Console

  1. No console do Google Cloud , acesse a página Dataplex.

    Acesse o Dataplex.

  2. Navegue até a visualização Processo.

  3. Clique em Criar tarefa.

  4. Em Criar um pipeline do Dataflow, clique em Criar pipeline do Dataflow.

  5. Escolha um lake do Dataplex.

  6. Informe o nome da tarefa.

  7. Escolha uma região para executar a tarefa.

  8. Escolha um modelo do Dataflow.

  9. Preencha os parâmetros necessários.

  10. Clique em Continuar.

Monitoramento

Console

  1. No console do Google Cloud , acesse a página Dataplex.

    Acesse o Dataplex.

  2. Navegue até a visualização Processo.

  3. Clique em Pipelines do Dataflow.

  4. Filtrar por nome do lago ou pipeline.