Aracılığıyla paylaş


SQL Server Machine Learning Services'da R dili uzantısı

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri

Bu makalede , SQL Server Machine Learning Services ve SQL Server2016 R Services ile dış Python betiklerini çalıştırmaya yönelik R uzantısı açıklanmaktadır. Uzantı aşağıdakileri ekler:

  • R yürütme ortamı
  • Standart kitaplıklar ve araçlarla temel R dağıtımı
  • Microsoft R kitaplıkları:
    • Büyük ölçekte analiz için RevoScaleR
    • Makine öğrenmesi algoritmaları için MicrosoftML. Yalnızca SQL Server 2016, SQL Server 2017 ve SQL Server 2019 için geçerlidir.
    • SQL Server'da verilere veya R koduna erişmek için diğer kitaplıklar

R bileşenleri

SQL Server hem açık kaynak hem de özel paketler içerir. Temel R kitaplıkları, Microsoft'un açık kaynak R: Microsoft R Open (MRO) dağıtımı aracılığıyla yüklenir. Mevcut R kullanıcıları, R kodlarını taşımalı ve SQL Server üzerinde birkaç değişiklikle veya hiç değişiklik yapmadan bir dış işlem olarak çalıştırabilmelidir. MRO, SQL araçlarından bağımsız olarak yüklenir ve genişletilebilirlik çerçevesinde çekirdek altyapı işlemlerinin dışında yürütülür. Yükleme sırasında açık kaynak lisansının koşullarını onaylamanız gerekir. Bundan sonra standart R paketlerini, R'nin diğer açık kaynak dağıtımlarında yaptığınız gibi daha fazla değişiklik yapmadan çalıştırabilirsiniz.

SQL Server 2016 (13.x), SQL Server 2017 (14.x) ve SQL Server 2019 (15.x) için, SQL Server temel R yürütülebilir dosyaları değiştirmez, ancak özel paketlerin derlendiği ve test ettiği sürüm olduğundan Kurulum tarafından yüklenen R sürümünü kullanmanız gerekir. MRO'nun CRAN'dan alabileceğiniz temel R dağıtımından farkı hakkında daha fazla bilgi için bkz. R diliyle birlikte çalışabilirlik ve Microsoft R ürünleri ve özellikleri.

Kurulum tarafından yüklenen R temel paket dağıtımı, örnekle ilişkilendirilmiş klasörde bulunabilir. Örneğin, R Services'i bir SQL Server varsayılan örneğine yüklediyseniz, R kitaplıkları varsayılan olarak şu klasörde bulunur: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library. Benzer şekilde, varsayılan örnekle ilişkili R araçları varsayılan olarak şu klasörde bulunur: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin.

Paralel ve dağıtılmış iş yükleri için Microsoft tarafından eklenen R paketleri aşağıdaki kitaplıkları içerir.

Kütüphane Description
RevoScaleR Veri kaynağı nesnelerini ve veri araştırma, işleme, dönüştürme ve görselleştirmeyi destekler. Uzaktan işlem bağlamlarının yanı sıra rxLinMod gibi çeşitli ölçeklenebilir makine öğrenmesi modellerinin oluşturulmasını destekler. API'ler, belleğe sığamayacak kadar büyük olan veri kümelerini analiz etmek ve birkaç çekirdek veya işlemciye dağıtılmış hesaplamalar gerçekleştirmek için iyileştirilmiştir. RevoScaleR paketi, analiz için kullanılan verilerin daha hızlı taşınması ve depolanması için XDF dosya biçimini de destekler. XDF biçimi sütunlu depolama kullanır, taşınabilirdir ve metin, SPSS veya ODBC bağlantısı gibi çeşitli kaynaklardan verileri yüklemek ve işlemek için kullanılabilir.
MicrosoftML Hız ve doğruluk için iyileştirilmiş makine öğrenmesi algoritmalarının yanı sıra metin ve görüntülerle çalışmaya yönelik satır içi dönüşümleri içerir. Daha fazla bilgi için bkz. SQL Server'da MicrosoftML. Yalnızca SQL Server 2016, SQL Server 2017 ve SQL Server 2019 için geçerlidir.

SQL Server 2022 'den (16.x) başlayarak, R, Python ve Java çalışma zamanları artık SQL Kurulumu ile yüklenmez. Bunun yerine, istediğiniz R ve/veya Python özel çalışma zamanlarını ve paketlerini yükleyin. Daha fazla bilgi için bkz. Windows'a SQL Server 2022 Machine Learning Servicesyükleme veya Linux'a SQL Server Machine Learning Services (Python ve R) yükleme.

SQL Server'da R kullanma

Temel işlevleri kullanarak R betiği oluşturabilirsiniz, ancak çoklu işlemeden yararlanmak için RevoScaleR ve MicrosoftML modüllerini R kodunuz içine içeri aktarmanız ve ardından paralel olarak yürütülen modeller oluşturmak için işlevlerini çağırmanız gerekir.

Desteklenen veri kaynakları, diğer kaynaklarla veya R çözümleriyle veri alışverişi yapmak için ODBC veritabanları, SQL Server ve XDF dosya biçimini içerir. Giriş verileri tablosal olmalıdır. Tüm R sonuçları bir veri çerçevesi biçiminde döndürülmelidir.

Desteklenen işlem bağlamları yerel veya uzak SQL Server işlem bağlamıdır. Uzak işlem bağlamı, iş istasyonu gibi bir bilgisayarda başlayan ancak ardından betik yürütmeyi uzak bilgisayara getiren kod yürütmeyi ifade eder. İşlem bağlamını değiştirmek için her iki sistem de aynı RevoScaleR kitaplığına sahip olmasını gerektirir.

Yerel işlem bağlamı, bekleyebileceğiniz gibi, T-SQL içinde veya bir saklı yordamda gömülü olan kod ile veritabanı motoru örneğiyle aynı sunucuda R kodunun yürütülmesini içerir. Ayrıca kodu yerel bir R IDE'den çalıştırabilir ve uzak işlem bağlamı tanımlayarak betiğin SQL Server bilgisayarında yürütülmesini sağlayabilirsiniz.

Yürütme mimarisi

Aşağıdaki diyagramlarda desteklenen senaryoların her birinde SQL Server bileşenlerinin R çalışma zamanıyla etkileşimi gösterilmiştir: veritabanında betik çalıştırma ve SQL Server işlem bağlamı kullanarak R komut satırından uzaktan yürütme.

Veritabanında SQL Server içinde çalıştırılan R betikleri

SQL Server "içinden" çalıştırılan R kodu, bir saklı yordam çağrılarak yürütülür. Bu nedenle, saklı yordam çağrısı yapabilen tüm uygulamalar R kodunun yürütülmesini başlatabilir. Bundan sonra SQL Server, aşağıdaki diyagramda özetlenen R kodunun yürütülmesini yönetir.

rsql_indb780-01

  1. R çalışma zamanı isteği, saklı yordama @language='R' parametresiyle geçirilen sp_execute_external_script ile gösterilir. SQL Server bu isteği başlatma çubuğu hizmetine gönderir. Linux'ta SQL, her kullanıcı için ayrı bir başlatma çubuğu işlemiyle iletişim kurmak için bir başlatma çubuğu hizmeti kullanır. Ayrıntılar için Genişletilebilirlik mimarisi diyagramına bakın.
  2. Fırlatma rampası hizmeti uygun başlatıcıyı başlatır; bu durumda, RLauncher.
  3. RLauncher dış R işlemini başlatır.
  4. BxlServer, SQL Server ile veri alışverişini ve çalışma sonuçlarının depolanmasını yönetmek için R çalışma zamanı ile eşgüdümlü çalışır.
  5. SQL Uydu, SQL Server ile ilgili görevler ve işlemler hakkındaki iletişimleri yönetir.
  6. BxlServer, SQL Server'a durum ve sonuçları iletmek için SQL Uydusu'nu kullanır.
  7. SQL Server sonuçları alır ve ilgili görevleri ve işlemleri kapatır.

Uzak istemciden yürütülen R betikleri

Microsoft R'yi destekleyen bir uzak veri bilimi istemcisinden bağlanırken, RevoScaleR işlevlerini kullanarak SQL Server bağlamında R işlevlerini çalıştırabilirsiniz. Bu, öncekinden farklı bir iş akışıdır ve aşağıdaki diyagramda özetlenmiştir.

rsql_fromR2db-01

  1. RevoScaleR işlevleri için R çalışma zamanı, BxlServer'ı çağıran bir bağlantı işlevi çağırır.
  2. BxlServer, Microsoft R ile sağlanır ve R çalışma zamanından ayrı bir işlemde çalışır.
  3. BxlServer bağlantı hedefini belirler ve ODBC kullanarak bir bağlantı başlatır ve R veri kaynağı nesnesindeki bağlantı dizesinin bir parçası olarak sağlanan kimlik bilgilerini geçirir.
  4. BxlServer, SQL Server örneğine bir bağlantı açar.
  5. R çağrısı için başlatma çubuğu hizmeti çağrılır ve bu da uygun başlatıcı olan RLauncher'ı başlatır. Bundan sonra R kodunun işlenmesi, R kodunu T-SQL'den çalıştırma işlemine benzer.
  6. RLauncher, SQL Server bilgisayarında yüklü olan R çalışma zamanı örneğine bir çağrı yapar.
  7. Sonuçlar BxlServer'a döndürülür.
  8. SQL Uydu, SQL Server ile iletişimi yönetir ve ilgili iş nesnelerini temizler.
  9. SQL Server sonuçları istemciye geri geçirir.

Ayrıca bakınız