Rumah > pangkalan data > tutorial mysql > Bagaimanakah SSIS boleh mengimport berbilang fail teks dengan nama dan skema yang sama dengan cekap daripada subfolder berbeza ke dalam satu jadual pangkalan data?

Bagaimanakah SSIS boleh mengimport berbilang fail teks dengan nama dan skema yang sama dengan cekap daripada subfolder berbeza ke dalam satu jadual pangkalan data?

DDD
Lepaskan: 2024-12-29 11:09:12
asal
807 orang telah melayarinya

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

Mengimport Fail Teks dengan Nama dan Skema yang Sama: Traversal Subfolder dalam SSIS

Cabaran: Mengimport berbilang fail teks dengan nama dan skema yang sama ke dalam jadual pangkalan data tunggal boleh menjadi halangan apabila fail berada dalam keadaan berasingan direktori.

Penyelesaian: Dalam SQL Server Integration Services (SSIS), anda boleh menggunakan Foreach File Container untuk menangani cabaran ini dengan mudah.

Foreach File Container :

Bekas ini berulang melalui koleksi fail, menggunakan set tugasan tertentu kepada setiap satu. Dengan mendayakan pilihan "Subfolder Traverse" dalam bekas, SSIS akan turun secara rekursif ke dalam subdirektori, memproses semua fail yang sepadan dengan topeng fail yang ditentukan.

Menggunakan Ungkapan:

Untuk mengubah suai sifat ConnectionString secara dinamik Pengurus Sambungan Fail Rata semasa pelaksanaan, gunakan ungkapan. Berikan nilai nama fail semasa kepada ungkapan ConnectionString. Ini menjamin bahawa sumber fail berubah apabila bekas berpusing melalui fail.

Tugasan Pembolehubah:

Buat pembolehubah untuk mewakili fail semasa dalam Bekas Fail Foreach. Ini membenarkan tugasan berikutnya untuk mengakses laluan fail dan melaksanakan operasi yang diperlukan berdasarkan fail semasa yang sedang diproses.

Tugas Aliran Data:

Di dalam setiap lelaran bekas, sertakan tugas Aliran Data untuk memproses data yang diimport. Tugas ini terdiri daripada Sumber Fail Rata, yang membaca fail, transformasi Kiraan Baris untuk mengira bilangan baris input dan Destinasi OLE DB, yang memuatkan data ke dalam jadual sasaran.

Contoh Kod:

Di bawah ialah contoh kod yang lebih terperinci untuk melaksanakan penyelesaian:

<!-- 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();
        }
    }
}
Salin selepas log masuk

Kod C# di atas menunjukkan pendekatan alternatif menggunakan keupayaan peringkat sistem untuk mendapatkan semula semua fail dengan sambungan yang ditentukan secara rekursif daripada direktori data sumber dan memasukkannya ke dalam jadual pangkalan data sasaran.

Atas ialah kandungan terperinci Bagaimanakah SSIS boleh mengimport berbilang fail teks dengan nama dan skema yang sama dengan cekap daripada subfolder berbeza ke dalam satu jadual pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan