SAS Viya Technical Foundation & SAS Visual Data Mining and Machine Learning demo 21.11.2016 Jarno Lindqvist Lindy Mayfield SAS Institute Oy
A JOURNEY INTO THE RANDOM FOREST Jarno Lindqvist: SAS Viya Technical Foundation Miksi SAS Viya Mitä ovat CAS ja Microservicet Lindy Mayfield: SAS Viya Demo Using SAS Viya Visual Data Mining and Machine Learning to analyze which Mushrooms you can safely eat
SUUNTAVIIVOJA Muistinvaraiset teknologiat Rinnakkaisprosessointi Korkeampi käytettävyys Avoimet rajapinnat Muut ohjelmointikielet Pilvi deployment ja datalähteet Hadoop-tuki kaikkialla DS2 In-Database & Embedded Processing
MIKSI SAS VIYA? SAS will manage data of any size from any source (public, private, partner) in any form (table, stream, web service) in any location (cloud, on-premises, hosted, hybrid) executable anywhere data is (in-stream, in-database, inmemory, in-disk, in-device).
FAKTOJA SAS Viya on SASin uusi analytiikka-alusta Se ei ole SAS 9.5 tai SAS 10, se on uusi alusta SAS 9.4:n rinnalle SAS 9.4:ää kehitetään edelleen (M4, M5, M6 ) CAS (Cloud Analytic Services) on SAS Viya-alustan uusi In-Memory analytiikkamoottori prosessointi tapahtuu oletuksena muistissa SAS Viya-alusta pohjautuu skaalautuvaan microservices arkkitehtuuriin SAS Viya on taaksepäin yhteensopiva: Lukee ja kirjoittaa SAS 9.4 tauluja Ajaa SAS 9.x koodia (SAS 9.4 Workspace Server mukana) SAS/CONNECT:illa voi avata SAS-session molempiin suuntiin
SAS 9.4 JA SAS VIYA - KAKSI VAHVAA ALUSTAA JOITA KEHITETÄÄN RINNAKKAIN SAS Viya 2016 2017 2018
MIKSI SAS VIYA ON NIIN KOVA JUTTU? Skaalautuu joustavasti erilaisiin arkkitehtuureihin: single, cluster, on-premise, cloud) Pilvi-valmis SAS: Cloud Foundry alusta *2017 Yhtenevä toiminnallisuus sekä koodin, että GUIn kautta One Admin UI to rule them all: SAS Environment Manager Suoraviivainen asennus: Linuxin standardit asennustyökalut: rpm, Ansible jne. Modernit analyyttiset algoritmit (mm. Data Mining and Machine Learning) SASia voi käyttää useilla eri ohjelmointikielillä: SAS, Python, Lua, Java (R *2017) Avoin arkkitehtuuri - kutsut Microserviceihin REST APIen kautta
TEKNINEN ALUSTA Environment Manager Web apps SAS Studio & Python/Java/Lua interfaces Smart device Web browser RESTful APIs Microservices CAS In-Memory Engine Other client Data Connectors / Accelerators Message queues Config User Content data RDBMS Hadoop Microservice resources
TEKNINEN ALUSTA CAS MUISTINVARAINEN ANALYTIIKKAMOOTTORI In-Memory Engine Nopea Worker nodet kommunikoivat keskenään Worker nodeja allokoidaan aina datan ja tehtävän vaatima määrä Vikasietoinen Sekä Worker, että Controller ovat vähintään kahdennettuja Sessiot ovat riippumattomia toisistaan Controller Backup Controller (*2017) Skaalatuva Workers Worker nodeja voidaan lisätä ja poistaa dynaamisesti Memory Spill-over = CAS pitää levyllä osan datasta ja siirtää prosessoitavan osan automaattisesti muistiin Worker Worker Worker Worker
TEKNINEN ALUSTA USEITA TAPOJA LADATA DATA CAS-MUISTIIN Yksi kone: suora putki Data Connectors In-Memory Engine Klusteri: Useita tapoja ladata rinnakkain 1) Hadoop samoilla raudoilla Workers 2) Erillinen Hadoop CAS Controller -tai- -tai- Worker Worker Worker Worker Worker Workers 3) Hajautettu (Ei Hadoopia, voidaan ladata rinnakkain Acceleraattorin avulla) Data Connector Accelerators Worker Worker Worker Workers
TEKNINEN ALUSTA MICROSERVICEITÄ KUIN SIENIÄ SATEELLA Suunniteltu pilvi-ympäristön vaatimuksiin joustavuuden näkökulmasta Annotations Identities Yhteen tehtävään Logon Comments Monitoring erikoistuneita puurtajia Backup Job Flow Tilattomia ja riippumattomia Authorization Configuration Renderer toisistaan CAS Mgmt Mail >100 kpl jo ensimmäisessä SAS Viya-versiossa Audit DM Models Scheduling
TEKNINEN ALUSTA MIKSI MICROSERVICET OVAT NIIN NÄPPÄRIÄ? Kun suoritustarve kasvaa, niitä voidaan käynnistää lisää vastaamaan kasvaneeseen kysyntään Kun uusi microservice instanssi käynnistetään, se lukee konfiguraationsa ja ilmoittautuu palvelukseen Korkea käytettävyys aina kun microserviceä on >1 instanssia käynnissä Skaalautuvuus saadaan käynnistämällä lisää instansseja juuri sitä microserviceä johon kuormitus kohdistuu (Logon peak -> more Logon microservices) Koska tilattomia, ne ovat riippumattomia: jos yksi väsähtää, voidaan käynnistää korvaava instanssi tilalle Logon Failover Authorization Failover & Performance
TEKNINEN ALUSTA MICROSERVICET OVAT YKSINKERTAISIA - NE VAATIVAT KAVEREITA YMPÄRILLEEN Microservice Config Config data data Hakevat konfiguraation Consul -kannasta Käyttäjädata (vrt. Metadata) tallennetaan PostgreSQL -kantaan Folders Reports Jobs Logon Configuration Authorization Message queues Viestivät keskenään RabbitMQ -viestiväylän kautta User Content Web Program Company Confidential - For Internal Use Only Copyright 2016, SAS Institute Inc. All rights reserved.
TEKNINEN ALUSTA MICROSERVICET AVAAVAT IKKUNAN ULKOMAAILMAAN REST rajapinnat tarjoavat pääsyn SAS Viyan Microservice palveluihin (autentikoinnin kautta toki ) HTTP REST (GET / PUT / ) HTTP Microservice Web Server HTTP REST-kysely jollakin kielellä Web Application
TEKNINEN ALUSTA Samat palvelut saatavilla riippumatta käyttötavasta YHTENÄINEN CODEBASE SAS Studio Python / Java / Lua SAS Visual Analytics / Statistics / Data Mining and Machine Learning CAS
TEKNINEN ALUSTA AINA SAMAT PALVELUT SEKÄ KÄYTTÖLIITTYMÄN ETTÄ KOODIRAJAPINNAN KAUTTA SAS käyttöliittymät (molemmat kuuluvat lisenssiin) SAS Visual Analytics SAS Visual Statistics SAS Visual Data Mining and Machine Learning Käyttöliittymä GUI Visual Analytics Visual Statistics Visual Data Mining and Machine Learning Koodirajapinta SAS Studio Visual Analytics proseduurit Visual Statistics proseduurit VDMML proseduurit
OHJELMOINTI KOODILLA SUORAAN CAS-YTIMEEN SAS Viya tuo mukanaan uuden SAS-kielen: CAS Language, sen rajapintana on PROC CAS CAS Language on 4:nen sukupolven kieli analytiikkaan ja datan valmisteluun Hyödyntää suoraan CAS-moottorin actioneita Actioneitä on yli 480 jo ensimmäisessä SAS Viya -versiossa Prosessointi on automaattisesti säikeistettyä Hyödyntää kaikki CPU-ytimet Hyödyntää automaattisesti CAS-muistinhallintaa Jos koko data ei mahdu muistiin, jatketaan levylle Jaettu action setteihin, jotka sisältävät useita saman alueen actioneita
OHJELMOINTI ESIMERKKI: TRANSPOSE ACTION [Input data] OBS b i x y 1 1 1 1 Apple 2 1 2 3 Banana transpose actionin vaatimat parametrit Action set = transpose Action = transpose proc cas; action transpose.transpose / table={ groupby={ "b" }, name="input", varlist={ "x", "y" } } casout={ name="output" } id={ "i" } prefix="v" ; run; quit; [Tulokset] OBS b _NAME_ v1 v2 1 1 x 1 3 2 1 y Apple Banana
AVOIMUUS USEITA RAJAPINTOJA CAS-PALVELUIHIN Kolme eri tapaa hyödyntää CASin palveluita: 1. SAS koodi ja käyttöliittymät (SAS-koodi ja PROC CAS) 2. SAS native language bindings * (hyödyntävät CASin actioneja) Python Lua Java 3. REST rajapinnat (ulkoiset APIt) Hyödyntävät Microservice-palveluja (ei suoraan CASia) * SAS native language binding is a collection of sub-classes that are members of classes in other programming languages, such as Python
AVOIMUUS MITEN HOMMA TOIMII PYTHONIN KANSSA? In [1]: import swat In [2]: conn = swat.cas( host, port, userid, password ) In [11]: tbl = conn.read_csv( cars.csv ) In [10]: conn.help(actionset='simple'); In [14]: out = tbl.summary() Import SWAT* class for Python CAS Server parameters Read in CSV file Load Action Set (simple) and get action list * Scripting Wrappper for Analytics Transfer In [16]: summ = out.summary In [17]: summ = summ.set_index('column') DataFrame operations using CAS Action set (simple), Action (summary) In [18]: summ.loc['cylinders', 'Max']
AVOIMUUS SAS VIYA REST RAJAPINNAT Joitakin esimerkkejä REST rajapinnoista joilla voidaan kytkeytyä SAS Viyan microserviceihin: Data Profiling Data Mining Models Data Mining Results SAS Compute Services...
HALLINNOINTI PÄIVITYSTEN JAKELU Ansible ylläpito-arkkitehtuuri* Jatkuvat, automaattiset päivitykset Mahdollista jaella myös manuaalisesti SAS Repository Ansible Controller * Ansible is a free-software platform for configuring and managing computers which combines multi-node software deployment, ad hoc task execution, and configuration management. https://en.wikipedia.org/wiki/ansible_(software) Local Repository
YHTEENSOPIVUUS TUKI SAS 9.4 KOODILLE SAS Viyan mukana tulee SAS 9.x yhteensopiva moottori Se on aluksi SAS 9.4 Workspace Server, mutta myöhemmin muuntunee Compute microserviceksi SAS Studio 2016 SAS 9.4 Workspace Server 2017 Compute Microservice
PILVI-VALMIUS SAS CLOUD ANALYTICS (*2017) Cloud Foundry is an open source cloud computing platform as a service (PaaS) SAS Viya CLOUD FOUNDRY https://en.wikipedia.org/wiki/cloud_foundry
PILVI-VALMIUS BARE OS, ELI FYYSINEN ASENNUS ILMAN CLOUD FOUNDRY ALUSTAA offering offering Linux host layer Windows host layer Windows environment (*2017) Linux environment Host Layer = Bare OS jakelun vaatimat Infra-palvelut (jotka pilvessä saataisiin Cloud Foundryn kautta) offering supported OS host layer supported OS environment (TBD)
PILVI-VALMIUS PILVI-JAKELU CLOUD FOUNDRY PALVELUITA HYÖDYNTÄEN offering Cloud Foundry offering Cloud Foundry Supported Cloud offering Cloud Foundry
PILVI-VALMIUS Mobile SAS VIYA ASENTUU OSAKSI PILVEÄ JA HYÖDYNTÄÄ CLOUD FOUNDRY INFRA-PALVELUITA Browser microservice cloud foundry service Dynamic Router CAS UAA CAS Server Microservices Hadoop Data Sources SAS VIYA Metrics Lifecycle Management Registry Log Aggregation Health/Monitoring