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.
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 é
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
Na Google Cloud consola, aceda à página Processo do Dataplex Universal Catalog:
Clique em Criar tarefa.
Em Carregar JDBC para o Dataplex, clique em Criar tarefa.
Escolha um lake do Dataplex Universal Catalog.
Indique um nome para a tarefa.
Escolha uma região para a execução de tarefas.
Preencha os parâmetros obrigatórios.
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?
- Saiba como gerir o seu lago.
- Saiba como gerir as suas zonas.