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.
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 é
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
No console do Google Cloud, acesse a página do Dataplex:
Navegue até a visualização Processo.
Clique em Criar tarefa.
Em Ingerir JDBC no Dataplex, clique em Criar tarefa.
Escolha um lake do Dataplex.
Forneça um nome para a tarefa.
Escolha uma região para a execução da tarefa.
Preencha os parâmetros obrigatórios.
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", } }