Carregue dados usando modelos

O Dataplex Universal Catalog oferece modelos (com tecnologia Dataflow) para realizar tarefas comuns de processamento de dados, como o carregamento, o processamento e a gestão do ciclo de vida dos dados. Este guia descreve como configurar e executar um modelo que carrega dados através de uma ligação JDBC.

Antes de começar

Os modelos de tarefas do Dataplex Universal Catalog são baseados no Dataflow. Antes de usar modelos, ative as APIs Dataflow.

Ative as APIs Dataflow

Modelo: introduza dados no Dataplex Universal Catalog através de uma ligação JDBC

O modelo de carregamento JDBC do Dataplex Universal Catalog copia dados de uma base de dados relacional para um destino de recurso do Dataplex Universal Catalog. O recurso do catálogo universal do Dataplex pode ser um recurso do Cloud Storage ou um recurso do BigQuery.

Este pipeline usa JDBC para se ligar à base de dados relacional. Para uma camada de proteção adicional, também pode transmitir uma chave do Cloud KMS juntamente com parâmetros de nome de utilizador, palavra-passe e string de ligação codificados em Base64 encriptados com a chave do Cloud KMS.

O modelo processa de forma transparente os diferentes tipos de recursos. Os dados armazenados no recurso do Cloud Storage estão particionados no estilo Hive e a deteção do catálogo universal do Dataplex torna-os automaticamente disponíveis como uma tabela no Data Catalog (descontinuado), no BigQuery (tabela externa) ou numa instância do Dataproc Metastore anexada.

Parâmetros de modelos

Parâmetro Descrição
driverJars Usando vírgulas, separe os caminhos do Cloud Storage para controladores JDBC.
Por exemplo, gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL A string de ligação do URL para estabelecer ligação à origem JDBC.
Por exemplo, jdbc:mysql://some-host:3306/sampledb.
Pode transmitir o URL de ligação como texto simples ou como uma string codificada em Base64 encriptada pelo Cloud KMS.
driverClassName O nome da classe do controlador JDBC.
Por exemplo, com.mysql.jdbc.Driver.
connectionProperties A string de propriedades a usar para a ligação JDBC.
Por exemplo, unicode=true&characterEncoding=UTF-8.
query A consulta a ser executada na origem para extrair os dados.
Por exemplo, select * from sampledb.sample_table.
outputAsset O ID do recurso de saída do Dataplex Universal Catalog no qual os resultados são armazenados. Para o ID, use o formato projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code>. Pode encontrar o outputAsset na Google Cloud consola, no separador Detalhes do recurso do Dataplex Universal Catalog.
username O nome de utilizador a usar para a ligação JDBC. Pode transmitir o nome de utilizador como texto simples ou como uma string codificada em Base64 encriptada pelo Cloud KMS.
password A palavra-passe a usar para a ligação JDBC. Pode transmitir a palavra-passe como texto simples ou como uma string codificada em Base64 encriptada pelo Cloud KMS.
outputTable A localização da tabela do BigQuery ou o nome da pasta de nível superior do Cloud Storage para onde escrever a saída. Se for uma localização da tabela do BigQuery, o esquema da tabela tem de corresponder ao esquema da consulta de origem e deve estar no formato some-project-id:somedataset.sometable. Se for uma pasta principal do Cloud Storage, indique o nome da pasta principal.
KMSEncryptionKey Opcional: se fornecer o parâmetro KMSEncryptionKey, certifique-se de que os parâmetros password, username e connectionURL estão encriptados pelo Cloud KMS. Encriptar estes parâmetros através do ponto final de encriptação da API Cloud KMS. Por exemplo, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart.
writeDisposition Opcional: a estratégia a usar se o ficheiro/tabela de destino existir. Os formatos suportados são WRITE_APPEND (as linhas são anexadas se a tabela existir), WRITE_TRUNCATE (a tabela/o ficheiro é substituído), WRITE_EMPTY (a tabela de saída tem de estar vazia/o ficheiro de saída não deve existir) e SKIP (não escreve no ficheiro se este existir). Para o BigQuery, os formatos permitidos são: WRITE_APPEND, WRITE_TRUNCATE e WRITE_EMPTY. Para o Cloud Storage, os formatos permitidos são: SKIP, WRITE_TRUNCATE e WRITE_EMPTY. Predefinição: WRITE_EMPTY.
partitioningScheme Opcional: o esquema de partição ao escrever o ficheiro. O valor predefinido para este parâmetro é DAILY. Outros valores para o parâmetro podem ser MONTHLY ou HOURLY.
partitionColumn Opcional: a coluna de partição na qual a partição se baseia. O tipo de coluna tem de estar no formato timestamp/date. Se o parâmetro partitionColumn não for fornecido, os dados não são particionados.
fileFormat Opcional: o formato do ficheiro de saída no Cloud Storage. Os ficheiros são comprimidos com a predefinição de compressão Snappy. O valor predefinido para este parâmetro é PARQUET. Outro valor para o parâmetro é AVRO.
updateDataplexMetadata

Opcional: se deve atualizar os metadados do catálogo universal do Dataplex para as entidades criadas recentemente. O valor predefinido para este parâmetro é false.

Se estiver ativado, o pipeline copia automaticamente o esquema da origem para as entidades do Dataplex Universal Catalog de destino, e a deteção automatizada do Dataplex Universal Catalog não é executada para estas. Use esta flag nos casos em que tem um esquema gerido na origem.

Só é suportado para o destino do Cloud Storage.

Execute o modelo

Consola

  1. Na Google Cloud consola, aceda à página Processo do Dataplex Universal Catalog:

    Aceder ao processo

  2. Clique em Criar tarefa.

  3. Em Carregar JDBC para o Dataplex, clique em Criar tarefa.

  4. Escolha um lake do Dataplex Universal Catalog.

  5. Indique um nome para a tarefa.

  6. Escolha uma região para a execução de tarefas.

  7. Preencha os parâmetros obrigatórios.

  8. Clique em Continuar.

gcloud

Na shell ou no terminal, execute o seguinte 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_JDBC_Ingestion_Preview \
--parameters \
driverJars=DRIVER_JARS,\
connectionUrl=CONNECTION_URL,\
driverClassName=DRIVER_CLASS_NAME,\
connectionProperties=CONNECTION_PROPERTIES,\
query=QUERY\
outputAsset=OUTPUT_ASSET\

Substitua o seguinte:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

API REST

Envie um pedido HTTP POST:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "driverJars": "DRIVER_JARS",
          "connectionUrl": "CONNECTION_URL",
          "driverClassName": "DRIVER_CLASS_NAME",
          "connectionProperties": "CONNECTION_PROPERTIES",
          "query": "QUERY"
          "outputAsset": "OUTPUT_ASSET"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview",
   }
}

Substitua o seguinte:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

O que se segue?