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

  1. 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 -version

  2. Criaçã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>

  3. 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-quickstart

  4. Conexã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.java
    package 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();
        }
    }

  5. 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.java
    package 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
        }
    }

  6. 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.java
    package 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();
        }
    }

  7. 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>

  8. 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.java
    package 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);
        }
    }

  9. 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.

Hashtags

#APL #Druid #ApacheECharts #VisualizacaoDeDados #Java #SpringBoot