Como posso usar o Oracle Preocessor para tabelas externas para consumir esse tipo de formato?

StackOverflow https://stackoverflow.com/questions/1290520

Pergunta

Suponha que eu tenha um formato de arquivo personalizado, que pode ser análogo a N tabelas. Vamos escolher 3. Eu poderia transformar o arquivo, escrevendo um wrapper de carga personalizado para preencher 3 tabelas de banco de dados.

Mas suponha que as restrições de espaço e recursos não possam armazenar tudo isso no espaço de tabela.

Posso usar o Oracle Preocessor para tabelas externas para transformar o arquivo personalizado de três maneiras diferentes?

Os exemplos de uso que li dão um exemplo de texto de texto Gzip'd. Mas este é um relacionamento de arquivo a uma tabela individual, com apenas uma transformação.

Eu tenho um único arquivo com N possíveis extrações de dados.

  • Eu precisaria definir n tabelas externas, cada uma referindo um programa diferente?
  • Se eu mapear três tabelas para o mesmo arquivo, como isso afetará o desempenho? (O acesso é principalmente ou todas as leituras, poucas ou nenhuma gravação).

Além disso, qual formato a saída padrão do meu pré -processador precisa ser? Deve ser CSV ou existem maneiras de configurar o driver de tabela externo?

Foi útil?

Solução

"Se eu mapear três tabelas para o mesmo arquivo, como isso afetará o desempenho? (O acesso é principalmente ou todas as leituras, poucas ou nenhuma gravação"

Deve haver pouca ou nenhuma diferença entre três sessões acessando o mesmo arquivo através de uma definição de tabela externa ou três definições de tabela externa. As tabelas externas não são armazenadas em cache pelo banco de dados (pode ser pelo sistema de arquivos ou disco); portanto, qualquer acesso é puramente físico. Dependendo do programa pré-processador, pode haver algum nível de serialização lá (ou você pode usar um programa de pré-processador para impor serialização).

Em termos de desempenho, você seria melhor para uma única sessão para digitalizar o arquivo/tabela externo e carregá-lo em uma ou mais tabelas de banco de dados. As outras sessões leem a partir daí e são armazenadas em cache na SGA. Além disso, você pode indexar uma tabela de banco de dados para não precisar ler tudo.

Você pode usar inserções de várias mesa Para carregar várias tabelas de banco de dados de uma única definição de tabela externa em um único passe.

"Que formato a saída padrão do meu pré -processador precisa ser? Deve ser CSV ou existem maneiras de configurar o driver de tabela externo?"

Ele segue praticamente o carregador SQL*, e ambos estão no Manual de utilitários. Você pode usar formato fixo ou outros delimitadores.

Eu precisaria definir n tabelas externas, cada uma referindo um programa diferente?

Depende de como os dados são intercalados. Ignorando pré-processadores, você pode ter diferentes tabelas externas puxando colunas diferentes do mesmo arquivo ou usar o Carregar quando Cláusula para determinar quais registros incluir ou excluir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top