Posts com Tag ‘Relatórios’

Sabe aquele relatório que cisma em NÃO executar com uma performance compatível com o seu banco de dados? Seus dashoboards demoram um “zilhão” de anos para abrirem e a navegação entre as páginas é péssima? O OBIEE está inutilizável mesmo com um servidor “parrudo”? Saibam quais os principais erros ao se implementar o Oracle Business Intelligence EE 11g (OBIEE 11g) e como corrigi-los a tempo para salvar seu projeto.

Eu, Felipe Idalgo juntamente com o INBA, convidamos você a participar desta super palestra com muitas dicas, truques e macetes.

LOCAL: SALA ONLINE (Se inscreva, é gratuito) DATA: 20/Agosto Horário: das 16h as 17h

CONABI

Anúncios

O Oracle BI Server é um gerador de consultas SQL’s e o sucesso de um projeto de OBIEE depende muito do retorno destas consultas físicas executadas diretamente no banco.

A consulta SQL retorna o resultado corretamente e no menor tempo possível?

Os usuários finais não veem os SQL’s físicos, e nem devem ver, porem muitas vezes, os próprios desenvolvedores também não dão a devida atenção para elas tambem, acreditam não poder interferir, “o produto gera automaticamente estas SQL’s, não podem ser modificadas”. Isto não é verdade.

A qualidade destas SQL’s físicas é talvez, a questão mais importante de um projeto OBIEE, o desempenho deve ser sempre prioridade, mesmo que a apresentação seja prejudicada por isto.

Aceitar sacrifícios na apresentação da informação em prol ao desempenho durante o início do projeto é mais fácil do que depois, quando os gráficos e dashboards já estão sendo apresentados para o usuário e por causa de problemas de desempenho ser necessário alterá-los.

Os objetivos desde o início, devem ser a busca por resultados corretos, rápidos e fáceis de acessar.

Resultados corretos parecem óbvios, mas muitas vezes ignorados, usuários finais podem obter resultados errados por anos sem perceber nada. A análise das consultas SQL’s físicas podem identificar este tipo de problemas, como filtros ausentes, ou em excesso, tabelas indevidas incluídas nas análises, etc.

Resultados rápidos muitas vezes, não é o foco dos desenvolvedores no inicio do projeto. As expectativas dos usuários não são claras quanto ao desempenho, querem algo “aceitável”. A preocupação com desempenho só ocorre no final ou quando os problemas estão estourando em produção. É inútil ter um dashboard esteticamente bem apresentado se cada clique leva 2 minutos para retornar a informação.

Resultados fáceis ou facilidade na navegação e na construção das análises é o foco principal de todos no inicio do projeto (usuários e desenvolvedores) e é muitas vezes a principal causa dos problemas. O impacto sobre o desempenho deve ser sempre avaliado quando se discute com os usuários a apresentação das informações.

Vou demonstrar como visualizar a SQL física de uma determinada análise feita no OBIEE.

Vamos identificar a SQL Física da análise abaixo:

UNMyxx4GdIrycFHXVEO5P2ER_uR4nO1idE_WamCEROTt6csutbNdt9S-Y_wLQJRwgY8Rg2Pt3kuCDJOtJbd56DKWoY5NYVV6k9quj57dBr2wghZDuUk

Primeiramente capturamos a SQL Lógica, através da aba Avançado.

UIO4Zd3cp4E3FRVzEq-ifVVmVGLnWHtBjonG56dUST8QyxpD6sgUqpMw1aYeMAlF-r8UfSn5JjTTzMpG8-EAoSww0nr9zmfBJSwf9OC1yVeeIZTgR6Q

Cclick em Administração > Emitir SQL.

n2gdVsr7A9fvFykESssXMyNNsTiRv_tYGDbSZ67o9HzKxjeC3ZAg3TVvuxpdE967O2jntugFlFEpm1C83RmTlgijZU67n7IShjRte3YiobOnA-dP-xc

Cole a SQL Lógica aqui, desmarque a utilização de Cache e click em Emitir SQL.

o-tUwd3iv4zd1HOuk5WdQpOcKW7y08Qf9RJOwT2RIUQXE5_0SXEDYY_lcmEX9qLt8rNqVXEirV3Ehg7ETR4DOw1Dxy5hcHF8smT0F-El-MUofKaq258

O resultado será uma lista com os dados resultantes da consulta e no final um botão para verificar o log.

Este log é apresentado a seguir.

Abs.

Alan Viegas

 

banner_treinamento

Ola pessoal, novamente estou aqui para falar de um recurso muito interessante do OBIEE.

O cache é um recurso importante para melhorar o tempo de resposta nas consultas do OBIEE, quando ativado, todas as consultas realizadas no banco são armazenadas no servidor do obiee em arquivos chamadas de entradas de cache, com os dados desta consulta. Quando a mesma consulta é feita novamente o OBIEE não acessa o banco novamente, ele utiliza as entradas de cachê para retornar o resultado.

Para ativar o cache é necessário realizar os seguintes passos:

Ativar o cache nas próprias tabelas da camada física, uma a uma.

bEXPLlAFQ3iAw1jLvFau6JxfJXDar53y90XoSTvKkMzKmI8tFpdIF0B2-CcGO8v6CNgkm7vWlN0rvcG_-A4VyGNJrMKlM89gB11vfK9Z-C_MmRy5l7g

Aqui temos as seguintes opções:

Cache nunca expira

Selecionando esta opção, as entradas de cache não expiram mais para esta tabela. É útil quando a tabela é importante para um grande número de consultas, por exemplo, uma tabela de CEP que seja muito utilizada,. Mantê-la em cache indefinidamente pode melhorar o desempenho destas consultas.

Porem esta escolha significa que o cache desta tabela permanecerá sempre válido, somente uma intervenção manual como alterações na sua estrutura na camada semântica ou o uso de uma tabela de Event Pooling (veremos mais a frente) pode invalidar as entradas deste cachê.

Cache persistente por tempo

Define quanto tempo às entradas de cache devem persistir, antes de expirar, em outras palavras, o cache é invalidado após um determinado tempo definido pelo usuário.

Esta definição é útil em tabelas que são atualizadas com muita frequência.

e8HicLNwjN0zNCRtey4ApdSOlzwgw7XGf4_rMHXIcxZoKfgT4V6Y7Bk-pX475XPoBDu3FDUFdPqCkfKQ0eGkO_vYROkEL8YOBriMlPTiJyyk5lyw35k

Alem disto é necessário ativar no Servidor o serviço responsável pelo gerenciamento deste cache. Isto é feito através do Enterprise Manager em Business Intelligence > coreapplication > Gerenciamento de Capacidade > Desempenho

9tO9WJnjb22Soc2fyiQHs4RwsJfvKf_0mUH58qgmynwEeOIGosiqy8EN6_uYL-91iaub7WpONwGx4W7hUWs0rHIow6fTJkyuW12Ul0FxSZcqD4Gb0sc

Click em Bloquear para Edição e ative o cache , aqui é possível definir o tamanho máximo deste cache, e a quantidade máxima de entradas.

Oj7nNZAl0RguwOD1LtJNWnNMSd7--NCb8H0xwcMc4PFVNVWybXG2WcP-eQ8K5_wUiisM6c_u_AKBtWi14VYSp6mRDAiMRWohoPA8DB6ocWmGkI4Qr5c

Ative as alterações e reinicialize os serviços para que o cache seja ativado. As entradas de cache são geradas no servidor do BIEE no diretório:

%ORACLE_HOME%/instances/instance1/bifoundation/OracleBIServerComponent/coreapplication_obis1/cache

O problema é que muitas vezes é necessário ter um controle maior sobre as atualizações destas entradas de cache, neste caso é necessário implementar o Event PollingTable.

O servidor do Oracle BI utiliza uma tabela de eventos como uma maneira de ser notificado que uma ou mais tabelas na camada física foram atualizadas. Ou seja, cada linha que é adicionada nesta tabela de eventos determina um evento único de atualização em uma determinada tabela da camada física.

O Oracle BI Server lê estas linhas, verifica que uma determinada tabela física foi atualizada recentemente e invalida todas as entradas de cache que fazem referencia a esta tabela.

Desta forma é possível incluir no final do seu processo de ETL, por exemplo, um procedimento de carga desta tabela de eventos, indicando quais tabelas da camada física foram atualizadas ou recarregadas.

O Oracle BI Server irá verificar esta tabela de tempo em tempo (período determinado por você) se alguma tabela da camada física foi atualizada e invalida ou não o cache.

Vamos utilizar em nosso exemplo a tabela COUNTRIES do schema HR.

Com o cache ativado, todos os relatórios em cima desta tabela serão executados pelo menos uma vez acessando diretamente o banco de dados e depois, nas próximas execuções, o acesso será feito em cache, melhorando assim a desempenho.

Vamos manter esta tabela com o cache nunca expira.

dXxd7Yq3e6_hRMpoKBY9R7DnaqYfo8749NW2XobBEbzg6DSYBeGJI9nnTizVLv0nHABn8lllKcc6rwMXxOTru95Uk4tw_UDzx7i6Z8sUTe4mt7kMXFk

Para criar a tabela de evento vamos utilizar o script fornecido pela Oracle localizado no diretório do servidor de BI.

%ORACLE_HOME%/instances/instance1/bifoundation/OracleBIServerComponent/coreapplication_obis1/schema/ SAEPT.Oracle.sql

O conteúdo deste script é:

drop table S_NQ_EPT ;

create table S_NQ_EPT (

UPDATE_TYPE DECIMAL(10,0) DEFAULT 1 NOT NULL,

UPDATE_TS DATE DEFAULT SYSDATE NOT NULL,

DATABASE_NAME VARCHAR2(120) NULL,

CATALOG_NAME VARCHAR2(120) NULL,

SCHEMA_NAME VARCHAR2(120) NULL,

TABLE_NAME VARCHAR2(120) NOT NULL,

OTHER_RESERVED VARCHAR2(120) DEFAULT NULL NULL

) ;

kZfbME9fc33CV6xHr2OE3sEbHGTCxMZa4-RboahfpcffUHDGmnvmG7_Z8d2V06xMqn0HNSYh7btrXDDcT7AKtVmk-AED-oFpWAXWq_RJ930lGAV3OaU

Esta tabela deve ser mapeada na camada física do OBIEE.

2b_sXjXEK36q18PeBUbQ4DvvXdQq8pTNlBi3gdSqogcpYKUd2-J6TxGFVMx9KQLEBYR8Qs-lucBQu14nxvoRAlpE1IE_4IyB8DgZx_AfgIHpNexOPe0

Ativar evento de atualização de Cache no Administrator do BIEE

Em Tools > Utilities > Oracle BI Event Tables – Selecionar a tabela de eventos e vamos setar a frequência em intervalos de 10 minutos., ou seja de 10 em 10 minutos o Oracle BI Server verificará a tabela de eventos.

zEqtvz14OfueDcZoiMM7o9OcE4s7FhnDy_wSBD9MszgZiyfxfPA9qO1KUxSZFB4RlYmpXYjMocESxPB911fgioWkXHF0wDPGtcD_oz3MRmXkr3C7-C8

Confirme e salve as alterações.

O ícone da tabela muda, identificando que é uma tabela de eventos.

ttLIhbpkEm8q04dxoVzl66ze3PQzW_18DBkVCoLv3Kh6G9hmyIcG5xAl1ItI3cnsrvcEKU2GfDea7sGmKk6ZLpOtA5sJjKXL7HNK9RBSvA2lSgAN7bU

Vamos inserir uma linha nesta tabela, identificando que a tabela COUNTRIES foi atualizada.

UIGrpSsw_CzUitXz_EPDZMhKN0cxgfNkGr8JDr3hiOq-G5TA5fjLZojs4hTHfnzKVCLs1qHSQj4q7gQ1GvWjnFfNRYxL74VxxL7RvS-03iHvRxeV_yc

Após o próximo intervalo configurado o Oracle BI Server pesquisa a tabela de eventos e limpa as entradas de cache referente à tabela COUNTRIES.

É possível verificar isto no diretório abaixo:

%ORACLE_HOME%/instances/instance1/bifoundation/OracleBIServerComponent/coreapplication_obis1/cache

A entrada na tabela de eventos S_NQ_EPT também é truncada após o intervalo de pesquisa.

Usando uma tabela de eventos é a maneira mais precisa par a invalidar as entradas de cache obsoletos, provavelmente o método mais confiável. No entanto como existe um intervalo de pesquisa definido na configuração, existe o risco ainda de o cache não estar totalmente atualizado durante este intervalo, ocasionando o risco de dados obsoletos serem consultados.

Até a próxima..

Alan

Continuando o assunto sobre a integração do Google Maps com o OBIEE, vamos agora demonstrar como utilizar os Mapas do Google no OBIEE.

Após importar as camadas do Mapviewer vamos agora associar um tema a uma coluna na camada de apresentação do OBIEE.

No nosso exemplo vamos utilizar o tema THEME_DEMO_STATES que apresenta a sigla dos estados abreviados com a coluna de apresentação “Cust Regions”.”C54 State Code”

Selecione o tema desejado.

ybrvgHsfIMsOIzch7GhBr7y7Ypd43v2y5xnVmdhKOWjPArp2pUU7kMs1BWThcLZqsqz7p4hZh7HxahFj02Y_tGZKSlYDF2y7042jhiiLpORkR27VW8I

Edite o tema e click no sinal de +

5V8HL9EDmfz33Wz7PiI6JnwZSOxYoCQh7c-tnYl4Bw74We2YpGsU4hGcFpob3ZU0faUZhHQNpU_N5X7RnFlCDTTeNmFW1I-hX1s7I4e9-ZNUNfx46v0

Selecione a coluna desejada, no nosso caso, “Cust Regions”.”C54 State Code” e click em ok.

tZHU305SNx6BLEBMB2wxFBruUx2zQsdEA8sM_5shJYnJkynbLYBGz1EoevLFwkvVXwpmuDW1hxIf5rWsLGpVCAm59yYaeHJhDph_KNslZUgjumeSftw

Click em ok novamente

HeOcBpGprlG0-RNWyQqmx4VqvroSYWBahwS0_VEanMfXdafZdTFYE2ALkDJrR7wb6eRxTdUKlLX8Enh6AhEKCaRkc9vNs4gr87OpKepSBsdxv8h_gWY

Clique em Editar Mapa de fundo e clique em definir níveis de zoom associados com dados de BI, vamos definir 9 como o nível de zoom e 2 como padrão, como mostrado abaixo.

DgS5f_GGq06At-iLZZ003_UAarKSXjLyVHH3HTQzUP7FcuDYXm0-H42rwMAwSFQRb8AZx7iQjXDKV30uML7XYWAaP6HZKlIhPOw331fNcqqUlpIj_2g

a5q3dH6xWz_zXafCWgggVMraP4EwtAP_DVu6Y33cve-EEmBqkrybCnr2z67Tti6g6l3EOzmEzZTFiQ3o97oH7rzQZcK1eKVmU4VDu-cri2M4bhuFnsU

Selecione o tema que estamos utilizando.

Y7A7kAiYeAHfs4EBpksyERhREl8Yu6fULgNyQ3YLHHpmpSvxjpSmMGsnA7snRh0Mfqk_Yg6vk1W4MHDxPKObQrniYB9Y8Bu9qjCvahvycmrRgveVNE0

Selecione até o nível 9 e deixe marcado o nível 2 e click em ok.

kO9C0JsJ9hLWOMOTmWp3-ouM2m0bdxSKljI_RLbYULzroe6D2T3rYUvcA2Buo2NwjtH0sm0Ae6mmyB6pZYE70SWnVZHgWOTjgzZL52DT2Fm3fR1Rpw8

A partir de agora a coluna “Cust Regions”.”C54 State Code” esta associada a um mapa de segundo plano.

Vamos agora criar uma analise para demonstrar o uso do mapa.

Selecione a coluna “Cust Regions”.”C54 State Code”, “Time”.”T05 Per Name Year” e “Base Facts”.”1- Revenue”

_OTSahSVTxA2CjKi8QdhfPRc50KfwGoMAtKI1uc62MqNqjoGijn3W2-THjLvovohyLThHinBLVdgYv8NOg9k6CDN4mB6suK0IXdTM_RCSm_iTx8dLJA

Na tela de resultados click e nova view e selecione Maps

W3piotUH5_IlS4AbVVmVvNU7Gd-1YK3Ti_g8xlCNJrlzHCcs6zFMhV4_XTzsYNjoROAL9donwQ5MQxb0LgD-kDuEcnI5xtoCzV0_KqpPdRp0ha4LTzw

Edite o Mapa

sR3N0DKpnx64g-HcRtZuod_q9jCmNQpswwL_PmEwgTKZalEk5Bm3YL4MDGiCAbM4r7qGIImv6eEw2i0DhIUkIamK0TRudqVq9bTcjIfs_zaGYT4wLrw

Modo Edição

LnDFTRlM2pCWkyQ3jAi_SAZMXLX2vWgu8yH8AuETRiP-NHrFy-jB7AbTqOhlznwQ92WUDyNf8wN1_fbslVoSO1gY9GAKCLmaypqejv9Pg9Jdwa1a0EY

Click em Novo > Preenchimento de Cores

8EtX-yP3TjdaxaOoOWUr98sjBYKI9LJRsNv90O53GjE7NH8Ia9MQW-m4d0Kvi0NHzdfncso4S9umw4L0vM5wiBMM32aYC-9oycccfrzJ22YGZ6TtpeQ

Selecione as cores desejadas e click em OK e depois em concluído.

7UwMYsbLMcNqcee-AXrRyqlp-oXpQ2zHarbwyqB-NvJv3WWiM_hL2W_UpLFuf1Lg77E4MeVg2mDSKWZGktJDI14MP1uF7lPkmrcVdAgpDzg5Mdn8mwI

O Mapa abaixo demonstra em cada estado, através das cores que definimos as três situações possíveis.

tNV1nBkokQF9Ahxa6lqIBKx3Ghk_A-0fUT9NGzs2Gvpr79BJ4w3JKWf9NcI7rSAGmj2VJYhT5ogUqUZkb78iQ-a_rwWZoqMrazFEgo6YHYhBrBz0OI8

Exemplificamos aqui um indicador de cores simples, mas também é possível adicionar gráficos de barra, pizza, bolha, etc.

Existem muitos recursos de interação com mapa, no futuro vamos explorar mais estes recursos.

Até a próxima

Alan Viegas

 

Ola pessoal,

Um dos novos recursos do OBIEE 11g que ainda não muito explorado é o Master-Detail Link.

Este recurso estabelece um link entre duas ou mais analises, sendo que uma análise deverá ser sempre a análise mestre que conduzirá de maneira dinâmica as mudanças nas demais analises sem perder a visualização da análise mestre.

A ideia é ter uma análise principal com uma visão mais resumida de uma determinada dimensão e outras analise detalhando outras informações de um item específico desta dimensão.

Quando o usuário clica em um destes itens na analise mestre, as demais análises-detalhes filtra apenas este item, como no exemplo abaixo:

Vamos começar criando uma nova análise que será nossa análise mestre.

Depois temos que configurar esta análise para se tornar uma analise máster. Vamos utilizar a coluna "Per Name Qtr" da dimensão “Time” para direcionar a filtro das outras análises.

Em propriedades desta coluna, click na tab Interação e mude a interação principal para Enviar eventos mestre/detalhe e especifique um nome para o canal de interação, no nosso exemplo definimos CANAL1.

A opção Master-Detail estará disponível sobre o valor da célula, ou seja, ao clicar em cima do valor é passado para as demais análises o valor clicado.

Agora vamos criar uma nova analise que ira detalhar os resultados conforme as analise máster.

E vamos criar um gráfico para esta consulta, que vai esperar pelos eventos da analise máster, Revenue por Brand com uma visão quadrimestral.

Edite o gráfico e abra a janela de propriedades.

Click em ativar “Listen dos Eventos Mestre/Detalhe” e informe o canal de interação criado anteriormente CANAL1 e click em OK.

Nesta mesma analise vamos criar uma tabela simples com o campo “Per Name Qtr” colocado como prompt da tabela.

Depois de ter criada a tabela, em modo de edição click em propriedade da tabela e faça a mesma coisa, ativeo “Listen dos Eventos Mestre/Detalhe” e informe o canal de interação criado anteriormente CANAL1 e click em OK.

Pronto, agora é só testar, publique as analise em um painel e o que teremos é um painel onde ao clicar em qualquer quadrimestre na tabela Master as demais análises iram destacar este quadrimestre automaticamente.

Até a próxima

Alan Viegas