Kurs

Giriş
R ve Python kodunu Jupyter Notebooks veya herhangi bir IDE'den SQL Server içinde uzaktan çalıştırabileceğinizi biliyor muydunuz? SQL Server'daki Machine Learning Services, verileri taşımaya gerek bırakmaz. Büyük ve hassas verileri ağ üzerinden aktarmak veya örnek csv dosyalarıyla ML eğitiminde doğruluk kaybetmek yerine, R/Python kodunuzu veritabanınız içinde çalıştırabilirsiniz. Jupyter Notebooks, RStudio, PyCharm, VSCode, Visual Studio gibi istediğiniz yerde çalışıp ardından işlev yürütmesini SQL Server'a gönderebilir, böylece zekayı verinizin bulunduğu yere taşıyabilirsiniz.
Bu öğreticide, python kodunuzu Juptyter not defterlerinden SQL Server içinde çalıştırmaya nasıl gönderebileceğinize dair bir örnek göreceksiniz. Aynı ilkeler R ve diğer tüm IDE'ler için de geçerlidir. Video ile öğrenmeyi tercih ediyorsanız, bu öğretici YouTube'da da burada yayımlandı:

Ortam Kurulumu Önkoşulları
1. SQL Server'a ML Services'ı yükleyin
R veya Python'un SQL içinde çalışması için önce Machine Learning Services özelliğinin yüklenip yapılandırılması gerekir. Şu nasıl yapılır kılavuzuna bakın.
2. Microsoft'un Python İstemcisi aracılığıyla RevoscalePy'yi yükleyin
Python yürütmesini Jupyter Notebooks'tan SQL'e göndermek için Microsoft'un RevoscalePy paketini kullanmanız gerekir. RevoscalePy'yi edinmek için Microsoft'un ML Services Python Client'ını indirin ve yükleyin. Belgelendirme Sayfası veya (Windows için) Doğrudan İndirme Bağlantısı.
İndirdikten sonra, powershell'i yönetici olarak açın ve indirme klasörüne gidin. Kurulumu şu komutla başlatın (kurulum klasörünü dilediğiniz gibi özelleştirebilirsiniz): .\Install-PyForMLS.ps1 -InstallFolder "C:\Program Files\MicrosoftPythonClient"
Kurulum biraz sürebileceğinden sabırlı olun. Kurulduktan sonra yüklediğiniz yeni yola gidin. Boş bir klasör oluşturalım ve Jupyter Notebooks'u açalım: mkdir JupyterNotebooks; cd JupyterNotebooks; ..\Scripts\jupyter-notebook
Python 3 yorumlayıcısıyla yeni bir not defteri oluşturun:

Her şeyin kurulu olup olmadığını test etmek için ilk hücrede revoscalepy'yi içe aktarın ve çalıştırın. Hata mesajı yoksa, devam etmeye hazırsınız.

Veritabanı Kurulumu (Yalnızca bu öğretici için gereklidir)
Öğreticinin geri kalanında, tüm kodu kopyalayıp yapıştırmak istemezseniz bu Jupyter Notebook'u Github'dan klonlayabilirsiniz. Bu veritabanı kurulumu, bu öğreticidekiyle aynı verilere sahip olmanızı sağlamak için bir kerelik bir adımdır. Kendi verinizi kullanmak için bu kurulum adımlarının hiçbirini gerçekleştirmeniz gerekmez.
1. Bir veritabanı oluşturun
Sunucunuza uygun bağlantı dizesini değiştirin ve pyodbc kullanarak yeni bir veritabanı oluşturun.
import pyodbc
# creating a new db to load Iris sample in
new_db_name = "MLRemoteExec"
connection_string = "Driver=SQL Server;Server=localhost\MSSQLSERVER2017;Database={0};Trusted_Connection=Yes;"
cnxn = pyodbc.connect(connection_string.format("master"), autocommit=True)
cnxn.cursor().execute("IF EXISTS(SELECT * FROM sys.databases WHERE [name] = '{0}') DROP DATABASE {0}".format(new_db_name))
cnxn.cursor().execute("CREATE DATABASE " + new_db_name)
cnxn.close()
print("Database created")
2. SkLearn'den Iris örneğini içe aktarın
Iris, başlangıç seviyesindeki veri bilimi öğreticileri için popüler bir veri kümesidir. sklearn paketinde varsayılan olarak bulunur.
from sklearn import datasets
import pandas as pd
# SkLearn has the Iris sample dataset built into the package
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
3. Iris verisini yüklemek ve tablo oluşturmak için RecoscalePy API'lerini kullanın
(Bunu pyodbc, sqlalchemy veya diğer paketlerle de yapabilirsiniz)
from revoscalepy import RxSqlServerData, rx_data_step
# Example of using RX APIs to load data into SQL table. You can also do this with pyodbc
table_ref = RxSqlServerData(connection_string=connection_string.format(new_db_name), table="Iris")
rx_data_step(input_data = df, output_file = table_ref, overwrite = True)
print("New Table Created: Iris")
print("Sklearn Iris sample loaded into Iris table")
SQL Server'a Gönderilecek Bir İşlev Tanımlayın
SQL içinde çalıştırmak istediğiniz herhangi bir python kodunu yazın. Bu örnekte, iris veri kümesi üzerinde bir saçılma matrisi oluşturuyoruz ve yalnızca .png'nin bayt akışını istemcimizde görüntülemek üzere Jupyter Notebooks'a geri döndürüyoruz.
def send_this_func_to_sql():from revoscalepy import RxSqlServerData, rx_import
from pandas.tools.plotting import scatter_matrix
import matplotlib.pyplot as plt
import io
# remember the scope of the variables in this func are within our SQL Server Python Runtime
connection_string = "Driver=SQL Server;Server=localhost\MSSQLSERVER2017;Database=MLRemoteExec;Trusted_Connection=Yes;"# specify a query and load into pandas dataframe df
sql_query = RxSqlServerData(connection_string=connection_string, sql_query = "select * from Iris")
df = rx_import(sql_query)
scatter_matrix(df)
# return bytestream of image created by scatter_matrix
buf = io.BytesIO()
plt.savefig(buf, format="png")
buf.seek(0)
return buf.getvalue()
Yürütmeyi SQL'e Gönderin
Artık sonunda kurulumu tamamladığımıza göre, uzaktan yürütmenin gerçekte ne kadar kolay olduğuna bakın! Önce import revoscalepy. Bir sql_compute_context oluşturun ve ardından herhangi bir işlevin yürütmesini RxExec ile kesintisiz biçimde SQL Server'a gönderin. SQL'den Jupyter Notebook'a hiçbir ham veri aktarılmadı. Tüm hesaplama veritabanı içinde gerçekleşti ve yalnızca görüntü dosyası görüntülenmek üzere geri döndürüldü.
from IPython import display
import matplotlib.pyplot as plt
from revoscalepy import RxInSqlServer, rx_exec
# create a remote compute context with connection to SQL Server
sql_compute_context = RxInSqlServer(connection_string=connection_string.format(new_db_name))
# use rx_exec to send the function execution to SQL Server
image = rx_exec(send_this_func_to_sql, compute_context=sql_compute_context)[0]
# only an image was returned to my jupyter client. All data remained secure and was manipulated in my db.
display.Image(data=image)
Bu örnek Iris veri kümesiyle basit olsa da, artık açığa çıkan ek ölçek, performans ve güvenlik yeteneklerini hayal edin. SQL Server'da büyük miktarda veri üzerinde Derin Öğrenme ve Yapay Zeka uygulamaları geliştirmek için en yeni açık kaynaklı R/Python paketlerinin herhangi birini kullanabilirsiniz. Ayrıca Microsoft'un öncü, yüksek performanslı algoritmalarını RevoScaleR ve RevoScalePy API'lerinde sunuyoruz. Bunları açık kaynak dünyasındaki en yeni yeniliklerle birlikte kullanmak, uygulamalarınıza benzersiz bir seçenek yelpazesi, performans ve ölçek kazandırır.
Daha Fazla Bilgi Edinin
DataCamp'in SQL'de Python/R Nasıl Çalıştırılır öğreticisine göz atın.
R/Python kodunuzu SQL saklı yordamlarıyla kolayca dağıtarak ETL süreçlerinizde veya herhangi bir uygulamada erişilebilir hale getirmeyi öğrenmek için SQL Machine Learning Services Belgeleri'ne göz atın. Makine öğrenmesi modellerini veritabanınızda eğitip depolayarak zekayı verinizin bulunduğu yere taşıyın.
SQL Server'da Temel R ve Python Yürütme: https://aka.ms/BasicMLServicesExecution
SQL Server'da Machine Learning Services'ı kurun: https://aka.ms/SetupMLServices
Github'da uçtan uca öğretici çözümler: https://microsoft.github.io/sql-ml-tutorials/
Diğer YouTube Öğreticileri:
- SQL Server Machine Learning Services Nasıl Yüklenir: https://aka.ms/InstallMLServices
- SQL Server Machine Learning Services Nasıl Etkinleştirilir: https://aka.ms/EnableMLServices
- SQL'de R ve Python Yürütmenin Temelleri: https://aka.ms/ExecuteMLServices
Daha fazla öğrenmekle ilgileniyorsanız, DataCamp'in giriş kurslarına göz atın.
