quarta-feira, 26 de setembro de 2012

Ordenar a saída do comando ls a partir de um substring do nome dos arquivos listados

Recentemente, me deparei com uma situação inusitada e precisei fazer um shell script para resolver.

Um fornecedor envia uns arquivos para serem processados em ordem de criação, mas não adianta ordenar por data/hora de criação porque é comum criar arquivos retroativos, ou seja, tem que ordenar pelo nome (que contém data e hora no formato DDMMYY).
Por causa do formato de data usado na formação do nome do arquivo, a ordem de processamento por nome também pode falhar.

Formato do nome do arquivo:  arq_DDMMYYHHMISS

O script (abaixo), pega a saída do comando "ls", trata parte do nome dos arquivos e ordena por essa parte (no caso, inverte o formato da data contido no nome de cada arquivo).

No final, retorna a lista com o nome completo do arquivo conforme nova ordenação.

Script
_______________________________________________________________
#!/bin/ksh
ls -l >/dev/null 2>/dev/null
if [ $? = 0 ]
then
   directory=/home0/users/josbar
   if [ -e $directory/temp.txt ]
   then
     rm $directory/temp.txt
   fi

   for FILE_RCV in $directory/arqpro*
   do
      if [ -s $FILE_RCV ]
      then
        file_name=`basename $FILE_RCV`
        seg=$(echo $file_name | cut -c18-19)
        min=$(echo $file_name | cut -c16-17)
        hor=$(echo $file_name | cut -c14-15)
        day=$(echo $file_name | cut -c8-9)
        month=$(echo $file_name | cut -c10-11)
        year=$(echo $file_name |cut -c12-13)
        order_by=$year$month$day$hor$min$seg
        echo $order_by - $FILE_RCV >> $directory/temp.txt
      fi
   done
   cat $directory/temp.txt | sort -n | cut -c16-55
fi
_____________________________________________________________

terça-feira, 11 de setembro de 2012

Usuários associados a uma Rule – Sql Server

Segue comando para identifica os usuários associados a uma Rule:

sp_helpgroup Nome_rule

Exemplo:

sp_helpgroup Usuarios_consulta

Group_name Group_id Users_in_group Userid
Usuarios_consulta 5 fmartinez 1
Usuarios_consulta 5 rcorreia 2
Usuarios_consulta 5 pedroso 3
Usuarios_consulta 5 josineis 4

 

[]s

terça-feira, 4 de setembro de 2012

Query Notification – Sql Server

Query Notification ou notificações de consulta foi introduzido na versão Microsoft SQL Server 2005, permitindo notificar aplicativos quando os dados carregados pela aplicação, forem alterados na base de dados. Este recurso é muito útil para aplicativos que utilizam informações de banco de dados em cache (muito utilizado em aplicativos da Web) e precisam ser notificado quando os dados de origem são alterados.

As aplicações podem tirar proveito do recurso Query Notification para reduzir as idas e vindas ao banco de dados. Em vez de utilizar utilizar processos amarradas a job que são executados periodiacamente, as aplicações podem ser notificadas automaticamente quando os resultados estiverem desatualizados.

Exemplo:

Imagine uma pagina Web que exibe os 10 produtos mais vendidos na última hora, a cada nova requisição da pagina, não é necessário consultar toda a lista de pedido para identificar os mais vendidos. Podemos armazenar essa informação no Cache e utilizar do recurso Query Notification assim que a lista de produtos mais vendidos for alterada na base de dados.

Assim que o aplicativo receber a Notificação, codificamos para que seja executado um Select ou Procedure que recupera os produtos mais vendidos , limpamos e atualizamos o cache.

O Database Engine usa o Service Broker para entregar mensagens de notificação. Portanto, o Service Broker deve estar ativo no banco de dados onde o aplicativo estiver solicitando o serviço.

Para saber mais e como implementar, consulte:  http://msdn.microsoft.com/en-us/library/ms175110(v=sql.105).aspx

[]s

segunda-feira, 3 de setembro de 2012

Principais técnicas do Data Mining

  1. Arvore de decisões

A analise dos dados baseado em árvore de decisão trabalha com testes automáticos em todos os valores a fim de identificar um meio eficiente de construir classificadores que interpretem ou identifique grupos ou informações úteis baseadas nos valores de atributos de um conjunto de dados.

A utilização de árvore de decisão tem como princípio categorizar os dados ou mesmo na utilização de regras de fácil entendimento explicadas e traduzidas para linguagem natural.

Na verdade a essência do processo é uma série de declarações if-elses, que quando aplicados a um registro de uma base de dados , resultam na classificação daquele registro. Uma das características da árvore de decisão não é a sua construção a partir de classificação de um conjunto de dados, e sim a sua habilidade de aprendizado e treinamento. Segundo (CHAPELLE et al., 2006) O aprendizado indutivo de árvores de decisão é geralmente dividido em aprendizado supervisionado e não supervisionado.

Quando o aprendizado ou treinamento é finalizado, é possível alimentar sua árvore de decisão construída a partir de exemplos com novos casos a fim de classifica-los.

Exemplo:

clip_image001

2. Redes Neurais

As Redes Neurais Artificiais utilizam um conjunto de elementos de processamento (ou nós) análogos aos neurônios no cérebro. Estes elementos de processamento são interconectados em uma rede que pode identificar padrões nos dados uma vez expostos aos mesmos, ou seja, a rede aprende através da experiência, tais como as pessoas (DIN, 1998).

As Redes Neurais tentam identificar modelos ou padrões nos dados, sua abordagem computacional esta diretamente envolvida com estruturas matemáticas com habilidade de absorver o conhecimento.

Uma Rede Neural artificial consiste em diversos elementos interconectados chamados neurônios ou nós que possuem entrada , saída e processamento de dados e são organizados em camadas que aprendem através da modificação das conexões.

Exemplo:

clip_image001[5]

3 Análise de Agrupamento

Nessa técnica os dados são agrupados em clusters conforme identificado uma classificação ou grupo que são construídos com base na semelhança nos dados percebendo características de cada grupo. Dessa forma objetos dentro do mesmo grupo são os mais semelhantes possíveis, enquanto objetos de outros grupos são os mais deferentes possíveis.

Por exemplo, para analise de crédito supondo que os objetos dessa cadeia de relacionamento sejam os clientes, e que tenham vários atributos como, idade, salário e sexo analisando esses dados com data mining utilizando a técnica de agrupamento, podemos encontrar grupos de clientes com determinada faixa de idade enquadrado em uma baixa faixa salarial e outros grupos de cliente com alta faixa salarial com idade inferiores, podendo assim traçar perfis de concessão de crédito

Essa diferenciação dos clientes em grupos pode ser bastante útil, já que clientes de grupos diferentes, presumidamente, tendem a ter comportamentos bem diferentes (FREITAS, 2000).

4 Indução de Regras

Nessa técnica busca-se detectar padrões ou tendências dentro de um grupo de informação ou de regras que obedeçam a um critério previamente estabelecido por um consultor financeiro de risco de crédito.

Por exemplo, no caso de risco de crédito poderíamos ter o atributo tipo do cliente, sexo, idade e limite de crédito. Analisando essa variáveis o sistema de mineração de dados poderia identificar uma regra de previsão onde:

SE idade > 18 e Sexo = ‘M’ e Tipo = ‘A’

Limite de crédito de 20000 para compra de automóvel

5 Analise Estatística de séries temporais

A estatística é uma das técnicas mais usadas e mais antigas da mineração de dados esta diretamente ligada a todas as outras técnicas.

É definida como uma técnica baseada em modelos matemáticos para conhecimento dos dados, tendo fortemente o envolvimento do usuário.

[]s