Maurício dos Anjos
17 de maio de 2011
Testando meus conhecimentos Java
Agora tenho uma nova meta até o fim do ano: estudar para certificação.
10 de maio de 2011
Pentaho Data Integration
Para implementar qualquer solução BI, o segredo do sucesso está na criação doDatawarehouse. Essa é a parte dificil, trabalhosa, que o usuário final não vê. Esse trabalho envolve retirar os dados do banco de dados da empresa (transacional), juntar com outras fontes de dados (por exemplo Excel) e formar uma nova trabela com dados gerenciais, para o apoio na tomada de decisão. Esse processo é conhecido como ETL (Extração, Transformação e Carga). Isso nem sempre é tão simples. É ai que o Pentaho Data Integration entra.
Antes conhecido por Kettle, o Pentaho Data Integration, ou simplemente PDI, é o "Severino" para o ETL. Ele realmente faz tudo que precisamos. Nesse link dá pra ter uma idéia do que faz a ferramenta.
Realmente é uma ferramenta indispensável, não só para BI, mas para qualquer desenvolvedor/integrador de sistemas.
O link para download noSourceForge: http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.1.0-stable/
5 de maio de 2011
Banco de dados MySQL para testes
Em uma pesquisa rápida, encontrei o site: https://launchpad.net/test-db/. (download completo).
Essa é uma excelente escolha para quem precisa de dados para testes. Para você ter uma idéia, tem uma tabela com mais de 2.800.000 linhas... era isso que eu precisava!
Agora preciso encontrar algo parecido para PostgreSQL e Oracle... Você conhece algo? Deixe o link nos comentários.
3 de maio de 2011
Dica: XML em campo CLOB para arquivo (Oracle)
Solução: Nessas horas que gosto do Oracle... Tem função pra tudo:
1º Passo: criar uma pasta no servidor e configurar essa pasta no Oracle:
CREATE DIRECTORY XML_DIR AS '/home/pasta'; GRANT read, write on DIRECTORY XML_DIR TO usuario;
2º Passo: criar um script conforme o exemplo:
DECLARE
PASTA_XML VARCHAR2(10) := 'XML_DIR';
CONTADOR INTEGER := 0;
XML_CLOB CLOB;
CURSOR C1
IS
SELECT XML.NOME_XML, XML.ARQ_XML
FROM TABELA_XML XML;
BEGIN
DBMS_OUTPUT.PUT_LINE('INICIO: '||SYSDATE);
FOR R1 IN C1
LOOP
BEGIN
--Pausa de 30 segundos entre 100 arquivos
IF CONTADOR = 100 THEN
DBMS_LOCK.SLEEP(SECONDS => 30);
CONTADOR := 0;
END IF;
DBMS_XSLPROCESSOR.CLOB2FILE(R1.ARQ_XML, PASTA_XML, R1.NOME_XML, NLS_CHARSET_ID('UTF8'));
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR( - 20001, 'VERIFIQUE O ERRO: ' || SQLERRM );
END;
COMMIT;
CONTADOR := CONTADOR + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('FIM: '||SYSDATE);
EXCEPTION
WHEN OTHERS THEN
RAISE;
END ;
Utilizei a função mágica DBMS_XSLPROCESSOR.CLOB2FILE para gerar o arquivo. A sintaxe é a seguinte: DBMS_XSLPROCESSOR.CLOB2FILE(<CampoCLOB>, <Pasta>, <NomeDoArquivo>, <Charset>).
Além disso utilizei a função DBMS_LOCK.SLEEP para dar uma pausa de 30 segundos, só pra não sobrecarregar.
2 de maio de 2011
Porque escrever um blog ?
Não sei responder essa pergunta. O que está me motivando é compartilhar aquilo que aprendi, muitas vezes apanhando bastante.
Uma vez fui acusado de "esconder" conhecimento para outros membros da equipe. Embora isso fosse uma inverdade, isso me marcou profundamente. Desde então procuro passar adiante aquilo que aprendendo, ainda mais intensamente, mesmo nem sempre conhecendo profundamente sobre a tecnologia.
Não estudei ciências da computação, sistemas, engenharia... aprendi estudando sozinho por curiosidade e em cursos. Isso me faz estar sempre um passo atras do mercado. Mas sinto prazer em descobrir e aprender algo novo sobre tecnologia. Acho que é isso que me salva no emprego :)
A idéia do blog é simples, gerar conteúdo sobre aquilo que sei ou que estou aprendendo. Talvez não servirá pra ninguém. Será mais um blog nesse oceano da internet. Mas será um jeito de guardar o que está na minha cabeça e algumas experiências da vida hi-tech. Talvez pelo menos eu ganhe algum trocado no Google AdSense para comprar jujubas.
Primeiro
Pretendo fazer as configurações de layout, comentários, adwords, etc. Logo logo começo a postar conteúdo sobre Java, Pentaho, Android, etc. Minha idéia é compartilhar aquilo que aprendi e ainda vou aprender... talvez isso possa servir para alguém.