Kursus

Pengantar
Tahukah Anda bahwa Anda dapat menulis kode R dan Python di dalam pernyataan T-SQL? Machine Learning Services di SQL Server menghilangkan kebutuhan pemindahan data. Alih-alih mentransfer data yang besar dan sensitif melalui jaringan atau kehilangan akurasi dengan file csv sampel, Anda dapat menjalankan kode R/Python langsung di dalam basis data Anda. Terapkan kode R/Python dengan mudah menggunakan prosedur tersimpan SQL sehingga dapat diakses dalam proses ETL Anda atau oleh aplikasi apa pun. Latih dan simpan model machine learning di basis data Anda untuk menghadirkan kecerdasan di tempat data Anda berada.
Anda dapat memasang dan menjalankan paket R/Python open source terbaru untuk membangun aplikasi Deep Learning dan AI pada sejumlah besar data di SQL Server. Ada juga algoritma terdepan berkinerja tinggi dalam API RevoScaleR dan RevoScalePy milik Microsoft. Menggunakan ini bersama inovasi terbaru di dunia open source memungkinkan Anda menghadirkan pilihan, kinerja, dan skala yang tak tertandingi ke aplikasi Anda.

Jika Anda antusias mencoba SQL Server Machine Learning Services, simak tutorial praktis di bawah ini. Jika Anda belum memasang Machine Learning Services di SQL Server, pertama-tama ikuti tutorial memulai yang dipublikasikan di sini: https://blogs.msdn.microsoft.com/mlserver/2018/05/18/getting-started-with-machine-learning-services-in-sql-server/
Tutorial Cara
Apa yang akan Anda pelajari
Tutorial ini akan membahas dasar-dasar cara Menjalankan R dan Python dalam pernyataan T-SQL. Setelah menyelesaikan tutorial, Anda akan mengetahui:
- Cara menyematkan skrip R dan Python dalam pernyataan T-SQL.
- Cara menggunakan parameter dasar untuk menentukan data masuk dan keluar ke skrip R/Python.
- Jenis data apa yang digunakan untuk meneruskan data antara proses SQL dan Python/R.
Prasyarat Penyiapan
Jika Anda belum memasang Machine Learning Services di SQL Server, pertama-tama bacalah tutorial memulai ini atau tonton video berikut untuk melakukan penyiapan: https://aka.ms/InstallMLServices https://aka.ms/EnableMLServices
Pendamping video
Jika Anda suka belajar melalui video, tutorial ini juga tersedia di YouTube: @https://aka.ms/ExecuteMLServices 
Dasar-dasar
Buka SQL Server Management Studio dan sambungkan ke server Anda. Buka kueri baru dan tempel contoh dasar ini: (Walau Python digunakan dalam contoh ini, Anda juga bisa melakukan semuanya dengan R)
EXEC sp_execute_external_script @language = N'Python',
@script = N'print(3+4)'
Sp_execute_external_script adalah prosedur tersimpan sistem khusus yang memungkinkan eksekusi R dan Python di SQL Server. Ada parameter language yang memungkinkan Anda memilih antara Python dan R. Ada parameter script tempat Anda dapat menempelkan kode R atau Python. Jika Anda tidak melihat keluaran print 7, kembali dan tinjau langkah penyiapan dalam artikel ini.
Pengenalan Parameter
Setelah membahas contoh dasar, mari mulai menambahkan lebih banyak bagian:
EXEC sp_execute_external_script @language =N'Python',
@script = N'
OutputDataSet = InputDataSet;
',
@input_data_1 =N'SELECT 1 AS Col1';
Machine Learning Services menyediakan komunikasi yang lebih alami antara SQL dan R/Python dengan parameter data masukan yang menerima kueri SQL apa pun. Nama parameter masukan adalah input_data_1.
Anda dapat melihat dalam kode python bahwa ada variabel bawaan yang ditetapkan untuk meneruskan data antara Python dan SQL. Nama variabel default adalah OutputDataSet dan InputDataSet. Anda dapat mengubah nama default ini seperti pada contoh berikut:
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';
Saat Anda menjalankan contoh-contoh ini, Anda mungkin memperhatikan bahwa masing-masing mengembalikan hasil dengan (No column name)? Anda dapat menentukan nama untuk kolom yang dikembalikan dengan menambahkan klausa WITH RESULT SETS di akhir pernyataan, yaitu daftar kolom dan tipe datanya yang dipisahkan koma.
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));
Jenis Data Input/Output
Baik, mari bahas sedikit lebih jauh tentang jenis data input/output yang digunakan antara SQL dan Python. Pernyataan SQL SELECT masukan Anda meneruskan sebuah "DataFrame" ke python dengan mengandalkan paket Python Pandas. Keluaran Anda dari Python kembali ke SQL juga perlu berupa objek Pandas DataFrame. Jika Anda perlu mengonversi nilai skalar menjadi DataFrame, berikut contohnya:
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
'
Variabel c dan d keduanya adalah nilai skalar, yang dapat Anda tambahkan ke Series pandas jika diinginkan, lalu mengonversinya menjadi Pandas DataFrame. Berikut contoh yang sedikit lebih rumit, bacalah dokumentasi paket pandas di python untuk detail dan contoh lainnya:
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
'
Sekarang Anda mengetahui dasar-dasar cara menjalankan R dan Python di T-SQL! Sangat mudah memanggil EXEC sp_execute_external_script, salin/tempel kode R atau Python Anda, dan salin/tempel select input SQL Anda. Mungkin Anda perlu melakukan transformasi atau ekstraksi data yang sederhana di R/Python tetapi terlalu rumit untuk ditulis di SQL. Mungkin Anda sedang melatih jaringan saraf dalam pada sejumlah besar data yang terlalu besar untuk dikirim melalui jaringan. Mungkin Anda ingin secara otomatis melakukan penilaian/prediksi pada data baru yang masuk ke sistem OLTP Anda. Kasus penggunaannya luas, dan kini Anda siap meningkatkan keamanan, kinerja, dan skala dengan Machine Learning Services di SQL Server.
Bacaan Lanjutan
Tahukah Anda bahwa Anda juga dapat menulis kode R dan Python di IDE favorit Anda seperti RStudio dan Jupyter Notebooks lalu mengirimkan eksekusi kode tersebut ke SQL Server dari jarak jauh? Lihat tautan dokumentasi berikut untuk mempelajari lebih lanjut: Dokumentasi: https://aka.ms/R-RemoteSQLExecution Dokumentasi: https://aka.ms/R-RemoteSQLExecution Contoh Github Jupyter Notebook: https://aka.ms/RemoteExecJupyter
Jika Anda ingin mempelajari lebih lanjut tentang SQL, lihat kursus Intro to SQL for Data Science kami dan pusat cara belajar SQL kami..
