Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Azure Cosmos DB é um serviço de base de dados NoSQL totalmente gerido fornecido pela Microsoft. Permite-lhe construir aplicações distribuídas globalmente e altamente escaláveis com facilidade. Este guia guia-o pelo processo de criação de uma aplicação Java que utiliza a base de dados Azure Cosmos DB para NoSQL e implementa o Processador de Fluxo de Alterações para processamento de dados em tempo real. A aplicação Java comunica com o Azure Cosmos DB para NoSQL usando o Azure Cosmos DB Java SDK v4.
Importante
Este tutorial é apenas para o Azure Cosmos DB Java SDK v4. Por favor, consulte as notas de atualização do Azure Cosmos DB Java SDK v4, o repositório Maven, o processador de feed de alterações no Azure Cosmos DB e o guia de resolução de problemas do Azure Cosmos DB Java SDK v4 para mais informações. Se você estiver usando uma versão mais antiga do que a v4, consulte o guia Migrar para o SDK Java do Azure Cosmos DB v4 para obter ajuda na atualização para a v4.
Pré-requisitos
Conta Azure Cosmos DB: pode criá-la a partir do portal Azure ou usar também o emulador Azure Cosmos DB .
Ambiente de Desenvolvimento Java: Certifique-se de que tem o Java Development Kit (JDK) instalado na sua máquina com pelo menos 8 versões.
Azure Cosmos DB Java SDK V4: fornece as funcionalidades necessárias para interagir com o Azure Cosmos DB.
Contexto geral
O feed de alterações do Azure Cosmos DB fornece uma interface orientada por eventos para desencadear ações em resposta à inserção de documentos, que tem muitas utilizações.
A gestão dos eventos do feed de alterações é, em grande parte, realizada pela biblioteca do processador do feed de alterações incorporada no SDK. Esta biblioteca é suficientemente poderosa para distribuir eventos do feed de alterações entre vários trabalhadores, se assim se desejar. Tudo o que tens de fazer é fornecer um callback à biblioteca do feed de alterações.
Este exemplo simples de aplicação Java está a demonstrar processamento de dados em tempo real com o Azure Cosmos DB e o Change Feed Processor. A aplicação insere documentos de exemplo num "contentor de alimentação" para simular um fluxo de dados. O Processador de Feed de Alterações, associado ao contentor do feed, processa as alterações recebidas e regista o conteúdo do documento. O processador gere automaticamente os arrendamentos para processamento paralelo.
Código fonte
Pode clonar o repositório de exemplo do SDK e encontrar este exemplo em SampleChangeFeedProcessor.java:
git clone https://github.com/Azure-Samples/azure-cosmos-java-sql-api-samples.git
cd azure-cosmos-java-sql-api-sample/src/main/java/com/azure/cosmos/examples/changefeed/
Walkthrough
Configure-o
ChangeFeedProcessorOptionsnuma aplicação Java usando Azure Cosmos DB e Azure Cosmos DB Java SDK V4. OChangeFeedProcessorOptionsfornece definições essenciais para controlar o comportamento do Processador de Feeds de Alterações durante o processamento de dados.options = new ChangeFeedProcessorOptions(); options.setStartFromBeginning(false); options.setLeasePrefix("myChangeFeedDeploymentUnit"); options.setFeedPollDelay(Duration.ofSeconds(5)); options.setFeedPollThroughputControlConfig(throughputControlGroupConfig);Inicialize o ChangeFeedProcessor com configurações relevantes, incluindo o nome do anfitrião, contentor de alimentação, contentor de arrendamento e lógica de tratamento de dados. O método start() inicia o processamento de dados, permitindo o processamento concorrente e em tempo real das alterações de dados recebidas do contentor de alimentação.
logger.info("Start Change Feed Processor on worker (handles changes asynchronously)"); ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder() .hostName("SampleHost_1") .feedContainer(feedContainer) .leaseContainer(leaseContainer) .handleChanges(handleChanges()) .options(options) .buildChangeFeedProcessor(); changeFeedProcessorInstance.start() .subscribeOn(Schedulers.boundedElastic()) .subscribe();Especifique que o delegado gere as alterações de dados recebidas usando o
handleChanges()método. O método processa os documentos JsonNode recebidos a partir do Change Feed. Como programador, tens duas opções para gerir o documento JsonNode fornecido pelo Change Feed. Uma opção é operar no documento sob a forma de um JsonNode. Isto é ótimo, especialmente se não tiveres um modelo de dados único e uniforme para todos os documentos. A segunda opção – transformar o JsonNode num POJO com a mesma estrutura do JsonNode. Depois podes operar no POJO.private static Consumer<List<JsonNode>> handleChanges() { return (List<JsonNode> docs) -> { logger.info("Start handleChanges()"); for (JsonNode document : docs) { try { //Change Feed hands the document to you in the form of a JsonNode //As a developer you have two options for handling the JsonNode document provided to you by Change Feed //One option is to operate on the document in the form of a JsonNode, as shown below. This is great //especially if you do not have a single uniform data model for all documents. logger.info("Document received: " + OBJECT_MAPPER.writerWithDefaultPrettyPrinter() .writeValueAsString(document)); //You can also transform the JsonNode to a POJO having the same structure as the JsonNode, //as shown below. Then you can operate on the POJO. CustomPOJO2 pojo_doc = OBJECT_MAPPER.treeToValue(document, CustomPOJO2.class); logger.info("id: " + pojo_doc.getId()); } catch (JsonProcessingException e) { e.printStackTrace(); } } isWorkCompleted = true; logger.info("End handleChanges()"); }; }Constrói e executa a aplicação Java. A aplicação inicia o Processador de Alimentação de Alterações, insere documentos de exemplo no contentor de alimentação e processa as alterações recebidas.
Conclusion
Neste guia, aprendeu a criar uma aplicação Java usando o Azure Cosmos DB Java SDK V4 que utiliza a base de dados Azure Cosmos DB for NoSQL e o Processador de Fluxo de Alterações para processamento de dados em tempo real. Pode estender esta aplicação para lidar com casos de uso mais complexos e construir aplicações robustas, escaláveis e distribuídas globalmente usando o Azure Cosmos DB.
Recursos adicionais
Próximos passos
Pode agora aprender mais sobre o estimador do feed de alterações nos seguintes artigos: