O Dataplex fornece modelos (com a tecnologia do Dataflow) para executar tarefas comuns de processamento de dados, como ingestão de dados, processamento e gerenciamento do ciclo de vida dos 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 do Dataflow.
Modelo: processar dados no Dataplex usando uma conexão JDBC
O modelo de ingestão JDBC do Dataplex copia dados de um banco de dados relacional para uma meta de recursos do Dataplex. O recurso Dataplex pode ser do Cloud Storage ou do BigQuery.
Esse pipeline usa JDBC para se conectar ao banco de dados relacional. Para ter uma camada extra de proteção, você também pode passar uma chave do Cloud KMS com um nome de usuário, senha e parâmetros de string de conexão codificados em Base64 com a chave do Cloud KMS.
O modelo lida com os diferentes tipos de recursos de forma transparente. 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 uma instância anexada do Metastore do Dataproc.
Parâmetros do modelo
.Parâmetro | Descrição |
---|---|
driverJars |
Com vírgulas, separe os caminhos do Cloud Storage para os 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 JDBC.
Por exemplo: jdbc:mysql://some-host:3306/sampledb .
É possível passar 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 código 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> . Você pode encontrar 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. Transmita 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 passar 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 para gravar a saída. Se for um local de tabela do BigQuery, o esquema da tabela precisará corresponder ao esquema de consulta de origem e estar no formato some-project-id:somedataset.sometable .
Se for uma pasta superior 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 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 o arquivo/tabela de destino existir. Os formatos compatíveis são WRITE_APPEND (linhas serão anexadas se a tabela existir), WRITE_TRUNCATE (tabela/arquivo será substituído), WRITE_EMPTY (a tabela de saída precisará estar vazia/arquivo de saída não existir) e SKIP (pular gravação no arquivo se existir). Para o BigQuery, os formatos permitidos são: WRITE_APPEND ,
WRITE_TRUNCATE , 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 para esse parâmetro é DAILY . Outros valores do parâmetro podem ser MONTHLY ou HOURLY . |
partitionColumn |
(Opcional) A coluna da partição na qual a partição é baseada. 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 compressão do Snappy. O valor padrão para esse parâmetro é PARQUET . Outro valor para o parâmetro é AVRO . |
updateDataplexMetadata |
(Opcional) Indica se os metadados do Dataplex serão atualizados para as entidades recém-criadas. O valor padrão para esse parâmetro é Se ativado, o pipeline copiará automaticamente o esquema da origem para as entidades do Dataplex de destino, e a descoberta automatizada do Dataplex não será executada para elas. Use essa sinalização nos casos em que você tem um esquema gerenciado 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 Process.
Clique em Create Task.
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 execução da tarefa.
Preencha os parâmetros necessá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", } }