none
(Sumber: milist SQL Server) validasi data double ketika DTS RRS feed

  • Pertanyaan

  • Dear All,

    Saya ada 3 database server terpisah di cloud dengan masing-masing server terinstall SQL Server 2008 R2. 

    Satu database server berlaku sebagai data warehouse server dan dua database server lainnya yang menyimpan data transaksi dari aplikasi. Metode yang bisa dilakukan untuk transfer data dari DB transaksi server tersebut ke data warehouse server melalui import/export (DTS).

    CMIIW, DTS ini membuat saya tidak bisa validasi apakah data yang saya kirim sudah ada di data warehouse apa belum, karena untuk cek data sudah pernah masuk apa belum saya memerlukan akses untuk melakukan addlinked server. Sementara addlinked server tidak diijinkan oleh vendor data centrenya karena alasan security.

    Saya sudah menambahkan index unique di table tujuan, tapi data yang masuk tetap masih bisa double.

    Saya coba buat project kecil di Integration service, tapi salah satu cara validasi yang baru saya temukan adalah dengan membuat stored procedure yang memerlukan akses addlinked server. Please advise bagaimana best practice validasi data tersebut ?


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 18 April 2012 07.18
    Moderator

Jawaban

  • Iy betul bisa dilakukan melalui event handlers.

    Komparasi data untuk menghindari duplikasi data bisa dilakukan di SSIS sehingga kita tidak harus membuat linked server yang digunakan pada sp. Komparasi ini bisa dilakukan dengan menggunakan komponen merge join / lookup untuk merelasikan database source dan destination.

    Selain komparasi data teknik lain seperti incremental load/menarik data tambahan yang dibutuhkan saja menurut saya lebih simple dan cepat.

    Sebagai contoh kita bisa menarik ulang data untuk n hari ke belakang setelah data n hari kebelakang kita hapus supaya tidak terjadi duplikasi. jumlah n hari kebelakang akan bergantung berdasarkan kapan data di lock/tidak berubah sehingga data di destination diharapkan sama seperti kondisi data di souce.

    Dijawab oleh: Cahyo Listyanto


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 18 April 2012 07.20
    Moderator

Semua Balasan

  • DTS ini maksudnya SSIS kan ?
    praktek umumnya tentang ETL bisa dikasih penanda apabila load itu sukses, tidak perlu cek balik ke Transactional.
    Misal: tarik data hari ini, dibuatkan tabel log yang isinya waktu (tgl-detik) penarikan, jumlah record yg diambil(new-modified), status transfer.
    Bila status transfer gagal bikin logic untuk ambil lagi, bila berhasil lanjut lagi besok.

    Dijawab oleh: Didit Banuardi


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 18 April 2012 07.18
    Moderator
  • iya betul mas, SSIS maksudnya.

    Untuk insert ke table log ini sebagai penampung apakah transfer sukses atau gagal, bisa dihandle di event mana ya mas ?

    di event handlers ya ?

    atau ada article yang menjelaskan ini ?

    Saya masih newbie soal SSIS ini.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 18 April 2012 07.19
    Moderator
  • di komponen data flow kan pasti ada opsi 'if fail', bisa ditangkap disitu.
    tapi saya pribadi lebih suka mencatat tiap step ke table tersendiri, sehingga saya tahu ada gagal di flow yg mana dan langsung diperbaiki.

    Dijawab oleh: Didit Banuardi


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 18 April 2012 07.19
    Moderator
  • Iy betul bisa dilakukan melalui event handlers.

    Komparasi data untuk menghindari duplikasi data bisa dilakukan di SSIS sehingga kita tidak harus membuat linked server yang digunakan pada sp. Komparasi ini bisa dilakukan dengan menggunakan komponen merge join / lookup untuk merelasikan database source dan destination.

    Selain komparasi data teknik lain seperti incremental load/menarik data tambahan yang dibutuhkan saja menurut saya lebih simple dan cepat.

    Sebagai contoh kita bisa menarik ulang data untuk n hari ke belakang setelah data n hari kebelakang kita hapus supaya tidak terjadi duplikasi. jumlah n hari kebelakang akan bergantung berdasarkan kapan data di lock/tidak berubah sehingga data di destination diharapkan sama seperti kondisi data di souce.

    Dijawab oleh: Cahyo Listyanto


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 18 April 2012 07.20
    Moderator