SQL Server 2016 – šta nas čeka u novoj verziji – deo 1

Prethodna godina je donela mnogo uzbuđenja svim IT profesionalcima koji su orijentisani ka Microsoft tehnologijama. Ovaj trend je nastavljen i početkom ove godine a, barem što se tiče onih koji su u svom radu orijentisani ka Microsoft Data platformi, vrhunac će predstavljati objavljivanje konačne (RTM) verzije SQL Server-a 2016. U ovom trenutku tačan datum nije poznat ali neke procene govore da će se to dogoditi u prvoj polovini ove godine. U međuvremenu, razvojni tim je objavio veći broj tzv. Community Technology Preview (CTP) verzija a, kako se datum konačnog pojavljivanja na tržištu približava, u mogućnosti smo da testiramo sva najavljena unapređenja kroz tzv. Release Candidate (RC) verzije. U trenutku pisanja ovog teksta aktuelna je verzija RC2 i možete je slobodno preuzeti sa SQL Server Evaluation stranice. Napominjemo da se još uvek ne radi o potpuno funkcionalnom proizvodu i da nije preporučljivo da ga koristite u produkcionom okruženju. Takođe, sve RC verzije su vremenski ograničene na 180 dana.

Broj noviteta i unapređenja u odnosu na prethodne verzije je zaista veliki. Iz tog razloga smo odlučili da prikaz SQL Server-a 2016 podelimo u dva dela. U prvom delu bavićemo se prvenstveno unapređenjima u okviru Database Engine kao i komponentama Microsoft Azure platforme koji su sastavni deo novih funkcionalnosti. U drugom delu (koji ćete biti u prilici da pročitate u sledećem broju ERP Magazina) fokusiraćemo se na unapređenja iz domena Business Intelligence servisa kako u samom SQL Server 2016 tako i u Cloud-u.

1. Instalacija i klijentski alati

Počevši od prve RC verzije (RC0) Microsoft je razdvojio instalaciju SQL Server Management Studio alata od ostalih komponenti. Ovo će svakako predstavljati iznenađenje za sve korisnike koji su imali iskustva sa instalacijama prethodnih verzija međutim radi se o jednom koraku koji je najavljivan već duže vreme. Razlozi za ovu odluku su brojni i među članovima zajednice nailazimo na različita tumačenja kao i na pristalice i na protivnike ove odluke. Bilo kako bilo, instalacija SSMS alata je dostupna iz istog instalacionog programa ali ju je potrebno pokrenuti korišćenjem zasebne opcije. Ono što može predstavljati problem za neke od korisnika je činjenica da je za uspešnu instalaciju alata potrebna Internet konekcija a koja (iz prvenstveno sigurnosnih razloga) često nije dostupna na serverima na kojima su instalirani SQL Server servisi. Da li će situacija biti ista i u RTM verziji ostaje da se vidi. Napomenimo i da će SQL Server Data Tools (o kome će biti više reči u drugom delu ovog teksta) biti baziran na Visual Studio 2015 a da će, po prvi put, doneti i kompatibilnost sa prethodnim verzijama SQL Server BI servisa.

Testovi pokazuju da je SSMS vrlo stabilan alat čak i u Preview verziji a da su noviteti koje ćete odmah uočiti mogućnost filtriranja objekata u okviru Object Explorer-a po različitim kriterijumima ali i jedna od dugo očekivanih opcija – Live Query Statistics. Naime, počev od SSMS 2016 moguće je nadgledati izvršavanja upita u realnom vremenu što nam omogućava da bolje razumemo proces izvršavanja konkretnog upita uz stalni uvid u sve relevantne statistike izvršavanja pojedinih operatora kao i upita u celini. Važno je napomenuti da će vam ova opcija biti na raspolaganju i ukoliko budete koristili SSMS 2016 za povezivanje na SQL Server 2014 Database Engine.

Sama instalacija SQL Servera-a donosi nekoliko novih opcija od kojih je najočiglednija ona koja se odnosi na konfiguraciju TempDB baze. Na osnovu broja raspoloživih jezgara procesora instalacioni program će predložiti broj potrebnih data fajlova za TempDB bazu. Vi ovu preporuku možete uvažiti ali i ignorisati – izbor je na vama ali generalno mišljenje je da je ova opcija vrlo korisna i da će se na ovaj način razrešiti neki od čestih problema vezanih za performanse SQL Server-a a koji su prouzrokovani upravo neodgovarajućom konfiguracijom (ili preciznije, brojem) data fajlova TempDB baze.

sql2016-1

2. Stretch DB

Kao korisnici ERP i CRM rešenja sigurno ste se barem jednom našli u situaciji da pojedine tabele u okviru baze podataka postanu prevelike za optimalan rad. Ovaj problem ne ugrožava samo performanse celokupnog sistema već dovodi i do značajnih troškova prilikom dogradnje koja je potrebna kako bi sistem mogao da nastavi sa radom. Tokom godina, broj zapisa u tabelama raste ali, u najvećem broju slučajeva, zapisi koji se odnose na istorijske godine nisu neophodni u svakodnevnom radu. Postoje razne metode pomoću kojih možemo rešiti ovaj problem ali one obično podrazumevaju izmene nad samim tabelema a često i izmenu logike kako bi svi raspoloživi podaci bili dostupni korisnicima. Jedan od noviteta SQL Server-a, Stretch DB, omogućava da jednostavnim postupkom jednu ili više tabela „razvučete“ između lokalne instance SQL Server-a i Azure SQL instance. Nakon što konfigurišete tabele, sam SQL Server će u pozadini početi da prebacuje željeni skup zapisa u Cloud tako da će podaci biti delimično u lokalu a delimično u Cloud-u. Nije potrebno menjati nijedan od upita koje ste do tog trenutka koristili za pristup podacima pošto sam SQL Server „pamti“ gde je prosledio podatke i, u slučaju da neki od upita zatraži zapise koji se više ne nalaze u lokalnoj bazi podataka, SQL Server će automatski preuzeti podatke iz dva izvora i vratiti ih u obliku jedinstvenog skupa zapisa. Naravno, pristup zapisima koji se nalaze u Cloud-u će biti sporiji nego zapisima u lokalnoj bazi podataka ali pošto ćete ovu opciju koristiti kao, de facto, on-line arhivu istorijskih podataka, gubitak u performansama će lako biti kompenzovan uštedom koju ćete ostvariti koristeći jeftini Cloud storage umesto skupih diskova u lokalnom storage sistemu.

3. Temporal tabele

Efikasno praćenje promena nad podacima je oduvek predstavljalo izazov. U zavisnosti od toga da li radite sa transakcionom bazom podataka ili radite na razvoju Data Warehouse sistema, postoje preporuke i različiti primeri iz prakse koje možete iskoristiti za uspostavljanje mehanizma za praćenje promena nad podacima. U okviru SQL Server 2016 implementiran je Temporal koncept definisan ANSI SQL 2011 standardom koji omogućava pristup podacima koji su bili aktuelni u bilo kom trenutku u prošlosti. Šta to konkretno znači i kako će to uticati na rad sa podacima za korisnike ERP i CRM sistema? Sami korisnici (pa i administratori baza podataka) , generalno, neće primetiti nikakve promene u radu. Na kraju krajeva, ukoliko i omogućite ovu opciju za neke od tabela u okviru sistema, svi upiti će nastaviti da rade kao i do sada. Ipak, ono što će se u pozadini desiti je da se, paralelno sa osnovnom tabelom, formira i tabela sa istorijskim podacima kod koje će za svaki od zapisa biti naznačeno u kom vremenskom opsegu je bio „aktuelan“. Svaka izmena nad podacima, bez obzira da li se radi o izmeni postojećih, upisu novih ili brisanju zapisa rezultovaće automatskim upisom novog zapisa u istorijsku tabelu. Ukoliko zatražite samo trenutne podatke, na vaš upit će biti odgovoreno podacima iz osnovne tabele (odnosno kao i do sada) ali ukoliko zatražite podatke koji su bili aktuelni u nekom trenutku u prošlosti, rezultat upita će sadržati kombinaciju zapisa iz osnovne i istorijske tabele. Bitno je napomenuti da nisu potrebne nikakve izmene vašeg ERP ili CRM sistema u slučaju da se odlučite za korišćenje Temporal tabela dok će administratori baza podataka i analitičari dobiti još jedan moćan alat za nadzor izmena nad podacima, mogućnost rekonstrukcije stanja sistema u bilo kom trenutku u prošlosti (uključujući i oporavak zapisa koji su greškom obrisani ili izmenjeni) i još mnogo toga.

4. Always Encrypted

Sigurnost podataka je od neprocenljive važnosti za svaki poslovni sistem. Bez obzira na to da li u okviru ERP i CRM sistema čuvate „tajne“ podatke ili ne, neautorizovani pristup informacijama može dovesti do ozbiljnih problema u poslovanju a u nekim slučajevima i do nemogućnosti daljeg obavljanja delatnosti, ozbiljnih pravnih i reputacionih posledica ali i kršenja odredbi zakona. Potreba za uvođenjem Always Encrypted tehnologije u SQL Server 2016 proizilazi iz činjenice da i pored ozbiljnih investicija u maksimalno fizičko obezbeđenje informacione infrastrukture i implementacije standarda informacione bezbednosti svaki poslovni sistem ima barem jedan veliki potencijalni sigurnosni rizik a to je – sam administrator sistema. Realno gledajući, administratori sistema (pa i administratori baza podataka) jesu osobe čiji kredibilitet i profesionalnost najčešće ne dovodimo u pitanje ali bi svakako mirnije spavali kada bi znali da postoji lako dostupna i pouzdana tehnologija koja će sprečiti zlonamernog administratora da podatke iznese iz sistema. Always Ecrypted omogućava bitno drugačiji pristup sigurnosti podataka od onog koji je postojao u dosadašnjim verzijama SQL Server-a. Pre svega, podaci postaju enkriptovani već na strani klijenta. Korišćenjem unapređenje verzije ADO.NET biblioteke podaci više ne mogu da napuste klijentsku radnu stanicu u čitljivom obliku. Zatim, tako enkriptovani podaci se zaista i snimaju u data fajlove baze podataka. Nakon izvršavanja upita, podaci putuju ka klijentskoj radnoj stanici takođe u enkriptovanom obliku i dekripcija se dešava tek kada tamo i stignu.

sql2016-2

Dakle, ključ za enkripciju se nalazi na klijentskoj strani, podaci putuju ka i od SQL Server-a u enkriptovanom obliku i tako se i skladište. Iz tog razloga administrator više nema motiv da iznese backup baze podataka niti da iskopira data i log fajlove i da rekonstruiše bazu podataka na drugom serveru. I u jednom i u drugom slučaju, tako rekonstruisana baza podataka će biti neupotrebljiva bez ključa koji se nalazi isključivo kod klijenta. Važno je naglasiti da implementacija ove tehnologije ne zahteva nikakve izmene na postojećem ERP ili CRM sistemu i da se ista tehnologija može upotrebiti i prilikom korišćenja Azure SQL baze podataka što omogućava dodatan nivo sigurnosti podataka koji se nalaze u Cloud-u.

5. Row-Level Security

Jedna od dugo očekivanih funkcionalnosti u SQL Server-u je i mogućnost definisanja prava pristupa određenom skupu zapisa neke tabele. SQL Server 2016 omogućava mehanizam za ovakvu vrstu kontrole pristupa kroz definisanje funkcija kojima se određuje da li je određeni podskup zapisa na raspolaganju konkretnoj grupi korisnika ili ne. Sa stanovišta ERP ili CRM sistema razmotrimo jedan od mogućih scenarija. Pretpostavimo da se u okviru jedne od značajnih tabela nalaze informacije koje mogu biti unete od strane korisnika koji su zaposleni u različitim službama poslovnog sistema. Ukoliko želimo da sprečimo korisnike iz jedne službe da pristupaju podacima druge službe možemo da definišemo funkciju koja će za određene vrednosti neke kolone iz tabele omogućiti pristup zapisima samo strogo definisanom skupu korisnika odnosno samo zaposlenima iz službe koja je zaista i vlasnik tih zapisa. Do sada je bilo neophodno koristiti opcije ERP ili CRM sistema i osloniti se na ugrađene sigurnosne mehanizme ali to i dalje ne bi sprečilo korisnika koji može direktno da pristupi bazi podataka da ih zaobiđe. Počevši od SQL Server 2016 ovaj nivo kontrole pristupa podacima je moguće realizovati i na nivou samih tabela baze podataka. U ovom trenutku, kontrolu je moguće postaviti za operacije čitanja i brisanja ali još uvek ne i za operacije unosa i izmene podataka. Postoji mogućnost da će ova funkcionalnost biti kompletirana do trenutka kada konačna verzija bude bila na raspolaganju.

6. Dynamic Data Masking

Maskiranje podataka predstavlja još jedan koristan novitet u SQL Server-u 2016. U najvećem broju ERP i CRM sistema nalaze se i informacije koje možemo smatrati osetljivima i koje želimo da učinimo nedostupnim određenim kategorijama korisnika kako bi sprečili potencijalne zloupotrebe. Na primer, informacije o brojevima bankovnih računa, brojevima kreditnih kartica i matičnim brojevima naših korisnika, njihovim brojevima telefona ili e-mail adresama moraju u svakom trenutku biti na raspolaganju ali ne i svim korisnicima. Dynamic Data Masking omogućava administratoru baze podataka da postavi pravila po kojima će podaci određenoj vrsti korisnika biti u potpunosti čitljivi dok će ostalima ti isti podaci biti dostupni u manje ili više izmenjenom obliku. Postoje različite vrste maskiranja podataka, od podrazumevane koja će korisnicima sa ograničenim pravima umesto konkretne informacije vratiti skup X karaktera do onih koje će nam omogućiti veoma preciznu kontrolu nad procesom maskiranja (na primer, dozvoliti uvid samo u prva tri broja bankovnog računa dok će ostali biti prikazani kao X ili mogućnost uvida samo u poslednje četiri cifre broja kreditne kartice dok će ostali biti sakriveni itd.) Kao i u slučaju Row-Level Security, pravila maskiranja podataka su definisana u okviru same tabele tako da korisnici ne mogu da ih zaobiđu direktnim pristupom bazi podataka.

7. Ostali noviteti

Pored do sada navedenih noviteta, SQL Server 2016 donosi još neke nove pogodnosti za administratore baza podataka i developer-e. Pored unapređenja u domenu in-memory tabela i columnstore index-a navešćemo i još neka za koja smatramo da su veoma značajna.

Query Store – mogućnost čuvanja istorije execution plan-ova sa svim pripadajućim statistikama izvršavanja. Na osnovu ove istorije možemo da identifikujemo upite kod kojih je došlo do degradacije performansi i da zahtevamo da se u daljem radu koristi neka od prethodnih verzija execution plan-a.

Podrška za JSON – počevši od ove verzije podržan je rad sa podacima u JSON formatu. Pretpostavljamo da će veliki broj SQL Server developer-a obradovati ova informacija pošto će od sada svi poslovi oko parsiranja JSON sadržaja, njihovog skladištenja u tabelama i ponovnog prevođenja podataka iz tabela u JSON format biti delegirani samom Database Engine-u.

Polybase – tehnologija prvenstveno korišćena u APS (Analytics Platform System, naslednik Parallel Data Warehouse) ali od verzije 2016 je i sastavni deo SQL Server Database Engine. O ovoj tehnologiji će biti nešto više reči u sledećem nastavku ali za sada napomenimo da će nam ona omogućiti izvršavanje upita nad podacima uskladištenim u Hadoop klasteru ili bilo gde na Azure BLOB storage korišćenjem Transact SQL-a.

Podrška za R jezik – jedan od noviteta koji će omogućiti sve većem broju data scientist-a da izvršavaju postojeće R skripte korišćenjem Transact SQL-a u okviru SQL Server Database Engine.

8. SQL Server na Linux-u

Početkom marta ove godine pojavila se informacija da će buduće verzije SQL Server-a (uključujući i 2016) biti dostupne i na Linux-u! Posle prvobitnog šoka i pretpostavke da se radi o preuranjenoj prvoaprilskoj šali usledile su i konkretne potvrde iz samog Microsoft-a a već posle nekoliko dana pojavila se i mogućnost besplatnog preuzimanja Preview verzije SQL Server-a za Linux. Do zaključenja ovog broja ERP Magazina nismo bili u prilici da testiramo SQL Server na Linux-u ali ćemo to učiniti prvom prilikom i naravno, podelićemo iskustva iz prve ruke sa vama.

U drugom delu priče o SQL Server 2016 pokušaćemo da vam približimo novitete u SQL Server BI servisima (Integration Services, Analysis Services, Reporting Services, Master Data Services) ali i sa BI uslugama koje su na raspolaganju u Cloud-u.

by Dejan Pervulov

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s