Introdução
Neste tutorial, vamos explorar como integrar APL com ferramentas populares de visualização de dados como Druid e Apache ECharts. APL, sendo uma linguagem poderosa para processamento de dados, pode ser combinada com Druid para uma análise de grandes volumes de dados, enquanto o Apache ECharts oferece uma ampla gama de opções de visualização. Esse guia é projetado para desenvolvedores que desejam incorporar visualizações eficazes em seus projetos de análise de linguagem e dados, proporcionando insights valiosos e interativos. Vamos passo a passo construir um exemplo completo que abrange a conexão de Druid, a extração de dados com APL e a visualização com ECharts, garantindo que você tenha um projeto funcional ao final do tutorial.
Etapas
Configuração do Ambiente de Desenvolvimento
Antes de começar, verifique se você já possui o Java e o Maven instalados. Para os testes, também será necessário o Apache Druid e o Apache ECharts configurados. Você pode encontrar guias de instalação em seus sites oficiais. Certifique-se de que as versões estão atualizadas.
commands# Verificar se Java e Maven estão instalados
java -version
mvn -versionCriação do Projeto Spring Boot
Utilize o Spring Initializr para criar um novo projeto Spring Boot. Escolha as dependências necessárias: Spring Web, Spring Data JPA e Druid, garantindo que seu projeto terá suporte para conectar aos dados de Druid.
pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.aplvisualizacao</groupId> <artifactId>apl-visualizacao</artifactId> <version>0.0.1-SNAPSHOT</version> <name>apl-visualizacao</name> <description>Projeto de visualização com Druid e ECharts</description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.apache.druid</groupId> <artifactId>druid-client</artifactId> <version>0.21.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Configuração do Druid
Baixe e instale o Apache Druid, conforme as instruções no site oficial. Após a instalação, configure o Druid para rodar em sua máquina e crie uma fonte de dados para testar a integração. Garanta que você pode acessar a interface web do Druid para verificar dados.
commands# Para iniciar o Druid, execute o seguinte na pasta do Druid
bin/start-micro-quickstartConexão com Druid no Projeto Spring Boot
Crie a classe de configuração para conectar o Spring Boot ao Druid. Usaremos a biblioteca Druid para fazer consultas aos dados.
DruidConfig.javapackage com.example.aplvisualizacao.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.apache.druid.client.ExperimentalDruidClient; import org.apache.druid.client.DruidClient; @Configuration public class DruidConfig { @Bean public DruidClient druidClient() { return new ExperimentalDruidClient(); } }
Criação do Serviço para Consultas
Implemente um serviço que será responsável por realizar consultas ao Druid e retornar os dados processados. Este serviço irá se comunicar com a fonte de dados do Druid e fornecer as informações para visualização.
DataQueryService.javapackage com.example.aplvisualizacao.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.apache.druid.client.DruidClient; import java.util.List; @Service public class DataQueryService { @Autowired private DruidClient druidClient; public List<?> queryData() { // Lógica para consulta ao Druid e retorno de dados return null; // substitua por sua implementação real } }
Configuração da Controladora para Expor Dados
Crie um controlador que irá expor um endpoint REST para que o frontend possa acessar os dados consultados. Utilizaremos a arquitetura padrão do Spring Boot para criar este controlador.
DataController.javapackage com.example.aplvisualizacao.controller; import com.example.aplvisualizacao.service.DataQueryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/api/data") public class DataController { @Autowired private DataQueryService dataQueryService; @GetMapping public List<?> getData() { return dataQueryService.queryData(); } }
Servindo o Frontend com Apache ECharts
Configure o frontend para usar Apache ECharts. Crie um arquivo HTML simples onde podemos visualizar os dados que vêm do nosso controlador. Utilize a API do ECharts para criar gráficos dinâmicos.
index.html<!DOCTYPE html> <html> <head> <title>Visualização de Dados com ECharts</title> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <div id="chart" style="width: 600px;height:400px;"></div> <script> fetch('/api/data') .then(response => response.json()) .then(data => { var chartDom = document.getElementById('chart'); var myChart = echarts.init(chartDom); var option = { xAxis: { type: 'category', data: data.map(item => item.name) }, yAxis: { type: 'value' }, series: [{ data: data.map(item => item.value), type: 'line' }] }; myChart.setOption(option); }); </script> </body> </html>
Testes e Validação do Endpoint
Escreva testes unitários para sua lógica de consulta ao Druid e valide se os dados estão sendo retornados corretamente. Teste a integração do controlador utilizando bibliotecas como Mockito e JUnit.
DataQueryServiceTest.javapackage com.example.aplvisualizacao.service; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) public class DataQueryServiceTest { @Mock private DruidClient druidClient; @InjectMocks private DataQueryService dataQueryService; @Test public void testQueryData() { // Lógica para simular a consulta e retornar uma lista List<?> data = dataQueryService.queryData(); assertNotNull(data); } }
Executando a Aplicação e Testando
Compile e execute a aplicação usando Maven. Acesse o frontend no navegador e verifique as visualizações oferecidas pelo ECharts através do endpoint que você criou.
commands# Compilar e iniciar a aplicação
mvn spring-boot:run
Conclusão
Neste tutorial, você aprendeu como integrar APL com Druid e Apache ECharts, criando uma aplicação que realiza consultas a grandes volumes de dados e os visualiza de forma interativa. Cobrir todo o ciclo de desenvolvimento, desde a configuração do ambiente até a implementação de testes unitários, garante que você tenha aprofundado seus conhecimentos em integração de sistemas. Agora, você pode expandir essa aplicação para adicionar mais funcionalidades e análises complexas, aproveitando ao máximo o potencial do APL.