Fazer a transferência usando modelos

O Dataplex fornece modelos (com tecnologia do Dataflow) para realizar tarefas comuns de processamento de dados, como ingestão de dados, processamento e para gerenciar o ciclo de vida dos dados. Este guia descreve como configurar e executar que ingere dados usando uma conexão JDBC.

Antes de começar

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

Ativar as APIs do Dataflow

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

O modelo de transferência de JDBC do Dataplex copia dados de um banco de dados relacional para um destino de recurso do Dataplex. O Dataplex pode ser um recurso do Cloud Storage ou do BigQuery.

Esse pipeline usa o JDBC para se conectar ao banco de dados relacional. Por um valor extra camada de proteção, é possível passar uma chave do Cloud KMS junto com uma 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 forma transparente com os diferentes tipos de recursos. Os dados armazenados no ativo do Cloud Storage são particionados no estilo Hive, e o Discovery do Dataplex os disponibiliza automaticamente como uma tabela no Data Catalog, no BigQuery (tabela externa) ou em uma instância anexada do Dataproc Metastore.

Parâmetros do modelo

Parâmetro Descrição
driverJars Usando vírgulas, separe 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 para se conectar à origem do JDBC.
Por exemplo: jdbc:mysql://some-host:3306/sampledb.
Você pode 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 para a conexã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 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>. Encontre o outputAsset 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 nome de usuário como texto simples ou como uma string codificada em Base64 criptografada pelo no 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 e criptografada pelo Cloud KMS.
outputTable A localização da tabela do BigQuery ou a parte superior do Cloud Storage nome da pasta onde gravar a saída. Se for um BigQuery local da tabela, o esquema dela precisa corresponder ao esquema de consulta de origem e precisa estar no formato some-project-id:somedataset.sometable. Se for uma pasta principal do Cloud Storage, informe o nome dela.
KMSEncryptionKey (Opcional) Se você fornecer o parâmetro KMSEncryptionKey, verifique se password, username e connectionURL sã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 houver um arquivo/tabela de destino. Compatível formatos são WRITE_APPEND (as linhas serão anexadas se a tabela existir), WRITE_TRUNCATE (a tabela/o arquivo será substituído), WRITE_EMPTY (a tabela de saída precisa estar vazia/o arquivo de saída não deve existe) e SKIP (pular gravação no arquivo, se houver). Para BigQuery, os formatos permitidos são: WRITE_APPEND, WRITE_TRUNCATE, WRITE_EMPTY. No Cloud Storage, 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 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 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 Snappy. O valor padrão para este parâmetro é PARQUET. Outro valor para o parâmetro é AVRO.
updateDataplexMetadata

(Opcional) Atualizar os metadados do Dataplex para o entidades recém-criadas. O valor padrão desse parâmetro é false.

Se ativado, o pipeline copiará automaticamente o esquema da origem às entidades de destino do Dataplex, e o fluxo de trabalho A descoberta do Dataplex não vai ser executada para eles. Use essa flag nos casos em que você tiver um esquema gerenciado 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:

    Acesse o Dataplex.

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

  3. Clique em Criar tarefa.

  4. Em Ingerir o JDBC no Dataplex, clique em Criar tarefa.

  5. Escolher 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 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