O Dataplex Universal Catalog oferece modelos (com tecnologia do Dataflow) para realizar tarefas comuns de processamento de dados, como ingestão de dados, tratamento 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 Universal Catalog são desenvolvidos pelo Dataflow. Antes de usar modelos, ative as APIs Dataflow.
Modelo: ingerir dados no Dataplex Universal Catalog usando uma conexão JDBC
O modelo de ingestão JDBC do Dataplex Universal Catalog copia dados de um banco 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 do BigQuery.
Esse pipeline usa o JDBC para se conectar ao banco de dados relacional. Para ter uma camada extra de proteção, é possível transmitir uma chave do Cloud KMS com um nome de usuário, senha e parâmetros da string de conexão criptografados em Base64 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 são particionados no estilo Hive, e a descoberta do Universal Catalog do Dataplex os disponibiliza automaticamente como uma tabela no Data Catalog (descontinuado), no BigQuery (tabela externa) ou em uma instância anexada do Metastore Dataproc.
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 de URL para acessar a fonte 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 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 Universal Catalog 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 Universal Catalog 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 principal do Cloud Storage em que a saída será gravada. Se for um local de tabela do BigQuery, o esquema da tabela precisa corresponder ao esquema da consulta de origem e 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 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 usada 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ído), WRITE_EMPTY (a tabela de saída precisa estar vazia/o arquivo de saída não pode existir) e SKIP (não gravar no arquivo se ele 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 e WRITE_EMPTY . Padrão: WRITE_EMPTY .
|
partitioningScheme |
Opcional: o esquema de partição ao gravar o arquivo. O valor padrão desse parâmetro é DAILY . Outros valores para o parâmetro podem ser MONTHLY ou HOURLY . |
partitionColumn |
Opcional: a coluna de partição em que a partição se baseia. O tipo de coluna precisa ser do 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 desse parâmetro é PARQUET . Outro valor para o parâmetro é AVRO . |
updateDataplexMetadata |
Opcional: indica se os metadados do Dataplex Universal Catalog das entidades recém-criadas serão atualizados. O valor padrão desse parâmetro é Se ativado, o pipeline vai copiar automaticamente o esquema da origem para as entidades de destino do Dataplex Universal Catalog, e a descoberta automatizada do Dataplex Universal Catalog não será executada para elas. Use essa flag em casos em que você tem um esquema gerenciado na origem. Só é compatível com o destino do Cloud Storage. |
Executar o modelo
Console
No console Google Cloud , acesse a página Processo do Universal Catalog do Dataplex:
Clique em Criar tarefa.
Em Ingerir JDBC no Dataplex, clique em Criar tarefa.
Escolha um data lake do Dataplex Universal Catalog.
Informe 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
No shell ou 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:
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 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", } }
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 Universal Catalog output asset ID
A seguir
- Saiba como gerenciar seu data lake.
- Saiba como gerenciar suas zonas.