Este tópico explica como usar conectores do DataStream para ler e gravar dados em fontes de dados.
Dependências e uso de conectores do DataStream
Para ler ou gravar em fontes de dados com a API DataStream, use o conector correspondente do DataStream para se conectar ao Realtime Compute for Apache Flink. Os conectores VVR DataStream estão disponíveis no repositório central Maven para uso direto no desenvolvimento do seu job.
Use apenas os conectores listados explicitamente como compatíveis com a API DataStream em Supported connectors. Conectores fora dessa lista não têm suporte, e suas interfaces podem mudar sem aviso prévio.
Os conectores do DataStream possuem criptografia comercial e não podem ser executados diretamente. Para depuração e execução local, consulte Run and debug jobs that contain connectors locally.
Você pode usar um conector das seguintes maneiras:
(Recomendado) Defina o escopo da dependência do conector como provided
-
No arquivo Maven
pom.xmldo seu job, adicione o conector necessário como dependência do projeto com o escopoprovided.Nota${vvr.version}especifica a versão do mecanismo para o ambiente de execução do job. Por exemplo, se o job for executado no mecanismovvr-8.0.9-flink-1.17, a versão correspondente do Flink será1.17.2. Recomendamos usar o mecanismo mais recente. Para obter mais informações sobre versões específicas, consulte Engine versions.Como o pacote JAR do conector é incluído como dependência adicional, não é necessário empacotar essa dependência no arquivo JAR. Portanto, declare o escopo como
provided.
<!-- MySQL connector dependency --> <dependency> <groupId>com.alibaba.ververica</groupId> <artifactId>ververica-connector-mysql</artifactId> <version>${vvr.version}</version> <scope>provided</scope> </dependency> -
Caso precise desenvolver novos conectores ou estender a funcionalidade dos existentes, seu projeto também exigirá uma dependência do pacote comum de conectores
flink-connector-baseouververica-connector-common.<!-- Base dependency for Flink connector public interfaces --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-base</artifactId> <version>${flink.version}</version> </dependency> <!-- Base dependency for Alibaba Cloud connector public interfaces --> <dependency> <groupId>com.alibaba.ververica</groupId> <artifactId>ververica-connector-common</artifactId> <version>${vvr.version}</version> </dependency> Adicione o pacote JAR do conector.
Método 1: Usar um conector integrado da plataforma (recomendado)
Prefira os conectores integrados. Eles reduzem dependências adicionais e a manutenção de versões. Quando a plataforma recebe patches ou atualizações, os conectores integrados são atualizados juntamente com ela, sem necessidade de atualização separada.
Compatível apenas com VVR 11.2 e versões posteriores.
Deploy a JAR job e adicione a configuração em Other Configuration na seção Starting Parameters.
Para depender de vários conectores integrados, por exemplo mysql e kafka, use a seguinte configuração. Para o nome de cada conector integrado, consulte a documentação do conector em Connectors.
pipeline.used-builtin-connectors: mysql;kafka
Método 2: Adicionar o pacote JAR do conector como dependência adicional
Deploy a JAR job e adicione o pacote JAR do conector correspondente na seção Additional Dependencies. Você pode fazer upload de um conector desenvolvido por você ou de um conector fornecido pelo Realtime Compute for Apache Flink.
Por exemplo, adicione ververica-connector-mysql-1.17-vvr-8.0.8.jar e ververica-connector-kafka-1.17-vvr-8.0.8.jar.
Dependência do projeto
-
No arquivo Maven
pom.xmldo seu job, adicione os conectores necessários como dependências do projeto. O exemplo abaixo demonstra como adicionar os conectores Kafka e MySQL.Nota${vvr.version}representa a versão do mecanismo do ambiente de execução do job. Se o job for executado no mecanismovvr-8.0.9-flink-1.17, por exemplo, a versão correspondente do Flink será1.17.2. Recomendamos usar o mecanismo mais recente. Para mais detalhes, consulte Engine.Como os conectores são empacotados diretamente no JAR do job como dependências do projeto, eles devem estar no escopo padrão
compile.
<!-- Kafka connector dependency --> <dependency> <groupId>com.alibaba.ververica</groupId> <artifactId>ververica-connector-kafka</artifactId> <version>${vvr.version}</version> </dependency> <!-- MySQL connector dependency --> <dependency> <groupId>com.alibaba.ververica</groupId> <artifactId>ververica-connector-mysql</artifactId> <version>${vvr.version}</version> </dependency> -
Se for necessário desenvolver novos conectores ou ampliar a funcionalidade dos existentes, o projeto também precisará de uma dependência do pacote comum de conectores
flink-connector-baseouververica-connector-common.<!-- Flink connector public interfaces --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-base</artifactId> <version>${flink.version}</version> </dependency> <!-- Base dependency for Alibaba Cloud connector public interfaces --> <dependency> <groupId>com.alibaba.ververica</groupId> <artifactId>ververica-connector-common</artifactId> <version>${vvr.version}</version> </dependency>
Para evitar conflitos de dependência, observe os pontos a seguir:
${flink.version}corresponde à versão do Flink na qual o job é executado. Essa versão deve ser idêntica à versão do Flink do mecanismo VVR selecionado na página de implantação do job. Por exemplo, ao selecionar o mecanismovvr-8.0.9-flink-1.17na página de implantação, a versão correspondente do Flink será1.17.2. Recomendamos usar o mecanismo mais recente. Para detalhes sobre versões específicas, consulte Engine Versions.Para dependências relacionadas ao Flink, defina o escopo como
providedadicionando<scope>provided</scope>à dependência. Isso inclui principalmente dependências que não são de conectores no grupoorg.apache.flinke que começam comflink-.No código-fonte do Apache Flink, invoque apenas métodos anotados com @Public ou @PublicEvolving. O Realtime Compute for Apache Flink garante compatibilidade somente para essas APIs públicas.
Quando uma API DataStream for compatível com um conector integrado do Flink, recomendamos usar a dependência integrada correspondente.
Documentação relacionada
Para um exemplo completo de referência de desenvolvimento, consulte Develop JAR jobs.
Para ver outros conectores compatíveis com DataStream, acesse Supported connectors.
Devido à criptografia comercial dos conectores DataStream, não é possível executá-los ou depurá-los localmente sem uma configuração específica. Para instruções detalhadas, veja Run and debug jobs that contain connectors locally.