R ile Veri Tabanına Bağlanmak: SQL Server ve ODBC Örneği

R dili istatistiksel hesaplamalar ve veri görselleştirmesine imkan veren açık kaynaklı ücretsiz bir dildir. R dilinin arkasında güçlü bir topluluk (community) bulunmaktadır. Son yıllarda sadece istatistikçiler ve akademisyenler değil veri bilimcileri arasında da oldukça popülerlik kazanmış bir dildir. Bir veri bilimi ekibinin üzerinde çalışmak istediği veri seti genellikle ilişkisel veri tabanlarında saklanmaktadır. Eğer bu veriler ETL (Extract-transform-load) sürecinden geçirilerek analize hazır bir şekilde veri ambarına (data warehouse) aktarılmamışsa bu işlemleri yaparak R ile analize öyle başlamak gerekir. İlişkisel veri tabanından dosyaya veri çıkardıktan sonra onun R ile okunmasını hiç tavsiye etmem zira bu işlemler esnasında ayraç, satır sonu, tırnaklar, encoding vb. sıkıntılar çıkabilir. Bunun yerine R ile veri tabanlarına doğrudan bağlanmak daha sağlıklı bir yöntem olacaktır.

Bu yazımızda en yaygın ilişkisel veri tabanı yönetim sistemlerinden birisi olan MS SQL Server veri tabanına bağlanarak bir tablonun R ile görüntülenmesini anlatacağım. Veri ambarı olarak Windows 2012R2, SQL Server olarak SQL Server 2012, veri bilimci bilgisayarı olarak Windows7 kullandım.  Öncelikle veri bilimci bilgisayarı veri ambarı sunucusuna erişilebilir durumda olması gerekir.

 

Veri bilimci bilgisayarında başlata tıklayıp “yönetimsel araçlar”ı arıyoruz. (Şekil-1).

yonetimsel_araclar Şekil-1 Yönetimsel Araçları aramak

Yönetimsel araçlar içinde ODBC (Open Database Connectivity) Veri Kaynaklarını tıklıyoruz. (Şekil-2)

yonetimsel_araclar_odbc Şekil-2 Yönetimsel Araçlarda ODBC’yi Bulmak

ODBC Veri kaynağı Yöneticisi açılınca “EKLE” butonuna tıklıyoruz (Şekil-3).

odbc_opened Şekil-3 ODBC Veri kaynağı Yöneticisi

“EKLE” ye tıklanınca karşımıza Şekil-4’te olduğu gibi “Yeni Veri kaynağı Oluştur” penceresi çıkıyor. Bu pencerede “SQl Server Native Client 11” i seçiyor ve “Son” a tıklıyoruz.

Şekil-4 Yeni Veri Kaynağı Eklemek Şekil-4 Yeni Veri Kaynağı Eklemek

 “Son” a tıklayınca karşımıza Şekil-5Teki “Create a New Data Source to SQL Server” penceresi çıkıyor. Bu pencerede bağlantı adı ve açıklamasıyla birlikte veri ambarı sunucusunun (Server) adını giriyoruz. Benim sistemimde bu sunucunun adı “DW” yani isim çözümlemesi bu. Buraya yazdığınız isme komut satırında ping gönderdiğinizde erişmelisiniz. Siz eğer bilgisayarınızı aynı zamanda veri tabanı olarak kullanıyorsanız “localhost” yazmanız gerekecektir.

Şekil-5 Veri Kaynağı Parametreleri Giriş Şekil-5 Veri Kaynağı Parametreleri Giriş

Şekil-6’da hedef sunucuda oturum açma modunu seçiyoruz. Ben “With integrated Windows authentication” seçtim. Çünkü DWAdmin isminde bir kullanıcım var ve veri ambarını bu kullanıcı ile yönetiyorum. Siz dilerseniz benzer bir mantık kullanın dilerseniz “With SQL Server integration …” seçeneğini kullanın. Bu seçenekte SQL Server Login içinde hedef veri tabanında yetkili bir kullanıcı tanımlanmış olması gerekecektir. Windows modda ise login bilgilerini R ile bağlantı oluştururken giriyoruz.

Şekil-6 SQL Server Login Mod Şekil-6 SQL Server Login Mod

“Change the default database to” seçeneğini tıklayarak varsayılan veritabanımızı seçiyoruz. (Şekil-7)

Şekil-7 Varsayılan Veri Tabanının Seçilmesi Şekil-7 Varsayılan Veri Tabanının Seçilmesi


Şekil-8 Diğer Ayarlar Şekil-8 Diğer Ayarlar

“Son”a tıkladığımızda karşımıza Şekil-9’daki pencere çıkıyor. Dilersek Bağlantıyı test edebiliriz. Böylelikle ODBC Yöneticisi ile işimiz bitiyor.

Şekil-9 ODBC SQL Server Setup Şekil-9 ODBC SQL Server Setup

Şimdi RStudio’yu açıyorum ve az önce oluşturduğum ODBC bağlantısını kullanarak veri ambarıma bağlanıyorum.

Şekil-10 R Studio Komutlar Şekil-10 R Studio Komutlar

Şekil-10’daki numaralandırmaları takip ederek R ile veri tabanı bağlantımı sağlıyorum. Yalnız ben yukarıda ODBC bağlantı adımı “HedefVeriKaynagim” olarak oluşturmuştum. R’da ise AdventureWorks2012 bağlantısını kullandım, karışıklık olmaz umarım. Şekil-10 resmi browserdan iyi görünmüyor. Farklı kaydedip dosyadan açarsanız sanırım sorun çözülecektir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir