Import und Validierung der XML-Datei mithilfe des SSIS-oder einfach T-SQL?

Was ist die beste Vorgehensweise beim importieren und validieren einer XML-Datei eine einzelne Tabelle (abgeflacht) in der SQL Server ?

Ich habe eine XML-Datei, die enthält etwa 15 komplexe Typen, die alle bezogen auf ein einzelnes übergeordnetes element.
Die SSIS-design könnte wie folgt Aussehen:
Import und Validierung der XML-Datei mithilfe des SSIS-oder einfach T-SQL?
Aber es ist immer sehr kompliziert mit all den (15) verbindet.

Ist es vielleicht eine bessere Idee, einfach schreiben T-SQL-code, um :

1) Importieren Sie die XML-Daten in eine Spalte des XML-Typs und ist mit einem XSD-schema.

2) diesen code Verwenden:

TRUNCATE TABLE XML_Import
INSERT INTO XML_Import(ImportDateTime, XmlData)
SELECT GETDATE(), XmlData 
FROM
(
    SELECT  * 
    FROM    OPENROWSET (BULK 'c:\XML-Data.xml', SINGLE_BLOB) AS XMLDATA
) AS FileImport (XMLDATA)

delete from dbo.UserFlat
INSERT INTO dbo.UserFlat
SELECT
    user.value('(UserIdentifier)', 'varchar(8)') as UserIdentifier,
    user.value('(Emailaddress)', 'varchar(70)') as Emailaddress,
    businessaddress.value('(Fax)', 'varchar(70)') as Fax,
    employment.value('(EmploymentData)', 'varchar(8)') as EmploymentData,
    -- More values here ...
FROM  
    XML_Import CROSS APPLY
    XmlData.nodes('//user') AS User(user) CROSS APPLY
    user.nodes('BusinessAddress') AS BusinessAddress(businessaddress) CROSS APPLY
    user.nodes('Employment') AS Employment(employment)
    -- More 'joins' here ...

füllen die 'UserFlat' - Tabelle ?
Einige Nachteile sind, dass müssen Sie manuell geben Sie den SQLcode, aber der Vorteil hier ist, dass ich mehr direkte Steuern, wie die Elemente bearbeitet und konvertiert werden. Aber ich weiß nicht, ob es irgendwelche performance-Unterschiede zwischen der Verarbeitung von XML in SSIS und Verarbeitung der XML-Daten mit T-SQL-XML-Anweisungen.


Beachten Sie, dass einige andere Voraussetzungen sind:

  1. Fehlerbehandlung : im Falle eines Fehlers eine E-Mail muss an eine person.
  2. Verarbeiten zu können, mehrere input-Dateien mit einem bestimmten Dateinamen Muster : XML_{Datum}_{Zeit}.xml -
  3. Bewegen der verarbeiteten XML-Dateien in einen anderen Ordner.

Bitte um Rat.

  • SSIS ist ein visuelles Werkzeug, das ermöglicht die SQL beeinträchtigt, um einfache Aufgaben ausführen. Wenn Sie schreiben können T-SQL, SSIS-wird nur im Weg sein.
  • offensichtlich nicht verstehen, SSIS, wenn er beschreibt es so. Jedem das seine - wenn Sie mehr vertraut mit, oder lieber T-SQL - verwenden Sie es dann. SSIS' XML-Quelle ist begrenzt, aber wenn es funktioniert, in Ihrem Fall, und Sie haben es meistens aus, dann würde ich es verwenden, solange die Leistung war vergleichbar. Ich würde erwarten, dass T-SQL durchführen schneller, aber SSIS unbestreitbar bessere Fehlerbehandlung als T-SQL.
Schreibe einen Kommentar