Mais quelle est la meilleure approche ici? Quelles sont les meilleures pratiques pour ce problème? P>
3 Réponses :
essayer de comprendre cela mais je pense que ce que vous demandez est une méthode de capture des données plus anciennes avant de charger les nouvelles données. Je conviendrais avec votre DBA selon lequel une table séparée pour chaque rechargement serait extrêmement désordonnée et pas très utilisable si vous en avez besoin.
Au lieu de cela, créez une table qui copie votre table de charge mais ajoute un seul champ DateTime (Dites History_Date). Chaque charge vous allez simplement couler toutes les données de votre table principale sur la table de sauvegarde. Utilisez une tâche de colonne dérivée dans le flux de données pour ajouter la valeur historique_date à la table de sauvegarde.
Une fois la table de sauvegarde terminée, tronquez ou supprimez le contenu de la table actuelle. Puis chargez les nouvelles données. P>
Au lieu de créer des tables supplémentaires créées, vous pouvez définir le package pour exécuter comme une seule transaction. En faisant cela, si un composant échoue, toutes les tâches qui ont déjà exécutées seront laminées et les suivantes ne seront pas exécutées. Pour ce faire, définissez le transactionoption code> sur
requis code> sur l'emballage. Cela permettra à l'emballage de commencer une transaction. Après cela, toute cette propriété sur
prise en charge code> pour tous les composants que vous souhaitez réussir ou échouer ensemble. Le niveau code> supporté par
aura ces tâches rejoindre une transaction déjà en cours par le conteneur parent, étant le package dans ce cas. S'il y a d'autres composants de l'emballage que vous souhaitez commiser ou Rollback indépendant de ces tâches, vous pouvez placer les objets associés dans un conteneur de séquence et appliquer le niveau
requis code> à la séquence. Une chose importante à noter est que si quelque chose effectue un
tronducate code>, tous les autres composants accédant à l'objet tronqué devront avoir le paramètre
validateexternalmetadata code> défini sur
false Code> Pour éviter le problème de blocage connu qui en résulte. P>
Pour sauvegarder votre table, au lieu de charger des données d'une table (original) à une autre table (sauvegarde), vous pouvez simplement renommer votre table d'origine à quelque chose (table de sauvegarde), créer une table d'origine à nouveau comme le dos Table en haut puis laissez tomber la table renommée uniquement lorsque votre charge de données est réussie. Cela peut économiser un peu de temps pour transférer des données d'une table à une autre. Vous voudrez peut-être tester quelle approche est plus rapide pour vous en fonction de votre structure de données / table, etc., mais ce que je voulais mentionner, c'est aussi l'une des tâches de le faire. Si vous avez beaucoup de données dans ce tableau ci-dessous, l'approche peut être plus rapide.
DROP TABLE abcTbl_bkp;
Aucune commande de ce type "renommer" en SQL. Il n'y a pas non plus une commande «créer ... comme» dans SQL.
Merci d'avoir attrapé ça! C'était la syntaxe MySQL, ne remarqua pas celui-ci était pour TSQL. Édité la syntaxe maintenant. Mais l'idée était de renommer cette table et de créer une nouvelle, puis de déposer la table de sauvegarde.
Bienvenue. Veuillez ajouter du code, des exemples et des sorties que vous souhaitez dans votre question. Cela nous aidera à vous aider.
Sauvegardez-le dans une table #temp. Cela serait automatiquement supprimé lorsque la connexion est fermée, par ex.
SELECT * IN #ABCTBL de ABCTBL CODE> Créerait la table TEMP
#ABCTBL CODE> et insérez toutes les données de
AbctBL code> dans une commande.
La meilleure approche est de demander à votre équipe et, surtout, la personne responsable. Il n'y a pas de meilleure pratique car l'ETL est toujours très spécifique aux exigences de l'entreprise. Vous avez dit que le processus peut être répété et que les données ne sont pas critiques. Alors pourquoi tu t'inquiètes? Si le processus échoue, il suffit de le réexécuter après avoir corrigé tout problème. Où sont vos besoins? Encore une fois, demandez à votre équipe de conseiller.