Heim > Datenbank > MySQL-Tutorial > Wie kann SSIS mehrere Textdateien mit demselben Namen und Schema aus verschiedenen Unterordnern effizient in eine einzige Datenbanktabelle importieren?

Wie kann SSIS mehrere Textdateien mit demselben Namen und Schema aus verschiedenen Unterordnern effizient in eine einzige Datenbanktabelle importieren?

DDD
Freigeben: 2024-12-29 11:09:12
Original
815 Leute haben es durchsucht

How can SSIS efficiently import multiple text files with the same name and schema from different subfolders into a single database table?

Importieren von Textdateien mit demselben Namen und Schema: Unterordnerdurchlauf in SSIS

Herausforderung:Importieren mehrerer Textdateien mit identischen Namen und Schemata in Eine einzelne Datenbanktabelle kann eine Hürde darstellen, wenn sich die Dateien in separaten Datenbanken befinden Verzeichnisse.

Lösung: In SQL Server Integration Services (SSIS) können Sie den Foreach-Dateicontainer verwenden, um diese Herausforderung mühelos zu bewältigen.

Foreach-Dateicontainer :

Dieser Container durchläuft eine Sammlung von Dateien und wendet auf jede einzelne einen bestimmten Satz von Aufgaben an. Durch Aktivieren der Option „Unterordner durchsuchen“ im Container wird SSIS rekursiv in Unterverzeichnisse absteigen und alle Dateien verarbeiten, die der angegebenen Dateimaske entsprechen.

Ausdrücke anwenden:

Um die ConnectionString-Eigenschaft des Flat File Connection Managers während der Ausführung dynamisch zu ändern, nutzen Sie Ausdrücke. Weisen Sie dem ConnectionString-Ausdruck den Wert des aktuellen Dateinamens zu. Dies garantiert, dass sich die Dateiquelle ändert, während der Container die Dateien durchläuft.

Variablenzuweisung:

Erstellen Sie eine Variable, um die aktuelle Datei im Foreach-Dateicontainer darzustellen. Dadurch können nachfolgende Aufgaben auf den Pfad der Datei zugreifen und notwendige Vorgänge basierend auf der aktuell verarbeiteten Datei ausführen.

Datenflussaufgaben:

In jeder Iteration des Containers Fügen Sie eine Datenflussaufgabe hinzu, um die importierten Daten zu verarbeiten. Diese Aufgabe besteht aus einer Flatfile-Quelle, die die Datei liest, einer Zeilenanzahltransformation zum Zählen der Anzahl der Eingabezeilen und einem OLE DB-Ziel, das die Daten in die Zieltabelle lädt.

Beispielcode:

Unten finden Sie ein detaillierteres Codebeispiel zur Implementierung der Lösung:

<!-- C# code using System.IO to demonstrate a different approach -->
// Import System.IO for file I/O operations
using System.IO;

// Get the current directory
string currentDirectory = Directory.GetCurrentDirectory();

// Define the source data directory
string sourceDirectory = Path.Combine(currentDirectory, "SSISDATA\SO\TEST");

// Get all files with the specified extension
var files = Directory.GetFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories);

// Iterate through each file
foreach (string file in files)
{
    // Get the file name without the extension
    string fileName = Path.GetFileNameWithoutExtension(file);

    // Load the data from the file into a data table
    DataTable data = GetDataFromFile(file);

    // Insert the data into the target table
    using (var connection = new SqlConnection("connection string"))
    {
        using (var command = new SqlCommand("INSERT INTO TargetTable (File, Data) VALUES (@File, @Data)", connection))
        {
            command.Parameters.AddWithValue("@File", fileName);
            command.Parameters.AddWithValue("@Data", data);

            connection.Open();
            command.ExecuteNonQuery();
        }
    }
}
Nach dem Login kopieren

Der obige C#-Code demonstriert Ein alternativer Ansatz, der Funktionen auf Systemebene nutzt, um alle Dateien mit der angegebenen Erweiterung rekursiv aus dem Quelldatenverzeichnis abzurufen und in die Zieldatenbanktabelle einzufügen.

Das obige ist der detaillierte Inhalt vonWie kann SSIS mehrere Textdateien mit demselben Namen und Schema aus verschiedenen Unterordnern effizient in eine einzige Datenbanktabelle importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage