Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri
Bu, SQL Server ile
Bu eğitici rehber, veritabanı oluşturma işleminin devamıdır: tablo ekleme ve veri yükleme. DBA iki
R'den SQL Server'a bağlanın ve aşağıdaki görevleri gerçekleştirmek için RevoScaleR işlevlerini kullanın:
- Eğitim verileri ve tahminleri için tablolar oluşturma
- Yerel bir .csv dosyasından veri içeren tabloları yükleme
Örnek veriler, eğitim ve puanlama veri kümelerine ayrılmış kredi kartı sahtekarlığı verilerinin (ccFraud veri kümesi) simülasyonudur. Veri dosyası RevoScaleRiçinde bulunur.
Bu görevleri tamamlamak için R IDE veya Rgui kullanın. Bu konumda bulunan R yürütülebilir dosyalarını kullandığınızdan emin olun: Eğer bu aracı kullanıyorsanız C:\Program Files\Microsoft\R Client\R_SERVER\bin\x64 (either Rgui.exe veya C:\Program Files\Microsoft\R Client\R_SERVER yolunu işaret eden bir R IDE kullanıyorsanız. Bu yürütülebilir dosyalarla bir
Eğitim veri tablosunu oluşturma
Veritabanı bağlantı dizesini bir R değişkeninde depolayın. Aşağıda SQL Server için geçerli ODBC bağlantı dizelerine iki örnek verilmiştir: biri SQL oturum açma bilgisi, diğeri de Windows tümleşik kimlik doğrulaması için.
Sunucu adını, kullanıcı adını ve parolayı uygun şekilde değiştirdiğinizden emin olun.
SQL oturum açma
sqlConnString <- "Driver=SQL Server;Server=<server-name>; Database=RevoDeepDive;Uid=<user_name>;Pwd=<password>"Windows kimlik doğrulaması
sqlConnString <- "Driver=SQL Server;Server=<server-name>;Database=RevoDeepDive;Trusted_Connection=True"Oluşturmak istediğiniz tablonun adını belirtin ve bir R değişkenine kaydedin.
sqlFraudTable <- "ccFraudSmall"Sunucu örneği ve veritabanı adı bağlantı dizesinin bir parçası olarak zaten belirtildiğinden, iki değişkeni birleştirdiğinizde, yeni tablonun tam adı instance.database.schema.ccFraudSmallolur.
İsteğe bağlı olarak, her toplu işlemde kaç veri satırının okunacağını denetlemek için rowsPerRead tanımlayın.
sqlRowsPerRead = 5000Bu parametre isteğe bağlı olsa da, ayarlanması daha verimli hesaplamalara neden olabilir. RevoScaleR ve MicrosoftML, verileri öbekler halinde işleyen gelişmiş analiz işlevlerinin çoğuna sahiptir. rowsPerRead parametresi, her öbekteki satır sayısını belirler.
Doğru dengeyi bulmak için bu ayarı denemeniz gerekebilir. Değer çok büyükse, bu boyuttaki öbeklerdeki verileri işlemek için yeterli bellek yoksa veri erişimi yavaş olabilir. Buna karşılık, bazı sistemlerde satırlarıPerRead değeri çok küçükse performans da yavaşlayabilir.
İlk değer olarak, her öbekteki satır sayısını (5.000 satır) denetlemek için veritabanı altyapısı örneği tarafından tanımlanan varsayılan toplu işlem boyutunu kullanın. Bu değeri sqlRowsPerRead
değişkenine kaydedin. Yeni veri kaynağı nesnesi için bir değişken tanımlayın ve önceden tanımlanmış bağımsız değişkenleri RxSqlServerData oluşturucusuna iletin. Bunun yalnızca veri kaynağı nesnesini oluşturduğunu ve doldurmadığını unutmayın. Verileri yüklemek ayrı bir adımdır.
sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString, table = sqlFraudTable, rowsPerRead = sqlRowsPerRead)
Puanlama veri tablosunu oluşturma
Aynı adımları kullanarak, aynı işlemi kullanarak puanlama verilerini tutan tabloyu oluşturun.
Puanlama için kullanılan tablonun adını depolamak için sqlScoreTable
yeni bir R değişkeni oluşturun. sqlScoreTable <- "ccFraudScoreSmall"sqlScoreDS
ikinci bir veri kaynağı nesnesi tanımlamak için bu değişkeni RxSqlServerData işlevine bağımsız değişken olarak sağlayın.sqlScoreDS <- RxSqlServerData(connectionString = sqlConnString, table = sqlScoreTable, rowsPerRead = sqlRowsPerRead)
Bağlantı dizesini ve diğer parametreleri R çalışma alanında değişkenler olarak tanımladığınız için, farklı tabloları, görünümleri veya sorguları temsil eden yeni veri kaynakları için bu dizeyi yeniden kullanabilirsiniz.
Not
İşlev, bir tablonun tamamını temel alan bir veri kaynağı tanımlamak için sorguyu temel alan veri kaynağından farklı bağımsız değişkenler kullanır. Bunun nedeni SQL Server veritabanı altyapısının sorguları farklı şekilde hazırlaması gerekir. Bu öğreticinin ilerleyen bölümlerinde SQL sorgusunu temel alan bir veri kaynağı nesnesi oluşturmayı öğreneceksiniz.
R kullanarak SQL tablolarına veri yükleme
ARTıK SQL Server tablolarını oluşturduğunuza göre, uygun Rx işlevini kullanarak bunlara veri yükleyebilirsiniz.
RevoScaleR paketi, veri kaynağı türlerine özgü işlevler içerir. Metin verileri için RxTextData kullanarak veri kaynağı nesnesini oluşturun. Hadoop verilerinden, ODBC verilerinden vb. veri kaynağı nesneleri oluşturmaya yönelik ek işlevler vardır.
Not
Bu bölüm için veritabanında DDL Yürütme izinlerine sahip olmanız gerekir.
Eğitim tablosuna veri yükleme
ccFraudCsv
bir R değişkeni oluşturun ve değişkenine örnek verileri içeren CSV dosyasının dosya yolunu atayın. Bu veri kümesi RevoScaleRiçinde sağlanır. "sampleDataDir" rxGetOption işlevindeki bir anahtar sözcüktür. ccFraudCsv <- file.path(rxGetOption("sampleDataDir"), "ccFraudSmall.csv")RevoScaleRiçindeki rxOptions ile ilişkili GET yöntemi olan rxGetOptionçağrısına dikkat edin. Varsayılan paylaşılan dizin veya hesaplamalarda kullanılacak işlemci sayısı (çekirdekler) gibi yerel ve uzak işlem bağlamlarıyla ilgili seçenekleri ayarlamak ve listelemek için bu yardımcı programı kullanın.
Bu özel çağrı, kodunuzu nerede çalıştırdığınızdan bağımsız olarak doğru kitaplıktan örnekleri alır. Örneğin, işlevi SQL Server'da ve geliştirme bilgisayarınızda çalıştırmayı deneyin ve yolların nasıl farklılık gösterdiğine bakın.
Yeni verileri depolamak için bir değişken tanımlayın ve metin veri kaynağını belirtmek için RxTextData işlevini kullanın.
inTextData <- RxTextData(file = ccFraudCsv, colClasses = c( "custID" = "integer", "gender" = "integer", "state" = "integer", "cardholder" = "integer", "balance" = "integer", "numTrans" = "integer", "numIntlTrans" = "integer", "creditLine" = "integer", "fraudRisk" = "integer"))colClasses bağımsız değişkeni önemlidir. Bunu, metin dosyasından yüklenen her veri sütununa atanacak veri türünü belirtmek için kullanırsınız. Bu örnekte, tamsayı olarak işlenen adlandırılmış sütunlar dışında tüm sütunlar metin olarak işlenir.
Bu noktada, biraz duraklatmak ve veritabanınızı SQL Server Management Studio'da görüntülemek isteyebilirsiniz. Veritabanındaki tablo listesini yenileyin.
R veri nesneleri yerel çalışma alanınızda oluşturulmuş olsa da tabloların SQL Server veritabanında oluşturulmadığını görebilirsiniz. Ayrıca, metin dosyasından R değişkenine veri yüklenmedi.
işlevini çağırarak verileri rxDataStep işlevine ekleyin.
rxDataStep(inData = inTextData, outFile = sqlFraudDS, overwrite = TRUE)Bağlantı dizenizle ilgili bir sorun olmadığını varsayarsak, kısa bir duraklamadan sonra aşağıdaki gibi sonuçlar görmeniz gerekir:
Yazılan Toplam Satır Sayısı: 10000, Toplam süre: 0,466Satır Okuma: 10000, İşlenen Toplam Satır: 10000, Toplam Öbek Süresi: 0,577 saniye
Tablo listesini yenileyin. Her değişkenin doğru veri türlerine sahip olduğunu ve başarıyla içeri aktarıldığını doğrulamak için SQL Server Management Studio'da tabloya sağ tıklayıp İlk 1000 Satırı seçseçeneğini belirleyebilirsiniz.
Puanlama tablosuna veri yükleme
Puanlama için kullanılan veri kümesini veritabanına yüklemek için adımları yineleyin.
Kaynak dosyanın yolunu sağlayarak başlayın.
ccScoreCsv <- file.path(rxGetOption("sampleDataDir"), "ccFraudScoreSmall.csv")Verileri almak ve inTextDatadeğişkenine kaydetmek için RxTextData işlevini kullanın.
inTextData <- RxTextData(file = ccScoreCsv, colClasses = c( "custID" = "integer", "gender" = "integer", "state" = "integer", "cardholder" = "integer", "balance" = "integer", "numTrans" = "integer", "numIntlTrans" = "integer", "creditLine" = "integer"))Geçerli tablonun üzerine yeni şema ve veri yazmak için rxDataStep işlevini çağırın.
rxDataStep(inData = inTextData, sqlScoreDS, overwrite = TRUE)inData bağımsız değişkeni, kullanılacak veri kaynağını tanımlar.
outFile bağımsız değişkeni, SQL Server'da verileri kaydetmek istediğiniz tabloyu belirtir.
Tablo zaten varsa ve üzerine yazma seçeneğini kullanmıyorsanız, sonuçlar kesilmeden eklenir.
Bağlantı başarılı olursa, tamamlanmayı ve verileri tabloya yazmak için gereken süreyi belirten bir ileti görmeniz gerekir:
Yazılan Toplam Satır sayısı: 10000, Toplam süre: 0,384Satır Okuma: 10000, İşlenen Toplam Satır sayısı: 10000, Toplam Öbek Süresi: 0,456 saniye
rxDataStep hakkında daha fazla bilgi
rxDataStep, R veri çerçevesinde birden çok dönüştürme gerçekleştirebilen güçlü bir işlevdir. Ayrıca rxDataStep kullanarak verileri hedefin gerektirdiği gösterime dönüştürebilirsiniz: bu örnekte SQL Server.
R işlevlerini kullanarak, rxDataStep