R 101 - What is this R thing, and is it worth some effort? Meet a new companion Thomas „Tom“ Martens Principal Consultant, Alegri International Service GmbH [email protected] Personal blog: minceddata.wordpress.com Bevor wir starten! Our Sponsors My Sponsor Gründungsjahr 2001 mehr als 650 Mitarbeiter in der DACHRegion und Rumänien (Nearshore) Niederlassungen an 11 Standorten 80% der DAX 100-Unternehmen zählen zu unseren Klienten Lösungen für den Mittelstand & Großkunden Microsoft und SAP Partner Consulting Excellence in Microsoft Enterprise Solutions und SAP/ERP Solutions Hamburg Berlin Köln Frankfurt Walldorf Stuttgart Basel Zürich München Wien Cluj-Napoca Pre-cap! Was ist dieses R Ding? Everyone has heard phrases like "Data is the new oil" or "Data Analytics will shape business", and maybe you are also wondering what this R thing is about and if it's worth the effort to learn something new. This session is going to explain what R is and how it can help to refine your data and to better understand your business. Meaning, it provides ideas where R can be used in helping to answer some data related questions. An overview is given how R works with Power BI, from data cleansing to data enhancing to data visualization. An explanation is given why R will be a great addition to the SQL Server arsenal and how R can be used with Azure Machine Learning. This session is not about coding or statistics, but about introducing a great new companion. Was ist dieses R Ding? Everyone has heard phrases like "Data is the new oil" or "Data Analytics will shape business", and maybe you are also wondering what this R thing is about and if it's worth the effort to learn something new. This session is going to explain what R is and how it can help to refine your data and to better understand your business. Meaning, it provides ideas where R can be used in helping to answer some data related questions. An overview is given how R works with Power BI, from data cleansing to data enhancing to data visualization. An explanation is given why R will be a great addition to the SQL Server arsenal and how R can be used with Azure Machine Learning. This session is not about coding or statistics, but about introducing a great new companion. Was ist dieses R Ding? Everyone has heard phrases like "Data is the new oil" or "Data Analytics will shape business", and maybe you are also wondering what this R thing is about and if it's worth the effort to learn something new. This session is going to explain what R is and how it can help to refine your data and to better understand your business. Meaning, it provides ideas where R can be used in helping to answer some data related questions. An overview is given how R works with Power BI, from data cleansing to data enhancing to data visualization. An explanation is given why R will be a great addition to the SQL Server arsenal and how R can be used with Azure Machine Learning. This session is not about coding or statistics, but about introducing a great new companion. Was ist dieses R Ding? Data Analytics will shape business", and maybe you are also what R is how it can help where R can be used how R works with Power BI why R will be a great addition to the SQL Server arsenal and how R can be used with Azure Machine Learning. This session is not about coding or statistics, but about introducing a great new companion. Inhalt Was ist R! Microsoft und R Wo R helfen kann! Learning R?! Was ist dieses R Ding R – DIE statistische Programmiersprache R is a language and environment for statistical computing and graphics Wikipedia: R ist eine freie Programmiersprache für statistisches Rechnen und statistische Grafiken Microsoft: R is a language! You do data analysis by writing functions and scripts, not by pointing and clicking. That may sound daunting if you are new to programming, but R is an easy language to learn, and a very natural and expressive one for data analysis. R-project : Die R Community Groß(e)artige community auf stackoverflow.com: 167105 Fragen (39339 unbeantwortet, 109015 Fragen (22940 unbeantwortet, ) – 19.01.2017 ) – 08.10.2015 ohne Antwort Tag ohne Antwort Tag R bietet zur Zeit (19.01.2017) 9903 Windows binaries (ständig wachsend) source: cran-mirror http://cran.us.r-project.org R Pakete (packages) http://www.maths.lancs.ac.uk/~rowlings/R/TaskViews/ Bedeutung von R (nach http://spectrum.ieee.org) 2015 2014 2016 Bedeutung von R http://www.kdnuggets.com/2016/06/r-python-top-analytics-data-mining-data-science-software.html Punkte, die zu berücksichtigen sind R als Desktop Applikation läuft grundsätzlich im Arbeitsspeicher des Clients Die freie Programmiersprache (open source / community driven) R bringt es mit sich, dass es unterschiedliche Notationen in verschiedenen Paketen gibt Hier kann das R-Consortium (https://www.r-consortium.org/) Abhilfe schaffen Microsoft und R Microsoft und R (R in meinen Lieblingsprodukten) SQL Server 2016 ? R R Server Power BI Azure Machine Learning Azure Machine Learning und R Server Azure Machine Learning / R Server Azure Machine Learning Plattform zur Entwicklung und Anwendung von skalierbaren analytischen Modellen. Diese Modelle können als Webservice veröffentlicht werden und stehen hierdurch anderen Applikationen zur Beantwortung analytischer Fragestellungen zur Verfügung. R Server Eigenständige Server-Komponente (enthalten im SQL Server 2016) auf Windows und Linux, die Anwendung von analytischen Modellen auf großen Datenbeständen auch außerhalb des SQL Server ermöglicht, bspw. HD Insight, Teradata, … Power BI und R Microsoft Power BI und R Daten aus … in das Power BI Modell integrieren … … durch Algorithmen Muster erkennen / Vorhersagen treffen … … Komplexe Zusammenhänge können visualisiert werden … R data.frames können als Tabellen verwendet werden R Scripte liefern data.frames, die im Modell verwendet werden können Umfangreiche R Bibliotheken zur Datenvisualisierung Datenbanken SQL und NoSQL … Binaries Power BI: Extraktion aus rdata files Zugriff auf „proprietäre“ R Daten-Strukturen (data.frames) über Power BI Funktionalitäten = RData.FromBinary( File.Contents("C:\Program Files\Microsoft SQL Server\130\R_SERVER\library\RevoScaleR\unitTestData\bo ston.Rdata") ) Power BI: Extraktion aus sas7bdat files Zugriff auf „exotische“ Datei-Typen über „spezialisierte“ R packages = R.Execute(" #install.packages(""sas7bdat""); library(""sas7bdat""); sas7file <- ""C://Program Files//Microsoft SQL Server//130//R_SERVER//library//RevoScaleR//unitTestDat a//AirlineSampleDate.sas7bdat"" datafromsas7bdat <- read.sas7bdat(sas7file)") Power BI: Feature Engineering (bspw. Clustering) Anwendung von Funktionen und Algorithmen zur „Erweiterung“ des Power BI Datenmodells Power BI: Feature Engineering (Clustering) Integration von R in den „Data Wrangling“ (aka as ETL) Prozess Power BI: Datenvisualisierung mit R „Einfache“ Erstellung beliebig komplexer Datenvisualisierungen durch viele spezialisierte R packages Der SQL Server und R Mircosoft SQL Server – The Data Science Part Inhalt hier geliehen von Microsoft This integration of R with SQL Server means that database professionals can use T-SQL for advanced analytics on operational data and models, and they can secure and ensure their availability. With SQL Server 2016, data scientists no longer need to extract data from SQL Server via Microsoft Open Database Connectivity (ODBC) to analyze it with R. Microsoft SQL Server and R (in-database analytics) SQL Server 2016 execute sp_execute_external_script @language = N'R' , @script = N' library("data.table"); dt <- as.data.table(InputDataSet); dt$NewColName <- dt$BaseColName * 2; OutputDataSet <- dt[, list(NewColName)]; ', @input_data_1 = N' SELECT 1 as BaseColName union SELECT 2 as BaseColName ;' WITH RESULT SETS (([NewColName] int NOT NULL)); Microsoft R Server (formerly known as Revolutions Analytics server) Microsoft SQL Server und R Alle Einsatzszenarien von R im Zusammenspiel mit Power BI gelten genau so auch für den SQL Server! Also eben nicht nur für „Data Science“! Wo R helfen kann! Daten Extraktion Es stehen für nahezu jede Datenquelle spezifische Pakete zur Verfügung, die es ermöglichen die Daten aus diesen Datenquellen in das eigene Datenmodell zu integrieren: NoSQL – Datenbanken wie MongoDB, Cassandra, … Binaries – Tabellen aus SPSS, SAS, Stata Binaries – z.B. exif-Informationen aus Bilddateien Web Datenquellen Natürlich auch txt, RDBMS, … Data Transformation / Cleansing Es stehen umfangreiche Funktionen / Pakete zur Verfügung um text-Daten zu transformieren JSON-Datenquellen XML-Datenquellen Ganze Web-Seiten (dies, geht allerdings schon in Richtung text mining Fehlende Daten durch die Anwendung statistischer Methoden ergänzen Data Modeling / Application of Statistical Methods Eine große Anzahl von Paketen bieten die Möglichkeit analytische Methoden auf Daten anzuwenden (R is a statistical Programming Language) Clustering Random Forests Ensemble Modeling Graph / Netzwerk – Analyse Boosting … Data Processing / Feature Engineering Verschiedenste Pakete bieten die Möglichkeit analytische Funktionen anzuwenden um neue Spalten zu “engineeren” Vergleichbar mit den Windowing Functions des SQL Servers, also bspw. Function(…) OVER(PARTITION BY … ORDER BY …) Grenzen entstehen eigentlich nur durch einen Mangel an Phantasie Allerdings erfolgt dies heute immer in einem Batch (sp_execute_external …), vor diesem Hintergrund ist die Anwendung von R-Skripten heute nicht so dynamisch wie die WindowingFunctions Data Visualization Inspiriert durch IBCS: http://www.hichert.com/de/excel/exceltemplates/templates-2012.html Datenvisualisierung nicht nur in Power BI sondern auch in den Reporting Services Demographische Daten Just for fun Learning R Learning R Wie wir lernen und neue Kompetenzen entwickeln? Endlich Geige spielen, beim Fahrrad fahren! Es sehr einfach, das Gelernte anzuwenden Unconscious competence Ich muss mich konzentriere, das Gelernte anzuwenden Conscious competence Ich kanns auch! Ich weiß, dass ich etwas nicht weiß Conscious incompetence Ich habe jemanden gesehen, der das kann! Ich weiß nicht, dass ich etwas nicht weiß Unconscious incompetence Freihändig Fahrrad fahren geht nicht! Learning R Wie wir lernen und neue Kompetenzen entwickeln? Unconscious competence Conscious competence Bestehendes verbessern! Conscious incompetence Unconscious Incompetence Etwas neues Lernen! neu Learning R Wie wir lernen und neue Kompetenzen entwickeln? Power Query („M“) alt Verfügbarkeit DAX MDX SSRS T-SQL Time to conquer Mein Tip: Starten mit einer konkreten Fragestellung, für die ein konkreter Lösungsansatz noch nicht existiert! Ressourcen R Basics • • • • Online Kurs: https://www.datacamp.com/ Online Kurs: http://tryr.codeschool.com/levels/1/challenges/3 Buch: R in a Nutshell Buch (pdf): http://www.burns-stat.com/pages/Tutor/R_inferno.pdf (etwas schwieriger, dafür immer wieder downloadbar) Statistics Basics • https://www.openintro.org/stat/ Einführung in Statistik (kostenfrei) Machine Learning / Advanced Analytics • Buch: Machine Learning for Predictive Data Analytics Daten Visualisierung • Buch: R Graphics Cookbook: Practical Recipes for Visualizing Data Wo R helfen kann - Recap! Daten Extraktion Daten Transformation / Daten Cleansing Daten Modellierung (Advanced Analytics) Statistische Modelle für Mustererkennung (zum Beispiel ClusterBildung) und für Vorhersage-Modelle (Predictive Analytics) Machine Learning Daten Processing / Feature Engineering Daten Visualisierung 𝑓 =( + )* How did you like it? Please give us feedback! to the event: www.sqlsaturday.com/579/eventeval.aspx to me as a speaker: www.sqlsaturday.com/579/sessions/sessionevaluation.aspx Our Sponsors