Aracılığıyla paylaş


SQL Server'da R geliştirmesi için veri bilimi istemcisi ayarlama

Şunlar için geçerlidir: Linux üzerinde SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

R tümleştirmesi, SQL Server 2016 R Services veya SQL Server Machine Learning Services (In-Database) yüklemesine R dili seçeneğini eklediğinizde SQL Server 2016 veya sonraki sürümlerinde kullanılabilir.

Uyarı

Şu anda bu makale yalnızca Linux için SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x) ve SQL Server 2019 (15.x) için geçerlidir.

SQL Server için R çözümleri geliştirmek ve dağıtmak için, RevoScaleR ve diğer R kitaplıklarını almak üzere geliştirme iş istasyonunuza Microsoft R İstemcisi'ni yükleyin. Uzak SQL Server örneğinde de gerekli olan RevoScaleR kitaplığı, her iki sistem arasında bilgi işlem isteklerini koordine eder.

Bu makalede, makine öğrenmesi ve R tümleştirmesi için etkinleştirilmiş bir uzak SQL Server ile etkileşim kurabilmeniz için R istemcisi geliştirme iş istasyonu yapılandırmayı öğrenin. Bu makaledeki adımları tamamladıktan sonra, SQL Server'dakilerle aynı R kitaplıklarına sahip olacaksınız. Ayrıca, yerel R oturumundan SQL Server'da uzak R oturumuna hesaplama göndermeyi de öğreneceksiniz.

İstemci-sunucu bileşenleri

Yüklemeyi doğrulamak için, bu makalede açıklandığı gibi yerleşik RGUI aracını kullanabilir veya kitaplıkları RStudio'ya veya normalde kullandığınız başka bir IDE'ye bağlayabilirsiniz .

Yaygın kullanılan araçlar

SQL'de yeni olan bir R geliştiricisi veya R ve veritabanı içi analiz konusunda yeni olan bir SQL geliştiricisi olun, veritabanı içi analizin tüm özelliklerini kullanmak için hem R geliştirme aracına hem de SQL Server Management Studio (SSMS) gibi bir T-SQL sorgu düzenleyicisine ihtiyacınız olacaktır.

Basit R geliştirme senaryoları için, MRO ve SQL Server'da temel R dağıtımında paketlenmiş RGUI yürütülebilir dosyasını kullanabilirsiniz. Bu makalede hem yerel hem de uzak R oturumları için RGUI'nin nasıl kullanılacağı açıklanmaktadır. Üretkenliği artırmak için RStudio veya Visual Studio gibi tam özellikli bir IDE kullanmanız gerekir.

SSMS, R kodu içerenler de dahil olmak üzere SQL Server'da saklı yordamlar oluşturmak ve çalıştırmak için yararlı olan ayrı bir indirmedir. Geliştirme ortamında yazdığınız hemen hemen tüm R kodları bir saklı işleme eklenebilir. SSMS ve ekli R hakkında bilgi edinmek için diğer öğreticilerde adım adım ilerleyebilirsiniz.

1 - R paketlerini yükleme

Microsoft'un R paketleri birden çok ürün ve hizmette kullanılabilir. Yerel bir iş istasyonunda Microsoft R İstemcisi'nin yüklenmesini öneririz. R İstemcisi RevoScaleR, MicrosoftML, SQLRUtils ve diğer R paketlerini sağlar.

  1. Microsoft R İstemcisi'ni indirin.

  2. Yükleme sihirbazında varsayılan yükleme yolunu kabul edin veya değiştirin, bileşenler listesini kabul edin veya değiştirin ve Microsoft R İstemcisi lisans koşullarını kabul edin.

    Yükleme tamamlandığında, bir karşılama ekranı size ürün ve belgeleri tanıtır.

  3. Intel Matematik Çekirdek Kitaplığı (MKL) hesaplamalarında tutarlı çıktı sağlamak için bir MKL_CBWR sistem ortamı değişkeni oluşturun.

    • Denetim Masası'nda Sistem ve Güvenlik>Sistemi>Gelişmiş Sistem Ayarları>Ortam Değişkenleri'ni seçin.
    • değeri AUTO olarak ayarlanmış MKL_CBWR adlı yeni bir Sistem değişkeni oluşturun.

2 - Yürütülebilir dosyaları bulma

R.exe, RGUI ve diğer paketlerin yüklendiğini onaylamak için yükleme klasörünün içeriğini bulun ve listeleyin.

  1. Dosya Gezgini'nde, %ProgramFiles%\Microsoft\R Client\R_SERVER\bin konumunu onaylamak için R.exe klasörünü açın.

  2. RGUI'yi onaylamak için x64 alt klasörünü açın. Sonraki adımda bu aracı kullanacaksınız.

  3. RevoScaleR, MicrosoftML ve diğerleri dahil olmak üzere R İstemcisi ile yüklenen paketlerin listesini gözden geçirmek için açın %ProgramFiles%\Microsoft\R Client\R_SERVER\library .

3 - RGUI'i başlatma

R'yi SQL Server ile yüklediğinizde, RGui, Rterm vb. herhangi bir temel R yüklemesi için standart olan R araçlarını elde edersiniz. Bu araçlar hafiftir, paket ve kitaplık bilgilerini denetlemek, anlık veya özel komutlar ya da betik çalıştırmak veya öğretici rehberleri adım adım geçmek için kullanışlıdır. R sürüm bilgilerini almak ve bağlantıyı onaylamak için bu araçları kullanabilirsiniz.

  1. %ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64 açın ve R komut istemiyle bir R oturumu başlatmak için RGui üzerine çift tıklayın.

    Bir Microsoft program klasöründen R oturumu başlattığınızda, RevoScaleR dahil olmak üzere çeşitli paketler otomatik olarak yüklenir.

  2. RevoScaleR paket sürümü bilgilerini döndürmek için komut istemine girin print(Revo.version) . RevoScaleR için 9.2.1 veya 9.3.0 sürümünüz olmalıdır.

  3. Yüklü paketlerin listesi için R istemine search() yazın.

    R yüklenirken sürüm bilgileri

4 - SQL izinlerini alma

R İstemcisi'nde, R işleme iki iş parçacığı ve bellek içi veri işlemesi ile sınırlandırılır. Birden çok çekirdek ve büyük veri kümesi kullanarak ölçeklenebilir işleme için, yürütmeyi ( işlem bağlamı olarak adlandırılır) uzak SQL Server örneğinin veri kümelerine ve işlem gücüne kaydırabilirsiniz. Bu, üretim SQL Server örneğiyle istemci tümleştirmesi için önerilen yaklaşımdır ve çalışmasını sağlamak için izinlere ve bağlantı bilgilerine ihtiyacınız olacaktır.

Betikleri çalıştırmak ve verileri karşıya yüklemek için SQL Server örneğine bağlanmak için veritabanı sunucusunda geçerli bir oturum açma izniniz olmalıdır. SQL oturum açma veya tümleşik Windows kimlik doğrulaması kullanabilirsiniz. Genellikle Windows tümleşik kimlik doğrulamasını kullanmanızı öneririz, ancak sql oturum açma bilgilerini kullanmak, özellikle betiğinizde dış verilere bağlantı dizeleri bulunduğunda bazı senaryolar için daha basittir.

En azından, kodu çalıştırmak için kullanılan hesabın çalıştığınız veritabanlarından okuma iznine ve ayrıca HERHANGI BIR HARİÇ BETIĞI YÜRÜT özel iznine sahip olması gerekir. Geliştiricilerin çoğu ayrıca saklı yordamlar oluşturmak ve eğitim verileri veya puanlanmış veriler içeren tablolara veri yazmak için izinlere ihtiyaç duyar.

Veritabanı yöneticisinden R kullandığınız veritabanında hesabınız için aşağıdaki izinleri yapılandırmasını isteyin:

  • Sunucuda R betiğini çalıştırmak için HERHANGİ BİR HARİCİ BETİĞİ YÜRÜT.
  • db_datareader ayrıcalıkları, modeli eğitmek için kullanılan sorguları çalıştırmak için gereklidir.
  • db_datawriter eğitim verilerini veya puanlanmış verileri yazmak için kullanılır.
  • Saklı yordamlar, tablolar, işlevler gibi nesneler oluşturmak için db_owner. Ayrıca örnek ve test veritabanları oluşturmak için db_owner gerekir.

Kodunuz varsayılan olarak SQL Server ile yüklü olmayan paketler gerektiriyorsa, paketlerin örnekle birlikte yüklenmesi için veritabanı yöneticisiyle birlikte düzenleyin. SQL Server güvenli bir ortamdır ve paketlerin nereye yüklenebileceğine ilişkin kısıtlamalar vardır. Daha fazla bilgi için bkz. SQL Server'a yeni R paketleri yükleme.

5 - Bağlantıları test edin

Doğrulama adımı olarak, uzak sunucuya bağlantıyı onaylamak için RGUI ve RevoScaleR kullanın. Uzak bağlantılar için SQL Server'ın etkinleştirilmesi ve kullanıcı oturum açma bilgileri ve bağlanılacak veritabanı gibi izinlere sahip olmanız gerekir.

Aşağıdaki adımlarda demo veritabanı, NYCTaxi_Sample ve Windows kimlik doğrulaması varsayılır.

  1. İstemci iş istasyonunda RGUI'yi açın. Örneğin, ~\Program Files\Microsoft SQL Server\140\R_SERVER\bin\x64'ye gidin ve RGui.exe'ye çift tıklayarak onu başlatın.

  2. RevoScaleR otomatik olarak yüklenir. Şu komutu çalıştırarak RevoScaleR'ın çalıştığını onaylayın: print(Revo.version)

  3. Uzak sunucuda çalıştırılacak örnek betiği girin. Aşağıdaki örnek betiği, uzak SQL Server örneği için geçerli bir ad içerecek şekilde değiştirmeniz gerekir. Bu oturum yerel oturum olarak başlar, ancak rxSummary işlevi uzak SQL Server örneğinde yürütülür.

    # Define a connection. Replace server with a valid server name.
    connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true"
    
    # Specify the input data in a SQL query.
    sampleQuery <-"SELECT DISTINCT TOP(100) tip_amount FROM [dbo].nyctaxi_sample ORDER BY tip_amount DESC;"
    
    # Define a remote compute context based on the remote server.
    cc <-RxInSqlServer(connectionString=connStr)
    
    # Execute the function using the remote compute context.
    rxSummary(formula = ~ ., data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr), computeContext=cc)
    

    Results:

    Bu betik uzak sunucudaki bir veritabanına bağlanır, bir sorgu sağlar, uzaktan kod yürütme için bir işlem bağlamı cc yönergesi oluşturur ve ardından sorgu sonuçlarının istatistiksel bir özetini döndürmek için rxSummary RevoScaleR işlevini sağlar.

      Call:
    rxSummary(formula = ~., data = RxSqlServerData(sqlQuery = sampleQuery, 
        connectionString = connStr), computeContext = cc)
    
    Summary Statistics Results for: ~.
    Data: RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr) (RxSqlServerData Data Source)
    Number of valid observations: 100 
    
    Name       Mean   StdDev   Min Max ValidObs MissingObs
    tip_amount 63.245 31.61087 36  180 100      0     
    
  4. İşlem bağlamını alın ve ayarlayın. İşlem bağlamını ayarladıktan sonra, oturum sırasında etkin kalır. Hesaplamanın yerel mi yoksa uzak mı olduğundan emin değilseniz, öğrenmek için aşağıdaki komutu çalıştırın. Bağlantı dizesi belirten sonuçlar, uzak işlem bağlamı gösterir.

    # Return the current compute context.
    rxGetComputeContext()
    
    # Revert to a local compute context.
    rxSetComputeContext("local")
    rxGetComputeContext()
    
    # Switch back to remote.
    connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true"
    cc <-RxInSqlServer(connectionString=connStr)
    rxSetComputeContext(cc)
    rxGetComputeContext()
    
  5. Ad ve tür de dahil olmak üzere veri kaynağındaki değişkenler hakkında bilgi döndürür.

    rxGetVarInfo(data = inDataSource)
    

    Sonuçlar 23 değişken içerir.

  6. İki değişken arasında bağımlılık olup olmadığını keşfetmek için bir dağılım çizimi oluşturun.

    # Set the connection string. Substitute a valid server name for the placeholder.
    connStr <- "Driver=SQL Server;Server=<your database name>;Database=NYCTaxi_Sample;Trusted_Connection=true"
    
    # Specify a query on the nyctaxi_sample table.
    # For variables on each axis, remove nulls. Use a WHERE clause and <> to do this.
    sampleQuery <-"SELECT DISTINCT TOP 100 * from [dbo].[nyctaxi_sample] WHERE fare_amount <> '' AND  tip_amount <> ''"
    cc <-RxInSqlServer(connectionString=connStr)
    
    # Generate a scatter plot.
    rxLinePlot(fare_amount ~ tip_amount, data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr, computeContext=cc), type="p")
    

    Aşağıdaki ekran görüntüsünde giriş ve dağılım grafiği çıktısı gösterilmektedir.

    RGUI'de Dağılım Çizimi

Sürekli ve ciddi geliştirme projeleri için tümleşik bir geliştirme ortamı (IDE) yüklemeniz gerekir. SQL Server araçları ve yerleşik R araçları ağır R geliştirme için donatılmaz. Çalışma kodunuz olduktan sonra, bunu SQL Server'da yürütülmeye yönelik bir saklı yordam olarak dağıtabilirsiniz.

IDE'nizi yerel R kitaplıklarına işaret edin: temel R, RevoScaleR vb. İş yüklerinin uzak SQL Server'da çalıştırılması, betiğinizin SQL Server'da bir uzak işlem bağlamı çağırması ve bu sunucudaki verilere ve işlemlere erişmesi durumunda betik yürütme sırasında gerçekleşir.

RStudio

RStudio kullanırken, ortamı uzak SQL Server'da bulunanlara karşılık gelen R kitaplıklarını ve yürütülebilir dosyaları kullanacak şekilde yapılandırabilirsiniz.

  1. SQL Server'da yüklü R paketi sürümlerini denetleyin. Daha fazla bilgi için bkz. R paketi bilgilerini alma.

  2. Sql Server örneğiniz tarafından kullanılan temel R dağıtımı da dahil olmak üzere RevoScaleR ve diğer R paketlerini eklemek için Microsoft R İstemcisi'ni yükleyin. Sunucuyla aynı paket sürümlerini sağlayan aynı düzeyde veya daha düşük (paketler geriye dönük uyumlu) bir sürüm seçin. Sunucuda yüklü olan paket sürümlerini görüntülemek için bkz. Yüklü tüm R paketlerini listeleme.

  3. RStudio'da R yolunuzu , RevoScaleR, Microsoft R Open ve diğer Microsoft paketlerini sağlayan R ortamına işaret eden şekilde güncelleştirin. öğesini arayın %ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64.

  4. RStudio'yu kapatın ve açın.

RStudio'yu yeniden açtığınızda, R İstemcisi'nden gelen R çalıştırılabilir dosyası varsayılan R motorudur.

Visual Studio için R Araçları (RTVS)

R için tercih edilen bir IDE'niz yoksa Visual Studio için R Araçları'nı öneririz.

RTVS'den SQL Server'a bağlanma

Bu örnek, veri bilimi iş yükünün yüklü olduğu Visual Studio 2017 Community Edition'ı kullanır.

  1. Dosyamenüsünden Yeni'yi ve ardından Proje'yi seçin.

  2. Sol bölmede önceden yüklenmiş şablonların listesi bulunur. R'yi seçin ve R Projesi'ne tıklayın. Ad kutusuna yazın dbtest ve Tamam'ı seçin.

    Visual Studio yeni bir proje klasörü ve varsayılan betik dosyası Script.Roluşturur.

  3. Betik dosyasının ilk satırına .libPaths() yazın ve ardından CTRL + ENTER tuşuna basın.

    Geçerli R kitaplığı yolu R Etkileşimli penceresinde görüntülenmelidir.

  4. Çalışma alanınızda görüntüleyebileceğiniz R'ye özgü diğer pencerelerin listesini görmek için R Araçları menüsünü ve Windows'ı seçin.

    • CTRL + 3 tuşlarına basarak geçerli kitaplıktaki paketlerde yardım görüntüleyin.
    • CTRL + 8 tuşlarına basarak Değişken Gezgini'nde R değişkenlerine bakın.

Sonraki Adımlar

İki farklı öğretici, hesaplama bağlamını yerelden uzak bir SQL Server örneğine geçirme alıştırmalarını içerir.