Frage : SSIS ETL Paket zum Update/zur Einsatzinszenierungquelle zum Bestimmungsort?

Hallo, helfen

Could, das jemand gefallen, mir hier, neu SSIS und ETL zum Material, habe ich die rohen Daten, die zu einem SQL-Tabelle inszeniert werden, das ich dann sich auf unser Produktionstabelle bewegen wünsche und/der Einsatz zu aktualisieren, der ist, die Satzgruppe, die auf einer einzigartigen key.

The Inszenierungtabelle basiert, hat eine „FOLGENDE“ Reihe, die notieren eingestellt kennzeichnet, basiert auf dem FOLGENDEN ich möchte die Bestimmungsorttabelle vergleichen und wenn das FOLGENDE existiert, aktualisiere die Ganzaufzeichnung oder den Einsatz neues otherwise.

I morgens using SSIS, um dieses zu vollenden, wie pro das Bild attached.

1. ALTEN Nachschlagenumwandlung Herausgeber DB-Source
2. anschließen und Fehlerausgabe zusammenbauen um failure.
3. bedingtes Split
zu ignorieren - Rekordzustand einsetzen: ISNULL (Dest_SEQ)
- Rekordzustand aktualisieren: (Dest_TYP! = TYP) || (Dest_SALEDATE! = SALEDATE) || (Dest_INVOICED! = FAKTURIERT) || (Dest_WEEKDATE! = WEEKDATE) || (Dest_EWK! = EWK) || (Dest_ZWK! = ZWK) || (Dest_IY! = IY) || (Dest_WK! = WK) || (Dest_ROMO! = ROMO) || (Dest_ROYR! = ROYR)

4. Neues Reords gehen zu den ALTEN aktualisierten Aufzeichnungen DB-Destination
5. gehen zum ALTEN DB-Befehl als solcher:

UPDATE dbo.sales
SET
TYP =? ,
SALEDATE =? ,
INVOICED =? ,
WEEKDATE =? ,
EWK =? ,
ZWK =? ,
IY =? ,
WK =? ,
ROMO =? ,
ROYR =?
WHERE FOLGEND =?

The Inszenierungtabelle hat ungefähr 100 Spalten mit Daten, also bin ich nicht sicher, wie passend sie, eine Update-Aufzeichnungsbedingung für jede von denen zu definieren ist, möglicherweise ist meine Updateaufzeichnung bis zu Hilfsmittel sehr teuer, wenn wir über 100.000 Updates. sprechen.

Is dort eine Weise kann ich dieses ändern damit in einer bedingten Spalte (oder in der Anwendung von noch etwas) um zu überprüfen ob der FOLGENDEN Inszenierung im Bestimmungsort, wenn es tue existiere, die vollständigen record.

The oben genannten Arbeiten zu aktualisieren, aber ideal ich einen Primärschlüssel auf meiner FOLGENDEN Tabelle verursache und ein Update/einen Einsatz dann, tuend, die an gegründet wurden, wenn der Primärschlüssel oder nicht existiert, wie, könnte ich dieses vollenden?

im Augenblick, wenn ich ein Primärschlüssel auf meiner „Verkaufs“ Bestimmungsorttabelle und mein SSIS wieder laufen gelassen ich eine Störung der einstelle, so FOLGENDE auch erhalten:

An ist ALTE DB-Aufzeichnung vorhanden.  Quelle: Gebürtiger Klient“ Hresult „Microsoft-SQL: Beschreibung 0x80004005: „Verletzung der PRIMÄRSCHLÜSSEL-Begrenzung „PK_sales_1“. Kann doppelten Schlüssel nicht im Gegenstand „dbo.sales“ einsetzen.“.

But die Tabelle, warum kann ist es den FOLGENDEN Schlüssel nicht einsetzen leer?

Thanks für Ihren ganzen help.

The Führer, den ich folgte, war: http://vsteamsystemcentral .com/cs21/blogs/applied_business_intelligence/archive/2007/05/21/ssis-design-pattern-incremental-loads.aspx
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
Staging Tabellenplan:

VERWENDEN [Verkäufe]
TABELLE [dbo] HERSTELLEN. [stg_sales] (
	[FOLGEND] [int] NICHT NULL,
	[TYP] [varchar] (1) NULL,
	[SALEDATE] [varchar] (50) NULL,
	[FAKTURIERT] [varchar] (50) NULL,
	[WEEKDATE] [varchar] (50) NULL,
	[EWK] [varchar] (50) NULL,
	[ZWK] [varchar] (50) NULL,
	[IY] [varchar] (50) NULL,
	[WK] [varchar] (50) NULL,
	[ROMO] [varchar] (50) NULL,
	[ROYR] [varchar] (50) NULL,
	[YRTD] [varchar] (50) NULL,
GEHEN

Bestimmungsorttabellen-Plan:

VERWENDEN [Verkäufe]
TABELLE [dbo] HERSTELLEN. [Verkäufe] (
	[FOLGEND] [int] NICHT NULL,
	[TYP] [varchar] (1) NULL,
	[SALEDATE] [varchar] (50) NULL,
	[FAKTURIERT] [varchar] (50) NULL,
	[WEEKDATE] [varchar] (50) NULL,
	[EWK] [varchar] (50) NULL,
	[ZWK] [varchar] (50) NULL,
	[IY] [varchar] (50) NULL,
	[WK] [varchar] (50) NULL,
	[ROMO] [varchar] (50) NULL,
	[ROYR] [varchar] (50) NULL,
	[YRTD] [varchar] (50) NULL,
GEHEN
Attachments:

Antwort : SSIS ETL Paket zum Update/zur Einsatzinszenierungquelle zum Bestimmungsort?

Anstatt, eine bedingte Spalte zu verwenden, konnten Sie ein langsam änderndes Maß versuchen; sobald Sie durch den Zauberer gehen, verursacht es Einsätze oder Updates abhängig von, ob Ihre Daten bereits in der Tabelle oder existieren.  Plus, müssen Sie nicht um die Schaffung Ihrer eigenen Fragen dich sorgen. :)

hth

valkyrie_nc
Weitere Lösungen  
 
programming4us programming4us