Processar dados usando modelos

O Dataplex fornece modelos, com a tecnologia do Dataflow, para executar tarefas comuns de processamento de dados, comoingestão de dadoso, processamento e gerenciamento do ciclo de vida dos dados. Neste guia, descrevemos como configurar e executar modelos de processamento de dados.

Antes de começar

Os modelos do Dataplex usam a tecnologia do Dataflow. Antes de usar modelos, ative as APIs Dataflow.

Ativar as APIs Dataflow

Observações

Modelo: converter dados brutos em dados selecionados

O modelo de conversão de formato de arquivo do Dataplex converte dados em um recurso do Cloud Storage do Dataplex ou uma lista de entidades do Dataplex armazenadas nos formatos CSV ou JSON em dados de formato Parquet ou Avro em outro recurso 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>. Você encontra 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 do parâmetro podem ser UNCOMPRESSED, SNAPPY, GZIP ou BZIP2. BZIP2 não é compatível com arquivos PARQUET.
writeDisposition Opcional: especifica a ação que ocorrerá se um arquivo de destino já existir. O valor padrão desse parâmetro é SKIP, que sinaliza para processar apenas os arquivos que não existem no diretório de destino. Outros valores do parâmetro podem ser OVERWRITE (substituir os arquivos atuais) ou FAIL (não processar nada e gerar um erro se já existir pelo menos um arquivo de destino).
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 copiará automaticamente o esquema da origem para as entidades de destino do Dataplex, e a descoberta automatizada não será executada para elas. Use essa sinalização 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 do Dataplex:

    Acessar 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. Forneça um nome para a tarefa.

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

  8. Preencha os parâmetros obrigatórios.

  9. Clique em Continuar.

gcloud

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

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

API REST

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

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",
 }
}

Modelo: dados em níveis de um recurso do BigQuery para um recurso do Cloud Storage

O modelo do BigQuery para o Cloud Storage do Dataplex copia os dados de um recurso do BigQuery para um recurso do Cloud Storage do Dataplex em um layout e formatos compatíveis com o Dataplex. É possível especificar um conjunto de dados ou uma lista de tabelas do BigQuery a serem copiadas. Para mais flexibilidade, o modelo permite copiar dados anteriores a uma data de modificação especificada e, opcionalmente, 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. Ao gravar no Cloud Storage, o modelo cria uma nova chave de partição anexando o sufixo _pid à coluna de partição atual. Isso é necessário para acessar os dados no BigQuery como uma tabela externa. No BigQuery, a chave de partição no estilo Hive não pode ser igual a uma coluna atual. Como resultado, a tabela copiada, quando visualizada no BigQuery como uma tabela externa, tem uma coluna extra para a chave de partição. O restante dos dados é preservado como está.

Ao copiar tabelas particionadas do BigQuery para o Cloud Storage:

  • O modelo cria partições no estilo Hive no bucket do Cloud Storage. Atualmente, o BigQuery não pode ter a chave de partição no estilo Hive seja igual a uma coluna existente. É possível 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 metastore do Dataproc). Isso pode afetar os filtros de partição atuais.

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

Parâmetros do modelo

Parâmetro Descrição
sourceBigQueryDataset O conjunto de dados do BigQuery do qual os dados serão nivelados. 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 em que os dados serão nivelados. 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 para níveis. Se nenhuma lista for fornecida, todas as tabelas serão classificadas em níveis. As tabelas precisam ser especificadas apenas pelo nome (sem prefixo do projeto/conjunto de dados) e diferenciam maiúsculas de minúsculas.
exportDataModifiedBeforeDateTime Opcional: use esse parâmetro para mover dados anteriores a essa data (e horário 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, mova todas as tabelas/partições. 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, 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 uma hora 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 do parâmetro podem ser UNCOMPRESSED, SNAPPY, GZIP ou BZIP2. BZIP2 não é compatível com arquivos PARQUET.
deleteSourceData Opcional: se os dados de origem do BigQuery serão excluídos após uma exportação bem-sucedida. Os valores podem ser true ou false. O valor padrão desse parâmetro é false.
partitionIdRegExp Opcional: processar partições com um ID de partição correspondente apenas a essa expressão regular. Se nenhum valor for fornecido, o padrão desse parâmetro será processar tudo.
writeDisposition Opcional: especifica a ação que ocorre quando um arquivo de destino já existe, o que significa que uma ou mais tabelas/partições já foram pré-empacotadas. O valor padrão desse parâmetro é SKIP, que indica o processamento apenas das tabelas/partições que ainda não estavam em camadas. Outros valores do parâmetro podem ser OVERWRITE (substituir os arquivos atuais) ou FAIL (não processar nada e gerar um erro se já existir pelo menos um arquivo de destino).
enforceSamePartitionKey

Opcional: se a mesma chave de partição será aplicada. Devido a uma limitação do BigQuery, não é possível que a chave de partição (no caminho do arquivo) em uma tabela externa particionada tenha o mesmo nome de uma das colunas no 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 da 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 como TS_pkey no arquivo. Dessa forma, as consultas atuais podem ser executadas nas mesmas partições na tabela antiga ou na nova.

Se for enforceSamePartitionKey=false, o caminho do arquivo de destino será gs://<bucket>/TS_pid=<partition ID>/<file>, mas o nome da coluna será 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 copiará automaticamente o esquema da origem para as entidades de destino do Dataplex, e a descoberta automatizada não será executada para elas. Use essa sinalização se estiver gerenciando o esquema das tabelas de origem do BigQuery.

Executar o modelo

Console

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

    Acessar o Dataplex

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

  3. Clique em Criar tarefa.

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

  5. Escolha um lake do Dataplex.

  6. Forneça um nome para a tarefa.

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

  8. Preencha os parâmetros obrigatórios.

  9. Clique em Continuar.

gcloud

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

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

API REST

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

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",
 }
}

Programar outros modelos do Dataflow personalizados ou fornecidos pelo Google Cloud

Com o Dataplex, é possível programar e monitorar qualquer um dos modelos do Dataflow fornecidos pelo Google Cloud ou seu modelo personalizado do Dataflow no console.

Programação

Console

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

    Acessar 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. Forneça um nome para a tarefa.

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

  8. Escolher um modelo do Dataflow.

  9. Preencha os parâmetros obrigatórios.

  10. Clique em Continuar.

Monitorar

Console

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

    Acessar o Dataplex

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

  3. Clique em Pipelines do Dataflow.

  4. Filtrar por nome do lake ou do pipeline.