Rodrigo está sua experiência com o Oracle e XML é altamente válida e gostaria sim que vc disponibilizasse os códigos que vc tem para usarmos como exemplo nas nossas discussões. Mesmo porque estou querendo montar um site de referência sobre XML e JAVA e poderíamos colocar este material lá. Sobre a minha idéia de framework (ou arquitetura) de XML com JAVA é que não haveria persistência em tabelas de um DB. Estou pensando apenas num repositório de arquivos XML, consultar e persquisar diretamente em arquivos XML, talvez, no futuro, usando o JavaSpace. Das opiniões que temos lido acerca da discussão, realmente parece que o uso do XML com JAVA para o processamento de arquivos é mais eficiente do que TXT com subString JAVA, mas o que pretendo fazer (ou mostrar num case, como vc sugeriu)é apresentar esta eficiência efetivamente. Abraço a todos Carlos
> Entao, > > Como tinha te dito. > Na sexta passada comecei a fazer testes de stress com > o meu sistema. > Recebi um catalogo de produtos do SAP ERP com 50 000 > linhas. > Usando uma package Oracle li e escrevi numa tabela no > meu banco tudo em menos de 2 minutos. > Tambem, apos um tratamento dos dados, gerei um outro > arquivo de saida txt com as 50 000 linhas em menos de > 2 minutos. > Com o Oracle temos a opcao de utilizar um outro > utilitario chamado SQLLoader mas optei pela package > UTL_FILE que me dah mais opcoes de tratamento de linha > (como voce precisa, nao eh?). > > Se precisar te mando uns exemplos. > > Por outro lado, > Vamos supor que voce queira criar este seu mecanismo > de leitura, escrita e esteja pensando em outras > utilizacoes disto. Esteja pensando tambem em usar isto > como um CASE para voce e sua empresa e que ainda sejam > arquivos pequenos. Use mesmo o XML! > Nao vou dizer que um minimo de hard code nao tive que > fazer para a package UTL_FILE ler o TXT. > Carlos, usando XML, TXT, sempre o arquivo serah aberto > e as linhas interpretadas, apenas a maneira que isto > serah feito que eh diferente com XML. > Pensando no futuro e em reutilizacao crie a DTD, os > XML´s que voce vai ter bons frutos. > > Nao querendo cair em contradicao, quando trabalhei com > XML no Oracle tambem tive que usar a mesma package > UTL_FILE. > > Se precisar tambem tenho exemplos da UTL_FILE com XML. > > Voce poderia me perguntar: Mas e o Java Rodrigo? > Usei uma Java Stored Procedure para direcionar o > arquivo do sistema operacional para ser interpretado > pela package e nada mais. Da maneira que fiz ficou > tudo dentro do Banco. > Prefiro assim. > > Nao sei se me enrolei um pouco nas palavras... > > Rodrigo. > > > Rodrigo. > > --- [EMAIL PROTECTED] escreveu: > > > Rodrigo, valeu a dica. Eu estava imaginando que isso > > seria um empecilho > > mesmo para um desenvolvimento em XML para arquivos > > TXT que já são muito > > grandes. > > Mas eu imagino que para os arquivos de pequeno porte > > talvez a coisa seja > > viável, mesmo porque eu estou pensando em > > reusabilidade, portabilidade e > > transações também. E creio que a performace deste > > sistema poderia melhorar > > consideravelmente tendo em vista que não gastaria > > processamento com > > abertura, leitura e processamento de cada linha de > > arquivo. O que vc acha ? > > Nós aqui na Secretaria de Fazenda de MT estamos > > migrando tudo para JAVA e > > Oracle. > > Carlos > > > > > > *********************************************** > > Carlos Santiago > > [EMAIL PROTECTED] > > Programador JAVA > > Equipe de Implementação - SAGETI > > Secretaria de Estado de Fazenda - MT > > *********************************************** > > > > > > > > > > > > Rodrigo Rodrigues > > > > > > <rodrigo2naomi@ya Para: > > [EMAIL PROTECTED] > > > > hoo.com.br> cc: > > > > > > > > Assunto: Re: [java-list] JAVA e XML > > > > 19/01/2003 17:22 > > > > > > Favor responder a > > > > > > java-list > > > > > > > > > > > > > > > > > > > > > > > > > > Boa tarde, > > > > Vou responder por experiencia propria, > > > > Tambem estou desenvolvendo um sistema de ETL > > (Extract > > Transform e Load). > > Meus arquivos tambem sao txt e provem de um ERP SAP. > > Tem em torno de 150 000 linhas. > > Eh totalmente descartada a utilizacao de XML, os > > arquivos no minimo quadruplicam seu tamanho. O XML > > eh > > mais adequado para transacoes, exchange e coisas do > > tipo nao para carga de dados. > > > > Soh por curiosidade qual o seu banco de dados, se > > for > > Oracle voce pode tratar os txt´s por pl/sql, tenho > > exemplos se precisar. > > > > Temais. > > > > --- [EMAIL PROTECTED] escreveu: > Gostaria > > de > > colocar uma questão para a galera da > > > lista. > > > Estou num projeto que manipula conteúdo de > > arquivos > > > TXT e os grava num > > > banco de dados. Até aí, sem problemas e nem > > > novidades. > > > A questão é que estes conteúdos são > > disponibilisados > > > em linhas, minha > > > aplicação lê cada uma destas linhas e as > > sub-divide > > > em subStrings, e cada > > > subString é uma informação que deve ser gravada em > > > banco. > > > Exemplo de uma linha deste arquivo: > > > > > > 5002951224000104131858602 20020625MT01UN > > > > > > 1949461630000000001300000000000130000000000002210000000 00000000000000000001700N > > > > > > > > Trecho de código de processamento desta linha: > > > > > > (...) > > > tipo = (linha.substring(0, 2)); > > > cpfCnpj = linha.substring(2, 16).trim(); > > > cfop = Integer.parseInt(linha.substring(53, > > > 56).trim()); > > > inscEstd = (linha.substring(16, 30).trim()); > > > (...) > > > > > > Estas variáveis são gravadas no banco. > > > Como disse, até aí sem problema. Mas existem > > > arquivos cujo tamanho variam > > > entre 40 e 100MB com cerca de 80mil a 840mil > > linhas, > > > e cada uma destas > > > linhas deve ser lida e processada. > > > Como eu uso File para poder ler estes arquivos o > > > consumo de memória é alto, > > > pois estes arquivos são carregados na memória até > > o > > > fim de seu > > > processamento e os lotes de arquivos são da ordem > > de > > > 2000 a 5000 arquivos. > > > O que não é problema, a princípio, para os servers > > > que temos aqui. > > > O problema, na minha opinião e gostaria de poder > > ler > > > a de vcs, é que se > > > ouver uma mudança no padrão do tamanho da linha ou > > > algum dado fora de lugar > > > o processamento desta linha fica comprometido. Ou > > no > > > caso concreto onde a > > > variável cfop (do exemplo acima) não terá mais > > > tamanho 3, passando a ter > > > tamanho 4, isso faz com que eu tenha que mudar > > todas > > > as outras > > > "coordenadas" de varáveis, para poder pegar a > > > informação correta. > > > A minha idéia era a de acabar com esse lance de > > ter > > > que ler linha a linha e > > > sub-dividi-lás em subStrings. > > > Poderia ter um arquivo XML parecido com este > > trecho: > > > > > > <tipo>50</tipo> > > > <cpfCnpj>02951224000104</cpjCnpj> > > > <cfop>616</cfop> > > > <inscEstd>131858602</inscEstd> > > > > > > e assim por diante. Desta forma poderia acessar > > > diretamente a informação > > > que desejo. > > > Claro que devemos fazer uma DTD para estes > > arquivos, > > > pois cada <tipo> de > > > linha tem a sua particularidade, mas isso também > > não > > > seria problema. > > > Bem, se transformar as linhas do arquivo TXT em > > tags > > > de arquivos XML não é > > > o problema, porque a questão ? Bem, se um arquivo > > > texto, que só tem > > > caracteres ANSI pode chegar a ter 100MB como > > ficará > > > um arquivo XML com um > > > monte de tags ? Muito maior que um arquivo TXT ! > > > Mas eu acho que a vantagem seria a seguinte > > > (gostaria que alguém me > > > confirmasse): > > > > > > 1) Apesar do arquivo ser maior em MB as > > informações > > > estarão dispostas de > > > forma ordenada e se um campo mudar de tamanho não > > > seria necessário mudar o > > > processamento as outras variáveis. > > > 2) Mesmo sendo maior em MB isso não acarretaria > > > grandes transtornos de uso > > > de memória tendo em vista que não usaria File para > > > ler o arquivos, e depois > > > cada linha do arquivo. Usando a API XML de JAVA > > > (um parser) o mesmo > > > carregaria na memória apenas a estrutura DOM do > > > documento e isso é mais > > > === message truncated === > > _______________________________________________________ ________________ > Busca Yahoo! > O serviço de busca mais completo da Internet. O que voc ê pensar o Yahoo! encontra. > http://br.busca.yahoo.com/ > > ------------------------------ LISTA SOUJAVA ---------- ------------------ > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > dúvidas mais comuns: http://www.soujava.org.br/faq.htm > regras da lista: http://www.soujava.org.br/regras.htm > historico: http://www.mail-archive.com/java-list% 40soujava.org.br > para sair da lista: envie email para java-list- [EMAIL PROTECTED] > ------------------------------------------------------- ------------------ > > -------------------------- Carlos Santiago Programador JAVA Equipe de implementação Secretaria de Fazenda - MT -------------------------- __________________________________________________________________________ E-mail Premium BOL Antivírus, anti-spam e até 100 MB de espaço. Assine já! http://email.bol.com.br/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------