Hunter Performance - KPI Base Tables

terça-feira, 6 de setembro de 2011 10:49:00 Categories: Access Base de Dados Hunter KPI Performance
Rate this Content 0 Votes

Avançando na criação do nosso sistema completo de Monitoração e Análise da Rede, vamos hoje ver a próxima etapa: a definição das Tabelas de KPI.

 

 

Essas tabelas são extremamente importante, pois é a partir delas que criamos diversas aplicações, utilizando algorítmos e inteligência. A partir delas criamos facilmente os Gráficos e Dashboards, Relatórios, e tudo o que for necessário para uma análise rápida e eficiente, tudo com a nossa metodologia simplificada.

Nota: Novamente lembramos que alguns conceitos que usamos aqui já foram expostos de maneira detalhada em outros tutoriais. Portanto, para um melhor aproveitamento de seu acompanhamento, se você ainda não leu aqueles tutoriais, faça antes de prosseguir.

 

Porque armazenar os KPI’s em Tabelas?

Já respondemos essa pergunta anteriormente, mas basicamente por dois motivos: os dados já ficam no formato pronto para ser analisado, e também temos um ganho em processamento, uma vez que as tabelas já tem os principais Indicadores que utilizaremos já calculados.

Além disso, podemos armazenar em tabelas com mais de uma granularidade. Explicando melhor, a princípio teremos uma tabela com os Indicadores para cada célula. Mas precisamos realizar consultas em outras granularidades, como por exemplo os Indicadores para todas as células em um mesmo horário. Isso pode ser feito é claro através de uma consulta, agrupando os dados apropriadamente, e fazendo os cálculos correspondentes – somas, multiplicações, divisões, etc.

Mas como frequentemente utilizamos esses resumos agrupados, armazenamos esses dados em tabelas específicas, e aí quando precisamos, eles já estão disponíveis.

 

Granularidades das Tabelas

A princípio, podemos ter várias granularidades, ou agrupamentos. Vamos definir hoje 3 principais granularidades.

  • CELL: cada linha tem informação de um setor ou célula.
  • BSCRNC: resumo dos Indicadores agrupados por BSC/RNC. Essa tabela não tem mais o campo CELL. Para cada BSC/RNC, temos o Indicador Geral.
  • NET: resumo dos Indicadores por Sistema.

Observação: existe uma granularidade menor ainda, por exemplo por TRX (GSM) e Portadora (UMTS). Vamos abordar esse assunto posteriormente.

Além disso, temos um outro campo comum em todas as tabelas que informa a Tecnologia (‘TECHNOLOGY’). Mas por enquanto, não precisamos nos preocupar com isso.

Outras granularidades podem ser criadas, seguindo sempre a mesma estrutura e procedimentos, como também por BTS/NodeB. Essas outras variações ficam a seu critério, e você conseguirá fazer sem problemas, se assim desejar.

 

Homogeneização dos Indicadores

Um detalhe importante é que também fazemos a homogeneização dos Indicadores. O objetivo é reunir todos os principais, de todas as principais tecnologias e bandas em um local único. Os benefícios dessa prática são muito bons, como veremos mais tarde.

Entretanto, muita gente está acostumada a ter tudo separado. Tabelas com Indicadores para GSM, Tabelas com Indicadores para UMTS, etc.

Só que o nosso objetivo é identificar o problema, ou qualquer coisa que esteja errada com a nossa rede, esteja o mesmo onde estiver!

 

Indicadores das Tabelas – KPI’s

E é por isso que utilizamos os Indicadores principais, comuns a todas as redes,tecnologias e bandas.

  • Tráfego (TRAF)
  • Quedas de Chamadas (DROP) e (DROP_P)
  • Bloqueios de Chamadas (BLOCK) e (BLOCK_P)
  • Estabelecimento (EST) e (EST_P)
  • Handover (HO) e (HO_P)

Nota: Com exceção do Tráfego, todos os demais indicadores deve estar disponíveis em seu valor Absoluto e Percentual (este último indicado pelo sufixo ‘_P’).

Através da análise desses indicadores principais, praticamente todos os demais Indicadores são avaliados. É claro que podemos ter Indicadores Específicos, mas você perceberá que utilizando apenas esses Indicadores conseguirá uma completa avaliação da sua rede. Isso nós garantimos.

Após o problema ser apontado por esses KPI’s, prosseguimos com a análise mais detalhada. Mas o mais importante foi feito: o problema foi identificado de forma rápida e eficaz!

Finalmente, armazenamos os mesmos em sua forma absoluta e percentual, sempre que aplicável.

 

Métricas

Como já falamos, os Indicadores são definidos pelas métricas ou fórmulas.

No caso de nosso exemplo de hoje, as métricas já estão inseridas na consulta que faz o acúmulo dos dados nas tabelas correspondentes.

Para facilitar a demonstração, propositalmente os nossos contadores de exemplo já foram definidos seguindo uma nomenclatura bem direta.

Por exemplo, o Indicador TRAF (Tráfego) é dado pelo contador ‘count_TRAF’. E assim por diante.

Nota: Vale lembrar que para cada vendor, as métricas devem ser obtidas em sua documentação específica, e seguidas conforme a mesma. Mas a idéia, e o procedimento é o mesmo.

Feitas as introduções pertinentes, e introdução a mais alguns conceitos, vamos ao tutorial.

 

Objetivo

Apresentar a solução do Módulo ‘Hunter Performance – KPI Tables’.

 

Cenário

A partir da tabela de Contadores de Performance, obter tabelas com os Indocadores de Performance. Utilizaremos para isso os mesmos dados do tutorial sobre tratamento e importação de contadores.

 

Estrutura de Arquivos

A estrutura de arquivos, bem como a forma de extrair os arquivos recebidos para o local desejado, também são exatamente os mesmos do último tutorial, por isso não há necessidade de repetirmos aqui.

Só uma observação: apenas com a finalidade de facilitar a demonstração, ainda não utilizamos o diretório ‘Database’ para conter o nosso banco de dados final. Em breve, as tabelas que criaremos hoje serão movidas para lá. Você será instruido com maiores detalhes quando for necessário, mas não se preocupe, é muito simplesa.

 

A Aplicação

Agora sim, a aplicação. Como a maioria, utilizando o Access com VBA.

 

Novamente vamos mostrar a evolução da aplicação a partir de um banco de dados vazio (em branco).

 

Na aplicação de hoje, também não criaremos a interface. Isso porque é uma aplicação ainda inicial, onde pretendemos que você entenda os conceitos. Não se preocupe, só temos algumas poucas consultas e tabelas a mais que no tutorial anterior. E pouquíssimas linhas de código VBA adicionadas - continuamos com menos de 100 linhas!

Dá para você praticar, entender a idéia, e aprender mais alguns conceitos.

 

Tabela Final - PERF_G_CELL

Vamos iniciar a partir do ponto onde paramos no último tutorial: com os contadores do nosso sistema GSM em uma tabela (‘G_COUNT_CELL’).

 

A primeira coisa a fazer, é criarmos a nossa primeira tabela, contendo os dados dos Indicadores por célula (‘PERF_G_CELL’). Podemos criar essa tabela da forma como criamos qualquer tabela usando a interface do Access, mas fica mais fácil criá-la a partir de uma consulta que já esteja com os nomes e campos correpondentes ao que ela deverá conter – e para isso utilizamos o artifício de alterar a estrutura da consulta ‘Seleção’ para tipo ‘Criar Tabela’.

Primeiramente criamos uma Consulta Seleção simples, aplicando as métricas, e obtendo os dados dos Indicadores.

 

Aqui não tem muito segredo, simplesmente fazemos os cálculos.

Somente duas observações. Quando calculamos um valor percentual (‘_P’), precisamos garantir que o denominador não seja igual a Zero. Nesse caso, usamos um ‘IF’ – no caso do Access a função ‘IIF’. Se o valor comparado (em azul no exemplo) for maior que Zero, fazemos os cálculos (em verde no exemplo) inclusive multiplicando por 100. Caso contrário – valor igual a Zero, atribuímos o valor de Zero também para esse percentual (em rosa no exemplo).

E também arrendondamos o Indicador para 2 casas decimais – suficiente para nossas análises.

 

Rodando a consulta, vemos como os nossos dados estão como esperado.

 

E agora, para finalmente criarmos a tabela, selecionamos a opção ‘Make Table’ (1), e em seguida informamos o nome da nova tabela ‘PERF_G_CELL’ (2).

 

Rode essa consulte, e veja que a nova tabela será criada.

 

Certo. Mas o nosso objetivo era simplesmente criar a estrutura da tabela. Os dados serão acumulados no processo normal – após os dados dos contadores serem importados para a tabela ‘G_COUNT_CELL’, os Indicadores baseados nas informações dos mesmos devem ser acumulados na tabela final ‘PERF_G_CELL’.

Então apague todos os dados da mesma.

 

E pelos mesmos motivos que explicamos para a tabela de contadores, crie Chaves Primárias (1) para os campos que identificam registros exclusivos dessa tabela (2).

 

Pronto, a tabela está preparada para receber os dados num processo direcionado pela macro e código VBA.

 

Consulta Adicionar Dados

Para que os dados sejam acumulados, ou seja, sejam adicionados a essa tabela sempre que o aplicativo rodar, alteramos a estrutura da nossa consulta para tipo ‘Append’ (1). Dessa forma, sempre que executarmos a mesma, ela irá adicionar os seus dados para a tabela informada (2).

 

Agora, basta adicionarmos uma linha ao código VBA, para executar essa consulta assim que importar os contadores!

 

Tabela de Contadores

A informação importante, o que é necessário, já está representado pelos Indicadores. Ou seja, não temos necessidade de manter também a tabela com o acúmulo de contadores.

Por isso, a partir de agora, não vamos acumular mais os contadores – não há necessidade disso. Novamente, inserimos uma linha no código para que os dados dessa tabela sejam apagados sempre que o aplicativo rodar.

 

Tabela Final - PERF_G_BSCRNC

Além da tabela básica com os dados por célula, falamos que é importante armazenar esses mesmos dados em ‘sub’ tabelas.

Isso porque essas outras tabelas conterão dados que frequentemente serão buscados para nossos relatórios futuros.

Então, para criar uma consulta que agrupe os dados por BSC/RNC, criamos uma nova consulta, só que agora excluímos o campo ‘CELNAME’. E também agrupamos os dados, e fazemos os ajustes nos cálculos.

Para fazer isso de forma simples, copie e cole a nossa consulta anterior com o nome ‘qry_ADD_PERF_G_BSCRNC’.

 

Mas vamos precisar de criar também uma nova tabela, para conter esses dados.

Podemos fazer da mesma forma como fizemos anteriormente, mas com a nossa tabela já está criada para ‘CELL’, e os campos são os mesmos – com exceção do ‘CELLNAME’, podemos simplesmente copiar e colar aquela tabela, salvando essa nova tabela como ‘PERF_G_BSCRNC’. Em seguida, em sua estrutura, removemos o campo a mais (‘CELLNAME’). Lembre-se de voltar os demais campos como Chave Primária, pois quando removemos uma delas, todas as demais perdem esse atributo.

 

Agora, na estrutura da nossa nova consulta recém criada, faça os ajustes necessários. Selecione ‘Totals’ (1) e ajuste os campos calculados na linha ‘Total’ (2). Clique em ‘Append’ (3) e altere o nome da tabela para onde os dados serão adicionados para ‘PERF_G_BSCRNC’ (4). Observe que a linha ‘Append’ já escolhe os campos da tabela correspondentes aos mesmos campos da consulta (5).

 

Para conferir os dados, você pode temporariamente executar essa consulta no modo Seleção. Veja que agora temos os dados para cada horário (1) agrupados por BSC/RNC (2), com os seus valores calculados como esperado (3).

 

Tabela Final - PERF_G_NET

A nossa última tabela de hoje reúne os dados por sistema. Para cada horário, temos um resumo geral, na tabela ‘PERF_G_NET’.

O procedimento é exatamente o mesmo que fizemos para a tabela ‘PERF_G_BSCRNC’ – só que agora removemos também o campo ‘BSCRNC’. Dica: fica mais fácil copiar a segunda consulta criada, já que ela já está com os cálculos ajustados.

No final, temos a tabela esperada.

 

Uma vez criadas as consultas que adicionam os dados nas tabelas correpondentes, só nos resta agora ajustarmos algumas poucas linhas do código para que realize as ações devidas.

 

Código VBA

Como você já está acostumado, todo o nosso código fornecido (colaboradores Hunter) é sempre comentado. Isso torna a explicação novamente aqui redundante, extensa e desnecessária.

IMPORTANTE: O código completo, incluindo as linhas com os comentários, continua com menos de 100 linhas! Mesmo assim, se você encontrar algum problema, ou tiver alguma dúvida em algum procedimento, entre em contato, postando sua dúvida no fórum.

 

Resultado

Enfim, o resultado.

 

Novamente, ainda não vemos grandes vantagens em um módulo como esse: Algumas tabelas simples com os Indicadores de Performance?

A única coisa que podemos dizer no momento: aguarde, e você verá o que pode ser feito com elas!

E como sempre: pratique para aprender. Além de ficar extremamente simples de adaptar para o seu próprio cenário, você poderá inclusive criar novos módulos no futuro – tudo aquilo que a sua necessidade e imaginação desejar. E é claro, conte sempre com a nossa ajuda.

Bom pessoal, por hoje é isso. Esperamos que tenham gostado, tentamos sempre mostrar o mundo Telecom de maneira simples e fácil de entender.

E prepare-se para os novos tutoriais!

 

Download

Para baixar os arquivos* deste tutorial, clique aqui.

* Observação: O Hunter SDK é o conjunto de ferramentas criadas e demonstradas no telecomHall – incluindo as Macros e Códigos. O Hunter SDK somente é enviado para Colaboradores Doadores, como forma de agradecimento pela contribuição única feita, que reconhece o esforço realizado. Clique aqui se desejar saber mais. Os arquivos disponíveis servem apenas como exemplo para você que não é colaborador ter suas próprias idéias.

 

Conclusão

Vimos hoje como criar mais uma aplicação customizada utilizando o Microsoft Access, dando prosseguimento ao processamento dos contadores em Tabelas Padronizadas.

Já armazenamos os dados de Indicadores em Tabelas Base, com granularidade de Sistema (NET), BSC/RNC (BSCRNC) e Cell (CELL).

Em breve utilizaremos esses dados de forma mais constante, e sua importância ou necessidade será percebida na prática.

Agradecemos a sua visita, e esperamos que as informações apresentadas continuem servindo como ponto de partida para suas soluções e macros.

Em especial, agradecemos aos colaboradores do telecomHall. Os arquivos desse tutorial já foram enviados, por favor verifiquem. Caso tenham tido algum problema no recebimento, por favor informem.

Novos tutoriais já estão prontos, e serão publicados em breve. Como cada vez mais ficam mais complexos (embora explicados de maneira simples), recomendamos que tirem todas as dúvidas que acaso existirem.

Lembre-se: seu conhecimento adquirido pode ser o seu maior diferencial, só depende de sua força de vontade.