Jos ETL prosessien tai pakettien – tai miksi niitä nyt halutaankin suomeksi kutsua – tallennus ja ajo paikka aiheuttaa päänvaivaa, tämä kaavio saattaa helpottaa.Kysymys on oikeastaan vain siitä, toteutetaanko ETL prosessien tiedostojen siirto manuaalisesti ja miten niiden konfiguraatiot halutaan toteuttaa. Siihen vaikuttavat paljon ympäristö ja totutut toimintamallit. Joskus totutut toimintamallit pakottavat manuaaliseen tiedostojen siirtoon. Silloin on syytä pitää huolta deploy käytäntöjen toimivuudesta ja ihan visual studio tasollakin versionhallinnasta.
Deploy asiaa blogini tässä osassa…ja konfigurointi asiaa täällä
Asenna Analysis Services 2008
Ennen kun aloitat – varmista, että palomuuri ei ole päällä. Tee se avaamalla control panel, ja valitse Windows Firewall ja sammuta se, jos se on päällä.
Varmista, että oikea asennus media on käytettävissä – lisenssi avaimineen. Media löytyy kansiosta c:\asennus\sql 2012 BI tms.
Tässä vaiheessa kannattaa jo konfiguroida netframework feature ja sennnella kaikki tarvittavat windows päivitykset ellei niitä ole jo asennettu. Tässä alempana on kuvattu, mitä tapahtuu jos niitä ei asenneta tässä vaiheessa – ennen SQL server setup ajamista.
Lisätään tai varmistetaan, että palvelujen tarvitsemat domain tilit ovat käytettävissä. Ellei ole – ne tehdään.
Isolated by useraccount – palvelujen eristäminen käyttäjätunnuksilla
Service account on lisätty Datacenter_palvelin ryhmään (ADnimi\SQLserverASuser)
Käynnistä kyseisestä hakemistosta “SETUP.EXE” (esimerkkikuvassa CD asemalta)
Eri kokoonpanoissa eri koneilla saattaa esivaatimukset olla hyvinkin erilaisia. Tässä on kuvattu vain tämän kyseisen koneen tarpeet
Esivaatimukset tarkistetaan configuration checker ohjelmalla SQL server asennustyökaluista.
Klikkaa install Upgrade Advisor
Suorita vaaditut toimenpiteet.
- SQL Server 2012 Feature pack osat on ladattuna koneen dawnload hakemistoon. Sieltä löytyy muun muassa SQLDOM, joka on nyt suoritettava
SQL DOM asennus.
Windows konfiguraatiot, Features ja päivitykset
Tämän olisi myös voinut tehdä heti alussa.
Jos valitaan myös framework features, tulee asennettavien listalle myös IIS web services. Sitä ei tällä hetkellä tarvita.
Ja sitten windows päivitystysten tarkistus ja päivitys
Tämä ei ole välttämätön, mutta on kuitenkin hyvä olla jo valmiiksi asennettuna.
Tarkistetaan löytyykö lisää…
Ja jälleen uusi tarkistus…
Se tarvitaanko uudelleenkäynnistää Windows server, selviää viimeistään start painikkeen takaa ’Log off’ valinnoista. Jos sieltä löytyy varoitus merkki – suorita restart – ja muussa tapauksessa voit suorittaa SQL server setupin uudelleen. Se kertoo muutamien minuuttien tarkistusten jälkeen myös jos tarvetta uudelleen käynnistämiseen on.
Tämän jälkeen kaikki päivitykset on valmiina.
Klikkaa “SETUP.EXE” uudelleen Windows Explorerista.
Näet aina vähän väliä seuraavanlaisen boksin.
Varmista, että Installation is valittuna oikealla ja sitten klikkaa “ New SQL Server stand-alone installation or add features to an existing installation”.
Asennuksen esivaatimusten taskistus
Jos ongelmia ei ilmennyt klikkaa “OK”. Ongelmien ilmaantuessa, seuraa näytöllä näkyviä ohjeita. Voik klikata "Show Details” kun tarvitset tarkempia tietoja. Jos et ole täysin varma asiasta – selvitä jokainen kohta erittäin huolellisesti.
Asennusohjelma tarkistaa vielä mahdolliset SQL server päivitykset verkosta.
Jos verkkoyhteyttä ei ole tämä voidaan ohittaa.
Asennustiedostojen asennus
Näet seuraavaksi yhteenvedon
Tuoteavain – lisenssi
Lisenssiehdot
Klikkaa next
Asennusrooli
Klikkaa Next
Valittavissa olevien optioiden valinnat
Edellä kuvattujen – ja muiden optioiden kuvaukset löytyy kaikille SQL server versioille:
http://msdn.microsoft.com/en-us/library/ms143786.aspx
Otin lopuksi SDK:t pois, koska niitä ei tässä vaiheessa tarvita:
Jatka joka kohdassa valintojen jälkeen klikkaamalla Next
Installation rules tarkistukset
Tietokanta instanssi
Jos esimerkiksi muita instansseja olisi, tässä voidaan asentaa jokin muukin kun oletus instanssi nimi. Se voisi olla vaikkapa SQLASTABULAR tms.
Jatka klikkaamalla Next ja näet seuraavat ikkunat:
Jatka jälleen klikkaamalla Next
Server configuration
Tässä asetetaan alussa tehty AD domain laajoinen käyttäjä tunnus SQL server AS prosessille. Ensimmäisessä kuvassa on oletus, joka muutetaan tuotantokäyttöön sopivaksi.
Valmiina
Tarkista Collation, mutta se on normaalisti oletuksena oikein.
Jatka klikkaamalla Next
Lisää admin käyttäjiä
Datahakemistot
Seuraavalla välilehdellä on data hakemistojen asetus. Se on oletuksena :
Ja tässä konfiguraatiossa se muutetaan näin:
Tiedot ovat harkitusti tietyillä levyilla ja sitä havainnollistaa vielä se, että loogisten levyjen loogiset nimet ovat:
Jatka klikkaamalla Next
Virheraportointi Microsoftille
Ehkä ei tässä niin tarpeellinen toiminto
Ja vielä viimeinen sääntö tarkistus
Jos mitään ei ilmennyt – asennus voidaan suorittaa.
Klikkaa Next.
Klikkaa Install. Huomioi ConfigurationFile.ini – jota voidaa käyttää ns. ‘silent install’ toiminnoissa, kun asennetaan vakio konfiguraatio mahdollisimman nopeasti ja moniin koneisiin. Esimerkiksi kluster asennukset.
Valmis.
Mutta vielä viimeisimmät päivitykset:
Valmis.
Testaus
Analysis Services
Adventure Works esimerkit on hyvä tapa testata Analysis Services asennus ja konfiguraatio. Tässä on kuvattu todellinen kehitys ja tuotanto kelpoinen testi asentamalla ADW kanta Analysis Services deployment wizard työkalulla.
Koneen hakemistossa C:\BI Workspace\SQL Server Samples on SQL Server 2012 esimerkki asennus paketit, joista nyt käytetään vain pakettia joka asentaa vain lähdekoodin Visual Studio projektin.
Kaikki esimerkit löytyvät Codeplex saitilta http://msftdbprodsamples.codeplex.com/
AdventureWorks Multidimensional Models SQL Server 2012 asennuspaketti löytyy klikkaamalla saitin SQL server 2012 DW kuvaketta (keltainen)
Pakattu tiedosto sisältää standard ja eterprise versiot, joista nyt käytetään standardia.
Purettu standard projekti avataan Visial Studiolla (SQL server datatools) ja sille suoritetaan build komento.
Build komennon jälkeen uusi kanta on valmiina ’tuotantoon’ siirtoon :
Tähän käytetään Analysis services deployment wizardia:
Oikeassa tuotanto deployssa tässä kohtaa tarkistetaan huolellisesti kaikki konfiguraatiot eri objekteille.
Tässä vaiheessa ei ole syytä prosessoida (lataus ja laskennat) kantaa, koska yhteyttä relaatiokannan staging/DW kantoihin ei ole.
XMLA skripti tallennetaan esimerkiksi samaan hakemistoon (bin) kannan kanssa
Tämän jälkeen skripti suoritetaan komentojonokäskynä tai
Kokeilin päivityksiä virtuaalikoneissa Windows 2008 R2: sta 2012 versioihin ja sitten SQL server päivityksen perään.
Melko mielenkiintoisia havaintoja tuli eteen.
Esimerkiksi kun evaluointi versio 2008 R2: sta yritin päivittää Enterprice: ksi tuli parikin kertaa eteen tilanne, jossa asennus ei onnistu lisenssi tiedoston oikeuksien takia.
Tarkemmin sanottuna ja yksinkertaisesti pikku bugi, mutta asennus ei mennyt eteen päin ennen kun muutin hakemistossa c:\Program Files\Microsoft SQL server\110\License terms olevan rtf dokumentin ‘read onlysta’ ‘read writeksi’ Sen jälkeen asennus/upgrade toimii.
Lisäksi itsestään selvyydet kannatta ottaa etukäteen selville kuten kaikkien instanssien päivitykset oikeille tasoilleen tai betaversioiden poisto tms saattaa nopeuttaa asennuksia.
Parametrisoinnin suunnittelu
Linkitettyjen raporttien ja parametrien välitys niiden välillä on SQL kyselyissä eroaa huomattavasti Analysis services ‘multidimensional dataset’ parametroinnista. Kun käytetään ulottuvuuksien jäseniä (dimension members) Analysis Services kuutiosta listoissa joita käytetään parametreinä, on toteuttaminen huomattavasti yksinkertaisempaa.
Parametrien lisääminen Analysis Services Datasettiin
Verrattuna relatiokanta tietolähteeseen, on Analysis Services tietolähde parametrien lähteenä hieman yksinkertaisempi toteuttaa. Tarvitsee vain määrittää ulottuvuus (dimensio) josta parametrit halutaan hakea ja loppu onkin sitten tehty valmiiksi automaattisesti.
Tässä esimerkissä lisätään parametri filtteroimaan datasetti kalenterivuosilla
Datasets kansiossa – Report Data ikkunassa on Dataset1. Tämä sisältää MDX kyselyn, jossa on määritetty parametrit. Tässä tapauksessa aluksi vain pvm niminen. Tämä parametri tehdään MDX query editorilla. Editorissa muokataan kyselyä hiirellä raahaamalla oikeat elementit ja jäsenet omaan ikkunaansa ja filtterinä toimivat jäsenet omaansa. Filttereinä toimivat voidaan asettaa parametreiksi. Tämän jälkeen kaikki tarpeellinen onkin useimmiten jo tehty ja query editorin tiedoilla generoituu uusi piilotettu (oletus) dataset. Datasetin nimeä ei kannata muuttaa, vaan se kannattaa generoida uudelleen tarpeen mukaan.
1. Klikkaa ponnahdusvalikko esiin datasetin kohdalta ja valitse properties.
2. Valitse ylin vaihtoehto – Query
3. Tee tai muokkaa
jo tekemääsi kyselyä lisäämällä pvm tieto parametriksi (rasti ruutuun) ja valitse filter expression oletusarvoksi. Huomaa, että tässä esimerkissä on vain yhden päivän pvm filtterinä. Käyttökelpoisempaa on usein käyttää alku ja loppu pvm tietoja. Tähän soveltuu Equal operaattorin sijaan Range, jolloin Filter expression valinta muuttuu kaksi osaiseksi alku ja loppu pvm filtteri tietoja varten.
3.1 – yksi osainen filtteri parametrointi:
3.2 – kaksi osainen filtteri parametrointi:
4. Query editori näyttää parametrit tämän jälkeen näin:
5. Varmista pvm tiedon oikea formaatti, joka vaikuttaa siihen että sitä myös käsitellään jatkossa päivämääränä. Tämä on tärkeää esimerkiksi pvm valinta toiminnon kannalta. Jos tietoa ei voida esittää date muodossa, saadaan valintalista ja pitkä lista tekstimuotoisena olevia päivämääriä. Haku toimii myös näin, mutta päivämäärä valintatyökalulla on paljon parempi valita haluttu päivämäärä kriteeri.
Tässä esimerkki, kun pvm tieto on date muotoisena datana:
Tässä esimerkki, kun pvm tieto on teksti muotoisena datana:
Päivämäärä muotoinen data saadaan expressionilla:
="[Date].[Calendar].[Date].[" + Format(CDate(Parameters!Date.Value), "MMMM d, yyyy") + "]"
Jossa käyttämäsi aikaulottuvuus on kuvattava ensimmäisenä skriptin alussa muodossa [Ulottuvuuden nimi].[hierarkian nimi].[pvm kentän data jota halutaan käyttää]
Lisäksi parametrin ominaisuuksissa on valittavissa default – oletus arvo päivämäärälle. Se voi yksinkerteisimmillaan olla vaikkapa = Today(). Tai hieman älykkäämmin valmiiksi asetettuna edellinen kuukausi, tai haluttu täysi kk tai jokin muu haluttu aikaväli tähän tapaan:
=DateSerial(Year(Now()), Month(Now()),0)
Tässä vielä kuvia jotka voivat selventää toteutusta:
Päivämäärä formaatin varmistaminen
Parametrin tiedot MDX kyselyissä. Huomio, että graafisen tilan ja tekstimuotoisen tilan välillä ei voi vaihdella rajoituksetta!
Parametrien asettaminen manuaalisesti.
Kun haluat editoida MDX kyselyä menettämättä graafista näkymää, valitse expression painike ja saat koko MDX kyselyn editoitavaksi. Toiminto ei ole sama kun query editorissa!
Mutta tämäkin saattaa muuttua MDX generaattorin toimesta.
Asennuksen ja konfiguroinnin jälkeen voit kokeilla masterdata palveluita esimerkki malleilla. Käyttöönoten voi tehdä wizardilla tai deploy komentoikkuna ohjelmalla. Näytän tässä niiden molempien käytön.
Mallit ovat :
- – Tilikartta
- – Asiakkaat
- – Tuotteet
Ja löytyvät asennuksen jälkeen täältä:
MDSModelDeploy.exe löytyy :
Model deploy apuhjelman käyttö:
Ohjelman optiot saat näkyviin kun kirjoitat komentoikkunaan MDSModelDeploy
Kaikki palvelut saat näkyville komennolla:
MDSModelDeploy listservices
Esim:
MDS palvelu MDS1 on oletus websaitilla ja sen polku on MDS1
Palvelut voi asentaa myös eri portteihin ja niitä voi olla useitakin, on sitten kokonaan eriasia tarvitaanko niitä useita…
Käyttöön otto – Deploy komentojonotyökalulla
Uusi malli
MDSModelDeploy deploynew –package PackageName -model ModelName -service ServiceName
Mallin klooni
MDSModelDeploy deployclone –package PackageName
Mallin päivitys
MDSModelDeploy deployupdate –package PackageName –version VersionName
Uusi malli – esimerkiksi:
MDSModelDeploy deploynew –package chartofaccounts_en.pkg -model Esimerkki -service MDS1
HUOM!
Jos kopiot tekstin websivulta, tai vaikkapa tästä esimerkistä voi tuloksena olla:
The DeployNew command failed because either there is a missing – option or the name is not in quotes. All names that contain spaces must be enclosed in quotation marks.
Riittää, kun kirjoitat – [miinus] merkit uudelleen ja suorita komentojono uusiksi.
Käyttöön otto – Deploy wizardilla
Voi ottaa käyttöön vain mallit, joiden mukana ei ole itse dataa. Tästä on ilmoitus olemassa, kun ajat wizardin loppuun
Tämä paketti sisältää dataa ja deploy tulee näin ollen epäonnistumaan…
Yleinen kuvaus
Analysis Services sallii minkä tahansa MDX lauseen käytön autentikointiin dimensioissa.
Näin, voidaan mallintaa tietoturvaa kuutioihin tallennetun datan mukaan.
Esimerkiksi, MDX kaavalla voidaan sallia käyttäjälle näkyväksi informaatio kaupan myymälässä jossa hän työskentelee, mutta ei muista kaupan myymälöistä. Tällainen skenaario ei kuitenkaan sovellu hyvin roolipohjaiseen tietoturvaan, koska jouduttaisiin luomaan henkilökohtainen rooli jokaiselle järjestelmän käyttäjälle. Siinä tapauksessa voidaan luoda dataan pohjautuva järjestelmä – eli dynaaminen autentikointi.
Dynaamisen autentikoinnin avulla voidaan toteuttaa yksi rooli kaikkia käyttäjiä varten ja jolla sitten UserName MDX funktiota tietoturvamäärityksissä roolin räätälöinnissä jokaiselle käyttäjälle erikseen.
Kun käytetään laajaa ja monimutkaista yhdistelmää tietoturva asetuksissa (autentikoinnit), tämä tekniikka on suositeltava sen takia että sillä voidaan toteuttaa helpommin ja yksinkertaisemmin ylläpidettävä järjestelmä verrattuna muihin toteutustapoihin. Kun uusi käyttäjä tai uusia käyttäjiä lisätään järjestelmää, olemassa olevaa roolia muutetaan sopivaksi – automaattisesti.
Funktio, UserName palauttaa stringin (tekstityyppinen muuttuja) joka sisältää ko. käyttäjän domain nimen ja käyttäjätunnuksen (domain\Username) Windows AD tai local username tietojen mukaisesti Analysis Services loginia varten. Tällä tavalla voidaan verrata MDX funktion palauttamaa arvoa kannassa olevaan tietoon organisaation käyttäjistä (epmloyees/työntekijät/resurssit).
Esimerkki
On eri mahdollisuuksia yhdistellä UserName funktion palauttamat arvot kuution jäsenten kanssa (members). Suoraviivaisempia tapoja on lisätä sarake käyttäjätunnuksille ja käyttäjien nimille sekä rakentaa ulottuvuus attribuutti (dimensio) siitä. Esimerkiksi jos lisään user_name sarakkeen dbo.employee tauluun testikannassa – saadaan silloin tehtyä myös uusi attribuutti Employee dimension kuutiossa. Avain kenttä saa arvon employee_id : stä ja UserName kentästä myyjä_nimi tai Employee login nimeä vastaavan arvon.
Esimerkkinä tein uuden roolin nimeltä DynamicRole ja lisäsin siihen kaikki käytäjät – tässä on syytä kokeilla myös muillakin ryhmillä kun ‘Everyone’ Esimerkiksi Laajatoikeudenhaltijat ja suppeatoikeudenhaltijat – ryhmät tms. Lisäksi käytän kuutiota Sales and Employees. Tässä kuutiossa on measure ryhmä (measuregroup) niin kuin Warehouse ja Sales kuutiossakin, mutta siinä on lisäksi Employee dimensio johon on laitettu vielä granulariteetti Storen- tiedon mukaan (Employee ja store id). Nyt voin käyttää User Name ja Employee attribuuttia kohdistamaan kuution käyttäjän nimen mukaan. Voin myös asettaa storet näkymään vain niin, että sen storen työntekijät näkevät vain ne – eivätkä muita. On myös mahdollista asettaa käyttäjiä (employees) niin että useita storeja tulee tietyille käyttäjille (employees) tai tehdä näistä vaihtoehdoista johdettuja yhdistelmiä.
Eri vaihtoehdoista on tässä esimerkki, niin että vain oma store tulee näkyville. Seuraavassa MDX funktio AllowedSet ominaisuuden muutos Store cube dimensiossa:
Filter(
[ Store] . [Store] . [ Store]. members,
[ Store] . [Store] . currentmember.properties( “key”) =
Exists(
[ Employee] .[ Store]. [ Store] . members,
StrToMemeber ( “Employee. [ “+UserName() +” ]”, CONSTRAINED)
). Item( 0) . Properties( “key”) )
Tässä käytän StrToMember MDX funktiota hakemaan Employee jäsenen (Employee member) attribuutti hierarkiasta UserName attribuutin ja yhdistämään vastaavat UserName tiedot MDX funktion palauttamasta tiedosta. Tämä edellyttää että store id löytyy myös employee ulottuvuudesta joten nämä ulottuvuudet voidaan liittää toisiinsa (vrt. Relaatiokannan join)
Ja nyt, kun autentikointi on määritetty dynaamisesti, voidaan todeta kuutiossa sama selaamalla Dynamic Role ryhmän käyttäjällä – että data on filtteroitu vain kyseessä olevan käyttäjän ‘store’n mukaan ja muut tiedot eivät ole näkyvissä.
Esimerkiksi alla olevassa kuvassa on dataa vain Meksikon store numero 12 ta, koska Irina
Gorbach (käytetty login) sattuu olemaan tämän storen työntekijä.
General asetukset
Membership asetukset
Data Sources asetukset
Cubes asetukset
Cell Data asetukset
Dimensions asetukset
Dimension data asetukset ja MDX
NonEmpty( [Store].[Store].[Store].members,
Exists(
[Employee].[Store].[Store].members,
{LinkMember([Employee].[User Name].[User Name].members("["+UserName()+"]"),[Employee].[Employees])}
)*[Measures].[Store Sales]
)
Kun dimensioiden tietoturva-asetuksen on määritelty dynaamiseksi, on näkyvissä vain ja ainoastaan se data joka liittyy sinun omalle tunnukselle.
Dimensio tietoturva-arkkitehtuuri
Käyttäjä joka hakee dataa analysis serviceltä voi kuulua useisiin eri rooleihin. Tämän takia Analysis services tutkii dimensio oikeudet jokaiselle käyttäjän roolille. Jos järjestelmässä on useita tietoturva rooleja määritettynä, kasvattaa se eri yhdistelmien kokoa huomattavastikkiin. Analysis services pitää sisällään hyvin skaalautuvan mekanismin joka mahdollistaa jopa isojenkin dimensioiden nopean tietoturvan soveltamisen/tutkimisen. Analysis services ei luo, ja lataa muistiinsa dimensioiden kopiota sallittuine attribuutteineen, vaan sen sijaan pitää muistissaan pienen rakenteen datasta nimeltä CubeAttributeSecurity. Tämä datarakenne on liittymä Analysis services kantaan toteuttamaan ilmentymän sallittujen tai kiellettyjen jäsenten näkyvyyden. Tämän datarakenteen fyysinen esittäminen riippuu monista tekijöistä. Joissakin tapauksissa Analysis services käyttää bittikartta tietoja pakatussa muodossa ja voi verrata tai ‘vähentää’ halutusta joukosta sallittuja tai kiellettyjä jäseniä. Joissakin tapauksissa on taas luotava materialisoitu bittikartta kuvaamaan bittitasolla eri attribuutteja. Pahimmassakin tapauksessa tarvitaan vain materialisoida bittikartta, dimensioiden tietoturva-asetusten käyttämä bittimäärä ei voi olla enempää kun dimension jäsenten määrä jaettuna kahdeksalla. “CubeAttributeSecurity” on tiedostoluokka ja sitä voidaan käyttää ja säilöä muistissa ja levyllä dynaamisesti, sen mukaan miten muistinhallintalogiikka päättää. Jos käyttää useita tietoturvarooleja, AS iteroi “CubeAttributeSecurity” tietoja jokaisella roolilla ja käyttää loogisia operaattoreita asetusten ja rakenteen mukaisesti. Tämä tekniikka tekee operaatiosta erittäin nopean yksinkertaisuutensa takia..
Dimensio tietoturva, solujen tietoturva ja MDX Skriptit
Analysis Services asettaa dimensiotietoturvan ennen MDX skriptin tarkistusta/suoritusta, ja asettaa solukohtaisen tietoturvan MDX skriptin tarkistuksen/suorituksen jälkeen.
Se, että tämä on mahdollistaa, vaatii Analysis servicen iteroimaan läpi kaikki AttribuuttiPermissions objektit, tarkistaa MDX funktiot ja niiden sallitus ja kielletyt asetukset (Allowed & DeniedSets) jokaisen aktiivisen roolin osalta ja rakentaa CubeAttributeSecurity datarakenteet. Tämän jälkeen Analysis Services tarkistaa oletus jäsen ominaisuudet AttributePermission objektin MDX funktioiden osalta. Jos useammalla kun yhdellä roolilla on default member määritettynä, ensinmäisen roolin default member ‘voittaa’. Jos ei ole mahdollista päätellä mikä rooli pätee ensimmäisenä, Analysis services ottaa käyttöön dimensio tietoturvan. Siitä lähtien, kaikki operaatiot suoritetaan suojattuina. Jos dimensio tietoturva-asetuksen rajoittavat jotakin default jäsentä, järjestelmä ei pysty käyttämään jatkotoimenpiteissä. Se vuoksi Analysis Services muuttaa default jäsenet default jäseniksi, joilla on rajoitteita. Tavallisesti, jos attribuutti on aggregoitavissa, se on ALL jäsen. Muussa tapauksessa ylimmäisenä oleva jäsen voi tulla default jäseneksi.
Analysis Services ottaa käyttöön kaikki kelvolliset ‘visual totals’ mahdollisuudet ja lopulta arviot MDX skriptin.
Sen jälkeen Analysis Services arvio ja tarkistaa skriptin ja lisää sen global scope muistiin
SQL Server core asennus
Aloita windows server asennuksesta
Salasanan vaihtamisen jälkeen:
kirjoitta sconfig
Vaihda koneen nimi (ei välttämätön)
Verkkoasetukset
Bootin jälkeen domain liitos
loggaa domain tunnuksilla, jolla on myös local admin oikeuden ko. koneella
Konfiguroin etä ym. ominaisuudet
auto update
Asenna suositeltavat päivityksen manuaalisesti
Tämän jälkeen varmista vielä uudelleen sconfig valikon komennolla 6), että kaikki päivitykset on asennettu. Ajoin itse aivan kaikki, ennen kun käynnistin SQL Server asennuksen. En muista kokeilleeni erikseen, onnistuuko välttämättömillä päivityksillä täyttämään SQL server kriteelit
core asennuksessa – luultavimmin onnistuu, koska sp1 on 2008 R2:ssa se oleellisin päivitys. Muut vaatimus listalla ovat:
Tarkat kuvaukset vaatimuksista löytyy täältä:
http://msdn.microsoft.com/en-us/library/hh231669(v=SQL.110).aspx
DISM /online /enable-feature /featurename:NetFx2-ServerCore /featurename: ServerCore-WOW64 /featurename:NetFx3-ServerCore-WOW64 /featurename:NetFx2-ServerCore-WOW64 /featurename:NetFx3-ServerCore /featurename:MicrosoftWindowsPowerShell /featurename:MicrosoftPowerShell-WOW64
Asenna tämän jälkeen dotnetFx-Full_x86_x64_SC.exe /passive /promprestart
HUOM Netframework asennusmedian tiedostonimi tai tyyppi voi vaihdella riippuen latauspaikasta. Se voi olla esim *.ISO faili tms.
Konfiguroi palomuuri
@echo off
@echo This scripts sets the default firewall configurations for SQL Server components
echo.
echo Setting the core components for a database instance
echo Default Instance
netsh advfirewall firewall add rule name="SQLServer" dir=in action=allow protocol=TCP localport=1433 profile=DOMAIN
echo Dedicated Admin Connection
netsh advfirewall firewall add rule name="SQL DAC" dir=in action=allow protocol=TCP localport=1434 profile=DOMAIN
echo SQL Browser Service
netsh advfirewall firewall add rule name="SQL Browser" dir=in action=allow protocol=UDP localport=1434 profile=DOMAIN
echo Setting the core firewall rules for database mirroring, service broker, TSQL Debugger, Analysis services, Reporting Services
echo Mirroring EndPoint – CHANGE PORT NUMBER AS NEEDED depending on which role
netsh advfirewall firewall add rule name="Mirroring EndPoint" dir=in action=allow protocol=TCP localport=5022 profile=DOMAIN
echo Service Broker
netsh advfirewall firewall add rule name="SQL Service Broker" dir=in action=allow protocol=TCP localport=4022 profile=DOMAIN
echo Enable TSQL Debugger (uses RPC)
netsh advfirewall firewall add rule name="T-SQL Debugger" dir=in action=allow protocol=TCP localport=135 profile=DOMAIN
echo Browser service for Analysis Services
netsh advfirewall firewall add rule name="SQL Browser for Analysis Services" dir=in action=allow protocol=TCP localport=2382 profile=DOMAIN
echo Analysis services Default Instance
netsh advfirewall firewall add rule name="Analysis Services" dir=in action=allow protocol=TCP localport=2383 profile=DOMAIN
echo HTTP/HTTPS for reporting services
netsh advfirewall firewall add rule name="HTTP Reporting Services" dir=in action=allow protocol=TCP localport=80 profile=DOMAIN
netsh advfirewall firewall add rule name="HTTPS Reporting Services" dir=in action=allow protocol=TCP localport=443 profile=DOMAIN
Silent install:
Setup /Q /ACTION=install /INSTANCEID="MSSQLSERVER" /INSTANCENAME="MSSQLSERVER"
/IACCEPTSQLSERVERLICENSETERMS=1 /FEATURES=SQLEngine
/SQLSYSADMINACCOUNTS="firma\DomainAdmins" /BROWSERSVCSTARTUPTYPE=AUTOMATIC
/SECURITYMODE=SQL /SAPWD="BulevardiRul3z" /INDICATEPROGRESS=1
/TCPENABLED=1 /AGTSVCSTARTUPTYPE="Automatic"
http://msdn.microsoft.com/en-us/library/ms144259(SQL.110).aspx
tai tehcnet:
Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /IACCEPTSQLSERVERLICENSETERMS
Latasin SP 1:n iso failin ja asensin sen manuaalisesti. Sen jälkeen asennus toimi mukavasti tuolla edellisellä cmd line komennolla.
Ja asennuksen onnistumisen jälkeen toiselta koneelta saa yhteyden SQL Server Management Studiolla. Kuvassa SQL 2008 R2 Management Studio
Sharepoint 2010 autentikointia ajatellen identiteetinhallinta on järjestelmän näkökulmasta jakautunut kolmeen osaan. SharePoint 2010 alusta käsittelee identiteetit ‘sisään tulevina’ (incoming), ‘ulosmenevinä’ (outgoing) ja inter/intra-farmi autentikointeina.
Sisään tuleva Identiteetti (Incoming)
Tämä skenaario esittää skenaarion, jossa asiakasohjelma tai järjestelmä esittäytyy Sharepoint järjestelmälle – eli autentikoituu – websovelluksena tai webservicenä. SharePoint käyttää asiakasohjelman identiteettiä autorisointiin sen suojattuihin resursseihin, kuten web sivuihin, dokumentteihin jne.
SharePoint 2010 tukee kahta eri moodia asiakasohjelmien autentikoinnissa. Ne ovat ‘Classic’ ja ‘Claims Mode’.
Classic Mode
Classic mode mahdollistaa tyypillisen MS Internet Information Services (IIS) autentikaation, joka on tuttu edellisistä SharePoint versiostakin.Kun SharePoint 2010 on konfiguroitu ‘classic mode’ käyttöön, voidaan sitä laajentaa seuraavilla IIS autentikointi metodeilla:
Windows Integroitu autentikaatio
Windows integroitu autentikaatio mahdollistaa asiakassovellusten saumattoman autentikoitumiseen Sharepointin kanssa, ilman käyttäjätunnuksen ja salasanan kirjoitusta erikseen. Käyttäjien autentikointiin tarvittavat tiedot välitetään Internet Explorerin prosesseissa sen mukaan, millä tunnuksilla kukin käyttäjä on kirjautunut työasemaan. Palvelut tai sovellukset jotka käyttävät Sharepoint 2010 järjestelmää, yritetään tällä tavalla autentikoida käyttäen prosessin oletus identiteettinä tulevia tunnuksia, jotka on siis työasemaan kirjauduttaessa jo annettu.
NTLM
NT LAN Manager (NTLM) on Windows integroidun autentikoinnin oletus protokolla. Tämä protokolla laajentaa kolmiosoisen vaatimus-vastine (challenge-response) sarjan asiakassovellusten autentikoinniksi. Lisätietoja tästä löytyy saitilta Microsoft NTLM.
Edut:
– Yksinkertainen konfiguroida ja tyypillisesti ei vaadi mitään erityistä ympäristön tai infran konfiguraatioita toimiakseen.
– Toimii vaikka asiakassovellus ei olisikaan liitetty domainiin, ja vaikka domain luottamusta ei olisikaan domainiin missä SharePoint 2010 on.
Haitat:
– Vaatii SharePoint 2010 ottamaan yhteyden domainiin joka kerran kun asiakassovelluksen autentikaation vastine on varmistettava. Se aiheuttaa lisääntyvää kuormaa domain controlloreille.
– Ei mahdollista asiakassovellus delegointia login tunnuksille taustajärjestelmiin (esim. tietokanta). Tämä tunnetaan englanninkielen terminä ‘Double hop’
– Tämä on alkuperäinen – natiivi – protokolla
– Ei tue palvelin autentikaatiota
– Se on mielletty vähemmän turvalliseksi kun Kerberos autentikointi
Kerberos protokolla
Kerberos protokolla on suojattu protokolla, joka käyttää ‘tiketti’ autentikointia. Se myöntää tiketin vastineeksi asiakassovelluksen autentikaaatio pyynnölle ,jos pyyntö sisältää oikeat tunnukset ja oikean ‘Service Principal Name’:n (SPN). Tämän jälkeen asiakassovellus on oikeutettu verkkoresurssien käyttöön. Kerberos autentikaation käyttö vaatii asiakas- ja palvelin luottosuhteen avain jakeluun (Key Distribution Center eli KDC). Tämä KDC jakaa salatut avaimet, jotka tarvitaan salaukseen ja sen purkuun. Asiakas- ja Palvelin koneille on myös oltava Active Directory palvelut käytössään. Forest rootti domain on Kerberos autentikoinneissa oleellinen osa, josta lisätietoja löytyy saitilta: How the Kerberos Version 5 Authentication Protocol Works ja Microsoft Kerberos.
Edut:
· Kaikkein turvallisin Windows integroitu autentikointi protokolla.
· Sallii asiakassovellusten tunnuksien delegoinnin
· Tukee molemminpuolista autentikointia asiakassovellusten ja palvelinten välillä.
· Aiheuttaa vähiten liikennettä ja kuormaa domain controllereilla
· Avoin protokolla, jota tuetaan monissa eri ympäristöissä ja monien toimittajien kautta
Haitat:
· Vaatii konfigurointia ympäristöön ja infraan toimiakseen kunnolla.
· Vaatii asiakassovelluksilta yhteyden KDC:hen (Active Directory domain controller Windows ympäristöissä) TCP/UDP porttista 88 (Kerberos), ja TCP/UDP portista 464 (Kerberos salasanan viahto – Windows)
SQL Server Reporting Services ei tue ‘Claims based’ autentikointia
Seuraavat sovellukset/palvelut vaativat C2WTS ja Kerberos riippuvuus delegoinnin:
· Excel Services
· PerformancePoint Services
· InfoPath Forms Services
· Visio Services
Seuraavat sovellukset/palvelut eivät ole riippuvaisia näistä vaatimuksista. Ne voivat käyttää perus delegointia tarvittaessa:
· Business Data Connectivity service and Microsoft Business Connectivity Services
· Access Services
· Microsoft SQL Server Reporting Services (SSRS)
· Microsoft Project Server 2010
Ainoana tämän hetken sovelluksen/palveluna joka ei ole riippuvainen mistään näistä vaatimuksista, koska delegointi ei ole lainkaan sallittu:
· Microsoft SQL Server PowerPivot for Microsoft SharePoint
Identiteetti ulospäin (Outgoing)
Ulospäin käytetty identiteetti on kuvattu dokumentissa SP2010 Kerberos Guide, joka löytyy Microsoft technet ja MSDN saiteilta (linkit ovat mainittu aikaisemmin tässä dokumentissa ja tässä alla).
Lisätietoja autentikoinnista löytyy seuraavista lähteistä:
Kerberos guide Sharepointtiin:
Erittäin hyvä Kerberos tietolähde.
http://social.technet.microsoft.com/wiki/contents/articles/kerberos-survival-guide.aspx
Kerberos windows 2003 serverissä:
http://social.technet.microsoft.com/wiki/contents/articles/kerberos-interoperability-step-by-step-guide-for-windows-server-2003.aspx
MSDN kerberos ohjeet:
Yleinen kuvaus prosessimaisesti:
Liiketoimintatarpeiden määritykset
Tämä on kaiken perusta. Liiketoiminta vaatimukset ja niiden lisäarvo ohjaa päätöksiä kaikilla kolmella osuudella. Nämä vaikuttavat rajauksiin ja suunnitelmiin.
Dataprofiili raportit
Profilointi auttaa huomattavasti mallinnuksessa. Se tarkoittaa käytännössä kantaa tutustumista, johon helposti kuluu huomattavasti aikaa ’käsipelillä’
Liiketoimintaprosessien mukainen dimensionaalinen malli
Dimensionaalinen mallinnus Excell illä tarkoittaa lähde ja kohdetaulujen datan ja kenttien mäppäystä, sekä tietotyyppien tilantarpeen laskentaa. Lisäksi sen perusteella saadaan kannan luontilause. Tästä luetaan mallinnusvälineeseen (Visio, ErWin jne.) kuvaus dokumentointia ja ylläpitoa varten.
Nimeämiskäytännöt
On olemassa erilaisia nimeamiskäytäntöstandardeja ja ehdotamme käytettäväksi organisaation normaalinkäytännön mukaisia nimiä. Jos on tarpeen, otetaan käyttöön esimerkiksi seuraavan lainen jota sovelletaan tarpeen mukaan:
Dim_Customer
Fact_Sales
Idx_pk_Fact_Sales
Idx_Dim_Customer
Relaatiokannan fyysinen malli
Luo skripti mallinnusvälineillä tai käsin. Skriptissä on oltava partitionti ja sen elinkaarenhallinta. Toisin sanoen uusien partitioiden luonti lennossa tai etukäteen niin paljon partitioita, että ne riittävät halutulle ajanjaksolle (esim. 5 vuotta)
ETL prosessien suunnittelu ja toteutus
Dokumentissani ja tässä blogissa toisaalla ’invenco ETL_Specification Methodology ToC’ löytyy kuvaus ETL prosessien määrityksistä siinä muodossa, kun suosittelemme sitä käytettäväksi
SCD – hitaasti muuttuvat dimensiot
Hitaasti muuttuvien dimensioiden käsittelyt voidaan jakaa kahteen päätyyppiin. Nämä ovat yleisesti tunnettu Type1 ja Type 2 nimillä. Lisäksi on olemassa rajoitettu historiointi vaihtoehto, jossa nämä yhdistetään ja sitä kutsutaan Type 3:ksi. Joskus kuulee käytettävän vielä Type 0 nimitystä, mutta tämä tarkoittaa yksinkertaisesti, ettei muutosta käsitellä mitenkään. Tietoja ei myöskään silloin muuteta. Viimeisenä voidaan mainita Type 4, jolla tarkoitetaan historiataulua. Se on kokonaan uusi taulu.
Tyyppi 1
Tässä tapauksessa tietoja ei historioida lainkaan, vaan uusi tieto korvaa aiemman.
Esimerkiksi:
Supplier_Key |
Supplier_Code |
Supplier_Name |
Supplier_State |
123 |
ABC |
Acme Supply Co |
CA |
Muuttuu uuden tiedon saapuessa:
Supplier_Key |
Supplier_Code |
Supplier_Name |
Supplier_State |
123 |
ABC |
Acme Supply Co |
IL |
Tyyppi 2
Tässä tapauksessa toteutuu täysi historiointi lisäämällä uusi rivi, kun historioitava tieto muuttuu. Kullakin rivillä tulee olemaan sama luonnollinen avain ja uudelle riville muodostetaan uusi synteettinen avain (surrogaatti)
Supplier_Key |
Supplier_Code |
Supplier_Name |
Supplier_State |
Version |
123 |
ABC |
Acme Supply Co |
CA |
0 |
124 |
ABC |
Acme Supply Co |
IL |
1 |
Usein käytetty tapa on lisätä muuttuneen tiedon mukaan muutos pvm, jonka käyttöä on syytä välttää todella suurissa dimensiotauluissa. Varsinkin jos käytössä ei ole tehokkaita pakkaus tekniikoita.
Supplier_Key |
Supplier_Code |
Supplier_Name |
Supplier_State |
Start_Date |
End_Date |
123 |
ABC |
Acme Supply Co |
CA |
01-Jan-2000 |
21-Dec-2004 |
124 |
ABC |
Acme Supply Co |
IL |
22-Dec-2004 |
Tyyppi 3
Tässä tapauksessa käytetään rajoitettua historiointia lisäämällä ennalta sovittu määrä sarakkeita tauluun ilmaisemaan muutamia kertoja muuttuvia historiointeja. Tämä soveltuu erityisen hyvin tapauksiin, joissa tiedetään ettei seuranta/raportointi jaksolla tule koskaan kun muutamia muutoksia ko. tietoihin. Haittapuolena on mahdollisesti hankala toteutustapa.
Supplier_Key |
Supplier_Code |
Supplier_Name |
Original_Supplier_State |
Effective_Date |
Current_Supplier_State |
123 |
ABC |
Acme Supply Co |
CA |
22-Dec-2004 |
IL |
Tyyppi 4
Tämä on kaikessa yksinkertaisuudessaan uuden taulun luonti. Tämä voi soveltua esimerkiksi vanhoille osoitteille tai postinumeropille. Kankein, mutta joskus erittäin helppo ja käyttökelpoinen tapa.
Analysis services kannan mallinnus ja toteutus
Analysis services kanta Visual studiossa
Kuution kantamalli.
’Solution explorer’ visual studion työtilan tiedostot.
Dimensioiden ja faktojen käyttö.
Laskennalliset mittarit.
MDS masterdata malli
MDS on Microsoft SQL server optio ja termi on yksinomaan MS tuotteiden yhteydessä käytetty nimitys, joka tarkoittaa Microsoft SQL Server masterdata services toiminnallisuutta.
Esimerkin Tuotekategoria malli ja hierarkiat
• Malli luodaan kunkin raportointijärjestelmän tarpeen mukaan tiedoilla, jotka saadaan aihealueen tarpeista.
• Kaikkien dimensio taulujen master mallit muodostuvat kyseisen aihealueen (datamart) mallinnuksessa ja ETL prosessien toteutuksen ja suunnittelun aikana.
• Oleellista on se, että malli on oltava jaettavissa muiden – myös operatiivisten – kanssa.
• Lisäksi Master data strategia on suunniteltava. Se kertoo tavan millä Etl prosessit, joko käyttävät MDS dataa lähteenä tai käyttävät sitä ns. lookup lähteenä tietojen tarkistuksessa.
• Tämä kokonaisuus ei yleensä kuulu BI projektiin.
• Vain tämän BI projektin aihealueen osalta se kuuluu mukaan
Trendit – ja pitkänaikavälin epäsäännöllisyys
Pitkillä aikaväleillä trendilaskenta tulisi olla suoraviivaista historiaan perustuvaa ’keskiarvo’ laskentaa
Jos tämä ei ole mahdollista on kehitettävä ’jyvitys’ algoritmi huolellisesti, koska tämä vastaa todellisuutta
· Kk, kvartaali, vuosijako
· Erilaiset painotukset
· Ennustus
BI sovellus Reporting servicesissä
Reporting services raportit tehdään report builderilla tai visual studiossa (BIDS)
Esimerkki on BIDS – eli SQL Server kehitysympäristö – Visual Studio
Powerpivot ja Excel mallit
Powerpivot data.
Powerpivot ’faktaa’.
Powerpivot dimensiodataa.
Powerpivot raportti, joka voidaan vielä viimeistellä ’nätimmäksi’ julkaisua varten esim SharePoint 2010 saitille.
BI portaali ja SharePoint
Asennus ja konfigurointi Microsoft oheistuksen mukaan. Lisäksi Sharpoint saittin (WSP) ’solution’ tiedosto on aktivoitava Sharpointissa tai käytetään olemassa olevia paketteja, kuten BI Site collection solution.
MS Ohjeistuksen lisäksi on syytä tehdä alla olevien pohjien mukaiset valmistelut ja dokumentointi, joka toimitetaan Invenco BI projektin aikana malliksi Sharepoint tiimille.
Kuvaus muutamista dokumenteista jotka on hyvä toimittaa joka tapauksessa tiimille ja asiakkaalle.
Tietoturva suunnittelu ja toteutus
Harvoin mikään excel dokumentti pystyy kuvaamaan tietoturvaa tai käyttöoikeuksia kyllin hyvin. Siksi kannattaa muotoilla mahdollisimman selkeä kuvaus tämän mallin mukaisesti, siitä mitä tietoja kullekkin käyttäjälle tai ryhmälle saa näkyä. Tämä myös siksi, että varsinainen autorisointi tehdään ns. muualla kun kannassa. Tämä ’muualla’ on yleensä Active Directory tai LDAP. Sen sääntöjen mukaanhan data saa näkyä käyttäjille. Kaikki erikoisuudet, kuten oma autorisointi kannoissa on vastoin yleisiä tietoturva käytäntöjä ja sellaiset jäävät hyvin nopeasti jälkeen normaalissa tietosuoja ylläpidossa.
Metadata suunnitelma
Jos päätetään toteuttaa varsinainen metadata kanta, on sen tekoon valmiina kanta skriptit ja lataus proseduurit. Kuva niistä tässä malliksi.
Lisäksi esimerkki metadata ’browser’ raportit toteutettuna visual studiolla. Esimerkki on erittäin hyvä Kimball malli ja toimitetaan Datawarehouse toolkitin mukana.
Jos päätetään toteuttaa varsinainen metadata kanta, on sen tekoon valmiina kanta skriptit ja lataus proseduurit. Kuva niistä tässä malliksi.
Ylläolevat raporttipohjat tässä vielä Visual Studio työtilassa.
ETL:stä RS linkki raportointiautomaatioon
Kuva1 – Orders Data Load Complete ajastusksen ominaisuudet SQL Server Management Studio:ssa
Kuva2 – Raportin tilaus (subscription) Orders Data Load Complete ajastuksessa