17 de maio de 2011

Testando meus conhecimentos Java

Que decepção!!! Tudo aquilo que imaginava sobre o que eu sabia sobre orientação a objetos e Java foi jogado fora por fazer o teste da Caelum: http://www.caelum.com.br/cursos/prerequisitos/ Se você trabalha com Java, tente fazer o teste. Eu tirei 3 pontos... fui péssimo!

Agora tenho uma nova meta até o fim do ano: estudar para certificação.

10 de maio de 2011

Pentaho Data Integration


Pentaho é uma suite de ferramentas open-source para BI (Bussiness Inteligence). Tem interface web, dashboards, ferramenta para criação de relatórios, relatório AdHoc, suporte a relatorios "cubo" e outras coisas muito legais. Pretendo escrever bastante sobre o Pentaho.

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 noSourceForgehttp://sourceforge.net/projects/pentaho/files/Data%20Integration/4.1.0-stable/


5 de maio de 2011

Banco de dados MySQL para testes

Estava a procura de um banco para MySQL com tabelas grandes, para alguns testes de performance e tutoriais de ETL / Pentaho que postarei aqui no blog.
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)

Problema: Em uma tabela Oracle tenho um XML salvo num campo CLOB. Preciso extrair o XML e criar um arquivo em uma pasta no servidor.

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

Bom, esse é o primeiro post oficial do blog. Tenho essa conta no Blogger desde 2004 e até hoje foi só testes. Na verdade, pura preguiça mesmo...

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.