Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Transformasi Split Bersyarat:Ekspor Data dari SQL Server ke Oracle dan Database MySQL

Pada artikel ini, saya telah menjelaskan bagaimana kita dapat membagi dan mengekspor data tabel database SQL Server ke dalam database Oracle dan MySQL. Proses tersebut didasarkan pada kondisi yang didefinisikan dalam SSIS sebagai “transformasi split bersyarat ”. Transformasi split bersyarat seperti pernyataan kasus dari bahasa pemrograman apa pun. Dengan menggunakan kondisional, kita dapat mengarahkan output komponen di beberapa tujuan yang didasarkan pada kondisi yang ditentukan dalam komponen split bersyarat.

Penyiapan Demo

Kami dapat mengambil data dari berbagai platform database dengan menggunakan koneksi ODBC saat menggunakan alat data SQL Server. Sebagian besar platform database menyediakan driver konektivitas yang dapat digunakan untuk mengonfigurasi koneksi antara aplikasi dan database.

Saya akan mengekspor data tabel pelanggan dari “AdventureWorks2014 ” database ke Oracle dan MySQL berdasarkan kondisi yang ditentukan dalam kondisi split. Data akan dibagi berdasarkan “StateProvinceName ” kolom “Pelanggan " meja. Catatan yang memiliki nilai bernama “California ” di “NamaProvinsi Negara ” akan diekspor ke database Oracle dan record yang memiliki nilai bernama “Washington ” akan diekspor ke database MySQL.

Saya telah menginstal Oracle 11g express edition dan MySQL 8.0 di mesin lokal saya. Saya telah membuat database XE di Oracle dan “WideWorldImportors ” database di server MySQL. Saya telah membuat “Pelanggan ” pada kedua database. Di bawah ini adalah kode SQL untuk membuat tabel.

CREATE TABLE customers 
  ( 
     cust_id                INT, 
     cust_customername      VARCHAR(500), 
     cust_contactnumber     VARCHAR(50), 
     cust_contactnumbertype VARCHAR(10), 
     cust_email             VARCHAR(150), 
     cust_addresstype       VARCHAR(10), 
     cust_address           VARCHAR(1500), 
     cust_city              VARCHAR(50), 
     cust_state             VARCHAR(50), 
     cust_postalcode        INT, 
     cust_countryname       VARCHAR(100) 
  )

Saat menggunakan komponen aliran data dari alat data SQL Server, kami dapat mentransfer data antara berbagai database dengan mengkonfigurasi driver ODBC. Alat data SQL Server yang dapat kita instal oleh manajer koneksi sudah mendukung Oracle Client, tetapi untuk MySQL, kita perlu membuat sumber data ODBC.

Alat data SQL Server adalah aplikasi 32-bit dan berjalan dalam mode 32-bit. Oleh karena itu, kita harus mendownload driver ODBC 32-bit MySQL. Lihat gambar di bawah untuk referensi:

Kita harus menginstal “Connector/ODBC 8.0.11 ” untuk menghubungkan database MySQL menggunakan driver ODBC. Driver ODBC 8.0.11 tersedia untuk platform OS 64-bit. Oleh karena itu, kita harus menggunakan driver ODBC versi lama. Lihat gambar di bawah ini:

Alih-alih menggunakan driver konektivitas yang disediakan oleh MySQL, saya telah menggunakan driver ODBC untuk MySQL dikembangkan oleh Devart.

Devart ODBC Driver untuk MySQL adalah driver konektivitas yang kuat dan berkinerja tinggi. Ini adalah platform independen, mudah dikonfigurasi dan mendukung alat pihak ketiga untuk menghubungkan database MySQL. Di bawah ini adalah fitur-fiturnya.

  1. Mendukung koneksi aman SSL dan SSH.
  2. Сkompatibel dengan setiap versi MySQL. Mendukung MariaDB, database Azure untuk MySQL dan Amazon Aurora.
  3. Kompatibel dengan banyak alat analisis pihak ketiga.
  4. Platform independen. Ini mendukung Platform OS 32-bit dan 64-bit dan banyak lagi.

Anda dapat mengunduh versi uji coba ODBC Driver for MySQL selama 30 hari di sini . Lihat gambar berikut untuk referensi:

Setelah driver diunduh, instal dengan menjalankan penyiapan.

Setelah driver terinstal, kita harus mengkonfigurasi sumber data ODBC untuk menghubungkan database MySQL. Untuk melakukannya, Buka sumber Data ODBC (32-bit). Itu terletak di Panel Kontrol>> Alat Administratif>> Sumber Data ODBC. Lihat gambar di bawah untuk referensi:

Buka sumber Data ODBC (32-bit). Kotak dialog “Administrator Sumber Data ODBC (32-Bit) " akan buka. Di kotak dialog itu klik “Tambah ”. Kotak dialog lain “Buat Sumber Data Baru ” yang memiliki semua driver ODBC yang terinstal di komputer akan terbuka. Dari daftar itu, pilih “Devart ODBC Driver for MySQL ” dan klik “Selesai ”. Lihat gambar berikut untuk referensi:

Setelah Anda mengeklik “Selesai ”, kotak dialog untuk mengkonfigurasi parameter konektivitas MySQL akan terbuka. Di kotak dialog itu, Anda dapat menentukan parameter konektivitas. Berikan nama dan deskripsi untuk mengenali sumber data di bidang yang sesuai. Di “Server ” kotak teks memberikan nama hostname atau alamat IP komputer/server tempat MySQL diinstal. Berikan username dan password yang sesuai untuk login ke server dan pilih database. Lihat gambar berikut untuk referensi:

Saya telah menginstal MySQL di mesin lokal saya maka saya telah menyediakan "localhost" sebagai kotak teks Server. Saya terhubung ke server oleh pengguna "root" maka Pengguna adalah "root." Idealnya, itu tidak disukai. Alih-alih root, buat pengguna lain dan gunakan untuk mengotentikasi database MySQL. Saya telah membuat “WideWorldImportors ” database di server database MySQL maka saya telah menyediakan “WideWorldImportors ” di kotak tarik-turun basis data.

Demikian pula untuk menghubungkan database oracle dengan menggunakan SSDT, kita harus menginstal perangkat lunak klien Oracle. Alat data SQL Server berfungsi dalam mode 32bit sehingga driver ODBC versi 32bit untuk Oracle harus diinstal. Anda dapat mengunduh Oracle Client dari sini.

Seperti yang sudah kita ketahui cara membuat paket SSIS, saya akan langsung menjelaskan cara membuat tugas aliran data.

Membuat Tugas Aliran Data

Dalam tugas aliran data, kita akan menggunakan empat komponen:

  1. Sumber ADO.NET untuk mengisi data dari database SQL Server.
  2. Pemisahan Bersyarat untuk membagi data dalam beberapa set.
  3. Konfigurasikan tujuan MySQL dan tujuan Oracle
  4. Konfigurasikan jalur Data untuk menyimpan output dari Pemisahan bersyarat ke database yang relevan.

Konfigurasi Sumber ADO.NET

Seret dan lepas “Sumber ADO.NET ” dari Kotak Alat SSIS ke “Aliran Data ” windows dan beri nama “Data Penjualan ” seperti terlihat pada gambar berikut:

Klik dua kali pada “Data Penjualan ”. Kotak dialog “Editor Sumber ADO.NET " akan buka. Karena manajer koneksi belum dibuat, maka “Manajer koneksi ADO.NET ” kotak drop-down kosong. Untuk membuat koneksi baru pada kotak dialog itu, klik “Baru ”. Kotak dialog lain “Konfigurasikan Pengelola koneksi ” akan terbuka seperti yang ditunjukkan pada gambar di bawah ini:

Di “Konfigurasikan manajer Koneksi ADO.NET ” kotak dialog, klik “Baru ” untuk membuka “Pengelola Koneksi ” kotak dialog.

Di “Nama Server ” kotak teks, masukkan nama atau IP-Address dari server tempat SQL Server telah diinstal. SQL Server diinstal pada mesin lokal saya maka saya telah menyediakan “localhost\SQL2016 ” sebagai kotak teks nama server. Di kotak drop-down Otentikasi, pilih jenis otentikasi yang digunakan untuk menyambung ke SQL Instance. Saya mengautentikasi ke server SQL dengan menggunakan otentikasi windows maka saya telah memilih otentikasi windows di kotak drop down. Dan terakhir, di kotak drop-down database, pilih nama database tempat tabel disimpan. Saya mengekspor data dari “AdventureWorks2014 ” database, maka saya telah memilihnya di “Database Name ” kotak tarik-turun. Perhatikan gambar berikut:

Setelah konfigurasi selesai, klik “Uji Koneksi ” untuk memverifikasi konektivitas dengan database dan klik “OK”.

Kami telah mengkonfigurasi manajer koneksi ADO.NET maka manajer koneksi default akan dipilih secara otomatis di “Manajer Koneksi ADO.NET ” turun. Untuk mengambil data dari tabel, pilih “Tabel atau Tampilan ” di kotak tarik-turun mode akses data. Setelah Anda memilih opsi "Tabel atau Tampilan" di kotak tarik-turun, ini akan menampilkan daftar semua tabel yang dibuat dalam database. Dari daftar itu, pilih “Pelanggan ” tabel seperti pada gambar berikut:

Konfigurasikan Pemisahan Bersyarat

Sekarang kita akan menggunakan transformasi split bersyarat untuk mengekspor data di lembar kerja excel yang berbeda berdasarkan kondisi. Seret komponen split bersyarat dari kotak alat SSIS ke jendela Data Flow dan ganti namanya menjadi “Filter Data ” seperti terlihat pada gambar di bawah ini:

Saya sebutkan sebelumnya, output data tabel "Pelanggan" akan diekspor ke beberapa database Oracle dan MySQL berdasarkan kondisi yang ditentukan dalam "Pemisahan Bersyarat ” komponen.

Pertama, hubungkan sumber ADO.Net ke transformasi split bersyarat. Untuk melakukannya, klik panah biru pada jalur aliran data di bawah “Customers SQL DB ” dan seret ke transformasi split bersyarat seperti yang ditunjukkan pada gambar di bawah ini:

Untuk mengkonfigurasi split bersyarat, klik dua kali pada "Editor Transformasi Split Bersyarat". Kotak dialog “Editor Transformasi Split Bersyarat ” akan terbuka seperti yang ditunjukkan pada gambar berikut:

Untuk menerapkan ketentuan pada “StateProvinceName ”, pertama-tama perluas simpul kolom, seret “StateProvinceName ” (Bagian 1), dan letakkan di kisi (Bagian 3). Kondisi pemfilteran data ada di kolom “StateProvinceName”. Catatan yang memiliki nilai “California ” akan diekspor ke database Oracle dan catatan yang memiliki nilai “Washington ” akan diekspor ke database MySQL. Berdasarkan kondisinya, kita akan menggunakan sama dengan (==) operator. Persamaannya seperti di bawah ini:

[Cust_State]=="California"

[Cust_State]=="Washington"

Perhatikan gambar berikut:

Setelah kondisi ditentukan, klik “OK” untuk menyimpan dan menutup kotak dialog.

Konfigurasikan tujuan MySQL

Untuk mengekspor data dari SQL Server ke MySQL dan Oracle maka kita perlu mengkonfigurasi dua tujuan. Pertama, konfigurasikan tujuan MySQL. Untuk melakukannya, seret dan lepas tujuan ODBC dari kotak alat SSIS dan ubah namanya menjadi "Database MySQL" seperti yang ditunjukkan pada gambar di bawah ini:

Klik dua kali pada tujuan Database MySQL (Koneksi ODBC). Kotak dialog "Tujuan ODBC" akan terbuka. Di kotak dialog itu klik "Baru". Kotak dialog lain “Configure ODBC Connection Manager” akan terbuka, seperti yang ditunjukkan pada gambar berikut:

Kotak dialog lain “Pengelola koneksi " akan buka. Pada kotak dialog, daftar DSN yang dibuat pada mesin yang diisi dengan “Gunakan nama sumber data pengguna atau sistem ” kotak tarik-turun. Karena kami telah mengonfigurasi ODBC DSN, pilih "MySQL Destination ” dari daftar drop-down seperti yang ditunjukkan pada gambar di bawah ini:

Klik “Uji Koneksi ” untuk memverifikasi bahwa koneksi telah berhasil dibuat dan klik “OK”.

Sekarang di “Tujuan ODBC ” kotak dialog, pilih nama tabel dari “Nama tabel atau tampilan ” kotak drop-down seperti yang ditunjukkan pada gambar berikut:

Setelah tujuan database MySQL berhasil dikonfigurasi, konfigurasikan tujuan database Oracle.

Konfigurasi Tujuan Oracle

Untuk mengonfigurasi tujuan Oracle, seret dan lepas “ADO.NET Destination” ke jendela aliran data dan ganti namanya menjadi “Oracle Database” seperti yang ditunjukkan pada gambar berikut:

Klik dua kali pada Oracle Database (tujuan ADO.NET). Kotak dialog “Editor Tujuan ADO.NET " akan buka. Pada kotak dialog, klik “Baru ”. Kotak dialog lain “Configure ADO.NET Connection Manager” akan terbuka seperti yang ditunjukkan pada gambar berikut:

Pada “Konfigurasikan Pengelola Koneksi ADO.NET ” kotak dialog, klik “Baru ”. Kotak dialog lain "Pengelola Koneksi" akan terbuka. Untuk mengkonfigurasi konektivitas database Oracle, kita harus memilih “Net.Provider\OracleClient ” di “Penyedia " kotak dialog. Berikan nama host atau Alamat IP dari server database Oracle di kotak teks "Nama Server". Berikan nama pengguna dan kata sandi untuk menghubungkan instance database Oracle. Seperti yang saya sebutkan, saya telah menginstal instance Oracle sebagai mesin lokal saya, maka saya telah menyediakan "localhost" di kotak teks nama server. Saya telah menghubungkan database oracle menggunakan pengguna "Penjualan", maka di kotak teks "Nama Pengguna" saya telah memasukkan "Penjualan" sebagai nama pengguna dan memasukkan kata sandinya. Perhatikan gambar berikut:

Untuk memverifikasi bahwa koneksi telah dibuat, klik “Uji Koneksi ” dan setelah koneksi dibuat, klik “OK ” untuk menutup kotak dialog.

Sekarang di “Editor tujuan ADO.NET ” kotak dialog, pilih tabel atau lihat nama tempat data harus disimpan. Saya mengekspor data ke tabel pelanggan, oleh karena itu saya memilih “Sales.Customer ” tabel seperti pada gambar berikut:

Konfigurasikan jalur data

Setelah kedua tujuan dikonfigurasi, konfigurasikan jalur data untuk mentransfer data di database masing-masing. Untuk melakukannya, seret panah jalur data biru di bawah transformasi split bersyarat dan letakkan di ODBC Destination (MySQL Destination). Saat jalur data tersambung ke tujuan ODBC, kotak dialog akan muncul. Pilih tujuan dari “Keluaran ” drop-down box untuk mengarahkan data yang diambil dari SQL Query. Kotak dialog terlihat seperti gambar di bawah ini:

Daftar drop-down diisi dengan semua kondisi yang didefinisikan dalam transformasi split bersyarat. Dalam hal ini, menu tarik-turun mencakup tiga opsi.

  1. Keluaran MySQL
  2. Keluaran Oracle
  3. Keluaran Default

Seperti disebutkan di atas, catatan yang memiliki nilai “Washington ” dari kolom “StateProvinceName” akan diekspor ke database MySQL maka pilih Output MySQL.

Sekarang petakan kolom output dari transformasi kondisional dengan tabel pelanggan database MySQL. Untuk melakukannya, klik dua kali pada “Database MySQL ” (Tujuan ODBC) dan di kotak dialog “Tujuan ODBC”, pilih “Pemetaan ” yang terletak di panel kiri kotak dialog seperti yang ditunjukkan pada gambar di bawah ini:

Pada gambar di atas, "Kolom input" adalah nama kolom dari tabel SQL Server dan kolom tujuan akan menjadi nama kolom tabel "Pelanggan" dari lembar MySQL. Dalam demo ini, nama kolom dari Tabel SQL dan tabel MySQL adalah sama sehingga kolom input dan outputnya dipetakan secara otomatis.

Ulangi proses konfigurasi aliran data untuk jalur data "Output Oracle" dengan cara yang sama. Berikut adalah perubahannya.

  1. Kita perlu memilih “Oracle Output” di kotak dialog pemilihan input-output seperti yang ditunjukkan pada gambar di bawah ini:
  2. Dalam “ADO.NET Destination Editor”, verifikasi bahwa pemetaan kolom input-output sudah benar seperti yang ditunjukkan pada gambar di bawah ini:

Setelah semua konfigurasi selesai, seluruh tugas aliran data terlihat seperti gambar di bawah ini:

Menguji paket SSIS

Sekarang Jalankan paket dengan mengklik tombol "Mulai" pada bilah menu. Jika paket berhasil menyelesaikan eksekusinya maka akan terlihat seperti gambar di bawah ini:

Package telah membagi output data SQL dengan menggunakan conditional split dan mengekspor 4.445 record di database MySQL dan 2.285 record di database Oracle.

Ringkasan

Pada artikel ini, kami mengonfigurasi koneksi ODBC untuk MySQL, membuat paket SSIS dengan aliran data. Kami menggunakan Transformasi Pemisahan Bersyarat untuk membagi output, diambil dari database server SQL dan mengekspornya ke database Oracle dan MySQL.

Alat yang berguna:

Devart SSIS Data Flow Components – memungkinkan Anda mengintegrasikan database dan data cloud melalui Layanan Integrasi SQL Server.

Devart ODBC Drivers – memberikan solusi konektivitas berkinerja tinggi dan kaya fitur untuk aplikasi berbasis ODBC.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri dengan banyak nilai dalam satu kolom

  2. Jenis bidang basis data terbaik untuk URL

  3. Terhubung ke database MySQL jarak jauh melalui SSH menggunakan Java

  4. Tabel SQL dengan entri daftar vs tabel SQL dengan baris untuk setiap entri

  5. Server MySQL telah hilang - tepat dalam 60 detik