Este tópico descreve como utilizar o conector do Hologres para sincronizar dados em uma implantação de ingestão de dados YAML.
Contexto
Hologres é um mecanismo de data warehouse em tempo real que suporta escritas, atualizações e análises em escala. O Hologres é compatível com o protocolo PostgreSQL e aceita SQL padrão. Ele oferece suporte a processamento analítico online (OLAP) e consultas ad hoc em petabytes de dados, atendendo requisições com alta concorrência e baixa latência. O Hologres integra-se ao MaxCompute, Realtime Compute for Apache Flink e DataWorks para fornecer uma solução completa de data warehouse online e offline. A tabela a seguir detalha as capacidades do conector YAML do Hologres.
|
Item |
Descrição |
|
Tipo de tabela |
Sink |
|
Modo de execução |
Modos streaming e batch |
|
Formato de dados |
N/A |
|
Métrica |
Nota
Para mais detalhes, consulte Metrics. |
|
Tipo de API |
YAML |
|
Atualizações ou exclusões em uma tabela sink |
Suportado |
Recursos
|
Recurso |
Descrição |
|
Sincroniza dados completos e incrementais em tempo real de um banco de dados inteiro ou de múltiplas tabelas para as tabelas sink correspondentes. |
|
|
Replica alterações de esquema (como adição, remoção ou renomeação de colunas) das tabelas de origem para as tabelas sink correspondentes em tempo real. |
|
|
Utilize expressões regulares para corresponder tabelas de origem em vários bancos de dados fragmentados por nome. Os dados dessas tabelas são mesclados e sincronizados para tabelas sink downstream com nomes correspondentes. |
|
|
Grava dados de uma tabela upstream em uma tabela particionada do Hologres. |
|
|
Mapeia tipos de dados upstream para tipos de dados mais abrangentes do Hologres usando diversas estratégias. |
Sintaxe
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
Parâmetros
|
Parâmetro |
Descrição |
Tipo |
Obrigatório |
Padrão |
Observações |
|
type |
O tipo do sink. |
String |
Sim |
Nenhum |
O valor deve ser |
|
name |
O nome do sink. |
String |
Não |
Nenhum |
N/A. |
|
dbname |
O nome do banco de dados. |
String |
Sim |
Nenhum |
N/A. |
|
username |
O nome de usuário para acesso ao banco de dados. Utilize o AccessKey ID da sua conta Alibaba Cloud. |
String |
Sim |
Nenhum |
Para mais informações, consulte How do I view the AccessKey ID and AccessKey secret? Importante
Para evitar a exposição do seu AccessKey, especifique seus valores utilizando variáveis. Para mais informações, consulte Project variables. |
|
password |
A senha para acesso ao banco de dados. Utilize o AccessKey Secret da sua conta Alibaba Cloud. |
String |
Sim |
Nenhum |
|
|
endpoint |
O endpoint do service Hologres. |
String |
Sim |
Nenhum |
Para mais informações, consulte Access endpoints. |
|
jdbcRetryCount |
Número de tentativas para operações de escrita e consulta quando ocorre falha na conexão. |
Integer |
Não |
10 |
N/A. |
|
jdbcRetrySleepInitMs |
Tempo de espera fixo para cada tentativa de repetição. |
Long |
Não |
1000 |
Unidade: milissegundos. O tempo real de espera para uma nova tentativa é calculado pela seguinte fórmula: |
|
jdbcRetrySleepStepMs |
Tempo de espera incremental para cada tentativa de repetição. |
Long |
Não |
5000 |
Unidade: milissegundos. O tempo real de espera para uma nova tentativa é calculado pela seguinte fórmula: |
|
jdbcConnectionMaxIdleMs |
Tempo máximo de ociosidade para uma conexão JDBC. |
Long |
Não |
60000 |
Unidade: milissegundos. Se uma conexão permanecer ociosa por mais tempo que essa duração, ela será desconectada e liberada. |
|
jdbcMetaCacheTTL |
Tempo de expiração para informações de TableSchema armazenadas em cache localmente. |
Long |
Não |
60000 |
Unidade: milissegundos. |
|
jdbcMetaAutoRefreshFactor |
Fator que determina o gatilho de atualização do cache. O sistema atualiza automaticamente o cache se o tempo de vida restante for inferior ao tempo do gatilho. |
Integer |
Não |
4 |
O tempo de vida restante do cache é calculado da seguinte forma: Tempo de vida restante = Tempo de expiração do cache - Tempo em que o cache esteve ativo. Após uma atualização automática, o tempo ativo do cache é redefinido para 0. O tempo do gatilho é calculado usando a fórmula: |
|
mutatetype |
O modo de escrita de dados. |
String |
Não |
INSERT_OR_UPDATE |
Se uma chave primária estiver definida para a tabela física do Hologres, o sink do Hologres garante semântica exactly-once com base nessa chave. Caso cheguem dados com chave primária duplicada, o parâmetro
|
|
createparttable |
Define se partições inexistentes devem ser criadas automaticamente ao gravar em uma tabela particionada. |
Boolean |
Não |
false |
N/A. |
|
sink.delete-strategy |
Especifica como processar mensagens de retração. |
String |
Não |
Nenhum |
Valores válidos:
|
|
jdbcWriteBatchSize |
No modo JDBC, defina o número máximo de registros a serem armazenados em buffer no sink do Hologres antes de uma escrita em lote. |
Integer |
Não |
256 |
Unidade: linhas. Nota
Os parâmetros jdbcWriteBatchSize, jdbcWriteBatchByteSize e jdbcWriteFlushInterval possuem uma relação OU. Se você definir os três parâmetros, os dados resultantes serão gravados assim que qualquer uma das condições for atendida. |
|
jdbcWriteBatchByteSize |
No modo JDBC, este parâmetro especifica o tamanho máximo de dados em bytes que o sink do Hologres armazena em buffer antes de gravar o lote no destino. |
Long |
Não |
2.097.152 bytes (2 MB) |
Nota
Os parâmetros jdbcWriteBatchSize, jdbcWriteBatchByteSize e jdbcWriteFlushInterval possuem uma relação OU. Se você definir os três parâmetros, os dados resultantes serão gravados assim que qualquer uma das condições for atendida. |
|
jdbcWriteFlushInterval |
No modo JDBC, este parâmetro especifica o tempo máximo que o sink do Hologres aguarda antes de gravar os dados em buffer no Hologres. |
Long |
Não |
10000 |
Unidade: milissegundos. Nota
Os parâmetros jdbcWriteBatchSize, jdbcWriteBatchByteSize e jdbcWriteFlushInterval possuem uma relação OU. Se você definir os três parâmetros, os dados resultantes serão gravados assim que a condição de qualquer um deles for atendida. |
|
ignoreNullWhenUpdate |
Define se valores nulos nos dados recebidos devem ser ignorados quando |
Boolean |
Não |
false |
Valores válidos:
|
|
jdbcEnableDefaultForNotNullColumn |
Define se um valor padrão deve ser inserido quando um valor nulo for gravado em uma coluna NOT NULL que não possua um valor padrão definido. |
Boolean |
Não |
true |
Valores válidos:
|
|
remove-u0000-in-text.enabled |
Define se o caractere nulo ( |
Boolean |
Não |
false |
Valores válidos:
|
|
deduplication.enabled |
Define se a deduplicação deve ser realizada dentro de cada lote antes da gravação nos modos jdbc e jdbc_fixed. |
Boolean |
Não |
true |
Valores válidos:
|
|
sink.type-normalize-strategy |
A estratégia de mapeamento de tipos de dados. |
String |
Não |
STANDARD |
Estratégia usada pelo sink do Hologres para converter tipos de dados upstream em tipos do Hologres.
|
|
sink.insert.legacy-put-handler |
Define se o Put Handler legado deve ser usado para gravar dados no Hologres. |
Boolean |
Não |
false |
Valores válidos:
|
|
table_property.* |
As propriedades da tabela física para o Hologres. |
String |
Não |
Nenhum |
Ao criar uma tabela no Hologres, você pode definir propriedades de tabela física na cláusula WITH. Propriedades adequadas ajudam o sistema a organizar e consultar dados de forma eficiente. Aviso
O parâmetro |
|
connection.ssl.mode |
Define se a criptografia de transporte Secure Sockets Layer (SSL) deve ser ativada e qual modo usar. |
String |
Não |
disable |
Nota
|
|
connection.ssl.root-cert.location |
Quando o modo de criptografia de transporte exige um certificado, especifica o caminho para o arquivo de certificado. |
String |
Não |
Nenhum |
Quando connection.ssl.mode estiver definido como verify-ca ou verify-full, você também deve configure o caminho para o certificado CA. Você pode carregar o certificado na plataforma usando o recurso File Management no console do Realtime Compute. Após o carregamento, o certificado é armazenado no diretório /flink/usrlib. Por exemplo, se o arquivo de certificado CA for denominado certificate.crt, o valor do parâmetro deve ser Nota
Para obter um certificado CA, consulte Transport encryption - Download a CA certificate. |
|
connection.akv4.enabled |
Define se o modo AKV4 deve ser ativado para conectar ao servidor Hologres. |
Boolean |
Não |
false |
N/A. |
|
connection.akv4.region |
Quando o modo AKV4 está ativado, especifica a região onde o servidor está localizado. |
String |
Não |
Nenhum |
Por exemplo, |
Reutilizar um Catalog existente
A partir do VVR 11.5, você pode referenciar diretamente um Catalog interno do Hologres criado na página Data Management em um job de ingestão de dados Flink CDC. Isso reduz a necessidade de especificar manualmente as propriedades de conexão.
sink:
type: hologres
using.built-in-catalog: my_holo_catalog
Jobs de ingestão de dados podem reutilizar automaticamente os seguintes parâmetros do Catalog do Hologres:
endpoint
username
password
dbname
Para substituir esses parâmetros reutilizados automaticamente, especifique explicitamente os parâmetros YAML correspondentes, que têm prioridade mais alta.
Mapeamento de tipos de dados
Use o parâmetro sink.type-normalize-strategy para definir a estratégia de conversão de dados upstream para tipos do Hologres.
Ative
sink.type-normalize-strategyao iniciar um job YAML pela primeira vez. Se você ativá-lo após o início do job, será necessário exclua a tabela downstream e reiniciar o job sem estado para que a configuração tenha efeito.Atualmente, tipos de array suportam apenas INTEGER, BIGINT, FLOAT, DOUBLE, BOOLEAN, CHAR e VARCHAR.
O Hologres não suporta o tipo numeric como chave primária. Se o tipo de uma chave primária for mapeado para
numeric, o sistema o converterá para o tipovarchar.
STANDARD
Quando sink.type-normalize-strategy está definido como STANDARD, os tipos são mapeados da seguinte forma:
|
Tipo Flink CDC |
Tipo Hologres |
|
CHAR |
bpchar |
|
STRING |
text |
|
VARCHAR |
text (se length > 10485760) |
|
varchar (se length <= 10485760) |
|
|
BOOLEAN |
bool |
|
BINARY |
bytea |
|
VARBINARY |
|
|
DECIMAL |
numeric |
|
TINYINT |
int2 |
|
SMALLINT |
|
|
INTEGER |
int4 |
|
BIGINT |
int8 |
|
FLOAT |
float4 |
|
DOUBLE |
float8 |
|
DATE |
date |
|
TIME_WITHOUT_TIME_ZONE |
time |
|
TIMESTAMP_WITHOUT_TIME_ZONE |
timestamp |
|
TIMESTAMP_WITH_LOCAL_TIME_ZONE |
timestamptz |
|
ARRAY |
Arrays dos tipos de elemento correspondentes |
|
MAP |
Não suportado |
|
ROW |
Não suportado |
BROADEN
Quando sink.type-normalize-strategy está definido como BROADEN, os tipos do Flink CDC são convertidos para tipos do Hologres com faixa mais ampla. Os tipos são mapeados da seguinte forma:
|
Tipo Flink CDC |
Tipo Hologres |
|
CHAR |
text |
|
STRING |
|
|
VARCHAR |
|
|
BOOLEAN |
bool |
|
BINARY |
bytea |
|
VARBINARY |
|
|
DECIMAL |
numeric |
|
TINYINT |
int8 |
|
SMALLINT |
|
|
INTEGER |
|
|
BIGINT |
|
|
FLOAT |
float8 |
|
DOUBLE |
|
|
DATE |
date |
|
TIME_WITHOUT_TIME_ZONE |
time |
|
TIMESTAMP_WITHOUT_TIME_ZONE |
timestamp |
|
TIMESTAMP_WITH_LOCAL_TIME_ZONE |
timestamptz |
|
ARRAY |
Arrays dos tipos de elemento correspondentes |
|
MAP |
Não suportado |
|
ROW |
Não suportado |
ONLY_BIGINT_OR_TEXT
Quando sink.type-normalize-strategy está definido como ONLY_BIGINT_OR_TEXT, todos os tipos do Flink CDC são convertidos para tipos BIGINT ou STRING no Hologres. O mapeamento de tipos de dados é o seguinte:
|
Tipo Flink CDC |
Tipo Hologres |
|
TINYINT |
int8 |
|
SMALLINT |
|
|
INTEGER |
|
|
BIGINT |
|
|
BOOLEAN |
text |
|
BINARY |
|
|
VARBINARY |
|
|
DECIMAL |
|
|
FLOAT |
|
|
DOUBLE |
|
|
DATE |
|
|
TIME_WITHOUT_TIME_ZONE |
|
|
TIMESTAMP_WITHOUT_TIME_ZONE |
|
|
TIMESTAMP_WITH_LOCAL_TIME_ZONE |
|
|
ARRAY |
Arrays dos tipos de elemento correspondentes |
|
MAP |
Não suportado |
|
ROW |
Não suportado |
Gravação em tabelas particionadas
Utilize o sink do Hologres com uma transformação para gravar dados upstream em uma tabela particionada do Hologres.
A
partition keydeve fazer parte daprimary key. Se você usar uma coluna que não seja chave primária dos dados upstream comopartition key, as chaves primárias das tabelas upstream e downstream poderão ficar inconsistentes, causando discrepâncias de dados durante a sincronização.O Hologres suporta colunas dos tipos de dados TEXT, VARCHAR e INT como
partition key. A partir da versão 1.3.22, colunas do tipo de dados DATE também são suportadas.Para crie automaticamente tabelas particionadas filhas, defina o parâmetro
createparttablecomotrue. Caso contrário, você deverá criá-las manualmente.
Consulte Writing data to a partitioned table para ver um exemplo.
Sincronização de esquema de tabela
Um pipeline CDC YAML usa diferentes estratégias para lidar com alterações no esquema da tabela, configuráveis por meio do parâmetro de nível de pipeline schema.change.behavior. Os valores válidos para schema.change.behavior são IGNORE, LENIENT, TRY_EVOLVE, EVOLVE e EXCEPTION. O Sink do Hologres atualmente não suporta a estratégia TRY_EVOLVE. As estratégias LENIENT e EVOLVE envolvem alterações no esquema da tabela. As seções a seguir descrevem como esses dois modos lidam com diferentes eventos de alteração de esquema.
LENIENT (padrão)
No modo LENIENT, as alterações de esquema são tratadas da seguinte forma:
Adicionar uma coluna anulável: A coluna correspondente é adicionada automaticamente ao final da tabela sink e seus dados são sincronizados.
Excluir uma coluna anulável: A coluna não é excluída da tabela sink. Em vez disso, ela é preenchida automaticamente com valores NULL.
Adicionar uma coluna não anulável: Uma coluna anulável correspondente é adicionada automaticamente ao final da tabela sink e seus dados são sincronizados. Para linhas existentes, essa nova coluna é preenchida automaticamente com NULL.
Renomear uma coluna: Esta operação é tratada como a exclusão de uma coluna e a adição de uma nova. Uma nova coluna com o nome especificado é adicionada ao final da tabela sink, e a coluna com o nome original é preenchida automaticamente com valores NULL. Por exemplo, se col_a for renomeada para col_b, uma coluna col_b será adicionada ao final da tabela sink, e a coluna col_a será preenchida automaticamente com valores NULL.
Alterar o tipo de dados de uma coluna: Não suportado. Como o Hologres não suporta a alteração do tipo de dados de uma coluna, você deve usar o parâmetro
sink.type-normalize-strategy.-
As seguintes alterações de esquema não são suportadas:
Alterações em restrições, como chave primária ou índice.
Exclusão de uma coluna não anulável.
Alteração de uma coluna de NOT NULL para NULLABLE.
EVOLVE
No modo EVOLVE, as alterações de esquema são tratadas da seguinte forma:
Adicionar uma coluna anulável: Suportado.
Excluir uma coluna anulável: Não suportado.
Adicionar uma coluna não anulável: Uma nova coluna anulável é adicionada à tabela sink.
Renomear uma coluna: Suportado. A coluna original é renomeada na tabela sink.
Alterar o tipo de dados de uma coluna: Não suportado. Como o Hologres não suporta a alteração do tipo de dados de uma coluna, você deve usar o parâmetro
sink.type-normalize-strategy.-
As seguintes alterações de esquema não são suportadas:
Alterações em restrições, como chave primária ou índice.
Exclusão de uma coluna não anulável.
Alteração de uma coluna de NOT NULL para NULLABLE.
No modo EVOLVE, realizar uma reinicialização sem estado sem exclua a tabela sink pode causar falha no pipeline devido a inconsistências de esquema entre os dados upstream e a tabela sink. Nesse caso, você deve ajustar manualmente o esquema da tabela sink.
Consulte Enabling the EVOLVE mode para ver um exemplo.
Exemplos de código
Ampliação de tipos
Use o parâmetro sink.type-normalize-strategy para configure a ampliação de tipos.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Gravação em uma tabela particionada
Converta o campo de timestamp create_time para um tipo de data e use-o como chave de partição para a tabela do Hologres.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Automatically create partitioned tables if they do not exist.
createparttable: true
transform:
- source-table: test_db.test_source_table
projection: \*, DATE_FORMAT(CAST(create_time AS TIMESTAMP), 'yyyy-MM-dd') as partition_key
primary-keys: id, create_time, partition_key
partition-keys: partition_key
description: add partition key
pipeline:
name: MySQL to Hologres Pipeline
Ativando o modo EVOLVE****
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Automatically create partitioned tables if they do not exist.
createparttable: true
pipeline:
name: MySQL to Hologres Pipeline
schema.change.behavior: evolve
Sincronização de tabela única
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Sincronização de banco de dados completo
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Mesclagem de tabelas fragmentadas
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.user\.*
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
route:
# All sharded tables in the MySQL test_db database are merged into a single Hologres table named test_db.user.
- source-table: test_db.user\.*
sink-table: test_db.user
pipeline:
name: MySQL to Hologres Pipeline
Sincronização para um esquema específico
No Hologres, um esquema corresponde a um banco de dados no MySQL. Você pode especifique o esquema para as tabelas sink.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.user\.*
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
route:
# Synchronize all tables from the MySQL test_db database to the Hologres test_db2 schema while keeping the original table names.
- source-table: test_db.\.*
sink-table: test_db2.<>
replace-symbol: <>
pipeline:
name: MySQL to Hologres Pipeline
Sincronização de novas tabelas sem reinicialização
Para sincronizar tabelas recém-adicionadas em tempo real enquanto um job está em execução, defina scan.binlog.newly-added-table.enable = true.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
server-id: 5401-5499
# Automatically captures new tables created while the job is running.
scan.binlog.newly-added-table.enabled: true
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Adição de tabelas existentes na reinicialização
Para incluir uma tabela existente na sincronização, defina scan.newly-added-table.enabled como true e execute o job.
Não use scan.newly-added-table.enabled em um job que foi executado anteriormente com scan.binlog.newly-added-table.enabled. Essa combinação causa duplicação de dados na reinicialização.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
server-id: 5401-5499
scan.startup.mode: initial
# On restart, the job scans for new tables matching the `tables` parameter and performs a snapshot.
# Note: This parameter must be used with scan.startup.mode: initial.
scan.newly-added-table.enabled: true
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Exclusão de tabelas
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
# Excludes tables that match this regular expression.
tables.exclude: test_db.table1
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Documentos relacionados
Para saber mais sobre os módulos source, sink, transform e route, consulte Flink CDC Data Ingestion Job Development Reference.
Para desenvolver um job YAML de ingestão de dados, consulte Flink CDC Data Ingestion Job Development.