Bagikan melalui


Menggunakan Tujuan Perangkat Rekam

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Tujuan Recordset tidak menyimpan data ke sumber data eksternal. Sebagai gantinya, tujuan Recordset menyimpan data dalam memori dalam kumpulan rekaman yang disimpan dalam variabel paket Layanan Integrasi dari jenis data Objek . Setelah tujuan Recordset menyimpan data, Anda biasanya menggunakan kontainer Foreach Loop dengan enumerator Foreach ADO untuk memproses satu baris kumpulan rekaman pada satu waktu. Enumerator Foreach ADO menyimpan nilai dari setiap kolom baris saat ini ke dalam variabel paket terpisah. Kemudian, tugas yang Anda konfigurasi di dalam kontainer Foreach Loop membaca nilai-nilai tersebut dari variabel dan melakukan beberapa tindakan dengannya.

Anda dapat menggunakan tujuan Recordset dalam berbagai skenario. Berikut adalah beberapa contoh:

  • Anda bisa menggunakan tugas Kirim Email dan bahasa ekspresi Layanan Integrasi untuk mengirim pesan email yang dikustomisasi untuk setiap baris dalam kumpulan rekaman.

  • Anda dapat menggunakan komponen Skrip yang dikonfigurasi sebagai sumber, di dalam tugas Aliran Data, untuk membaca nilai kolom ke dalam kolom aliran data. Kemudian, Anda dapat menggunakan transformasi dan tujuan untuk mengubah dan menyimpan baris. Dalam contoh ini, tugas Aliran Data berjalan sekali untuk setiap baris.

Bagian berikut ini pertama-tama menjelaskan proses umum penggunaan tujuan Recordset lalu memperlihatkan contoh tertentu tentang cara menggunakan tujuan.

Langkah-langkah Umum Untuk Menggunakan Tujuan Recordset

Prosedur berikut ini meringkas langkah-langkah yang diperlukan untuk menyimpan data ke tujuan Recordset, lalu menggunakan kontainer Foreach Loop untuk memproses setiap baris.

Untuk menyimpan data ke tujuan Recordset dan memproses setiap baris dengan menggunakan kontainer Foreach Loop

  1. Di SQL Server Data Tools (SSDT), buat atau buka paket Layanan Integrasi.

  2. Buat variabel yang akan berisi kumpulan rekaman yang disimpan ke dalam memori oleh tujuan Recordset, dan atur jenis variabel ke Objek.

  3. Buat variabel tambahan dari jenis yang sesuai untuk berisi nilai setiap kolom dalam kumpulan rekaman yang ingin Anda gunakan.

  4. Tambahkan dan konfigurasikan pengelola koneksi yang diperlukan oleh sumber data yang Anda rencanakan untuk digunakan dalam aliran data Anda.

  5. Tambahkan tugas Aliran Data ke paket, dan pada tab Aliran Data dari SSIS Designer, konfigurasikan sumber dan transformasi untuk memuat dan mengubah data.

  6. Tambahkan tujuan Recordset ke aliran data dan sambungkan ke transformasi. Untuk properti VariableName tujuan Recordset, masukkan nama variabel yang Anda buat untuk menyimpan recordset.

  7. Pada tab Alur Kontrol SSIS Designer, tambahkan kontainer Foreach Loop dan sambungkan kontainer ini setelah tugas Aliran Data. Kemudian, buka Editor Loop Foreach untuk mengonfigurasi kontainer dengan pengaturan berikut:

    1. Pada halaman Koleksi , pilih Enumerator ADO Foreach. Kemudian, untuk variabel sumber objek ADO, pilih variabel yang berisi kumpulan rekaman.

    2. Pada halaman Pemetaan Variabel, petakan indeks berbasis nol dari setiap kolom yang ingin Anda gunakan ke variabel yang sesuai.

      Pada setiap perulangan perulangan, enumerator mengisi variabel ini dengan nilai kolom dari baris saat ini.

  8. Di dalam kontainer Foreach Loop, tambahkan dan konfigurasikan tugas untuk memproses satu baris kumpulan rekaman sekaligus dengan membaca nilai dari variabel.

Contoh Penggunaan Tujuan Recordset

Dalam contoh berikut, tugas Aliran Data memuat informasi tentang karyawan AdventureWorks2022 dari tabel Sales.SalesPerson ke tujuan Recordset. Kemudian, kontainer Foreach Loop membaca satu baris data sekaligus, dan memanggil tugas Kirim Email. Tugas Kirim Email menggunakan ekspresi untuk mengirim pesan email yang disesuaikan ke setiap tenaga penjual tentang jumlah bonusnya.

Untuk membuat proyek dan mengonfigurasi variabel

  1. Di SQL Server Data Tools, buat proyek Integration Services baru.

  2. Pada menu SSIS , pilih Variabel.

  3. Di jendela Variabel , buat variabel yang akan menyimpan kumpulan rekaman dan nilai kolom dari baris saat ini:

    1. Buat variabel bernama, BonusRecordset, dan atur jenisnya ke Objek.

      Variabel BonusRecordset menyimpan recordset.

    2. Buat variabel bernama, EmailAddress, dan atur jenisnya ke String.

      Variabel EmailAddress menyimpan alamat email salesperson.

    3. Buat variabel bernama, FirstName, dan atur jenisnya ke String.

      Variabel FirstName menyimpan nama depan tenaga penjual.

    4. Buat variabel bernama, Bonus, dan atur jenisnya ke Ganda.

      Variabel Bonus menyimpan jumlah bonus salesperson.

Untuk mengonfigurasi manajer koneksi

  1. Di area Pengelola Sambungan SSIS Designer, tambahkan dan konfigurasikan manajer koneksi OLE DB baru yang tersambung ke database sampel AdventureWorks2022.

    Sumber OLE DB dalam tugas Aliran Data akan menggunakan manajer koneksi ini untuk mengambil data.

  2. Di area Pengelola Sambungan, tambahkan dan konfigurasikan manajer koneksi SMTP baru yang tersambung ke server SMTP yang tersedia.

    Tugas Kirim Email di dalam kontainer Foreach Loop akan menggunakan manajer koneksi ini untuk mengirim email.

Untuk mengonfigurasi aliran data dan Tujuan Kumpulan Rekaman

  1. Pada tab Alur Kontrol SSIS Designer, tambahkan tugas Aliran Data ke permukaan desain.

  2. Pada tab Aliran Data, tambahkan sumber OLE DB ke tugas Aliran Data, lalu buka Editor Sumber OLE DB.

  3. Pada halaman Pengelola Sambungan editor, konfigurasikan sumber dengan pengaturan berikut:

    1. Untuk manajer koneksi OLE DB, pilih manajer koneksi OLE DB yang sebelumnya Anda buat.

    2. Untuk Mode akses data, pilih perintah SQL.

    3. Untuk teks perintah SQL, masukkan kueri berikut:

      SELECT     Person.Contact.EmailAddress, Person.Contact.FirstName, CONVERT(float, Sales.SalesPerson.Bonus) AS Bonus  
      FROM         Sales.SalesPerson INNER JOIN  
                            Person.Contact ON Sales.SalesPerson.SalesPersonID = Person.Contact.ContactID  
      

      Catatan

      Anda harus mengonversi nilai mata uang di kolom Bonus ke float sebelum Anda dapat memuat nilai tersebut ke dalam variabel paket yang jenisnya adalah Double.

  4. Pada tab Aliran Data, tambahkan tujuan Recordset, dan sambungkan tujuan setelah sumber OLE DB.

  5. Buka Editor Tujuan Recordset, dan konfigurasikan tujuan dengan pengaturan berikut:

    1. Pada tab Properti Komponen, untuk properti VariableName , pilih Pengguna::BonusRecordset.

    2. Pada tab Kolom Input, pilih ketiga kolom yang tersedia.

Untuk mengonfigurasi kontainer Foreach Loop dan menjalankan paket

  1. Pada tab Alur Kontrol SSIS Designer, tambahkan kontainer Foreach Loop, dan sambungkan kontainer setelah tugas Aliran Data.

  2. Buka Editor Perulangan Foreach, dan konfigurasikan kontainer dengan pengaturan berikut:

    1. Pada halaman Koleksi , untuk Enumerator, pilih Foreach ADO Enumerator, dan untuk variabel sumber objek ADO, pilih User::BonusRecordset.

    2. Pada halaman Pemetaan Variabel, petakan Pengguna::EmailAddress untuk mengindeks 0, Pengguna::FirstName untuk mengindeks 1, dan Pengguna::Bonus untuk mengindeks 2.

  3. Pada tab Alur Kontrol, di dalam kontainer Perulangan Foreach, tambahkan tugas Kirim Email.

  4. Buka Editor Tugas Kirim Email, lalu pada halaman Email, konfigurasikan tugas dengan pengaturan berikut:

    1. Untuk SmtpConnection, pilih manajer koneksi SMTP yang dikonfigurasi sebelumnya.

    2. Untuk Dari, masukkan alamat email yang sesuai.

      Jika Anda menggunakan alamat email Anda sendiri, Anda akan dapat mengonfirmasi bahwa paket berhasil dijalankan. Anda akan menerima tanda terima yang tidak terkirim untuk pesan yang dikirim oleh tugas Kirim Email ke penjual fiktif AdventureWorks2022.

    3. Untuk Kepada, masukkan alamat email default.

      Nilai ini tidak akan digunakan, tetapi akan diganti pada waktu proses oleh alamat email setiap tenaga penjualan.

    4. Untuk Subjek, masukkan "Bonus tahunan Anda".

    5. Untuk MessageSourceType, pilih Input Langsung.

  5. Pada halaman Ekspresi Editor Tugas Kirim Email, klik tombol elipsis (...) untuk membuka Editor Ekspresi Properti.

  6. Di Editor Ekspresi Properti, masukkan informasi berikut ini:

    1. Untuk ToLine, tambahkan ekspresi berikut:

      @[User::EmailAddress]  
      
    2. Untuk properti MessageSource, tambahkan ekspresi berikut:

      "Dear " +  @[User::FirstName] + ": The amount of your bonus for this year is $" +  (DT_WSTR, 12) @[User::Bonus] + ". Thank you!"  
      
  7. Jalankan paket.

    Jika Anda telah menentukan server SMTP yang valid dan memberikan alamat email Anda sendiri, Anda akan menerima tanda terima yang tidak terkirim untuk pesan yang dikirim tugas Kirim Email ke penjual fiktif AdventureWorks2022.