9 Kas by NURULLAH ÇAKIR

PolyBase Nedir

PolyBase ile SQL Server ve  Hadoop, PDW, Azure Blob Storage, veya Azure Data Lake Store arasında köprü oluşturabiliyoruz.

 

PolyBase ile SQL Server’a SQL Server’ın dışındaki yukarda bahsettiğimiz ortamlardan TSQL kullanarak erişebiliyoruz.

 

Büyüyen veri ile beraber ilişkisel olan ve ilişkisel olmayan veriyi aynı anda sorgulama ihtiyacı ortaya çıktı. Polybase bu iki tip sistem arasında bir köprü kuruyor diyebiliriz.

 

PolyBase ile neler yapabiliriz?

 

  • SQL Server yada PDW üzerinden TSQL kullanarak Hadoop üzerindeki veriyi sorgulayabiliriz.
  • SQL Server üzerinden TSQL kullanarak Azure Blob Storage üzerindeki veriyi sorgulayabiliriz.
  • Hadoop, Azure Blob Storage, veya Azure Data Lake Store üzerinden verileri SQL Server’a import edebiliriz.
  • Verileri SQL Server üzerinden Hadoop, Azure Blob Storage, veya Azure Data Lake Store üzerine export edebiliriz.
  • PolyBase’i Microsft BI veya SQL Server’ın desteklediği third party tool’larla birlikte kullanabiliriz.

 

 

PolyBase’i kurabilmek için sunucunuzda aşağıdaki bileşenlerin olması gerekir:

 

  • 64 bit SQL Server Instance
  • Microsoft .NET Framework 4.5.
  • Oracle Java SE RunTime Environment (JRE) (en az versiton 7.51 )
  • Minimum 4 GB memory
  • Minimum 2 GB harddisk
  • TCP/IP protokolünün aktif olması gerekir. “SQL Server Configuration Manager Ayarları” isimli makalede gerekli bilgiyi bulabilirsiniz.
  • PolyBase’i SQL Server ve diğer harici sistemlerle kullanacağımızı için Azure, HADOOP gibi sistemler.

 

PolyBase Kurulumu:

 

SQL Server Kurulumu esnasında Feature Selection ekranında aşağıdaki gibi PolyBase Query Service for External Data’yı seçmemiz gerekiyor. Kurumla ilgili detaylı bilgi için “SQL Server Kurulumu” isimli makaleyi okuyabilirsiniz.

 

Yukardaki ekrandan sonra karşımıza aşağıdaki gibi bir ekran ve iki seçenek çıkıyor.

 

Use this SQL Server as standalone PolyBase-enabled instance:

 

 SQL Server Intance’ı Standalone head node olarak seçtiğimiz anlamına gelir. Yani Hadoop’tan gelen verileri tek instance üzerinde işleyeceğiz demektir.

 

Use this SQL Server as a part of PolyBase scale-out group:

 

Büyük verileri tek instance üzerinde işlerken performans problemi yaşayabiliriz. Bu seçeneği seçerek kurulum yaptığımız instance’ı, PolyBase Group özelliği ile büyük verileri işlememiz için SQL Server Instance’lardan oluşmuş bir cluster’daki Compute node olarak seçmiş oluyoruz.

 

Kurumunuzda firewall varsa aşağıdaki resimde belirtilen portları PolyBase scale-out group’da ki tüm node’lar arasında açtırmanız gerekecektir. Burada port aralığını kendiniz de belirtebilirsiniz. Belirteceğiniz port aralığı minimum 6 olmalıdır. 6 dan fazla olsa bile SQL Server kurulum aşamasında ilk 6 portu kullanacaktır.

 

Microsoft’un sitesinden almış olduğum aşağıdaki ekran görüntüsü durumu çok iyi özetliyor.

 

Aşağıdaki ekran görüntüsünde yukarda bahsedilen seçenekleri görebilirsiniz.

 

 

Bir sonraki ekran olan Server Configuration ekranında SQL Server PolyBase Engine ve SQL Server PolyBase Data Movement servisleri için hesaplar belirlememiz gerekiyor.

 

Eğer yukardaki ikinci seçenekteki PolyBase scale-out group’u kullanıyorsak, bütün node’lardaki PolyBase engine ve PolyBase data movement servisleri aynı domain hesabı ile çalışmalıdır.

 

 

Next, Next Finish diyerek kurulumu tamamlıyoruz.

 

Eğer Instance üzerinde PolyBase kurulu değilse SSMS üzerinden PolyBase’in üzerindeki + işaretine tıkladığınızda aşağıdaki gibi hata alırsınız.

 

Kurulum tamamlandıktan sonra SQL Server’ı Azure, HADOOP gibi harici kaynaklarla bağlantı sağlaması için konfigüre etmeniz gerekir.

 

Aşağıdaki komutla Azure Blob Storage ile bağlantı sağlama için gerekli konfigürasyonu yapabilirsiniz. Default olarak bu ayar kurulum sonrası 7 olarak gelir. Başka bir bağlantı şekli için aşağıdaki seçeneklerden birini set edebilirsiniz

 

sp_configure 'hadoop connectivity',7
GO 
RECONFIGURE 
GO 

 

0: Bağlantıyı Pasif hale getirir.

1: Hortonworks HDP 1.3(Windows Server)

1: Azure blob storage (WASB[S])

2: Hortonworks HDP 1.3(Linux)

3: Cloudera CDH 4.3(Linux)

4: Hortonworks HDP 2.0(Windows Server)

4: Azure blob storage (WASB[S])

5: Hortonworks HDP 2.0(Linux)

6: Cloudera 5.1, 5.2, 5.3, 5.4, 5.5, 5.9, 5.10, 5.11, ve 5.12(Linux)

7: Hortonworks 2.1, 2.2, 2.3, 2.4, 2.5, ve 2.6(Linux)

7: Hortonworks 2.1, 2.2, and 2.3(Windows Server)

7: Azure blob storage (WASB[S])

 

Performansı arttırmak için HADOOP konfigürasyon directory’sinde yarn-site.xml dosyasının içinde yarn.application.classpath configuration key’inin değerini kopyalayıp SQL Server’da aşağıdaki path’e benzer bir path’deki yarn-site.xml dosyasının içindeki yarn.application.classpath property’sine yapıştırmalısınız.

 

 

Aşağıdaki şekilde kurulum sonrasında polybase cluster yapılandırmasını yapabilirsiniz.

 

 

Karşınıza aşağıdaki gibi bir ekran çıkacaktır. + işaretine tıklayarak istediğiniz instance’ları bu gruba ekleyebilirsiniz.

 

 

Aşağıdaki gibi kurulum sonrasında head node’u belirledikten sonra diğer node’ları compute node olarak belirleyebiliyoruz.

 

— head node sunucu ismi, head node dms control channel portu, head node sql server instance ismi

 

EXEC sp_polybase_join_group 'Sunucum', 16450, 'MSSQLSERVER';

 

Bu işlemleri yaptıktan sonra Compute Node’larda PolyBase Engine Servis’in disable edilmesi ve

Data Movement Service’in restart edilmesi gerekmektedir.

 

Not: Head Node’da kurulu olan SQL Server’ın Enterprise Edition olması gerekmektedir.

 

Bir compute node’u aşağıdaki script yardımıyla cluster’dan çıkarabilirsiniz.

 

EXEC sp_polybase_leave_group;

 

 

 

Not: Head Node’da kurulu olan SQL Server’ın Enterprise Edition olması gerekmektedir.

 

Aşağıdaki linklerden faydalanarak da Azure ya da Hadoop ile SQL Server arasında veri alışverişi yapabilirsiniz.

 

https://docs.microsoft.com/en-us/sql/relational-databases/polybase/polybase-t-sql-objects

 

https://docs.microsoft.com/en-us/sql/relational-databases/polybase/polybase-queries

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir