Ingerir 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 de dados. Neste guia, descrevemos como configurar e executar um modelo que ingere dados usando uma conexão JDBC.

Antes de começar

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

Ativar as APIs Dataflow

Modelo: ingerir dados no Dataplex usando uma conexão JDBC

O modelo de ingestão de JDBC do Dataplex copia os dados de um banco de dados relacional para um destino de recurso do Dataplex. O recurso do Dataplex pode ser do Cloud Storage ou do BigQuery.

Esse pipeline usa o JDBC para se conectar ao banco de dados relacional. Para uma camada extra de proteção, também é possível transmitir uma chave do Cloud KMS com um nome de usuário, senha e parâmetros de string de conexão codificados em Base64 criptografados com a chave do Cloud KMS.

O modelo lida de maneira transparente com os diferentes tipos de recurso. Os dados armazenados no recurso do Cloud Storage são particionados no estilo Hive, e a Descoberta do Dataplex os disponibiliza automaticamente como uma tabela no Data Catalog, BigQuery (tabela externa) ou em uma instância do Dataproc Metastore anexada.

Parâmetros do modelo

Parâmetro Descrição
driverJars Use vírgulas para separar os caminhos do Cloud Storage para drivers JDBC.
Por exemplo: gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL A string de conexão do URL a ser conectada à origem do JDBC.
Por exemplo: jdbc:mysql://some-host:3306/sampledb.
É possível transmitir o URL de conexão como texto simples ou como uma string codificada em Base64 criptografada pelo Cloud KMS.
driverClassName O nome da classe do driver do JDBC.
Por exemplo: com.mysql.jdbc.Driver.
connectionProperties A string de propriedades a ser usada na conexão JDBC.
Por exemplo: unicode=true&characterEncoding=UTF-8.
query A consulta a ser executada na fonte para extrair os dados.
Por exemplo: select * from sampledb.sample_table.
outputAsset O ID do recurso de saída do Dataplex em que 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>. O outputAsset está no console do Google Cloud, na guia Detalhes do recurso do Dataplex.
username O nome de usuário a ser usado para a conexão JDBC. É possível transmitir o nome de usuário como texto simples ou como uma string codificada em Base64 criptografada pelo Cloud KMS.
password A senha a ser usada para a conexão JDBC. É possível transmitir a senha como texto simples ou como uma string codificada em Base64 criptografada pelo Cloud KMS.
outputTable O local da tabela do BigQuery ou o nome da pasta superior do Cloud Storage em que a saída será gravada. Se for um local de tabela do BigQuery, o esquema da tabela precisará corresponder ao esquema da consulta de origem e estar no formato de some-project-id:somedataset.sometable. Se for uma pasta principal do Cloud Storage, forneça o nome da pasta superior.
KMSEncryptionKey Opcional: se você fornecer o parâmetro KMSEncryptionKey, verifique se password, username e connectionURL estão criptografados pelo Cloud KMS. Criptografe esses parâmetros usando o endpoint de criptografia da API Cloud KMS. Por exemplo, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart.
writeDisposition (Opcional) A estratégia a ser empregada se o arquivo/tabela de destino existir. Os formatos compatíveis são WRITE_APPEND (as linhas serão anexadas se a tabela existir), WRITE_TRUNCATE (a tabela/arquivo será substituída), WRITE_EMPTY (a tabela de saída precisa estar vazia/o arquivo de saída não pode existir) e SKIP (ignorar a gravação no arquivo, se houver). 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, WRITE_EMPTY. Padrão: WRITE_EMPTY.
partitioningScheme (Opcional) O esquema de partição ao gravar o arquivo. O valor padrão dele é DAILY. Outros valores do parâmetro podem ser MONTHLY ou HOURLY.
partitionColumn (Opcional) A coluna da partição em que a partição se baseia. O tipo da coluna precisa estar no formato timestamp/date. Se o parâmetro partitionColumn não for fornecido, os dados não serão particionados.
fileFormat (Opcional) O formato do arquivo de saída no Cloud Storage. Os arquivos são compactados com a configuração padrão de compactação do Snappy. O valor padrão dele é PARQUET. Outro valor para o parâmetro é AVRO.
updateDataplexMetadata

(Opcional) Define 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 nos casos em que você gerenciou o esquema na origem.

Compatível apenas com o destino do Cloud Storage.

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 Ingerir JDBC no Dataplex, 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
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 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_JDBC_Ingestion_Preview \
--parameters \
driverJars=DRIVER_JARS,\
connectionUrl=CONNECTION_URL,\
driverClassName=DRIVER_CLASS_NAME,\
connectionProperties=CONNECTION_PROPERTIES,\
query=QUERY\
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
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 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": {
          "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",
   }
}

A seguir