SQL-magazine 128 Rjwbegvf

download SQL-magazine 128 Rjwbegvf

of 68

Transcript of SQL-magazine 128 Rjwbegvf

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    1/68

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    2/68

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    3/68

    Sumário

    A SQL Magazine tem que ser feita ao seu gosto. Paraisso, precisamos saber o que você, leitor, acha darevista!

    Dê seu voto sobre esta edição, artigo por ar tigo, atra-vés do link:

    www.devmedia.com.br/sqlmagazine/feedback

         D     ê

     

       s  e  u 

     F eedb a c  k  

    s      o      b   r    e

      e  s

      t   a    e   d  i   ç    ã      o

    Dê seu feedback sobre esta edição!54 – Oracle Upgrade: Como fazer upgrade do oracle 11g para 12c – Parte 3[ Ricardo Rezende ]

    Artigo no estilo Curso

    60 – Weka Software: Mineração de dados com Weka[  Marcelo Josué Telles e Paulo Henrique S antini ]

    Conteúdo sobre Boas Práticas

    Conteúdo sobre Boas Práticas

    46 – Oracle Materialized Views: Gerenciando em standby lógicos no Oracle[ Anderson Araujo de Oliveira ]

    22 – Pentaho BI: Conhecendo a ferramenta open source BI

    [ Andressa de Andrade Freitas ]

    Conteúdo sobre Boas Práticas

    28 – Oracle RAC com DNS: balanceamento de carga Round Robin[ Danilo Migliorini Caneschi ]

    Conteúdo sobre Boas Práticas

    14 – SQL Server Reporting Services: Monitorando instâncias no SQL Server[ Walter Santos de Carvalho, Felipe Pereira Delage e Flavio Alexandre Martins ]

    Conteúdo sobre Modelagem

    06 – CA ERWin Data Modeler: Modelagem de Dados com ERWin

    [ Flavio Jesus de Souza ]

    Conteúdo sobre Boas Práticas

    40 – Resolvendo problemas no Oracle e no SQL Server[ Flavio Climaco ]

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    4/68

    128ª Edição - 2015 - ISSN 1677918-5 - Impresso no Brasil

    Editor

    Rodrigo Oliveira Spínola ([email protected])

    Subeditor

    Eduardo Oliveira Spínola

    Consultora Técnica

    Daniella Costa ([email protected])

     Jornalista Responsável

    Kaline Dolabella - JP24185

    Capa e DiagramaçãoRomulo Araujo

    Distribuição

    FC Comercial e Distribuidora S.A

    Rua Teodoro da Silva,907

    Grajaú - RJ - 206563-900

    Fale com o Editor!

    É muito importante para a equipe saber o que você está achando darevista: que tipo de artigo você gostaria de ler, que artigo você maisgostou e qual artigo você menos gostou. Fique a vontade para entrarem contato com os editores e dar a sua sugestão!Se você estiver interessado em publicar um artigo na revista ou no siteSQL Magazine, entre em contato com os editores, informando o título emini-resumo do tema que você gostaria de publicar:

    Rodrigo Oliveira Spínola - Editor da Revista

    [email protected]

    RODRIGO OLIVEIRA SPÍNOLA

    Editor Chefe da SQL Magazine, Mobilee Engenharia de Software Magazine.

    Professor da Faculdade Ruy Barbosa,

    uma instituição parte do Grupo DeVry.

    Doutor e Mestre em Engenharia de

    Software pela COPPE/UFRJ.

    Assine agora e tenha acesso atodo o conteúdo da DevMedia:www.devmedia.com.br/mvp

    Atendimento ao leitorA DevMedia possui uma Central de Atendimento on-line, onde vocêpode tirar suas dúvidas sobre serviços, enviar críticas e sugestões efalar com um de nossos atendentes. Através da nossa central tambémé possível alterar dados cadastrais, consultar o status de assinaturase conferir a data de envio de suas revistas. Acesse www.devmedia.com.br/central, ou se preferir entre em contato conosco através dotelefone 21 3382-5038.

    Publicidade [email protected]   – 21 3382-5038

    Anúncios – Anunciando nas publicações e nos sites do Grupo DevMedia,você divulga sua marca ou produto para mais de 100 mil desenvolvedoresde todo o Brasil, em mais de 200 cidades. Solicite nossos Media Kits, comdetalhes sobre preços e formatos de anúncios.

    EXPEDIENTE

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    5/68

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    6/686 SQL Magazine • Edição 128

    A tarefa de armazenar dados é essencial em quase todos os projetosde sistemas. Essa etapa funciona como a espinha dorsal de um corpo

    constituído de banco de dados, camadas de servidores de aplicação,

    front-end diversos, programas, etc. Portanto, sem uma boa modela-

    gem, esse corpo pode ficar vulnerável e adoecer facilmente. Dada

    essa importância, a firmeza do esqueleto corporal está diretamente

    relacionada ao banco de dados, onde residirão as informações que

    serão acessadas e atualizadas. Esse artigo tem por finalidade mostrar

    ao leitor no que consiste a modelagem de dados e como se dá este

    processo utilizando o CASE (Computer-Aided Software Enginee-

    ring) ERWin. Nele serão abordadas as etapas conceituais e físicas de

    um projeto de banco de dados inseridas num projeto de sistema.

    A ferramenta apresentada nesse artigo, não só cumpre com os pré-requisitos essenciais de análise de dados, como também é capaz de

    gerar fisicamente o modelo criado nos mais importantes bancos de

    dados existentes no mercado.

    Fique por dentro

    CA ERWin Data Modeler:

    Modelagem de Dadoscom ERWin

    Amodelagem de dados é a primeira etapa de umprojeto que envolva banco de dados e tem como

    seu principal objetivo o desenvolvimento de ummodelo que contenha entidades e relacionamentos, e quecom isso seja possível representar as especificações dasinformações do negócio. A modelagem de dados ajudaa organizar a forma de pensamento sobre os dados, de-monstrando o significado e a aplicação prática deles. Elatambém estabelece o vínculo entre as necessidades dosusuários e a solução de software que as atende. Para ummodelo de dado alcançar os objetivos esperados, ele devefornecer ao desenvolvedor a representação adequada doambiente documentada e de preferência normalizadapara criação dos processos do sistema.

    A modelagem de dados segundo o Modelo de Enti-dade-Relacionamento foi definida em 1976 por PeterChen e desde então ela faz parte do cenário pertencentea algum projeto de sistema de banco de dados. Portan-to, entender as etapas de um projeto ajudará o leitor acompreender melhor como funciona e qual o papel damodelagem de dados.

    Projeto de SistemaUm projeto pode ser definido como um processo único

    e consistente formado por um conjunto coordenado deetapas datadas para atingir um determinado objetivo.

    Num projeto de sistema, a etapa inicial consiste nainterpretação mais realista possível de um minimundoqualquer, visando atender um conjunto de necessidadeslevantadas diante do cliente. Dada essa abstração, surgeo que se chama de análise de requisitos. Em síntese,essa etapa pode ser encarada como a descrição técnicadetalhada do que o usuário entende como sendo asfuncionalidades que o sistema tem que possuir. Essaetapa é muito importante, pois todo esse levantamentoserá futuramente validado pelo cliente. Cumprida essaetapa, a mesma deve ser documentada, pois com essadocumentação o analista será capaz de dar início à fase

    conceitual do modelo.

    De posse do modelo criado de forma conceitual, ou seja, inde-pendente do banco de dados a ser escolhido para abrigar os dados,toma-se a decisão de qual banco será utilizado pelo projeto. Comisso o dá-se início à etapa física do projeto. A partir desse momen-to, propriedades particulares do banco de dados serão levadas emconta na construção do modelo. Como será mostrado em breve,

    o ERWin faz esse tipo de conversão do modelo lógico para físicomediante a escolha do banco. Os tipos de dados dos campos dastabelas, o espaço de armazenamento, entre outras característicaspassarão a ser relevantes na montagem do modelo físico. Con-cluída essa etapa, materializa-se o que foi definido no modelodentro do banco propriamente dito e é dado o “go” do projeto emprodução. O que se vê a partir daí são manobras operacionais egerenciais para controlar, manutenir e evoluir o sistema.

    Modelo ConceitualPode-se dizer que nesse momento surgem as famosas entidades.

    E aqui cabe uma observação que deve ser respeitada. Modelar

    dados nada mais é do que definir conjuntos. Por exemplo, em uma

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    7/68Edição 128 • SQL Magazine  7

    empresa de TI existem empregados, departamentos e projetos.O conjunto de empregados é constituído por Maria, José, João,Antônio, etc. Os departamentos podem ser de TI, financeiro, RH,etc. A exata concepção desses conjuntos fará a melhor abstração

    dos dados em forma de entidades. As características de José, taiscomo CPF, data de nascimento, salário, etc. podem ser encaradoscomo os atributos dos elementos do conjunto empregados.

    Dada a noção dos conjuntos mais próxima da realidade, parafechar todo o mapeamento do projeto é preciso montar o que sechama de interoperabilidade entre as entidades, que representaa capacidade de comunicação entre as partes de um sistema. Essanoção dá origem aos relacionamentos.

    Em suma, entidade é algo significante sobre o qual a informa-ção precisa ser conhecida ou mantida. Para concluir o exemploanterior, as entidades podem ser:• EMPREGADO;

    • DEPARTAMENTO;• PROJETO.

    Relacionamentos são objetos de significância entre as entidadesque evitam a redundância dos dados, por exemplo:• Um EMPREGADO pertence a um DEPARTAMENTO;• Um DEPARTAMENTO possui vários PROJETOS;• Em um PROJETO trabalham vários EMPREGADOS.

    Ou seja, sem a criação dos relacionamentos, todos os dadosdeveriam ser replicados entre as entidades para propagar a sig-nificância dos mesmos.

    Atributos são informações sobre uma entidade que precisa serconhecida ou mantida. Eles descrevem uma entidade pela quali-ficação, identificação, classificação, quantidade ou expressandoo estado da entidade. A seguir temos exemplos de atributos daentidade EMPREGADO:• CPF do EMPREGADO;• Nome e sobrenome qualificam um EMPREGADO;• Categoria da folha de pagamento (semanal, mensal) que classi-ficam um EMPREGADO;• Idade do EMPREGADO;• Status do EMPREGADO (ativo, demitido, aposentado, emférias).

    Modelo FísicoUma vez concluída a fase abstrata, dá-se início à parte física.

    Teoricamente, o modelo físico deve ser gerado a partir do modelológico. Uma vez criado, este deve respeitar as regras do SGBDescolhido. Nesse sentido, a base de dados será uma simbiose entreo modelo e as regras impostas pelo banco em questão.

    Para construir o modelo físico no banco de dados, utiliza-se umalinguagem de definição de dados que, na maioria das vezes, sãoscripts gerados pelo CASE e submetidos ao banco através da pró-pria ferramenta. Vale lembrar que, segundo as melhores práticas,os objetos criados por esses scripts compõem o que se chama de

    esquema de banco de dados.

    Criar um banco a partir do CASE é uma tarefa simples, mas o suces-so do projeto físico não depende somente disso. Pois se a performanceda aplicação for imprescindível, o volume de dados e a quantidadede transações terão influência direta no sistema. Portanto, a escolha

    correta do banco a ser utilizado é vital nesse processo.Colocando em prática tudo o que foi dito anteriormente e par-tindo do pressuposto que o banco escolhido foi o Oracle Database.A Listagem 1 mostra o script equivalente aos exemplos supracitados.

    Após a conclusão do modelo físico é de suma importância va-lidar o que foi gerado, pois o modelo deve responder a todos osrequisitos cadastrais e funcionais. Uma forma fácil e prática paracumprir essa tarefa é criar resposta ao modelo e ver se as entidadese os relacionamentos atendem a essa solicitação. Para garantir esseprocesso deve-se checar se foi gerada alguma associação incorretaentre as entidades. Verificar se há ou não a necessidade de umaentidade ou de um relacionamento evitando redundância dosdados e excesso dos mesmos. Checar se há a necessidade ou não

    de histórico transacional dos registros e de preferência pensar emcomo expurgar esses dados, caso eles não tenham mais utilidadedentro da base. Essa etapa é importante, pois o retrabalho paraesses casos pode se transformar em novo projeto dependendo dotamanho da mudança a ser processada numa base muito grande.Um modelo bem estruturado e que atende a todas as exigências deum sistema tende a se perpetuar e pode ser facilmente migradopara outra base sem maiores problemas.

    ERWinO ERwin é uma ferramenta que oferece um ambiente cola-

     borat ivo de modelagem de dados para o gerenciamento de

    dados corporativos através de uma interface gráfica intuitiva.

    Listagem 1. Script de Criação das Entidades

    CREATE TABLE EMPREGADO (  CPF INTEGER NOT NULL,  NOME VARCHAR(40),  SOBRENOME VARCHAR(40), SEXO CHAR(1),DEPARTAMENTO INTEGER,

      FOLHA_PAGAMENTO CHAR(1),  IDADE INTERGER,  STATUS CHAR(1),);

    CREATE TABLE DEPARTAMENTO (  ID INTEGER NOT NULL,  NOME VARCHAR(40),  DESCRICAO VARCHAR(40));

    CREATE TABLE PROJETO (  ID INTEGER NOT NULL,  NOME VARCHAR(40), RESPONSAVEL INTEGER,  DEPARTAMENTO INTEGER,

    );

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    8/68

    CA ERWin Data Modeler: Modelagem de Dados com ERWin

    8 SQL Magazine • Edição 128

    Com o ele, tanto os participantes administrativos, quanto ostécnicos, podem ter uma visão comum das informações em con-texto através de um portal com base na web e de ferramentas dedesign para desktop, com suporte de um repositório de modelos

    de nível corporativo.As estruturas técnicas de bancos de dados podem ser visuali-zadas através de um modelo gráfico intuitivo fornecendo umavisão centralizada das principais definições de dados, ajudandoassim o usuário a obter uma compreensão melhor dos dados.Com interfaces internas para a maioria das plataformas de bancode dados do mercado, o ERwin consegue ler os formatos técnicosde cada uma dessas plataformas exclusivas e converte em scripts(por exemplo, DDL) a partir de um modelo gráfico - à essa fun-cionalidade dá-se o nome de engenharia reversa.

    A partir desse modelo, é possível fazer alterações futuras nosesquemas de banco de dados para que o desenvolvimento possa

    ser implementado por meio de um design orientado por modelo.Não só é possível armazenar esquemas técnicos de banco de da-dos, procedimentos e outras informações no modelo, mas tambémdefinições e regras de negócios centradas em dados, para que asimplementações técnicas possam estar mais bem alinhadas àsnecessidades da organização.

    O ERWin possui os seguintes recursos em seu ambiente: visualiza-ção de estruturas de dados complexas, geração automatizada dedesign de banco de dados por meio de modelos de dados gráficos,definição de padrões para ajudar a reduzir a redundância, ferra-mentas de comparação entre modelo e banco de dados, relatóriose publicações destinados a compartilhar informações com diversas

    funções em toda a organização.Seus diferenciais são a criação do modelo físico a partir do lógico

    e a criação da estrutura de vários bancos de dados relacionais, taiscomo: DB2 (incluindo DB2 para i5/OS - System i), IDS (Informix),MySQL, Oracle, Progress, SQL Server, Sybase e Teradata. Adqui-rindo versões mais avançadas é possível atingir o universo deBig Data e Nuvem.

    Com o intuito de mostrar como se constrói um projeto de bancode dados utilizando o ERWin, esse artigo modela um pequenosistema fictício para instruir o leitor quanto ao processo de mode-lagem, bem como apresentar os recursos da ferramenta.

    Estudo de CasoNo mundo de TI existem vários bancos de dados que residem em

    diversos sistemas operacionais, que por sua vez controlam diferen-tes arquiteturas de hardware. Dependendo de algumas variáveis deprojeto, a escolha da combinação hardware, sistema operacional e

     banco de dados são essenciais para montar um ambiente de sucessoadequado às necessidades da empresa. Portanto, o problema demontar um ambiente pode ser encarado como um estudo de casofictício que será proposta uma solução dentro do artigo.

    A partir dessas necessidades, foram identificados os seguintesrequisitos do sistema:• Requisitos cadastrais do sistema:

    - Sistemas Operacionais;

    - Bancos de Dados;- Projetos;- Máquinas;- Fabricantes de hardware, sistemas operacionais e banco de

    dados.• Requisitos funcionais do Sistema:- O sistema deve ser capaz de identificar a melhor configuraçãode hardware e software, segundo as exigências das aplicações,levando em consideração os indicadores de performance, es-calonamento, robustez, em função dos parâmetros de custo,tempo e qualidade;- O sistema deve contemplar todas as plataformas existentescom suas respectivas tecnologias;- O sistema deve gerar relatório e consultas online respeitandoa atualização constante de sua base.

    Criando o Modelo LógicoPara começar a construção do modelo propriamente dito uti-lizando o ERWin, é necessário criar um novo modelo dentroda ferramenta. Como mostrado na Figura 1, onde damos inícioà criação do modelo, dentre as quatro opções existentes e paraefeitos conceituais, é aconselhável que se comece pelo modelológico para depois transformá-lo em físico.

    Figura 1. Novo Modelo Lógico a partir do ERWin

    De posse da documentação gerada nos itens anteriores e res-peitando o conceito de conjuntos, fica fácil perceber quais asprincipais entidades compõem o sistema. Segundo a Figura 2 ,torna-se evidente que os cadastros de Sistemas Operacionais,Bancos de Dados, Projetos, Fabricantes e Máquinas devem fazerparte do modelo.

    Quanto aos relacionamentos, o analista deve ter em mente quepara armazenar as informações cadastrais solicitadas nas espe-cificações, no mínimo ele precisa criar cadastros para:• Todos os bancos de dados existentes;• Saber quais os sistemas que a empresa desenvolve;• Os fabricantes de software (SO e BD) e hardware do mercado;

    • As máquinas utilizadas.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    9/68Edição 128 • SQL Magazine  9

    Figura 2. Entidades lógicas do Modelo

    Nossa interpretação para o modelo é: os fabricantes produzemsoftware e hardwares, onde todo o projeto é executado em umaou mais máquinas e as mesmas são controladas por sistemasoperacionais (Figura 2). Portanto, para criar os relacionamentos

    desse modelo os itens a seguir devem ser considerados:• Tanto um sistema operacional quanto um banco de dados écriado por um fornecedor (FABRICANTE);• Uma máquina é controlada por um sistema operacional;• Um projeto é executado em uma ou mais máquinas;• Um banco de dados é executado num sistema operacional.

    O modelo apresentado na Figura 3 reflete as entidades definidasaté aqui e os relacionamentos existentes entre elas.

    Figura 3. Entidade Relacionamento do Modelo

    Os relacionamentos simples (1:N) são representados pelas linhastracejadas e os (N:N) com uma linha normal. Quanto aos atributos,foram criados os que representam características básicas de cada

    entidade. À medida que o modelo vai sendo criado, podem surgir

    algumas ideias de novos atributos e eles vão se encaixando nasentidades. Às vezes, ocorre de uma ou outra característica não seencaixar nas entidades, isso sugere uma revisão do modelo; ounascerão novas entidades ou a remoção de algumas existentes

    darão lugar a novos conjuntos. Nesse modelo seria possível, porexemplo, criar novos atributos para ranking de qualidade e infor-mações quanto ao tempo de montagem de cada máquina.

    Criando o Modelo FísicoPara gerar o modelo físico, o ERWin tem uma funcionalidade

     bastante interessante. A partir do lógico pode-se gerar um novomodelo físico, conforme mostra a Figura 4.

    Nesse caso, a transformação foi baseada no banco de dadosOracle.

    Para definir a base correspondente ao modelo é necessário fazê-lo através da caixa de diálogo da Figura 5.

    Figura 4. Derivar um Modelo a partir de outro

    Figura 5. Configuração da base de dados de destino

    Após esse processo chegou-se à configuração representada naFigura 6.

    Essa representação do modelo é gerada dinamicamente no

    momento da transformação do modelo lógico para o físico.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    10/68

    CA ERWin Data Modeler: Modelagem de Dados com ERWin

    10 SQL Magazine • Edição 128

    Neste artigo não cabe aprofundar nesse nível, mas é possívelconfigurar todos os campos de cada coluna das tabelas segundoo Target escolhido (ver Figura 7), bem como configurar as pro-priedades pertinentes ao banco de dados escolhido, escolher os

    tipos de dados, locais de armazenamento, etc.

    Figura 6. Modelo físico baseado no banco Oracle

    Figura 7. Escolha da base de dados de destino

    Uma ressalva importante deve ser lembrada nesse momento:nosso modelo não pode criar combinações de sistemas opera-cionais, bancos e máquinas que não sejam suportados uns pelosoutros. Portanto, para que isso não aconteça, surge um recursoque se chama desnormalização da base. Pode ser necessário im-pedir que sejam cadastrados dados que fujam a uma determinadaregra funcional criada por conta de alguma necessidade. Alguns

     bancos de dados lançam mão de triggers, funções, visões etc. para

    implementar essas restrições impostas pela a realidade. Para nossocaso, é possível utilizar as próprias tabelas de BANCO_DADO,SISTEMA_OPERACIONAL e MAQUINA para criar uma matrizde compatibilidade e no momento de gerar uma combinação, essasassociações devem ser respeitadas.

    Nunca é demais lembrar que a escolha do banco alvo pode ser alte-rada utilizando a função de transformação apresentada na Figura 8.Por exemplo, se for necessário mudar de Oracle para DB2 bastariapreencher a caixa de diálogo e dar continuidade ao processo.

    Geração do ModeloPara gerar o modelo com o ERWin é muito simples, basta conectar

    à base de dados de destino através da opção Database Connection

    Figura 8. Mudança de banco alvo

    Figura 9. Conexão com a base

    do menu Actions. Em seguida deve-se preencher os dados deconexão com a base conforme mostra a Figura 9.

    Por fim, ao selecionar a opção Actions > Forward Engineer enosso modelo sairá da prancheta para o banco de dados de nossa

    escolha.As melhores práticas sugerem que nesse momento seja criadoum usuário no banco, que será o futuro proprietário dos novosobjetos (tabelas, visões, funções) gerados pela ferramenta e queo espaço para armazenamento esteja previamente configuradono banco de dados.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    11/68Edição 128 • SQL Magazine  11

    Em suma, é sempre útil seguir a pequena lista de pré-requisitospara uma adequada configuração do ambiente de banco dedados:• Espaço de permuta para importação e exportação de dados;

    • Planejamento do tamanho da storage dos dados e/ou arquivos;• Correções (Update, Hot-fix, Patchs de sistema operacional e de binário de banco);• Checagem de pacotes adicionais de software de monitoraçãoe tuning;• Criação logins e definição dos acessos objetivando segurançadas informações;• Checagem de acessos de rede, tamanho da banda, latência, etc.

    Em seguida, temos os dois scripts gerados pelo ERWin a partirdo modelo. O primeiro para Oracle e o segundo para DB2.

    Na Listagem 2 é apresentado o script de criação das tabelas do

    modelo tendo como destino uma base Oracle. Ao ser executado, oscript criará todas as tabelas do modelo no banco de dados.NaListagem 3 tem-se o análogo em DB2. Existe pouca diferença

    entre um script e outro, pois as notações são bem semelhantes.Os tipos de VARCHAR2 do Oracle tem seu equivalente em DB2como VARCHAR e o tipo NUMBER no Oracle, passa para DECI -MAL em DB2.

    Novos conceitos surgem na criação do modelo físico atra-vés do script de criação da base. Os tamanhos dos campose os tipos de dados, como CHAR, INTEGER, NUMBER, porexemplo, devem ser especificados para atender à análise

    de requisitos realizada. Se isso não for feito, a estrutura da base pode passar por manutenções indesejadas quando jáestiver em produção. Com intuito de garantir a integridadedos dados, surgirão também as restrições de PRIMARY KEY,FOREIGN KEY e CHECK CONSTRAINT. Nunca é demaislembrar, mas as chaves primárias são utilizadas para garan-tir a unicidade dos dados dentro de uma tabela. As chavesestrangeiras formam os relacionamentos, impedindo queregistros indesejáveis sejam cadastrados e que registros paissejam removidos quando houver algum filho relacionado.As restrições de checagem são vistas como a manutenção deum pequeno domínio dentro de possíveis valores de dados

    em algum campo da tabela.Um dado relevante do CASE é a criação da tabela de relacio-namento associativo MAQUINA_PROJETO gerada automatica-mente pela ferramenta. Essa é a tabela onde serão cadastradasas combinações pertinentes aos projetos da empresa. Caberáaos analistas definirem as funcionalidades dos mesmos paragerar tais combinações.

    CREATE TABLE FABRICANTE

    (

      CNPJ CHAR(11) NOT NULL PRIMARY KEY,  RAZAO_SOCIAL VARCHAR2(120) NOT NULL ,

      NOME_FANTASIA VARCHAR2 (120) NOT NULL

    );

    CREATE TABLE BANCO_DADOS

    (

      ID_BANCO INTEGER NOT NULL PRIMARY KEY,

      NOME VARCHAR2(120) NULL ,

      TIPO CHAR(1) NULL ,

      NUVEM CHAR(1) NULL ,

      PRECO_LICENCA NUMBER(9,2) NULL ,

      CNPJ CHAR(11),

      CONSTRAINT FK_BD_FABRICANTE FOREIGN KEY(CNPJ) REFERENCES FABRICANTE

    (CNPJ));

    CREATE TABLE SISTEMA_OPERACIONAL

    (

      ID_SISTEMA_OPERACIONAL CHAR(10) NOT NULL PRIMARY KEY,

      NOME VARCHAR2(50) NOT NULL ,

      DESCRICAO VARCHAR2(60) NOT NULL ,

      VERSAO CHAR(1) NOT NULL ,

      PROCESSADOR INTEGER NOT NULL ,

      PRECO_LICENCA NUMBER(9,2) NULL ,

      CNPJ CHAR(11) NOT NULL,

      CONSTRAINT FK_SO_FABRICANTE FOREIGN KEY(CNPJ) REFERENCES FABRICANTE

    (CNPJ)

    );

    CREATE TABLE MAQUINA

    (  IP CHAR(15) NOT NULL PRIMARY KEY,

      HOSTNAME VARCHAR2(50) NULL ,

      ARQUITETURA INTEGER NULL ,

      PRECO NUMBER(9,2) NOT NULL ,

      ID_SISTEMA_OPERACIONAL CHAR(10) NOT NULL,

      ID_BANCO INTEGER,

      CONSTRAINT FK_MAQ_BANCO FOREIGN KEY(ID_BANCO)

    REFERENCES BANCO_DADOS (ID_BANCO),

      CONSTRAINT FK_MAQ_SO FOREIGN KEY(ID_SISTEMA_OPERACIONAL) REFERENCES

    SISTEMA_OPERACIONAL (ID_SISTEMA_OPERACIONAL)

    );

    CREATE TABLE PROJETO

    (  ID_ PROJETO INTEGER NOT NULL PRIMARY KEY,

      NOME VARCHAR2(50) NULL ,

      DESCRICAO VARCHAR2(120) NULL

    );

    CREATE TABLE MAQUINA_ PROJETO

    (

      IP CHAR(15) NOT NULL,

      ID_PROJETO INTEGER NOT NULL,

      CONSTRAINT FK_MS_MAQUINA FOREIGN KEY(IP) REFERENCES MAQUINA (IP),

      CONSTRAINT FK_MS_PROJETO FOREIGN KEY(ID_PROJETO) REFERENCES SISTEMA

    (ID_PROJETO)

    );

    Listagem 2. Script de Criação do Modelo para Oracle

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    12/68

    CA ERWin Data Modeler: Modelagem de Dados com ERWin

    12 SQL Magazine • Edição 128

    A modelagem dos dados correta faz com que se tenha uma redu-ção na complexidade do projeto a um ponto que o projetista possa

    compreender e manipular os dados e não podemos esquecer quemodelar os dados da empresa faz parte do sistema de monitora-mento do ciclo de vida das atividades de governança de dados.Essa atividade é crucial no processo de tomada de decisão que osCIO’s fazem uso durante a gestão. Portanto, modelar dados possuiuma função estratégica dentro de uma empresa.

    CREATE TABLE FABRICANTE(  CNPJ CHAR(11) NOT NULL PRIMARY KEY,  RAZAO_SOCIAL VARCHAR(120) NOT NULL ,

      NOME_FANTASIA VARCHAR(120) NOT NULL);

    CREATE TABLE BANCO_DADOS(  ID_BANCO INTEGER NOT NULL PRIMARY KEY,  NOME VARCHAR(120) NULL ,  TIPO CHAR(1) NULL ,  NUVEM CHAR(1) NULL ,  PRECO_LICENCA DECIMAL(9,2) NULL ,  CNPJ CHAR(11),  FOREIGN KEY(CNPJ) REFERENCES FABRICANTE (CNPJ));

    CREATE TABLE SISTEMA_OPERACIONAL

    (  ID_SISTEMA_OPERACIONAL CHAR(10) NOT NULL PRIMARY KEY,  NOME VARCHAR(50) NOT NULL ,  DESCRICAO VARCHAR(60) NOT NULL ,  VERSAO CHAR(1) NOT NULL ,  PROCESSADOR INTEGER NOT NULL ,  PRECO_LICENCA DECIMAL(9,2) NULL ,  CNPJ CHAR(11) NOT NULL,  FOREIGN KEY(CNPJ) REFERENCES FABRICANTE (CNPJ)

    );

    CREATE TABLE MAQUINA(

      IP CHAR(15) NOT NULL PRIMARY KEY,  HOSTNAME VARCHAR(50) NULL ,  ARQUITETURA INTEGER NULL ,  PRECO DECIMAL(9,2) NOT NULL ,  ID_SISTEMA_OPERACIONAL CHAR(10) NOT NULL,  ID_BANCO INTEGER,  FOREIGN KEY(ID_BANCO) REFERENCES BANCO_DADOS (ID_BANCO),  FOREIGN KEY(ID_SISTEMA_OPERACIONAL) REFERENCES SISTEMA_OPERACIONAL

    (ID_SISTEMA_OPERACIONAL));

    CREATE TABLE PROJETO(  ID_SISTEMA INTEGER NOT NULL PRIMARY KEY,  NOME VARCHAR(50) NULL ,  DESCRICAO VARCHAR(120) NULL

    );

    CREATE TABLE MAQUINA_PROJETO(  IP CHAR(15) NOT NULL,  ID_PROJETO INTEGER NOT NULL,  FOREIGN KEY(IP) REFERENCES MAQUINA (IP),  FOREIGN KEY(ID_SISTEMA) REFERENCES PROJETO (ID_PROJETO));

    Listagem 3. Script de Criação do Modelo para DB2

    Flavio Jesus de [email protected] 

    Mestre em Computação pela UFRJ, especial idade em Computa-

    ção Quântica. MBA em TI (MBTI- e) em Gestão Empresarial de TI.Graduado em Informática pela UNESA e ex-aluno do IME - Engenharia Me-cânica. Certificado em OCE Linux Oracle 10g, OCP ORACLE 8i, 9i e 10g.

    Autor

    Links:

    CA Thecnologies, “Descritivo da Solução”, CA ERwin® Data Modeler CommunityEdition 2013.

    CA Thecnologies, “Folha de Produto”, CA ERwin® Data Modeler Workgroup Edition2013

    Heuser, Carlos Alberto, “Projeto de Banco de Dados”, Série de Livro Ditáticos,quarta edição, 1998.

    Frozza, Angelo Augusto MSc, “Projeto de Banco de Dados - Projeto Conceitual,Instituto Federal de Educação, Ciência e Tecnologia, 2011.

    Rob, Peter e Coronel Carlos, “Sistemas de Banco de Dados - Projeto, Implemen-tação e Administração”, oitava ediç ão norte-americana.

    Dê seu voto em www.devmedia.com.br/sqlmagazine/feedback 

    Ajude-nos a manter a qualidade da revista!

    Você gostou deste artigo?

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    13/68Edição 128 • SQL Magazine  13

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    14/6814 SQL Magazine • Edição 128

    Este artigo demonstra como administrar instâncias SQL Server insta-

    ladas em servidores distintos com o auxílio de relatórios construídos

    com Reporting Services, sendo estes alimentados por uma rotina

    em Integration Services. Vamos demonstrar especificamente como

    visualizar o espaço disponível em disco de vários servidores, porém,

    usando a mesma ideia é possível criar inúmeros monitoramentos

    diferentes.

    Fique por dentro

    SQL Server Reporting

    Services: Monitorandoinstâncias no SQL Server

    Atualmente, é comum nas corporações que

    vários servidores de bancos de dados estejamem produção com o SQL Server. Além disso,muitas vezes este ambiente é crítico e necessita deatenção diária em vários pontos como, por exemplo,espaço em disco, backups realizados, mensagens deerros da instância e do sistema operacional. Quandoum servidor está com pouco espaço em disco e porquestões burocráticas não se pode comprar um novodisco e adicioná-lo de forma rápida ao servidor, oespaço livre se torna valioso, devendo ser monitoradoa todo momento. Outro exemplo acontece quando setrabalha em um ambiente mais complexo com Failover

    Cluster, onde os dados estão armazenados em LUNs(BOX 1) dentro de um Storage.

    Especificamente neste cenário, mesmo que o Storagetenha bastante espaço não alocado que possa ser dis-ponibilizado para as LUNs, não é uma boa prática sim-plesmente aumentar o espaço das mesmas sem definiruma quantidade que realmente atenda a demanda, poisdeixar espaço livre em excesso nas LUNs ou em determi-nada LUN é um desperdício que deve ser evitado. Nestescasos, quando for solicitada a criação de uma LUN paraarmazenar outros bancos de diferentes projetos e a novaLUN precisar de muitos gigabytes inicialmente, pode

    ser que o espaço alocado desnecessariamente em outrasLUNs faça falta.

    Imagine um cenário no qual uma LUN de 100GB, ativahá anos, esteja 99% cheia, com bancos de clientes aces-sados frequentemente sofrendo inserções e atualizaçõesde dados que geram uma média de crescimento mensalda LUN de 2GB. Além disso, suponha que essa LUNesteja alocada em um Storage de 10 Terabytes que hos-peda várias LUNs que também demandam crescimentoconstantemente e este Storage no momento encontra-secom apenas 300GB de espaço não alocado. Espaço esteque pode acabar rapidamente se várias LUNs precisarem

    crescer ao mesmo tempo.

    LUN é uma unidade lógica ou um disco de um Storage. Através do uso de LUNs é possível obter

    uma flexibilidade que é muito importante no armazenamento de grandes volumes de dados e em

    ambientes críticos, pois as unidades lógicas podem ser movidas ou, em outras palavras, migradas

    para servidores diferentes de uma forma prática, garantindo uma indisponibilidade muito baixa

    para acesso aos dados contidos nelas.

    BOX1. LUN

    Em um ambiente como este, não se pode deixar acabar o espaçolivre onde estão os arquivos de banco do SQL Server, pois as apli -cações que escrevem no banco não conseguirão mais inserir oualterar dados. Diante disso, torna-se necessário crescer a LUN paraque ela tenha mais espaço livre. Vale ressaltar aqui que não existeum número ideal para crescimento da LUN. Existe sim um custo

     benefício que deve ser analisado. Assim, se optarmos por aumentoscurtos, algo em torno de 10GB a 30GB, teremos que nos preocuparcom a monitoração do tamanho da LUN constantemente de formamais recorrente, para evitar que se esgote dentro da unidade lógica.Se crescermos 100GB, por exemplo, não será preciso nos preocupar-mos com esta unidade lógica tão cedo, porém o Storage que estavacom 3% de espaço não alocado passará para 2%.

    Como mencionamos anteriormente, em algum momento podeser indicada a criação de novas LUNs ou aumentar o tamanho dasdemais existentes. Por isso, é uma boa prática adicionar espaçonas LUNs de acordo com a demanda, para que o Storage sempretenha espaço não alocado que possa ser adicionado às LUNs que

    realmente necessitem.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    15/68Edição 128 • SQL Magazine  15

    Pensando neste problema vamos propor neste artigo um meiode monitorar recursos ou eventos que acontecem em instânciase em servidores de banco de dados montando um mecanismo demonitoramento onde poderemos ao longo do tempo acrescentar

    outros itens para serem monitorados. Neste artigo vamos demons-trar especificamente o monitoramento de espaço em disco, recursoque demanda atenção recorrente, já que faltar espaço é um grandeproblema em ambientes que armazenam bancos de dados.

    Para colocar em prática o monitoramento, será necessária umainstância do SQL Server 2012 Developer, incluindo os recursosIntegration Services, Reporting Services e o Visual Studio 2010.

    Criando o banco de dadosPara que nosso mecanismo de monitoramento comece a tomar

    forma, vamos começar com a criação do banco de dados, utilizan-do para isso o script da Listagem 1.

    Com o banco de dados pronto, podemos criar a tabela quearmazenará os dados referentes ao nosso monitoramento. Paraisso, execute o script da Listagem 2. Definidos o banco e a tabelaTB_DBA_Espaco , é preciso que ela seja devidamente populada comos dados que queremos avaliar. Posteriormente estes dados serãoprocessados e exibidos em um relatório, conforme será mostradoao final do artigo.

    Para popularmos a tabela TB_DBA_Espaco , vamos extrair dadosque informarão o espaço total do disco, o espaço ocupado e o espa-ço livre. Para isso, utilizaremos Jobs no SQL Server que, associadosao SSIS, realizarão a captura diária destas informações.

    Criando o projeto SSISPodemos então passar para a segunda etapa do nosso estudo, a

    qual consistirá no preenchimento da tabela através de um projetoelaborado via SSIS (SQL Server Integration Services) que utilizatambém a linguagem de scripts PowerShell.

    Caso seja possível, execute essa segunda etapa de criação doprojeto SSIS no mesmo servidor onde foi criado o banco de dados.Isto facilitará a organização do projeto.

    Dito isso, após abrir o Visual Studio, crie um novo projeto se-lecionando a opção Integration Services Project e salve-o com umnome de fácil identificação no diretório de sua preferência.

    Com o projeto SSIS definido, passamos para a etapa de criação

    do job na instância SQL Server a ser monitorada.

    Listagem 2. Script para criação a tabela TB_DBA_Espaco.

    CREATE TABLE [dbo].[TB_DBA_Espaco](  [id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,  [Drive] [varchar](100) NULL,  [Tamanho] [numeric](18, 2) NULL,  [Usado_MB] [numeric](18, 2) NULL,  [Livre_MB] [numeric](18, 2) NULL,  [Livre_perct] [varchar](20) NULL,  [Usado_perct] [varchar](20) NULL,  [Data_Cadastro] [date] NULL,  [Instancia] [varchar](50) NOT NULL,  CONSTRAINT [PK_TB_DBA_Espaco] PRIMARY KEY CLUSTERED

    ([id] ASC

      )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

    ) ON [PRIMARY]GO

    Listagem 1. Script para criação do banco de dados.

    USE [master]GOCREATE DATABASE [DBA_Monitor]  ON PRIMARY( NAME = N’DBA_Monitor’, FILENAME = N’D:\BancosDados\DBA_Monitor.mdf’ ,SIZE = 1976320KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON( NAME = N’DBA_Monitor_log’, FILENAME = N’D:\BancosDados\DBA_Monitor_log.ldf’ , SIZE = 74688KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO

    É através desse job que iremos obter as informações desejadas(em nosso caso, o espaço disponível nas unidades de disco).Somente após a geração deste arquivo que conseguiremos desen-volver nosso projeto no SSIS.

    Como nosso job utilizará um comando PowerShell, é impres-cindível que a máquina esteja apta e liberada para a execuçãode scripts desse tipo. Para isso, devemos executar os seguintespassos:1. Clique no botão iniciar e procure pelo programa chamadoWindows PowerShell;2. Clique com o botão direito em Windows PowerShell e selecione

    a opção Executar como Administrador;3. Dentro do PowerShell, execute o comando Set-ExecutionPolicy-RemoteSigned , depois digite “S” e dê Enter.

    Criando o Job no SQL ServerNosso próximo passo é a criação do job que irá executar o

    comando PowerShell para obter as informações das unidadesde disco. Sendo assim, acesse a instância monitorada através doObject Explorer do SQL Server e selecione a opção  Jobs em SQLServer Agent , conforme a Figura 1.

    Figura 1. Jobs SQL Server

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    16/68

    SQL Server Reporting Services: Monitorando instâncias no SQL Server

    16 SQL Magazine • Edição 128

    Nesta tela, clique com o botão direto em Jobs e selecione a opçãoNew Job. Em seguida, dê um nome para identificá-lo e especifiqueo Owner dele como sendo o usuário sa.

    Após definirmos o usuário sa como sendo o owner deste job,

    conforme citado no passo anterior, ainda na tela de criação do job, à esquerda, clique emSteps e depois em New. Na tela que seráaberta, selecione o Type como PowerShell e informe o código daListagem 3 em Command , de acordo com a Figura 2.

    10.20.4.18. Não é necessário que a pasta do servidor tenha o mesmonome da pasta da máquina de onde o arquivo foi gerado.

    Portanto, nosso job contará com dois steps: um para a criação doarquivo CSV e outro para copiar este arquivo da máquina local

    para o servidor, como sinaliza a Figura 3.

    Figura 3. JOB com os dois steps configurados

    Agora iremos terminar de montar o fluxo do nosso Job. Nesse

    momento é muito importante que algumas informações sejamconferidas, para que todo o processo seja realizado com sucesso,tais como: certificar que você possui a permissão para acesso àinstância a ser monitorada, se o banco de dados foi devidamentecriado nesta instância, com todas as suas tabelas, e também quese tenha permissão nesse banco, para que possamos realizarconsultas via nosso projeto SSIS.

    Para executar o job criado e termos a certeza de que o arquivoexistirá com as informações que desejamos, iremos executá-loa partir do próprio SSIS, utilizando um componente chamadoExecute SQL Server Agent Job Task  , presente na aba Control Flow.

    Para configurarmos esse componente, deve-se dar um duplo

    clique sobre ele, depois em Connection , clicar em New e digitar onome da instância que está sendo monitorada, além de preencheras informações do usuário SA e sua respectiva senha. Feito isso,

     basta selecionar o job criado na listagem que aparecerá, ressal-tando o fato de que este terá o mesmo nome do job que criamosanteriormente.

    Após definirmos o job para coleta das informações, precisamosconfigurar uma conexão em nosso servidor principal para gravaressas informações no banco que foi criado em nossa primeiraetapa (DBA_Monitor).

    Na tela de configuração da conexão, será necessário possuirmosalgumas informações importantes, dentre elas: o nome da instân-

    cia e de um usuário para logar, seja via Windows ou SQL Server

    Figura 2. Definição do script para criação do arquivo CSV com as informações

    Listagem 3. Script para criação do arquivo .csv.

    Get-WmiObject -Class Win32_Volume | where {$_.caption -notlike ‘\*’ }| selectName, FreeSpace, Capacity | Export-Csv “C:\DBA\MonitoraEspaco_SERVER-SQL.csv” -NoTypeInformation -Delimiter “;”;

    Note que a parte em negrito corresponde à pasta chamada DBA existente na raiz do diretório de arquivos desta máquina, localonde o job foi criado e onde será gravado um arquivo de nome

     MonitoraEspaco_SERVER-SQL.csv  após a execução desta tarefapelo SQL Server. Vale ressaltar que este arquivo pode ser geradoem qualquer diretório.

    Depois de configurar o primeiro step do job, vamos criar osegundo step, o qual irá copiar o arquivo gerado no diretório C:\DBA da máquina local para uma pasta compartilhada do servidor,pois será a partir deste arquivo .csv que iremos ler as informa-ções necessárias para posteriormente gravá-las em nossa tabelaTB_DBA_Espaco. Tal script é apresentado a seguir:

    Copy C:\DBA \\10.20.4.18\DBA

    Para que esse passo seja executado com sucesso é preciso ter umapasta compartilhada no servidor, pois nesse step estamos copian-do o arquivo CSV de uma pasta na máquina local para uma pasta

    também chamada DBA localizada em nosso servidor, cujo IP é

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    17/68Edição 128 • SQL Magazine  17

    Authentication, e depois o nome do banco (DBA_Monitor), comodemonstra a Figura 4.

    Para criar a conexão, na tela inicial do SSIS, clique com o botãodireito em Connection managers , opção localizada na parte inferior

    central da janela inicial, e selecione New Ole DB Connections.

    Figura 4. Configuração para acesso a instâncias SQL Server

    Depois de preencher devidamente as informações solicitadas,clique em Test Connection e aguarde a mensagem Test ConnectionSucceeded. Caso essa mensagem não seja exibida, certifique-seque as informações preenchidas estejam corretas e que o usuárioselecionado possui permissão para acesso à respectiva instânciae banco de dados.

    Com o projeto criado e as conexões estabelecidas, podemos co-meçar a ler as informações de espaço das LUNs das respectivasinstâncias e gerar os arquivos que posteriormente serão lidospelo Reporting Services. Vale lembrar que nosso exemplo trata

    do monitoramento do espaço livre em unidades e LUNs, o quegeralmente é um problema recorrente ao lidar com a administra-ção de servidores.

    Durante o desenvolvimento desta parte do projeto, onde seráutilizado o SSIS, adotaremos três componentes, os quais serãodescritos a seguir. O primeiro destes componentes será o res-ponsável pela leitura do arquivo CSV, o segundo terá a respon-sabilidade de criar algumas variáveis (colunas com informaçõesnão existentes originalmente no arquivo gerado através do Job,mas que serão necessárias ao persistir os dados no banco, comoo percentual de espaço livre, o qual tem de ser obtido através deum cálculo) e o terceiro viabilizará a gravação das informações

    que desejamos no banco.

    Após finalizarmos a conexão para acesso ao SQL Server, confor-me mostrado na Figura 4 , agora temos que iniciar o nosso fluxono SSIS. Para isso, dentro do próprio SSIS, clique em View > OtherWindows > SSIS Toollbox e, na tela de toolbox, dê um duplo clique

    na opção Data Flow Task .Logo após, abra o componente Data Flow Task criado e, na aba deData Flow , crie um novo Flat File Source , o qual irá configurar umanova conexão para ler o arquivo CSV gerado anteriormente.

    Para criarmos esse componente que irá realizar a leitura doarquivo CSV, dentro de Data Flow Task  , clique com o botão direitoem Connection Managers e selecione New Flat File Connection , que éa opção utilizada para a leitura de arquivos .txt e .csv.

    Concluída essa etapa, uma nova tela será aberta, onde devemosapontar essa conexão para viabilizar a leitura dos dados. A partirdisso conseguiremos recuperar os dados fornecidos pelo job epopularmos nossa tabela TB_DBA_Espaco.

    Neste momento é importante atentar para os itens grifados emvermelho na Figura 5 , pois eles irão garantir que as informaçõessejam lidas do arquivo correto e no formato desejado. Note queo diretório de onde estamos lendo o arquivo é o mesmo diretórioque foi configurado em nosso job.

    Figura 5. Configuração da conexão para ler o arquivo CSV

    Estabelecida a conexão com o arquivo, devemos verificar emColumns se as informações estão sendo exibidas corretamente, eem Advanced , nos certificar que as três colunas estão com o tipoString [DT_STR] e com o tamanho definido como 50.

    Isto será extremamente importante mais adiante, quando chegaro momento de criarmos nossas variáveis (as informações que serãonecessárias para realizarmos a gravação em nossa tabela, masque não são trazidas diretamente do arquivo CSV) para gravar

    os dados desejados no banco.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    18/68

    SQL Server Reporting Services: Monitorando instâncias no SQL Server

    18 SQL Magazine • Edição 128

    Para conferir se este componente de leitura foi corretamente

    configurado, podemos clicar na opção Preview (Figura 5) e cer-tificar que as informações estão sendo lidas adequadamente, ouseja, se estão sendo exibidas as colunas com as unidades e os seusrespectivos espaços livres e utilizados no momento.

    Confirmada essa etapa, nosso próximo passo é gravarmos essasinformações no banco de monitoramento, na tabela TB_DBA_Espaco.Sendo assim, dentro do componente Data Flow definido anterior-mente (em View > Other Windows > SSIS Toollbox), clique em Source

     Assistant , selecione a opção Flat File , clique em New e depois em Ok .Feito isso, automaticamente será aberta uma outra tela com as cone-xões de Flat File existentes. Selecione a que criamos anteriormente everifique se as colunas estão sendo lidas conforme o esperado.

    Assim, concluímos a configuração do componente para leiturados dados gravados no arquivo CSV. Agora, ainda dentro do DataFlow , criaremos algumas colunas através de um componentechamado Derived Column. Este processo é importante para quepossamos preencher todas as colunas de nossa tabela TB_DBA_Es-

     paco corretamente. Elas serão criadas agora porque são colunasque não existem em nosso arquivo CSV, mas que é preciso termospersistidas em nosso banco.

    Na Listagem 4 temos a descrição de cada uma das variáveisutilizadas na criação do componente Derived Column.

    A Figura 6 demonstra como cada uma das variáveis deve ser con-figurada no Derived Column. Nesse momento é muito importante

    conferir se os nomes das variáveis e seus respectivos tipos estão

    corretos, pois caso os tipos não sejamespecificados adequadamente, haverádivergência nos tipos dos dados (ex: umvalor string não pode ser convertido em

    inteiro) no momento da gravação destasinformações em nosso banco de dados.Agora resta gravar as informações em

    nosso banco de dados. Para isso, faremosuso de um componente chamado OLEDB Destination , conforme abordado aseguir, lembrando sempre de conferir onome da instância e da respectiva tabelaonde serão persistidas as informações.

    Caso o mapeamento de cada uma dascolunas da tabela TB_DBA_Espaco não

    seja feito automaticamente, o mesmo pode ser feito através da

    opção Mapping , na qual podemos mapear cada uma das colunasvindas de nossa origem com as colunas existentes em nossa tabelado banco de dados destino.

    Como deve haver uma precedência entre as tarefas na abaControl Flow , para que desta forma o fluxo seja executado corre-tamente, sendo primeiramente lidas as informações do arquivoCSV e depois estas sejam gravadas no banco, devemos, por fim,ligar o Execute SQL Server Agent Job Task  ao Data Flow Task (verFigura 7). Dessa forma garantimos que as tarefas sejam execu-tadas na ordem correta. Deste modo, devemos deixar o fluxointerligado conforme as Figuras 7 e 8.

    Criando o projeto SSRSApós a conclusão do nosso pacote SSIS conforme mostradoanteriormente, iniciaremos o processo do SQL Server ReportingServices com a criação do relatório. Sendo assim, abra o VisualStudio, clique em New > Project e depois selecione a opção Re-

     porting Services > Report Server Projeto Wizard. Na janela que seráexibida, informe um diretório de preferência e salve o projeto comum nome de fácil identificação.

    O próximo passo para elaborar o projeto de Reports consisteem configurar a conexão com o banco de dados. Assim, defina onome da conexão a ser criada em Data Source e em seguida cliqueem Edit , conforme a Figura 9.

    Nesse momento será aberta uma nova tela para configurarmos aconexão. Nesta tela, deve ser informado o nome da instância do SQLServer onde está localizado o banco de dados, além de selecionar aopção de autenticação do usuário como Windows Authentication.Por fim, deve-se especificar o nome do banco (DBA_Monitor) nalistagem de bancos que será exibida. Após estes passos, podemostestar a conexão através do botão Test Connection.

    De volta à tela inicial do Data Source , apenas clique em Next ,pois nossa conexão com o banco de dados de onde iremos ler asinformações já estará devidamente configurada. O próximo passoé inserirmos a query, responsável por recuperar os dados usadosno relatório, na tela de Query String. O código desta consulta é

    apresentado na Listagem 5.

    Figura 6. Criação das variáveis no Derived Column

    Listagem 4. Comandos para criação das colunas (variáveis).

    DataCadastro - GETDATE()Instancia - (DT_STR,50,1252)”SERVER-SQL”Usado_MB - (DT_NUMERIC,18,2)((DT_NUMERIC,18,2)((DT_NUMERIC,18,2)Capacity - (DT_NUMERIC,18,2)FreeSpace) / 1024 / 1024)Tamanho_MB - (DT_NUMERIC,18,2)((DT_NUMERIC,18,2)Capacity / 1024 / 1024)Livre_MB - (DT_NUMERIC,18,2)((DT_NUMERIC,18,2)FreeSpace / 1024 / 1024)PercFree - (DT_NUMERIC,18,2)((DT_NUMERIC,18,2)FreeSpace / (DT_NUMERIC,18,2)Capacity * 100)PercUsado - (DT_NUMERIC,18,2)(100 - ((DT_NUMERIC,18,2)FreeSpace / (DT_NUMERIC,18,2)Capacity * 100))

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    19/68Edição 128 • SQL Magazine  19

    Listagem 5. Query para leitura de dados na tabela TB_DBA_Espaco.

    SELECT Drive, Instancia, Tamanho, Usado_MB, Livre_MB, Livre_perct,CONVERT(varchar(10), Data_Cadastro, 103) AS Data

    FROM TB_DBA_Espaco

    WHERE Data_Cadastro BETWEEN @DataInicial AND @DataFinal

    Figura 7. Fluxo para importação das informações – Control Flow

    Figura 8. Fluxo para importação das informações – Data Flow

    Após inserir este código, podemos avançar. Na tela seguinteserão mostradas duas opções de tipo de relatório a ser criado:tabular e matrix. Em nosso exemplo adotaremos a opção Tabular ,pois faz parte do nosso objetivo expor as informações em formatode tabela.

    Agora veremos algumas configurações que são importantes, pois

    iremos definir como serão exibidas e agrupadas as informações

    do nosso relatório. Na opção Available fields serão listados todos oscampos resultantes de nossa query, sendo que iremos distribuí-los da seguinte forma, para uma melhor visualização dos dadosno relatório: a coluna Instancia  será adicionada na guia Page;a coluna Data_Cadastro será usada como coluna que vai agruparas informações em Group; e os demais campos serão adicionados

    em Details , de acordo com a Figura 10.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    20/68

    SQL Server Reporting Services: Monitorando instâncias no SQL Server

    20 SQL Magazine • Edição 128

    Em seguida, devemos definir o layout do nosso relatório. Paraisso, adotamos a opção Stepped , para que as informações sejamexibidas de forma mais espaçada e detalhada, e não em blocos,como ocorreria se selecionássemos a opção Block .

    O último passo é informar o estilo que o relatório possuirá, oqual poderá ser escolhido de acordo com a preferência/demandado usuário.

    Em nosso caso, selecionamos a opção Forest. E ainda antes da

    exibição do relatório, será necessário informar as configurações do

    Figura 11. Tela de configuração do endereço do servidor SSRS

    seu respectivo servidor, como a versão do SSRS e principalmentea URL para acesso a ele (observe a Figura 11).

    Após clicarmos em Next , basta informar um nome para o rela-tório. Em nosso exemplo o nomeamos como “Relatório de Espaço

    em Disco”.Nesse momento, vamos apenas realizar alterações no layoutdo relatório como, por exemplo, redimensionar o tamanho dascolunas e configurar as variáveis que serão usadas na query, parapodermos filtrar por data os dados a serem exibidos.

    Figura 9. Tela de configuração do Data Source

    Figura 10. Tela de configuração dos campos – Design Table

    Por fim, adicionaremos as variáveis de ambiente ao projeto. Destemodo, acesse o menu View > Report Data , onde se encontram asconfigurações de Parameters , clique com o botão direito em @DataI-nicial , selecione a opção Parameter Properties , conforme mostradonas Figuras 12 e 13 , e depois, na opção Data Type , selecione Date/ Time e clique em Ok . O mesmo deve ser feito com o parâmetro@DataFinal , que será a outra data que adotaremos para viabilizara filtragem dos dados no relatório.

    Enfim podemos visualizar como ficou nosso relatório, bastandopara isso clicar em Preview. Para definir o período desejado, utili-zaremos os campos Data Inicial eData Final. Em seguida, ao clicarem View Report , observe o resultado final. Nele, serão exibidos osdiscos disponíveis no servidor separados por “Data Cadastro” epela instância do SQL Server, conforme expõe a Figura 14.

    Finalmente temos um relatório com as informações dos espaçosem disco da máquina monitorada. Apesar do processo apresenta-do ser longo, ele é extremamente útil para os casos em que temosvárias instâncias em várias máquinas e servidores diferentes queprecisamos monitorar diariamente. Depois de pronto, o únicotrabalho a ser feito é visualizar no relatório se há alguma máquina

    que esteja com pouco espaço livre, pois essa falta de espaço pode

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    21/68Edição 128 • SQL Magazine  21

    Figura 12. Tela do relatório.

    Figura 13. Tela para configuração dos parâmetros

    Figura 14. Tela do relatório gerado no Reporting Services

    devem ser monitorados seguindo a mesma linha de raciocínio,tais como: logs de eventos do Windows, backups não realizados,

     jobs que falharam, entre outros.

    Links:

    Página com informações sobre LUNs:http://technet.microsoft.com/pt-br/library/cc754590(v=ws.10).aspx 

    Integration serviceshttp://msdn.microsoft.com/en-us/library/ms169917.aspx 

    Flat File Connectionshttp://msdn.microsoft.com/en-us/library/ms170583.aspx 

    OleDB Connectionshttp://msdn.microsoft.com/en-us/library/ms170365.aspx 

    Data Flow taskhttp://msdn.microsoft.com/en-us/library/ms170425.aspx 

    Reporting services parametershttp://msdn.microsoft.com/en-us/library/dd220464.aspx 

    Reporting services connectionshttp://msdn.microsoft.com/en-us/library/ms156450(v=sql.105).aspx 

    Dê seu voto em www.devmedia.com.br/sqlmagazine/feedback 

    Ajude-nos a manter a qualidade da revista!

    Você gostou deste artigo?

    Walter Santos de [email protected]

    Atua na área de informática há mais de sete anos. Formado emSistemas de Informação pelo CES-JF. Possui cursos de especiali-zação DBA SQL Server e Oracle. No momento atua como Administradorde Dados no CAED-UFJF em Juiz de Fora.

    Autor

    Felipe Pereira [email protected]

    Atua no ramo de Tecnologia da Informação há mais de sete

    anos. É bacharel em Sistemas de Informação pelo Centro deEnsino Superior de Juiz de Fora (CES-JF) e pós graduado CBA em Gestãode Projetos pelo IBMEC. Possui curso concluído para certificação Microsoft

    SQL Server (10774A / 10775A/ 10777A) realizado no centro de treinamentos NSI (RJ).

    Autor

    Flavio Alexandre [email protected]

    Atua no ramo de Tecnologia da Informação há 10 anos e há 6anos como DBA MS SQL Server. É Tecnólogo em informáticaEmpresarial pela Universidade Presidente Antônio Carlos (Unipac).Possui curso concluído para certificação Microsoft SQL Server (2779 /

    2780) realizado na Allen Informática (RJ).

    Autor

    acarretar em sérios problemas em ambientes de produção, ondea utilização do banco de dados seja de alta disponibilidade.

    Vale ressaltar que focamos somente na questão do monitoramen-to de espaço em disco das instâncias, contudo, há outros itens que

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    22/6822 SQL Magazine • Edição 128

    Este artigo apresenta o Pentaho BI, uma ferramenta open source que

    gerencia e manipula dados. No decorrer do artigo, o leitor poderá en-

    tender os principais conceitos e recursos que compõe esta ferramenta.

    O Pentaho é uma aplicação robusta que apoia as necessidades das

    empresas de pequeno e médio porte, auxiliando a agregar valor aos

    negócios de forma concisa e inteligente, através de manipulação de

    dados com data warehouse e mineração de dados, sem a necessidade

    de um vasto conhecimento em programação e codificação.

    Fique por dentro

    Pentaho BI:

    Conhecendo aferramenta open source

    Empresas de pequeno e médio porte estão sempre

    revendo os sistemas de gestão e traçando plane- jamentos estratégicos alinhados as necessidadesde negócio. Cada vez mais se faz necessário o acessorápido e fácil à informação que integre diversas fon-tes de dados e que estejam organizadas de forma quetragam subsídios e embasamento aos níveis de direçãoe de gerência. Sendo assim, instituições que possuemferramentas open source que conseguem realizar estetrabalho possuem um grande diferencial.

    Pentaho é uma plataforma open  source para criaçãode soluções para as necessidades de Inteligência deNegócios (Business Intelligence). A ferramenta foi

    desenvolvida em Java no ano de 2004, pela empresaPentaho Corporation nos Estados Unidos. Em seguida,no ano de 2008, foi considerado um dos melhores soft-wares para inteligência empresarial, de acordo com arevista InfoWorld. Pentaho suporta ETLs (Extraction,Transformation and Load), relatórios, workflow, OLAPe mineração de dados com Data-mining e Big Data.

    Por ser uma plataforma de código aberto e ter uma ar-quitetura poderosa, que foi desenvolvida por APIs parapromover o crescimento das soluções, desenvolvedorespodem montar rapidamente soluções personalizadas deBI. Dessa forma, é possível aumentar o valor e a capa -

    cidade das soluções das empresas, criando propostassuperiores às tradicionais do mercado a um custo sig-nificativamente baixo.

    A corporação auxilia a comunidade de desenvolvedo-res a integrar as estruturas de soluções criadas de formaorganizada, tornando um software conciso e coeso, etambém melhorando estas soluções na tentativa de criarum software cada vez mais completo e robusto.

    Um bom motivo para utilizar o Pentaho é que as em-presas estão cansadas de pagar valores abusivos pelautilização de softwares de BI. Softwares comerciais, emgeral, têm poucos investimentos para novas pesquisas e

    desenvolvimento, enquanto o Pentaho está sendo atuali-

    zado constantemente pela comunidade de desenvolvedores.

    O Pentaho ainda oferece inúmeras vantagens sobre os softwaresproprietários, pois não se baseia em uma versão de código abertodas ferramentas mais famosas disponíveis no mercado. É umaarquitetura desenvolvida do zero, facilmente integrável comqualquer processo de negócio, pois utiliza padrões popularescomo o BPEL.

    Sua arquitetura e tecnologia foram criadas para que os esforçosde desenvolvimento estejam focados na melhoria de funcionali-dades, ao invés de migração de softwares legado, mudando deversão em versão. O processo de efetuar migrações torna os sis-temas sucessíveis a muitos erros, por tratar e adequar um grandevolume de dados a novos padrões criados para o novo software,

    e isso ocorre tanto para as informações já existentes no sistema,quanto para novas. São riscos grandes que geram custos e tempo,pois novas versões levam tempo para serem criadas por completo.A migração de software legado demora um tempo considerávelpara se tornar estável com ajustes completos e erros mitigados.Muitas vezes, quando tal estabilidade é atingida, o software jáestá obsoleto no mercado e não atende mais as necessidades deseus clientes.

    Existe uma licença comercial da Pentaho Corporation que isentade obrigações dos termos da Licença Pública GNU (GPL). O licen-ciamento é separado por módulos e componentes:• Pentaho Data Integration (PDI): módulo de ETL, que também é

    conhecido como Kettle;

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    23/68Edição 128 • SQL Magazine  23

    • Pentaho Analysis Services: módulo de OLAP, também conhecidocomo Mondrian OLAP server;• Pentaho Reporting: é um módulo baseado e derivado do pro -

     jeto JFreeReport;

    • Pentaho Data Mining: como o nome já sugere, é uma ferramentapara mineração de dados, derivado do projeto Weka;• Pentaho DashBoard: módulo gráfico para gerar dashboards;• Pentaho for Apache Hadoop ou Pentaho BI Suite: é a versãopara Hadoop, voltada para clusters e processamento de grandesmassas de dados.

    Na Figura 1 é possível obter uma visão macro da estruturaque compõe as soluções Pentaho considerando a suíte como umtodo.

    Veremos no decorrer deste artigo o que são cada um destesmódulos e quais recursos estas ferramentas disponibilizam,

    apresentando um overview para alinhar conceitos.

    Figura 1. Estrutura da Suíte do Pentaho

    Pentaho Data IntegrationPDI ou Kettle é um componente responsável pelos processos de

    Extração, Transformação e Carga (ETL). Apesar de ferramentasde ETL serem usadas em projetos de data warehouse, PDI podetambém ser usado para:• Migração de dados entre aplicações e banco de dados, onde per-mite ao usuário realizar a busca dos dados e percorrer caminhosonde estes podem ser filtrados e alterados à medida que as regrassão criadas nos steps e hops (que veremos a seguir);• Exportar dados de banco de dados para arquivos texto ouExcel;• Carregar massivamente dados em banco de dados. Realiza car-

    ga de forma segura, pois tem o recurso de dosar um volume de

    dados e executar o commit , assim, caso haja problema no processo,reporta por logs em quais dados estão o erro e não é perdido orestante da transação;• Data Cleansing: disciplina de qualidade/limpeza de dados de

    Data Warehouse;• Integração de aplicações: pode ser integrado via SOAP, iPhone, Jasper Reports, trinta tipos de bancos, entre outros.

    Para entender melhor o que componente PDI realiza, será pre-ciso responder a seguinte questão: O que é um processo de ETL(Extract, Transform and Load) e qual sua importância? ETL é umprocesso de extração, transformação e carga de dados, provenien-tes de uma ou mais bases de dados e destinada a uma ou mais

     bases para compor um Data Warehouse.Este processo é o mais crítico e demorado na criação de um

    DW, pois consiste na extração de informações heterogêneas, na

    padronização de dados, na transformação e limpeza destes dados,e na carga dos dados na base do DW.Após ocorrer o processo de extração, transformação e a lim-

    peza de dados, são efetuadas a correção de erros de digitação ecaracteres desconhecidos, permitindo a descoberta de possíveisviolações e garantindo a integridade dos dados. A importânciadeste processo é moldar e entregar os dados formatados para queestes fiquem de forma homogênea para serem carregados no DWe facilitar as consultas de sistemas OLAP. Assim, transformandodados em inteligência empresarial, no intuito de trazer recursosem dados e análise para a tomada de decisão, apresentando umavisão macro dentro de algumas perspectivas.

    Mas, o que é um sistema de Data Warehouse? É um sistemautilizado para armazenar informações de forma consolidada. Suaestrutura favorece a obtenção de relatórios e análise de grandesvolumes de dados, coletando informações transacionais e auxiliana obtenção estratégica de informações para tomada de decisões,com a ressalva de que os dados são apenas para consulta.

    O PDI é uma ferramenta de ETL, que suporta vários tipos deentrada e saída, mas com uma vantagem: é orientado a meta-dados. Sendo assim, não é preciso escrever nenhuma linha decódigo, tornando-o fácil de ser utilizado por qualquer tipo deusuário.

    Funcionamento do PDIO PDI possui uma ferramenta gráfica que desenha e testa

    processos, cria Jobs e transformations  - chamada Spoon. Atransformação é orientada a fluxo de dados (data-flow), pois éformada por um caminho composto de Steps, que são os passosa serem seguidos pelos dados para que eles sejam transformadosde acordo com as regras programadas dentro destes. Os Hopssão uma representação gráfica do dado transitando entre doissteps, com uma origem e um destino. Caso um step seja destinode mais de um hop, o sistema tem a inteligência de fazer ummerge nos dados. Esta transição, no processo de transformação,é assíncrona e simultânea, ou seja, um dado flui no fluxo inde-

    pendente de outro.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    24/68

    Pentaho BI: Conhecendo a ferramenta open source

    24 SQL Magazine • Edição 128

    No exemplo da Figura 2 é possível observar este processo comclareza: o Step “Text file input” representa a entrada de um textocom dados, que entra em uma condição no “Filter rows” (faz afunção do if/else). Se a condição for verdadeira, os dados serão

    ordenados no “Sort rows” e inseridos em alguma tabela no “Tableoutput”, caso seja falsa ou ocorra um erro, esta ficará no log e seráexibido em vermelho na aba de logs, mas o sistema não interrompea transação, representado pelo “Dummy (do nothing)”.

    Os hops geram um fluxo a ser seguido e permitem que metada-dos passem de um step a outro, mas tal passagem não ocorre deforma sequencial. Os hops determinam a direção e o caminho,mas não necessariamente as sequencias das etapas a serem per-corridas pelos dados. Todos os passos são iniciados em paraleloe o Pentaho tem a inteligência de lidar com este fato e reagir casonecessário.

    Tais transformações geram arquivos de extensão ‘ktr’ que podem

    ser executados dentro de um programa.

    Figura 2. Exemplo de transformation básico

    Existem diversos Steps que estão agrupados de acordo com suasfuncionalidades e que podem ser configurados para atender asnecessidades. Para maiores detalhes você poderá buscar a docu-mentação oficial do PDI.

    Mas, o que são Jobs? São rotinas de execução de um bloco decódigo, executadas periodicamente. Em outras ferramentas, comoSQL Server, são criados com SQL, enquanto no Pentaho são criadosda mesma forma que as transformations, utilizando steps e hops.Além disso, são orientadas a controle de fluxo com diversas possi-

     bilidades de execução e ainda dentro dos Jobs é possível executartransformations ou ainda, outro Job.

    No Kettle, quando o Job é executado, a sequência e a ordem dos

    Steps e Hops são respeitadas, ao contrário do transformation , ouseja, enquanto um componente é executado, os demais aguardama conclusão desta execução. Se, em algum momento, você necessi-tar que a transformation aguarde o fim de outra, deverá gerenciareste fluxo com Jobs.

    Na Figura 3 será recuperado um parâmetro e validado em umatransformação. O Job irá validar a existência de um arquivo.

    O Job apresentado será iniciado no step “Start” e espera por umarquivo no passo “Wait for data file”. Se a transformação falharpor não informar um parâmetro ou acontecer algum erro, o Hopvermelho encaminha o Job para o “Send Error Log” e envia oserros para algum lugar pré-definido, como um email, por exem-

    plo, com detalhes das ocorrências. Caso contrário, o fluxo segue

    pelo Hop verde e verifica a existência do arquivo e segue para atransformação principal no step “Success”. Este exemplo pode serutilizado para realizar uma carga de dados noturna, por exemplo,ou iniciar uma rotina diante de um determinado comportamento.

    Há diversas possibilidades e estes fluxos podem conter outros Jobs e ou transformações.

    Figura 3. Exemplo de Transformation básico

    Execução de Jobs por terminal – Kitchen e PANÉ possível utilizar arquivos para serem executados diretamente

    por terminais, como executáveis. São arquivos que ficam na pastade instalação nomeados por Kitchen no caso dos Jobs e Pan quandosão transformações. Esses arquivos têm formato do tipo ‘.bat’ ou‘.sh’ e podem ser geradas em outras extensões, isto irá dependerda plataforma que está sendo utilizada. Quando executados viaterminal, irá se comportar da mesma maneira que seria no Spoon,porém nestes casos, o log será exibido no terminal, a menos queseja configurado para exibir em outro local.

    Pentaho ReportingEste módulo se refere a um conjunto de ferramentas de código

    aberto para gerar relatórios, que pode escalar cenários com múlti-plas dimensões em larga escala, de fácil formatação, visualizaçãoe manipulação de dados, com um alto poder de performance comum baixo consumo de memória e de processamento.

    Nele estão inclusos Report Designer, Reporting Engine e Re-portings SDK. Baseia-se em JFreeReports, uma biblioteca opensource do Java. Além disso, gera relatórios incorporados ao BI comfinalidades gerenciais, operacionais e de produção, que podemser usados em outras aplicações.

    Report Designer é um editor gráfico, responsável pelo ambientevisual de design que facilita a formatação e personificação de apa-rência de relatórios sofisticados e ricos, podendo ser usado paradesktop. O recurso Reporting Engine faz integração da biblioteca

     JFreeReport do Java para o gerenciamento dos relatórios e o SDK éo apoio de todas as bibliotecas necessárias para o funcionamentoda Engine. Este conjunto de ferramentas possibilita a integraçãocom outro aplicativo servidor ou desktop.

    O Pentaho Reporting é facilmente personalizável. Utilizandoo styling reports, pode-se manipular a granularidade de apa-rência e dados, sendo possível adicionar recursos visuais comoimagens e logotipos. Suporta também a exportação dos relatórios

    em diversos formatos: PDF, HTML, XML, CSV, Rich Text ou TXT.

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    25/68Edição 128 • SQL Magazine  25

    Tem o recurso que permite trabalhar commais de 30 fontes de dados ao mesmotempo, agrupando as informações em umúnico relatório. Além do mais, as fórmulas

    do excel podem ser utilizadas para criarrelatórios dinâmicos.Um dos recursos deste módulo é o

    Reporting out-of-the-box, um aplicativoque permite criar relatórios out-of-the-box,ou seja, relatórios que podem ser usadosem outras aplicações. Assim, é possívelgerar relatórios de forma simples, comomostra a Figura 4  (à esquerda), ondetransforma-se dados em informações denegócio. É possível até mesmo criar seuspróprios componentes com programação,

    integração com outros sistemas e distri- buição independente, agregando valor aauditoria, finanças, a um portal, sistemasexistentes, entre outros.

    Esta aplicação apresenta subsídios paracriar relatórios relacionais e relatóriosanalíticos (fontes de dados OLAP). Suportavirtualmente ilimitados sub-relatórios quepodem ser aninhados independentementeda profundidade. Também é capaz dereceber parâmetro criando informaçõesdinâmicas com diferentes sistemas de

    origem.Mas, o que vem a ser OLAP? On-Line

    Analytical Processing ou ProcessamentoAnalítico On-Line. É uma interface comusuário que utiliza o armazenamento deinformações para apresentar dados de talforma que este usuário passe a ter conhe-cimento destes dados, e possa analisá-loscom profundidade e explorá-los de diver-sos ângulos.

    O OLAP e o Data Warehouse trabalham juntos, de for ma complementar, pois

    enquanto o DW guarda informações, oOLAP as recupera com maior eficiência evelocidade possível.

    Pentaho AnalysisÉ uma ferramenta para otimizar a ca-

    pacidade do processamento de análisespoderosas em um grande volume de dadosmultidimensionais, com endereçamentocomplexo e alta velocidade de resposta.O Pentaho Business Analytics colocaanálises poderosas nas mãos de usuários

    corporativos. Com uma interface intuitiva

    Figura 4. Exemplos de relatório simples e sub-relatórios

    e interativa do usuário web, os usuáriosnão técnicos podem explorar e visualizar

    livremente os seus dados de negócios pormúltiplas dimensões, tais como produto,geografia e cliente.

    É possível criar views multidimensio-nais com métricas específicas e atributospara análise e integração de produtos BIPentaho. Apresenta ainda uma bibliotecaiterativa para compor análises: Geo-map-ping, como a esquerda da Figura 5 , ondeé possível ver um mapa, e como à direita,apresentando a dispersão dos dados comum gráfico de bolhas em um produto

    cartesiano.Esta ferramenta trabalha com OLAP,

    utilizando cubos e tabelas fato, que con-sistem em camadas que disponibilizaminformações em quatro vertentes:• Camada de apresentação: o que émostrado na tela do usuário e como elepoderá interagir e transformar os dadosem informações que atendam às suasnecessidades;• Camada dimensional: para apresentardados multidimensionais com tabelas e

    gráficos dinâmicos que atendem a exibição

    padrão de gráficos (linha, torta, barras)e também com ferramentas avançadas,

    como mapas clicáveis, interativos e di-nâmicos. Esta camada analisa, valida eexecuta consultas MDX (MultidimensionalExpressions);• Camada estrela: responsável pela manu-tenção de um cache, ou células na memóriaqualificadas por valores de colunas dedimensão;• Camada de armazenamento: é umSistema de Gerenciamento de Banco deDados Relacional que guarda consultassemelhantes em cache.

    E de que forma esses cubos podem ajudarnos negócios? Cada camada pode dispo-nibilizar os dados de formas diferentes,por exemplo: uma dimensão apresentadados atuais e outra, históricos. Esta téc-nica promove uma alta performance paratrabalhar com os dados para análise emtempo real.

    Esta ferramenta propõe uma rica interfacegráfica com painéis iterativos, com umgrande poder de orquestração, onde você

    pode arrastar e soltar dashboards com

    Figura 5. Exemplos de dados analíticos

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    26/68

    Pentaho BI: Conhecendo a ferramenta open source

    26 SQL Magazine • Edição 128

    design baseado na web, podendo ser per-sonalizados e construídos exclusivamentepara seu negócio e integração com portaise mash-up.

    DashboardsDashboards são um módulo para gerar

    informações específicas como desempe-nho individual, departamental ou até detoda a empresa, incorporando métricas,filtros e relatórios, podendo serem ou nãopersonalizados. São úteis e recomendadospara demonstrar KPIs (indicadores deperformance), e utilizados para apresentardados com detalhes. Na Figura 6 são exi-

     bidas duas possibilidades de composição

    de dashboards.

    Mobile BIE que tal gerenciar tudo isso pelo smar-

    tphone e/ou tablet? O Módulo de BI do

    Pentaho oferece ainda, aos usuários mó-veis, a oportunidade de se tornarem maisprodutivos e acessar, analisar e comparti-lhar informações de negócios de qualquer

    lugar, com a criação de novos relatóriosanalíticos direto no iPad.

    Pentaho Big Data AnalyticsO Pentaho Big Data Analytics é uma

    ferramenta que apoia o ciclo de vida dedados em grande volume, com integraçãode dados e análise de negócios fortementeacoplados. Isto permite acelerar o processode transformação do Big Data em fonte deinformações úteis, independentemente daquantidade de fontes que estes dados são

    originados.Mas o que vem a ser Big Data? Sãoferramentas de gerência e análise deum grande volume de dados, originadode fontes diversas. Trabalha em alta ve-

    locidade buscando transformar dadosem informações que agregam valor aonegócio. Além disso, auxilia no desen-volvimento de estratégias de mercado,

     baseadas na identificação das necessida-des do cliente com coesão, confiabilida-de, segurança e integridade dos dados.Também é importante entender o que émineração de dados e qual a relação comeste artigo. Data Mining é o processoanalítico de mineração de grande quanti-dade de dados, na busca de padrões e/ourelacionamentos sistemáticos, descobrindoproblemas ou oportunidades escondidas,gerando produtividade e vantagens com-petitivas.

    A premissa do Data Mining é uma argu-mentação ativa, isto é, em vez do usuáriodefinir o problema, selecionar os dados eas ferramentas para analisar tais dados, asferramentas do Data Mining pesquisamautomaticamente os mesmos, à procurade anomalias e possíveis relaciona-mentos, identificando assim problemasque não tinham sido identificados pelousuário.

    No mercado existem ferramentas analí-ticas como Hadoop e MapReduce, como

    também banco de dados preparados paraarmazenar, gerenciar e analisar grandevolume de dados, como NoSQL. Mas en-tão, porque trocar estas ferramentas peloPentaho Analytics? Esta ferramenta fazintegração com estas outras, utilizando oque elas têm de melhor e acrescentandoos recursos da Suite Pentaho, com inte-gração multithreaded, suporte a cluster eprocessamento distribuído em vários nós,incorporando as ferramentas gráficas edashboards.

    Na Figura 7  é possível entender esteprocesso um pouco melhor, onde umaempresa utiliza fontes de dados de di-ferentes origens, incluindo sistemas deCRM e ERP, implementando um clusterdo tipo Hadoop para descarregar dados,reduzindo custos no armazenamento e noaumento de velocidade de consultas comData Mart. Em cima dessa infraestruturaé possível melhorar a qualidade do DataWarehouse sem grandes conhecimentosde codificação utilizando o Big Data inte-

    gração do Pentaho.Figura 7. Integração com Big Data

    Figura 6. Exemplos de Dashboards

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    27/68Edição 128 • SQL Magazine  27

    Com base no que foi apresentado, percebe-se que o Pentahooferece ferramentas completas para transformar dados em infor-mações, agregando valor ao negócio com integração de diversasfontes de dados. Trata-se de uma plataforma unificada que for-

    nece flexibilidade, extensibilidade e escalabilidade para atenderas necessidades de TI, promovendo integração com as melhoresferramentas do mercado.

    Andressa de Andrade [email protected]

    Analista de Sistemas – Itaú. Formada em análise e desenvol-vimento de sistemas pela Fatec. Cursando MBI em Tecnologiade Software na PECE POLI USP. Trabalha há 7 anos com TI, 4 anos comdesenvolvimento e atualmente com gerenciamento de projetos.

    Autor

    Links:

    [1] Pentahohttp://www.g3itcon.com/product/pentaho-business-intelligence

    [2] Pentaho Business Analyticshttp://www.pentaho.com/product/business-visualization-analytics

    [3] Big Data In Banking: It’s Time To Acthttp://www.pentaho.com/sites/default/files/uploads/resources/forrester-research-bigdata-

    in-banking.pdf 

     [4] Optimize the Data Warehouse  http://www.pentaho.com/Optimize-the-Data-Warehouse

    [5] Transformations, Steps, and Hopshttp://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Fconcept_

     pdi_usr_transformations.html 

    Dê seu voto em www.devmedia.com.br/sqlmagazine/feedback 

    Ajude-nos a manter a qualidade da revista!

    Você gostou deste artigo?

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    28/6828 SQL Magazine • Edição 128

    Evitar fracassos e falhas na disponibilidade do banco de dados é uma

    tarefa difícil que exige investimento e profissionais especializados.Travamento de servidores, velocidade da conexão via rede, sobre-

    carga de trabalho nos servidores, tempo de recuperação do banco

    de dados, tempo em downtime muito elevado, o retardo da entrega

    ou armazenamento dos dados são alguns dos fatores que influenciam

    negativamente qualquer solução para alta disponibilidade em banco

    de dados. Neste artigo será apresentada a ferramenta Oracle Real

    Application Cluster, que é uma solução para alta disponibilidade em

    banco de dados. Será visto todo processo de implantação e confi-

    guração desta ferramenta em sistema operacional Linux. O tema é

    útil para demonstrar todo processo de instalação e configuração da

    ferramenta Oracle Real Application Cluster em um ambiente com

    máquinas virtuais.

    Fique por dentro

    Oracle RAC com DNS:

    balanceamento de cargaRound Robin

    A

    s organizações estão cada vez mais dependentesdo funcionamento adequado de seus bancos dedados devido ao impacto de seu mau funcio-

    namento e prejuízos gerados. Implantar soluções querealmente garantam a alta disponibilidade em banco dedados e software, mantendo-o disponível o maior tempopossível com menor número de falhas, juntamente comalto desempenho e segurança, é a procura de váriasempresas. Dessa forma, ferramentas como a Oracle RealApplication Clusters, também chamada de Oracle RAC,tornam-se uma solução para criação de um ambiente dealta disponibilidade.

    A Oracle RAC é um cluster que consiste em múltiploscomputadores interconectados que têm como objetivocompartilhar e processar requisições efetuadas com soft-

    wares para usuários finais, tornando o banco de dadosdistribuído. A Figura 1 exemplifica sua arquitetura efuncionamento. As três aplicações/servidores web sãousuários finais que enviam requisições aos servidores(nodos) clusterizados. Antes da requisição ser recebidapor um dos servidores, o processo responsável porefetuar a conexão é o chamado SCAN (Single ClientAccess Name), que trabalha como um intermediário en-tre conexões de usuários e banco de dados. As conexõessó são permitidas quando não há interrupções entremáquinas usuários, nodo do cluster e servidor de bancode dados. Em seguida, cada instância interligada recebe

    as requisições efetuando o balanceamento de carga afim de distribuir o processamento. Essa distribuiçãose dá pelo monitoramento de cada instância que é feitopor um processo em background chamado Heartbeat(é um daemon que trabalha em background usado paramonitorar se determinado computador está ativo ou não.Ele deve ser combinado com um gerenciador de clusterque possui como tarefa iniciar e parar serviços comoendereços IP e servidores web).

    SCAN (Single Client Access Name) é uma camada entreos clientes e os ouvintes locais do cluster. Atua comouma única conexão para clientes deixando transparente

    a falha de algum nodo do cluster. O SCAN precisa que

    sejam definidos no mínimo três endereços IPs que estejam namesma sub-rede para utilizar o balanceamento de carga e paraalta disponibilidade independentemente do número de nodos nocluster. O benefício para os clientes que usam o SCAN é que elesnão precisarão de mudanças de configurações se adicionarmosou removermos nós no cluster.

    É importante observar que o processo de implantação e criaçãode um cluster deve contemplar uma análise e projeção da estru-tura do ambiente de acordo com a especificidade da empresa,

    entre outras características e necessidades. Neste contexto, esteartigo apresenta na prática a instalação da ferramenta Oracle RealApplication Clusters em sua versão 11g Release 2. A Oracle RealApplication Clusters fornece benefícios como:• Alta disponibilidade: segurança para falhas em servidores einstâncias;• Escalabilidade: adicionar mais nodos/servidores em necessi-dade futuras;• Custo: somente é pago o que é utilizado;• Computação em grade (Grid);• Aumento e diminuição do cluster conforme necessidade;• Adicionar e remover nodos com facilidade;

    • Utilização de repositório de carga;

  • 8/17/2019 SQL-magazine 128 Rjwbegvf

    29/68Edição 128 • SQL Magazine  29

    • Execuções de processos de forma paralela;• Distribuição de carga entre os nodos do cluster.

    Figura 1. Arquitetura do Oracle RAC

    Um dos mais importantes componentes da Oracle RAC é oOracle Clusterware, um software que agrupa todos os servidoresindividuais para que cooperem como um único sistema. Este

    software pode gerenciar todos os processos do cluster de formaindependente assegurando proteção para o ambiente clusterizado.Qualquer processo que ele gere é conhecido como um recursode cluster, que pode ser uma instância ou um serviço. O OracleClusterware possui quatro daemons que são iniciados em respawn ,ou seja, é responsável pela reinicialização do serviço caso sejafinalizado de forma inesperada ou incorreta. Os daemons são:• CSSD (Cluster Syncronization Services Daemon): responsávelpor controlar todos os nodos do cluster e ajudar no monitoramentode saúde dos nós usando Voting Disk. Se falhar, o servidor é rei-niciado imediatamente. É o processo principal no cluster;• CRSD (Cluster Ready Services Daemon): responsável pela re-

    alização de todas as operações de recuperação e gerenciamentoda alta disponibilidade como o gerenciamento do OCR (OracleCluster Registry). Caso algum recurso falhe, ele é reiniciado, e s