Veri Transferi Yapmaq..!!

St.AnGeR

Document Visor..
Katılım
17 Haz 2005
Mesajlar
1,832
Reaction score
0
Puanları
0
Konum
ιѕт              HHuser№: 9          Remote Admi
9.1. Veri Transferine Giriş
9.2. Veri Tutarlılığı
9.3. SQl Server'da Veri Transferi Yapan Araçlar
9.4. Veri Transfer Servislerine Giriş
9.5. Dönüşüm Adımları Tanımlama
9.6. Bir DTS package Tasarlama ve Çalıştırma
9.7. Tavsiye edilen uygulamalar


Veri Transferi Yapma

Veri Transferine Giriş

Transact-SQL ifadeleri ile ve farklı araçlar ile SQL Server’dan veri import ve export edilebilir. SQL Server’a uygun olan DTS Nesne Modeli gibi API’ler ve programlama modelleri kullanılarak, veriyi import ve export eden programlar yazılabilir.

Veri Niçin Transfer Edilir?

Uygulamalar ve ortamlar arasında yapılan veri yönetimi ve veri transferinin nasıl yapıldığı, sistem yöneticisi olarak anlaşılabilir. Neredeyse, bütün ortamlar birkaç veri transferi düzeyi istiyorlar. Bunlar hareket etme (moving), kopyalama ve veriyi arşivleme.

Bir ortamdan, diğerine veriyi kopyalama işlemi aşağıdakileri içerir.

ü Veri kaynağını saptama

ü Verinin gönderileceği yeri saptama

ü Kaynak ve hedef arasında veri dönüşümü

Verinin import ve export edilmesi, veri transferinin en temel formudur.

Veri Niçin Dönüştürülür?

Farklı ortamlar arasında veri transferi yapma, veri dönüşümünü içeren ortak bir oluşumdur. Veri dönüşümü, veri tiplerinin dönüşümünü map etme kadar basit olabilir veya veri dönüşümlerini ele almak için veri lojiğini içerme kadar komplex olabilir. Veri dönüşümü sırasında, kayıp değerler eklenir ve koln değerleri, ortak bir formata dönüştürülür ve çevrilir.

Tutulan veri gidilecek yere yerleştirilmeden önce, uyumlu hale getirilir ve yeniden yapılandırılır.

Veri dönüştürüldüğü zaman, aşağıdakilerin yapılması istenebilir.

Veri Biçimini Değiştirme

Veri dönüşümü, verinin biçimini değiştirmeyi gerektirir. Örneğin; doğru veya yanlış değeri, veritabanındaki Active_Customer sütununa yerleştirilir ve veri 1 veya 0 olarak simgelenir.

Veri transaferi yapıldığı zaman, 1 ve 0 ile ifade edilen veri tipi true ve false’a dönüştürülebilir. Ayrıca tarih formatı da değiştirilebilir.

Veriyi Map Etme ve Yeniden Yapılandırma

Veri map edildiği ve yeniden yapılandırıldığı zaman, veri, çoklu veri kaynaklarından, tablolardan ve sütunlardan değiştirilebilir. Ayrıca zip code sütununun veri tipi integer’dan, karakter veri tipine dönüştürülür.

Veri Tutarlılığı

Veri başka bir kaynaktan import edildiği zaman, varolan veri ile yeni veri uyumu karşılaştırılmalı. Farklı durumlarda veri tutarsız olabilir.

v Veri tutarlıdır ama gösterim tutarsızdır. Örneğin; bir kredi oranı 1,2,3 değerleri ile gösterilir. Bu veriler karakter değerlere yani Good, Average, ve Poor olarak dönüştürülürse, hem veri tutarlılığı sağlanmış olur hem de okunabilirlik kolaylaştırılmış olur.

v Veri gösterimi doğrudur ama, gösterim tutarlılığı yoktur. Örneğin; bir şirket ismi ABC Corp., ABC veya ABC Corporation durumlarında gösterilebilir. Bu örnekte; veri tutarlılığı, gidilecek yer daima ABC Corporation’da tutularak sağlanabilir.

Veri tutarlılığı, genellikle kodları ve değerleri, okunabilir string’lere dönüştürerek veya karmaşık değerleri basit değerlere dönüştürerek sağlanabilir.

Veriyi Onaylama

Veri onaylandığı zaman, gidilecek yere import edilen verinin doğruluğundan ve tamlığından emin olmak gerekir. Örneğin; gidilecek yerdeki veriye, müşteri bilgileri transfer edilmeden önce, varolan customerID doğrulanabilir. Geçersiz veri bulunursa, hatanın nereden kaynaklandığını belirle ve hataya neden olan işlemleri doğrula. Niçin doğru olmadığını belirlemek için geçersiz veriyi bir log’a kaydet.

İşlemi Tasarlama (Schedule)

Veri transferini tasarlama ve otomatikleştirme, işlemi basitleştirir.

Belirli zaman aralıklarında oluşan veri transferi tasarlanarak ve sonra veri transferini otomatikleştirerek, elle yapılan tasarlanmış tekrarlanmış işlemler elenebilir.

Heterojen Ortamlar Arasında Veri Transferi

SQL Server yönetildiği zaman, heterojen ortamlar arasında veri transferi sık olarak meydana gelir. Örneğin; satış bilgileri, Oracle veritabanından, SQL server veritabanına veya başka bir veritabanına transfer edilebilir.

SQL Server’da Veri Transferi Yapan Araçlar

SQL Server, veri transferi yapmak için veritabanı dosyaları veya tablolar sağlar. Veri import ve export etme, aşağıdaki bilgileri içeren kullanıcı isteklerine bağlı.

q Kaynak verinin veya hedef verinin biçimini

q Kaynak verinin veya hedef verinin yerini

q İmport veya export’un bir anlık bir olay olup olmadığını

q Transact_SQL ifadesi, command prompt utility veya grafiksel arayüz’ün kullanım için kolay olup olmadığını

q İmport veya export işleminin performansını

Aşağıdaki tablo veri transferi için SQL Server’ın sağladığı araçları gösterir.
Araç
Tanım
Kullanım

DTS Import ve DTS Export Wizards
Kullanıcıların Heterojen veriyi dönüştürme, export etme ve import etme için kullanılan DTS’I yaratmalarına izin verir.
Heterojen veri kaynakları arasında veri transferi yapar.

DTS Package Designer
Deneyimli veritabanı yöneticisine, import etmeye, export etmeye, ve heterojen veri dönüşümü yapmaya izin verir.
Çoklu kaynaklardan ve complex workflow’lardan heterojen veri sağlamak için kullanılır.

DTS Transfer Manager
Şemayı, nesneleri ve veriyi bir SQL Server’dan diğerine gönderir. (Farklı platform üzerinde Intel, Dec Alpha gibi)
Kod sayfaları, sırlama kuralları ve server ayarları gibi server ortamlarını farklılaştırmak için kullanılır.

Bulk copy program (bcp utility)
Bu SQL Server’daki veriyi veya text dosyalarını import ve export eder.
SQL Server tablosu ve veri dosyası arasında veri import etme ve export etme için kullanılır.

Transact_SQL ifadesi
SELECT INTO ve INSERT SELECT







BULK INSERT

Bir tabloya eklemek için veriyi seçmek için kullanılır. SELECT INTO yeni bir tablo yaratır ve INSERT SELECT varolan bir tabloyu ifade eder.



Veritabanı tablosuna veri dosyası kopyalamak için kullanılır.

Backup ve restore
Veritabanı onarımına izin verir.
SQL Server veritabanını, (tüm veri ve nesnelerle) başka bir SQL Server’a kopyalar.

Sp_attach_db
Veritabanını server’a bağlar.
SQL Server veritabanının tamamını başka bir SQL Server’a göndermek için kullanılır.


Veri Transfer Servislerine Giriş
DTS kullanılarak, OLE DB tabanlı mimariyi kullanan çoklu heterojen kaynaklar arasında import, export ve veri transferi işlemleri yapılır. DTS, SQL Server, OLE DB, ODBC, veya text file formatı arasında veri dönüşümü, import, export yapmayı sağlar. DTS kullanılarak aşağıdakiler yapabilir:

ü Veritabanı yönetim sistemleri (DBMS) arasında tablo ve veri kopyalama.

ü Üçüncü parti üretimlerle bütünleşen dönüşüm nesnelerini yaratma.

ü Çoklu heterojen kaynaklardan veri transferi ve import’u yapılarak SQL Server’da veri deposu oluşturma.

ü Üçüncü parti OLE DB provider’lar kullanılarak uygulamalara erişme.

Note: DTS, sadece heterojen veri kaynakları arasında, veri ve şema transferi yapar. Trigger’lar, stored procedure’lar, rule’lar, default’lar, constraint’ler, ve kullanıcı tanımlı veri tipleri heterojen veri kaynakları arasında dönüştürülmez.

DTS İşlemi

Veri transferi işlemi, bütün veritabanı yönetim sistemlerinin önemli bir parçasıdır. DTS, COM tabanlı bir mimari sağlar. DTS, müşterilerin, bağımsız yazılım satıcılarının (ISV- Independent Software Vendors) ve uzmanların, yeni OLE DB veri kaynakları ve hedefler, tasklar ve dönüşümler yaratmasına izin verir. DTS ile kullanıcı, DTS package yaratabilir ve çalıştırabilir. Bu paket dönüşüm işlemlerini yapan, tüm işleri tanımlar.

DTS Package

Bir DTS package, bir yada daha fazla kontrol edilebile, koordine edilen step’leri tanımlar. DTS package ile birçok step çalıştırılabilir. Her bir step, farklı işlem tiplerini icra eder.

Örneğin; Adım 1, DTS Data Pump kullanılarak, bir OLE DB kaynağından, OLE DB destination’a veri dönüştürebilir ve kopyalayabilir. Adım 2, bir script çalıştırır. Adım 3, .exe uzantılı programı veya .cmd veya .bat uzantılı batch dosyasını yükler ve çalıştırır.

Adım 1, belirli OLE DB veri kaynağına ve destination’a bağlandıktan sonra, herbiri için bir rowset yaratılır. Veri source rowset, SQL statement’ın sonucudur.

Veri Kaynağı ve Destination

DTS kullanıldığı zaman, data source ve destination heterojen olabilir. SQL Server’ın, veri kaynağı veya destination olarak kullanılması istenmez. DTS iki veri kaynağı arasında veri transferi yapan bir mekanizmadır.

DTS, OLE DB provider’ını, sadece veriyi import, export ve transfer etmek için kullanır. OLE DB, veri kaynağına ve destination tiplere erişim sağlar. Aşağıdaki tablo, SQL Server’ın sağladığı veri kaynağını ve destination tipleri sağlar.
Data source veya data destination
Tanım

Native OLE DB
SQL Server, Microsoft Excel, ve Microsoft Access gibi uygulamalara erişebilir.

ODBC
ODBC için, OLE DB provider kullanılarak Oracle’a, Access’e ve DB2’ye erişebilir.

ASCII text files
SQL Server, OLE DB provider kullanılarak sabit alan uzunluklu text dosyalarına erişebilir.

Customized
Üçüncü parti ve ISV OLE DB provider’larını destekler.


Data Pump

DTS Data Pump, heterojen veri depoları arasında veri transferi, import’u, export’u yapmayı sağlayan bir OLE DB servis provider’ıdır. OLE DB rowset’leri transfer eden COM server process’inde, yüksek hıza sahiptir. DTS Data Pump, OLE DB’yi kullanır; çünkü OLE DB ilişkisel ve ilişkisel olmayan veri depolarına erişim sağlar.

DTS Data Pump genişleyebilen COM tabanlı mimariye sahiptir. Data Pump, scripting language’lar hazırlar. Bu script’ler, Data Pump aracılığıyla source’dan destination’a hareket ederek; scripting language aracılığıyla, kolon değerlerini dönüştürebilir veya onaylayabilir.

DTS Araçları

DTS araçları, DTS Import Wizard’ı, DTS Export Wizard’ı, DTS Package Designer, ve DTS Transfer Manager’I içerir.

DTS Import ve DTS Export Wizards

DTS Import ve DTS Export wizard’lar, source’tan destination’a kopyalanan veri ile ilgili bir metod belirlemek için bir çok yol sunar. DTS Wizard ile aşağıdakiler yapılabilir:

§ Çoklu heterojen veri kaynakları arasında veri kopyalama

§ Çoklu tablolara bağlanan sorgular gibi bir SQL sorgusunun sonucu veya tablonun tamamı kopyalanabilir. Wizard içinde uery Builder kullanımı, deneyimsiz kullanıcıları sorguların build etmelerine izin verir.

§ Veri dönüşümleri tanımlanabilir.

Note: DTS Wizard, index’leri, stored procedure’leri, veya güvenilirlik constraint’lerini kopyalamaz.

SQL Server Enterprise Manager’dan veya dtswiz70 command prompt utility kullanılarak DTS Import ve DTS Export Wizards başlatılabilir. dtswiz70 çalıştırıldığı zaman, import veya export seçenekleri belirtilebilir.

DTS Package Designer

Bir package yaratıldığı zaman, DTS Package Designer çalışma ortamı, package nesnelerini kolayca eklemek için kullanılan toolbar ve tool palet içerir. Yeni bir DTS package console tree’den yaratıldığı zaman, detay panelinde DTS Package Designer çalışma ortamı görünür. Veri kaynakları ve task’lar gibi tasarlanmış package elemanlarını içerir. Deneyimli kullanıcılar DTS Package Designer’I, çoklu kaynaklardan heterojen veriyi kaynaştırmak (bütünleştirmek) için, dönüştürmek için, sağlamlaştırmak için kullanırlar.

DTS Transfer Manager

Server’ın donanımı değiştirildiği zaman, DTS Transfer manager, veritabanını bir SQL Server’dan diğerine taşımak için kullanılan en kolay yoldur.

DTS Transfer manager, şema, veri ve nesneleri SQL Server veritabanları arasında taşır.

Note: DTS araçlarını kullanabilme hakkına sahip olmak gerekir. Mesela, kaynak veritabanındaki SELECT iznine sahip olunmalı ve destination veritabanında dbo olunmalı.

DTS ile Veri Transferi Yapma

Veriyi Yeniden Yapılandırma ve Map Etme

Veri dönüşümü, veri kaynağından alınan veriyi değiştirmeyi ve biçimlendirmeyi sağlar. Yeni değerler, bir veya daha fazla sütundan kolayca hesaplanabilir.

Veri Tiplerini Map Etme

Verinin, kaynak ve hedef arasında nasıl dönüştürüldüğünü tanımlayan dönüşüm flag’ları belirtilebilir. Ayrıca farklı veri tipi, boyut, ölçü, doğruluk, boşluk kolonları arasında verinin kopyalanmasını yöneten dönüşüm kuralları belirtilebilir.

Örneğin; 16 bit sayılar 32 bite dönüştürülerek, veri tipi desteği belirtilebilir veya int samllint’e dönüştürülerek veri tipi desteği azaltılabilir.

Her bir veritabanı, kendi veri tiplerini ve sütunlarını tanımlayabilir. DTS, source ve destination arasında mümkün olan en iyi veri tipini tanımlamaya çalışır. Bununla birlikte DTS mapping’ler önemsenmeyebilir ve farklı destination veri tipi, boyutu, doğruluk ve ölçü özellikleri belirtilebilir.

Veriyi Ayırmak ve Birleştirmek

Farklı yollarla veri ayrılabilir ve birleştirilebilir.

Dosya Seviyesi

Çoklu kaynaklardaki bilgi, birleştirilebilir ve tek bir tablo içine yerleştirilebilir veya tek kaynaktan bilgi elde edilebilir ve çoklu tablolara yerleştirilebilir.

Heterojen birleşimler, hedef kanağa kaydedilen single result set içinde çoklu kaynakların birleştirilmesine bir örnektir.

Sütun Seviyesi

Çoklu sütunlardaki bilgi, birleştirilebilir ve tek bir kolon içine yerleştirilebilir veya tek kolondan bilgi elde edilebilir ve çoklu kolonlara yerleştirilebilir. Örneğin; her bir ürün için aylık satış toplamları özetlenilebilir veya bir kolona yerleştirilen bir telefon numarası, iki kolona bölünebilir. Bu durumda birine alan kodu diğerine de telefon numarası yerleştirilir.

Dönüşüm Adımlarını Tanımlama

Bir DTS package, tanımlanan bir yada daha fazla adımın birleşimidir. Bir step, dönüşüm işlemi olarak yapılan işin bir parçasıdır. Bir step:

v SQL ifadesi çalıştırabilir.

v DTS Data Pump’I kullanarak, heterojen veriyi bir OLE DB kaynağından OLE DB hedef kaynağına dönüştürebilir ve taşıyabilir.

v Bir Jscript, PerlScript, VBScript çalıştırabilir. Bu script’ler, script dillerinin desteklediği herhangi bir işlemi yapabilirler. ActiveX, script’ler ActiveX Data Object’leri (ADO) kullanarak veriye erişebilir.

v Dış programı başlatabilir.

v Diğer DTS package’lerini çalıştırabilir ve geri elde edilebilir.

Örneğin; herbir ürünün, aylık satış bilgisini özetleyen bir DTS package yaratılabilir. Bu DTS package, bir veri kaynağı bağlantısı (OLE DB) kurar, tabloyu kaldırır ve sonra yaratır, dönüşümü yapar ve son olarak veri destination’a (OLE DB) bağlanır.

WorkFlow’ları Tanımlama

DTS ile, herbir step’in çalışma sırasını kontrol eden bir workflow tanımlanabilir. DTS, ayrıca öncelikli step’lere izin verir. Flow logic kontrolü, precedence constraint’leri set eder.

Precedence Constraints

Step, kontrol akışını ve DTS package’deki task’ların çalışmasını düzenler. Step, DTS package’e basit workflow yetenekleri sağlar. DTS package’deki herbir step’in çalışmasını kontrol etmek için precedence constraints ayarlanabilir.

· Bazı step’ler belirli bir sırada çalıştırılmalı.

Örneğin; veritabanında bir tablo yaratılmadan önce (Step B), veritabanı başarılı bir şekilde yaratılmalı (Step A). Bu örnek; Step A ve Step B arasındaki başlangıç-bitiş ilişkisidir. Step B, Step A üzerinde bir precedence constraint’e sahiptir. Precedence constraint’lerin tümü karşılandığı zaman, package’deki her bir step çalıştırılır.

· Multiple step’ler, ayrıca performansı geliştirmek için paralel olarak çalıştırılabilirler.

Örneğin, bir package, Oracle ve DB2’deki veriyi farklı tablolara yükleyebilir. Aynı precedence constraint’lere sahip step’ler, farklı thread’ler üzerinde paralel olarak çalışır.

Conditional Processing

If-Then-Else mantığını kullanan Conditional Processing, DTS package’in, değişen run-time condition’ları yanıtlamasına izin verir. Bir DTS package, bir veritabanı yaratır, bir tablo yaratır, ve sonra bunlara veri yükler, bunları build eder ve indexler. SQL Server Agent’le düzenli olarak çalışması için bu package tasarlanırsa, ikinci kerede başarısıslığa uğrayacaktır; çünkü veritabanı ve tablo zaten mevcuttur.

Step Önceliğini Belirtme

Step’lerin öncelği belirtilebilir. Örneğin; bazı işlemler, diğerlerinden daha kritiktir. Bu yüzden de her bir step’e çalışma önceliği saptanır. DTS package içinde herbir thread, aynı öncelikle çalışır. Herbir stepin Idle, Normal veya High çalışma önceliği belirtilebilir.

Bir DTS Package’I Yaratma

DTS, veri dönüşümü ve transferi için kullanıldığı zaman, DTS pacakage yaratılabilir. DTS packaeg, dönüşüm işlemi olarak yapılan tüm work’ü tanımlar.

DTS package’I Yaratma

Visual Basic gibi OLE Otomasyonunu destekleyen bir dil kullanılarak veya DTS Wizards kullanılarak DTS package yaratılabilir.

DTS package’I Kaydetme

DTS package’I kaydetme, son execution’da, tasarlamaya, yeniden kullanmaya, değiştirmeye izin verir. DTS pacakage kaydedilmezse, hemen çalışır. Son execution’da tasarlanan, DTS package kaydedilmeli. Farklı depo alanlarında yaratılan DTS package depolanabilir.

COM Yapılı Depo Dosyası

COM Yapılı Depo Dosyalarında bir DTS package depolama, execution sırasında bir package’I tasarlama veya Microsoft Repository kullanılmadan, e-mail veya network dosya server’ları kullanılarak bir DTS package’I sınıflandırma kolaylığı sağlar.

Microsoft Repository

Microsoft Repository, yazılım bileşenleri ve bunların ilişkileri hakkındaki tanımlayıcı bilgiyi depolayan bir veritabanıdır. Bu, paylaştırılmış metadata yoluyla, veri dönüşümlerini ve veritabanı şemasını tanımlayan bilgi modellerini ve COM arayüzünü içerir.

Microsoft Repository’de bir DTS package depolama, package metadata’yı yeniden kullanılabilir ve diğer uygulamalara uygun hale getirir. Ayrıca package’deki data lineage’I izler.

Msdb Veritabanı

Msdb veritabanı DTS package’lerini ve ilgili bilgiyi depolar.

Package Güvenliğini Tamamlama

Kullanıcı isimlerinin ve şifrelerinin duyarlılığını korumak için, structured storage files olarak kaydedilen DTS package’ler encrypt edilebilir. DTS package encrypt edildiği zaman, package ismi, tanımı, ID’si versiyonu ve yartılış tarihi hariç özelliklerinin tümü encrypt edilir.

DTS package’leri iki güvenlik seviyesi sağlar.

Owner Password

Bu güvenlik seviyesi, tüm özelliklere ve collection’lara erişim sağlar. Owner password olmadan, DTS package’ler encript edilemez ve başka kullanıcılar tarafından okunabilir.

Operator Password

Bu güvenlik seviyesi, package tanımına, kullanıcı isimlerine veya şifrelerine erişim sağlamadan, kullanıcılar için bir package’I kullanmaya kolaylık sağlayarak, encript edilmiş DTS package’ler yaratılabilir.

Bir DTS package Tasarlama ve Çalıştırma

Bir DTS package’I çalıştırma

Bir DTS package kaydedildikten sonra, SQL Server Enterprise Manager veya dtsrun command prompt utility kullanılarak çalıştırılabilir ve geri elde edilebilir.

Örnek; dtsrun, northwind veritabanındaki orders tablosuna veri import eden bir DTS package çalıştırılır.

Dtsrun70 /Saccounts /Ujose /NordersImport

Note: DTS Import ve DTS Export Wizards ve dtsrun varolan bir package’I çalıştırmaya izin verir.

Bir DTS Package Tasarlama

Kaydedilen bir DTS package, belirli zamanlarda çalıştırılmak üzere tasarlanabilir. Aşağıdakiler kullanılarak, bir DTS package çalıştırılmak üzere tasarlanabilir.

§ DTS package, SQL Server msdb veritabanına kaydedildiği zaman, DTS Import veya DTS Export Wizards kullanılarak

§ Dtsrun kullanılarak DTS package’I çalıştıran bir SQL Server job yaratıldığı zaman, SQL Server Enterprise Manager kullanılarak

Tavsiye Edilen Uygulamalar

Veri transferi ve veri dönüşümü yapmak için tavsiye edilen uygulamalar aşağıda sıralanmıştır.

ü Veriyi geri göndermek için Bcp utility’yi kullan.

ü Basit veri transferi için DTS Import ve DTS Export Wizards’I kullan.

ü Karmaşık veri dönüşümleri için DTS Package Designer’I kullan.

SQL Server şemasını, verisini ve nesnelerini diğer SQL Server’a transfer etmek için DTS Transfer manager’I kullan.
 
Geri
Üst