Comment puis-je utiliser Oracle préprocesseur pour les tables externes pour consommer ce type de format?

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

Question

Supposons que j'ai un format de fichier personnalisé, qui peut être analogue aux tables N. Reprenons 3. Je pourrais transformer le fichier, l'écriture d'une enveloppe de charge personnalisée pour remplir 3 tables de base de données.

Mais supposons que les contraintes d'espace et de ressources, je ne peux pas stocker tout cela dans le tablespace.

Puis-je utiliser Oracle préprocesseur pour les tables externes pour transformer le fichier personnalisé de trois façons différentes?

Les exemples d'utilisation que j'ai lus donnent des fichiers texte gzip un exemple. Mais ceci est un-à-un fichier à table, avec une seule transformation.

J'ai un seul fichier avec N extractions de données possibles.

  • Est-ce que je dois définir N tables externes, chaque référence à un programme différent?
  • Si je carte en trois tables dans le même fichier, comment cela affectera la performance? (L'accès est la plupart du temps ou toutes les lectures, peu ou pas d'écriture).

En outre, ce format ne la sortie standard de mon préprocesseur doivent être? Faut-il CSV, ou y at-il des façons de configurer le pilote de table externe?

Était-ce utile?

La solution

  

"Si je carte en trois tables au même   fichier, comment cela affectera   performance? (L'accès est la plupart du temps ou tout   lit, peu ou pas écrit "

Il devrait y avoir peu de différence ou pas entre trois sessions qui accèdent au même fichier par une définition de la table externe ou trois définitions de table externes. Les tables externes ne sont pas mises en cache par la base de données (peut-être par le système de fichiers ou disque), de sorte que tout accès est purement lit physique. Selon le programme de pré-processeur, il pourrait y avoir un certain niveau de là sérialisation (un programme pré-processeur ou vous pouvez utiliser pour imposer sérialisation).

Côté performance, vous feriez mieux pour une seule session pour analyser le fichier externe / table et le charger dans une ou plusieurs tables de base de données. Les autres sessions lisent à partir de là et sont mises en cache dans le SGA. En outre, vous pouvez indexer une table de base de données afin que vous ne devez pas tout lire.

Vous pourrez peut-être utiliser plusieurs -Table inserts pour charger des tables de base de données multiples à partir d'une définition de table externe unique en une seule passe.

  

"ce format représente la sortie standard   de mon préprocesseur doivent être? faut-il   être CSV, ou y at-il des façons de configurer   le pilote de table externe? "

Il suit plutôt bien SQL * Loader, et les deux sont dans la section Utilitaires manuel. Vous pouvez utiliser le format fixe ou d'autres délimiteurs.

  

aurais-je besoin de définir N externe   tables, chaque référence à une autre   programme?

Cela dépend de la façon dont les données sont intercalées. Ignorer pré-processeurs, vous pouvez avoir des tables externes tirant différentes colonnes du même fichier ou utilisez la balise charge lorsque la clause de déterminer les enregistrements à inclure ou exclure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top