Ana içeriğe geç

SQL'de Python/R Nasıl Çalıştırılır

Bu eğitimi okuduktan sonra, T-SQL ifadelerine R ve Python betiklerini nasıl gömeceğinizi ve SQL ile Python/R arasında veri aktarırken hangi veri türlerinin kullanıldığını bileceksiniz.
· 6 dk. oku

Yapay Zeka ile Keşfedin

verinin bulunduğu yere zekâ getirme

Giriş

T-SQL ifadelerinizin içinde R ve Python kodu yazabileceğinizi biliyor muydunuz? SQL Server'daki Machine Learning Services, veri taşımaya olan ihtiyacı ortadan kaldırır. Ağ üzerinden büyük ve hassas verileri aktarmak veya örnek csv dosyalarıyla doğruluk kaybına uğramak yerine, R/Python kodunuzu doğrudan veritabanınız içinde çalıştırabilirsiniz. R/Python kodunuzu SQL saklı yordamlarıyla kolayca dağıtarak ETL süreçlerinizde veya herhangi bir uygulamada erişilebilir hale getirin. Makine öğrenimi modellerini veritabanınızda eğitip depolayın; verinizin yaşadığı yere zekâ taşıyın.

SQL Server üzerinde büyük miktarda veriyle Derin Öğrenme ve Yapay Zekâ uygulamaları geliştirmek için en güncel açık kaynak R/Python paketlerini kurup çalıştırabilirsiniz. Microsoft'un RevoScaleR ve RevoScalePy API'lerinde öncü, yüksek performanslı algoritmalar da bulunur. Bunları açık kaynak dünyasındaki en yeni yeniliklerle birlikte kullanmak, uygulamalarınıza eşsiz bir seçenek, performans ve ölçek kazandırmanızı sağlar.

sql server ile veritabanı içi analitik neden

SQL Server Machine Learning Services'ı denemek için sabırsızlanıyorsanız, aşağıdaki uygulamalı eğitimi inceleyin. SQL Server'da Machine Learning Services kurulu değilse, önce burada yayımlanan başlangıç eğitimini takip etmek isteyeceksiniz: https://blogs.msdn.microsoft.com/mlserver/2018/05/18/getting-started-with-machine-learning-services-in-sql-server/

Nasıl Yapılır Eğitimi

Neler öğreneceksiniz

Bu eğitim, T-SQL ifadelerinde R ve Python'u nasıl çalıştıracağınızın temellerini kapsar. Eğitimi tamamladıktan sonra şunları bileceksiniz:

  1. T-SQL ifadelerine R ve Python betiklerini nasıl gömeceğiniz.
  2. R/Python betiklerine giriş ve çıkış verisini belirtmek için temel parametrelerin nasıl kullanılacağı.
  3. SQL ile Python/R süreçleri arasında veri aktarırken hangi veri türlerinin kullanıldığı.

Kurulum Önkoşulları

SQL Server'da Machine Learning Services kurulu değilse, kurulumu yapmak için önce bu başlangıç eğitimini okuyun veya şu videoları izleyin: https://aka.ms/InstallMLServices https://aka.ms/EnableMLServices

Video eşlikçisi

Videolarla öğrenmeyi seviyorsanız, bu eğitim YouTube'da da mevcut: @https://aka.ms/ExecuteMLServices https://youtu.be/ACejZ9optCQ

Temeller

SQL Server Management Studio'yu açın ve sunucunuza bağlanın. Yeni bir sorgu açın ve bu temel örneği yapıştırın: (Bu örneklerde Python kullanılıyor olsa da, aynılarını R ile de yapabilirsiniz)

EXEC sp_execute_external_script @language = N'Python',
@script = N'print(3+4)'

Sp_execute_external_script, SQL Server'da R ve Python çalıştırmayı sağlayan özel bir sistem saklı yordamıdır. Python ve R arasında seçim yapmanızı sağlayan bir language parametresi vardır. R veya Python kodunu yapıştırabileceğiniz bir script parametresi bulunur. Çıktıda 7 yazdırıldığını görmüyorsanız, bu makaledeki kurulum adımlarını yeniden gözden geçirin.

Parametrelere Giriş

Temel bir örneği tartıştıktan sonra, daha fazla parça eklemeye başlayalım:

EXEC sp_execute_external_script @language =N'Python',
@script = N'
OutputDataSet = InputDataSet;
',
@input_data_1 =N'SELECT 1 AS Col1';

Machine Learning Services, herhangi bir SQL sorgusunu kabul eden bir giriş veri parametresiyle SQL ve R/Python arasında daha doğal bir iletişim sağlar. Giriş parametresinin adı input_data_1 olarak adlandırılır.

Python kodunda, Python ile SQL arasında veri aktarmak için tanımlanmış varsayılan değişkenler olduğunu görebilirsiniz. Varsayılan değişken adları OutputDataSet ve InputDataSet'tir. Bu varsayılan adları şu örnekte olduğu gibi değiştirebilirsiniz:

EXEC sp_execute_external_script @language =N'Python',
@script = N'
MyOutput = MyInput;
',
@input_data_1_name = N'MyInput',
@input_data_1 =N'SELECT 1 AS foo',
@output_data_1_name =N'MyOutput';

Bu örnekleri çalıştırırken, her birinin (No column name) ile sonuç döndürdüğünü fark etmiş olabilirsiniz? İfadeye, döndürülen sütunlar ve veri türlerinin virgülle ayrılmış bir listesini belirten WITH RESULT SETS ifadesini ekleyerek döndürülen sütunlar için bir ad belirtebilirsiniz.

EXEC sp_execute_external_script  @language =N'Python',
@script=N'
MyOutput = MyInput;
',
@input_data_1_name = N'MyInput',
@input_data_1 =N'SELECT 1 AS foo,2 AS bar',
@output_data_1_name =N'MyOutput'
WITH RESULT SETS ((MyColName int, MyColName2 int));

Giriş/Çıkış Veri Türleri

Peki, SQL ile Python arasında kullanılan giriş/çıkış veri türleri hakkında biraz daha konuşalım. Giriş SQL SELECT ifadeniz, Python Pandas paketine dayanarak Python'a bir "DataFrame" aktarır. Python'dan SQL'e dönüşte de çıktı, bir Pandas DataFrame nesnesi olmalıdır. Skaler değerleri bir DataFrame'e dönüştürmeniz gerekirse işte bir örnek:

EXEC sp_execute_external_script @language =N'Python',
@script=N'
import pandas as pd
c = 1/2
d = 1*2
s = pd.Series([c,d])
df = pd.DataFrame(s)
OutputDataSet = df
'

c ve d değişkenlerinin ikisi de skaler değerlerdir; isterseniz bunları bir pandas Series'e ekleyebilir ve ardından bir pandas DataFrame'e dönüştürebilirsiniz. Bu örnek biraz daha karmaşık bir kullanım gösterir; daha fazla ayrıntı ve örnek için Python pandas paket belgelerini okuyun:

EXEC sp_execute_external_script @language =N'Python',
@script=N'
import pandas as pd
s = {"col1": [1, 2], "col2": [3, 4]}
df = pd.DataFrame(s)
OutputDataSet = df
'

Artık T-SQL içinde R ve Python'u nasıl çalıştıracağınızın temelini biliyorsunuz! EXEC sp_execute_external_script çağrısını yapmak, R veya Python kodunuzu kopyalayıp yapıştırmak ve SQL giriş sorgunuzu kopyalayıp yapıştırmak son derece basittir. Belki R/Python ile kolay olan ancak SQL'de yazması fazla karmaşık bir veri dönüştürme veya çıkarma işlemi yapmanız gerekiyor. Belki ağ üzerinden gönderilemeyecek kadar büyük veriler üzerinde derin sinir ağları eğitiyorsunuz. Belki de OLTP sisteminize giren yeni veriler üzerinde otomatik olarak skorlamak/tahmin yapmak istiyorsunuz. Kullanım senaryoları geniştir ve artık SQL Server'daki Machine Learning Services ile güvenliği, performansı ve ölçeği artırmaya hazırsınız.

Ek Okumalar

R ve Python kodunuzu RStudio ve Jupyter Notebooks gibi favori IDE'lerinizde yazıp bu kodun yürütülmesini uzaktan SQL Server'a gönderebileceğinizi biliyor muydunuz? Daha fazlasını öğrenmek için şu dokümantasyon bağlantılarına göz atın: Dokümantasyon: https://aka.ms/R-RemoteSQLExecution Dokümantasyon: https://aka.ms/R-RemoteSQLExecution Github Jupyter Notebook örneği: https://aka.ms/RemoteExecJupyter

SQL hakkında daha fazla bilgi edinmek isterseniz, Veri Bilimi için SQL'e Giriş kursumuza ve SQL öğrenme merkezimize göz atın.

Konular

İlgili