19 Ocak 2016

SQL Server Integration Services (SSIS) Nedir

Merhaba,
Bugünkü yazımda ETL süreçlerini uygulamamızı sağlayan araçlardan biri olan Microsoft SQL Server Integration Services'den bahsedeceğim.

Konuyu;
1. SQL Server Integration Services (SSIS) Nedir
2. SSIS Design Environment

başlıkları altında anlatacağım.

1. SQL Server Integration Services (SSIS) Nedir
Başarılı bir veri ambarı çözümü, değişik veri kaynaklarından çektiğimiz verilerin hedef kaynağa (destination) ulaşımında etkili ve doğru şekilde transferine bağlıdır. Her veri ambarı projesi için gerekli olan bu işlemleri Extract, Transfrom and Load (ETL) süreci olarak adlandırıyoruz. Microsoft ürün ailesinde ETL işlemlerini SQL Server Integration Services (SSIS) ile gerçekleştiriyoruz.

SQL Server Integration Services; XML veri dosyaları, flat dosyaları, ilişkisel veri tabanları gibi birçok kaynaktan veri çekmemizi, bunları uygun formata dönüştürmemizi ve bir veya daha fazla hedefe (destination) yüklememizi sağlar.

Bir SSIS çözümü bir veya daha fazla SSIS projesinden oluşur, projelerin her birinde en az bir SSIS paketi bulunur.

1.1. SSIS Paketleri
Bir proje bir veya birden fazla paketten oluşur. Her birinde çalıştırılacak olan taskların iş akışları (workflow) tanımlanır. İş akışları control flow engine tarafından yönetilir. Bir control flow bir veya daha fazla data flow'dan oluşur.

Data Flow: Çeşitli kaynaklardan veri çekilmesini, verilerin hesaplama ya da dönüştürme (transformation) işlemlerinin yapılmasını, bu verilerin bir veya daha fazla hedef kaynağına yazılmasını sağlayan ve path mantığından çalışan bir engine'dir.

Control Flow: Görevlerin iş akışlarının ve iş zekası fonksiyonlarının çeşitli scriptlerle ile de desteklenebilecek bir şekilde işlenmesini sağlayan araçlar içeren bir engine'dir.

Basit olarak control flow engine ve data flow engine mantığını aşağıdaki gibi gösterebiliriz.




1.2. SSIS Projeleri
SQL Server 2012'de bir proje SQL Server Integration çözümleri için deployment birimidir. Paketlerin yönetiminde iki farklı model kullanılır:

Project Deployment Model: Birden fazla paket tek bir projenin içinde çalıştırılır.

Projeler, Integration Services paketlerinin geliştirildiği yer olarak düşünülebilir. Bir Integration Services projesi paketlerle ilgili dosyaları gruplar ve saklar.

Integration Services içerisinde bulunan project-level parametreleri paketlerin çalışma zamanı ayarlamalarını (run-time settings) yapmamızı sağlarken, project-level connection managerlar data flow'lardaki veri kaynaklarına ve hedef kaynaklara işaret eder. Projeler bir SQL Server instance içindeki bir SSIS Catalog'a yüklenir ve proje-level parametre değerleri ile çalışma ortamındaki uygun bağlantılar yapılandırılır.

Package Deployment Model:
Paketler bağımsız olarak çalıştırılır ve yönetilir.


Basit olarak Package Deployment Model ve Project Deployment Model'inin çalışma mantığını aşağıdaki gibi gösterebiliriz:

2. SSIS Design Environment
Integration Services paketleri geliştirebilmek için Visual Studio SQL Server Data Tools (SSDT) aracını kullanıyoruz. Microsoft Visual Studio ortamında geliştirilen SQL Server Data Tools, İş Zekası çözümleri için grafiksel bir geliştirme ortamı sağlıyor. SQL Server Data Tools aracını Visual sürümümüze göre indirip kurabiliyoruz.

Şimdi bir Integration Services projesi oluştururken SSDT ortamında hangi bileşenleri kullandığımıza bakalım:



Solution Explorer

Visual Studio kullanıcı ara yüzünde açılan bu panoda projelerimizi, paketlerimizi, veri kaynaklarımızı, parametrelerimizi oluşturup görüntüleyebiliyoruz.

Properties Pane
Visual Studio kullanıcı ara yüzünde açılan bu panoda seçtiğimiz herhangi bir objenin özelliklerini görüntüleyebiliyoruz ve düzenleyebiliyoruz.

Control Flow Design Surface
SSIS Designer ortamında açılan bu panoda oluşturduğumuz pakette taskların iş akışlarını tanımlayabiliyoruz.

Data Flow Design Surface
SSIS Designer ortamında açılan bu panoda oluşturduğumuz paketteki Data Flow işlemlerini tanımlayabiliyoruz.

Event Handlers Design Surface

SSIS Designer ortamında açılan bu panoda bir paket içindeki bir event handler için iş akışı tanımlayabiliyoruz.

Package Explorer
Bu panoda oluşturduğumuz paketin içindeki bileşenleri hiyerarşik bir şekilde görüntüleyebiliyoruz.

Connection Managers Pane
Bu panoda paket içinde kullandığımız connection manager'ların listesini görebiliyoruz.

SSIS Toolbox Pane
Control flow ve data flow'daki taskların iş akışlarını buradaki bileşenlerle oluşturuyoruz.



Kaynaklar

  • 20463C Implementing a Data WareHouse with Microsoft® SQL Server®
  • https://msdn.microsoft.com/en-us/library/ms169917.aspx
  • https://msdn.microsoft.com/en-us/library/ms141134.aspx
  • https://technet.microsoft.com/en-us/library/cc966389.aspx
  • https://msdn.microsoft.com/en-us/library/ms140028.aspx
  • https://msdn.microsoft.com/en-us/library/mt204009.aspx
  • http://iszekasihakkindahersey.blogspot.com.tr/2011/07/integration-services-giris.html
  • http://www.yazilimmutfagi.com/10157/bi-ve-data-warehouse/ssis/sql-server-2008-integration-services-genel-bakis.aspx
  • https://www.youtube.com/watch?v=hxTrfyGGPMA
Share:

2 yorum:

Pages

Blog Archive