SPREMLJANJE GLEDANOSTI TELEVIZIJSKIH VSEBIN S POMOČJO ORODIJ POSLOVNEGA POROČANJA

Podobni dokumenti
PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

Chapter 1

Event name or presentation title

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje

Darko Pevec 1.a Informatika

BDV-N890W/BDV-N790W

Microsoft Word - M docx

Diapozitiv 1

Microsoft Word - CNR-MPV2 Quick Guide_SI

Cenik Cenik paketov, ki niso več v prodaji Skupine Telemach Paketi Analogni Dvojčki (paketi niso več v prodaji) Mesečna naročnina v EUR DUO INT S....2

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Microsoft Word - Dokument1

Podatkovni model ER

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

Slide 1

PowerPoint Presentation

TNUV Lab

DES

Macoma katalog copy

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

D3 V2 brosura net

Microsoft Word - CN-BTU4 Quick Guide_SI

MIX OSO Pivka_mail

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

PKP projekt SMART WaterNet_Opis

ADSL trojcek brosura_mail

TNUV Lab5

Uradni list RS - 12(71)/2005, Mednarodne pogodbe

Microsoft PowerPoint - Sequi_SecDAy.ppt

(Microsoft Word - U\350enje telegrafije po Kochovi metodi.doc)

NETGEAR R6100 WiFi Router Installation Guide

PowerApps

Navodila za dostavo oglasnih materialov na TV Slovenija Marec 2017

Cenik storitev KRS Analogna televizija Mesečna naročnina za paket * Cena / mesec Osnovna zelena KTV naročnina 16,53 Osnovna zelena KTV naročnina-nekod

Microsoft Word - CNC obdelava kazalo vsebine.doc

Postavka Naziv storitve Enota mere Cenik velja od dalje. Cena v EUR brez davka z davkom Stopnja davka 1. Poslovni paketi in dodatne storitv

Slide 1

Modem in krajevno omrežje Uporabniški priročnik

Navodila za uporabo Mini prenosna HD kamera s snemalnikom

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

PowerPointova predstavitev

PowerPointova predstavitev

innbox_f60_navodila.indd

Microsoft PowerPoint - ads

PowerPoint Presentation

INFORMACIJSKO KOMUNIKACIJSKE TEHNOLOGIJE ŠTUDIJ INFORMACIJSKO KOMUNIKACIJSKIH TEHNOLOGIJ

Microsoft Word - Dokument1

OBVESTILO O GRADNJI IN OBRATOVANJU JAVNEGA TELEKOMUNIKACIJSKEGA OMREŽJA

UPRAVLJANJE RAZPRŠENIH PODATKOV Shranjevanje, zaščita in vzdrževanje informacij, ki jih najbolj potrebujete

Kratka navodila za uporabo razširjevalnika dosega WiFi AC750 model EX3800

Najboljša skupaj Kontrola pristopa + registracija delovnega časa

DTV izobrazevalna julij_mail

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n

Orodje za izvoz podatkov

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Elektronska pošta

DVD

Navodila za uporabo Mini snemalnik

Delavnica Načrtovanje digitalnih vezij

Style Sample for C&N Word Style Sheet

Spoznajmo PowerPoint 2013

Cenik storitev KRS Analogna televizija Mesečna naročnina za paket * Cena / mesec Osnovna zelena KTV naročnina 16,53 Osnovna zelena KTV naročnina-nekod

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

D3GO brosura julij_mail

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

PowerPointova predstavitev

PowerPoint Presentation

Strojna oprema

Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavč

Microsoft PowerPoint - 07-bostjan_tavcar.ppt

an-01-sl-Temperaturni_zapisovalnik_podatkov_Tempmate.-S1.docx

(Microsoft PowerPoint - Milan Ojster\232ek_IJU2014)

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

INFORMATOR BIROKRAT 1/2011

Untitled 2

NETGEAR R6250 Smart WiFi Router Installation Guide

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik

Področje uporabe

Diplomsko delo visokošolskega strokovnega študija Informatika v organizaciji in managementu OBDELAVA IN PRIPRAVA PODATKOVNE KOCKE OLAP Mentor: izr. pr

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Microsoft Word - Jug diploma-lektorirana

NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta

Microsoft PowerPoint - p_TK_inzeniring_1_dan_v5_shortTS.ppt [Compatibility Mode]

Folie 1

DSI 2019

Microsoft Word - M _mod..docx

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

User Manual

12_Video_TV

Diapozitiv 1

Microsoft Exchange 2013

IZJAVA O ZASEBNOSTI Sistem ena d.o.o. se zavezuje, da bo varoval osebne podatke kupcev, na način, da zbira samo nujne, osnovne podatke o kupcih / upor

Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

PowerPointova predstavitev

Transkripcija:

Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija Janja Kolarič SPREMLJANJE GLEDANOSTI TELEVIZIJSKIH VSEBIN S POMOČJO ORODIJ POSLOVNEGA POROČANJA Diplomsko delo Maribor, september 2014

SPREMLJANJE GLEDANOSTI TELEVIZIJSKIH VSEBIN S POMOČJO ORODIJ POSLOVNEGA POROČANJA Diplomsko delo Študentka: Študijski program: Smer: Mentor: Lektorici: Janja Kolarič Visokošolski študijski program Informatika in tehnologije komuniciranja Sistemska podpora informatiki in tehnologijam komuniciranja doc. dr. Marko Hölbl, univ. dipl. inž. rač. in inf. Bruna Fekonja, prof. ang. in Bojana Samarin, prof. slov.

ZAHVALA Iskreno se zahvaljujem mentorju doc. dr. Marku Hölblu ter mentorjema v telekomunikacijskem podjetju Amis, d. o. o., Mateju Golobu in Janezu Hrastniku za vso pomoč pri pisanju diplomskega dela in za omogočen dostop do podatkov podjetja. Posebno zahvalo namenjam svoji družini, ki mi je omogočila študij in mi stala ob strani. ii

SPREMLJANJE GLEDANOSTI TELEVIZIJSKIH VSEBIN S POMOČJO ORODIJ POSLOVNEGA POROČANJA Ključne besede: internetna televizija, video na zahtevo, ETL, dimenzijski model, podatkovno skladišče. UDK: 621.397.13(043.2) Povzetek V diplomskem delu so predstavljeni načrtovanje, izgradnja podatkovnega skladišča ter uporaba podatkov vsebin internetne televizije na prenosnikih, pametnih telefonih in tablicah. V uvodnem delu so predstavljene internetna televizija in njene sorodne storitve. Osrednji predmeti dela so prikaz pridobivanja in obdelave podatkov za internetno televizijo, izgradnja podatkovnega skladišča ter uporaba pridobljenih podatkov. Predstavljena so programska orodja in orodja za poslovno poročanje, ki nam pomagajo pri obdelavi in uporabi pridobljenih podatkov. iii

ANALYSIS OF TV CONTENT VIEWERSHIP USING BUSINESS INTELLIGENCE TOOLS Key words: Internet Television, Video on Demand, ETL, dimensional model, data warehouse. UDK: 621.397.13(043.2) Abstract The thesis presents the process of designing and creating the data warehouse, and the use of the data about the content of Internet television on laptops, smart phones and tablets. The introductory part presents Internet TV and its related services. In the main part of the thesis, the focus is on demonstrating the Internet television data acquisition and the processing of the same data, the data warehouse creating and the use of the data obtained. We will present some software tools and business intelligence tools, which help us with the processing and using the obtained data. iv

KAZALO VSEBINE 1 UVOD... 1 2 INTERNETNA TELEVIZIJA... 2 2.1 Tehnologije internetne televizije... 2 2.2 VoD... 3 2.3 Format MPEG-4... 4 2.4 Sorodne storitve... 5 3 PODATKOVNO SKLADIŠČE... 10 3.1 Microsoft SQL Server... 11 3.1.1 SSIS... 12 3.1.2 SSAS... 13 3.1.3 SSRS... 13 3.2 Modeliranje podatkov... 14 3.3 Polnjenje podatkovnega skladišča... 15 3.4 Poslovno obveščanje... 17 4 SPREMLJANJE GLEDANOSTI TV VSEBIN... 18 4.1 Transformacija log datotek... 18 4.2 Izdelava dimenzijskega modela... 26 4.3 Analiza podatkov... 32 4.3.1 Analiza s SQL-povpraševanjem... 33 4.3.2 Analiza z Excelovo datoteko... 34 5 SKLEP... 39 6 LITERATURA... 40 7 PRILOGE... 42 v

KAZALO SLIK Slika 2.1: Arhitektura DVB-T [11]... 6 Slika 2.2: VoD-hierarhija... 9 Slika 3.1: Podatkovno skladišče [23]... 11 Slika 3.2: Dvodimenzionalna tabela... 15 Slika 3.3: Arhitektura ETL-procesa [31]... 16 Slika 4.1: Zapisovanje log datotek... 18 Slika 4.2: Control Flow... 21 Slika 4.3: Data Flow... 22 Slika 4.4: Podatki za EPG... 24 Slika 4.5: Izsek iz lokalne baze... 25 Slika 4.6: Združitev tabel za EPG... 28 Slika 4.7: EPG-podatki... 28 Slika 4.8: Dimenzijski model... 30 Slika 4.9: Model OLAP-kocke... 32 Slika 4.10: Delež gledanosti z enega IP-naslova... 34 Slika 4.11: Delež dnevnega zapisa kanalov... 35 Slika 4.12: Razmerje gledanosti TimeShift in LiveTV... 37 KAZALO TABEL Tabela 3.1: Lastnosti podatkovnih modelov [29]... 14 Tabela 4.1: Prikaz vrednosti atributov... 25 Tabela 4.2: Dolžina dnevnega gledanja z enega IP-naslova... 34 Tabela 4.3: Število zapisov kanalov v enem dnevu... 35 Tabela 4.4: Razmerje med gledanostjo TimeShift in LiveTV... 38 vi

KAZALO IZVORNE KODE Izvorna koda 4.1: Brisanje baze, če vsebuje podatke... 21 Izvorna koda 4.2: Podatki v lokalni bazi... 24 Izvorna koda 4.3: Pogled za uporabnika... 26 Izvorna koda 4.4: Pogled za datum_cas... 26 Izvorna koda 4.5: Pogled za ts/live... 26 Izvorna koda 4.6: Pogled za drzava... 26 Izvorna koda 4.7: Pogled za kanal... 26 Izvorna koda 4.8: Pogled za status_code... 27 Izvorna koda 4.9: Združitev tabel za EPG... 27 Izvorna koda 4.10: Povpraševanje za tabelo dejstev... 29 Izvorna koda 4.11: Sintaksa zapisa za izračun dolžine gledanja... 30 Izvorna koda 4.12: Sintaksa zapisa za LiveTV in TimeShift... 31 Izvorna koda 4.13: Povpraševanje za dnevno gledanje kanalov... 33 vii

UPORABLJENE KRATICE OLAP On Line Analytical Processing SQL Structured Query Language VoD Video on Demand STB Set Top Box IP Internet Protocol CRM Customer Relationship Management SSIS SQL Server Integration Services SSAS SQL Server Analysis Services SSRS SQL Server Reporting Services ETL Extraction, Transformation, Loading DW Data warehouse HbbTV Hybrid Broadcast Broadband TV P2P Peer to Peer DRM Digital Rights Management HTTP Hypertext Transfer Protocol AVOD Audio and Video on Demand RTSP Real Time streaming protocol MPEG Moving Picture Experts Group AVC Advanced Video Coding DVB Digital Video Broadcasting DVB-T Digital Video Broadcasting Terrestrial DVB-S Digital Video Broadcasting Satellite MCPC Multiple Channel Per Carrier SCPC Single Channel Per Carrier DVB-S2 Digital Video Broadcasting Satellite Second Generation DVB- DSNG Digital Satellite News Gathering LDPC Low-density Parity check VMC Variable Coding and Modulation ACM Adaptive Coding and Modulation DVB-C Digital Video Broadcasting Cable viii

EPG HDTV DVB-C2 DVB-H OFDM IP-TV LAN RAM DTV MMDS T-SQL MDX XML ERP Electronic program guide High-definition television Digital Video Broadcasting Cable Second Generation Digital Video Broadcasting Handheld Orthogonal Frequency Division Multiplex Internet Protocol Television Local Area Network Random-access memory Digital television Multichannel Multipoint Distribution Service Transact-SQL Multi-dimensional expression Extensible Markup Language Enterprise resource planning ix

1 UVOD Uporabnikov telekomunikacijskih storitev je vedno več, s čimer pa se tudi vse bolj uveljavljajo omrežja za izmenjavo podatkov med uporabniki [1]. To se predvsem kaže pri internetni televiziji, kjer se vsakodnevno prenese velika količina podatkov za uporabnikove potrebe. S pomočjo izgradnje podatkovnega skladišča (angl. Data warehouse DW) bomo pridobljene podatke obdelali in jih z izvedeno analizo predstavili na uporabnikom razumljiv način. V diplomskem delu se bomo osredotočili na populacijsko gledanost televizijskih programov. Pridobljene podatke bomo najprej dobro proučili, da pridobimo nam pomembne informacije. Šele nato bo sledilo načrtovanje dimenzijskega modela, kjer bomo zbirali pomembne podatke. Pri raziskavi in izdelavi podatkovnega skladišča se bomo omejili na obstoječe uporabnike izbranega ponudnika internetne televizije. Prav tako so ti podatki o uporabnikih anonimizirani in niso povezani s sistemom za upravljanje odnosov s strankami (angl. Customer Relationship Management CRM) [2]. Uvodni del sestavljata predstavitev internetne televizije, njenih lastnosti in formata za spremljanje internetne televizije ter opis njenih sorodnih storitev. V tem delu se bomo seznanili z razlikami med različnimi sorodnimi storitvami, ki jih ponujajo različni ponudniki telekomunikacijskih storitev. Obravnavali bomo tudi najpogostejše, najzanimivejše informacije o internetni televiziji, in o tem, kaj uporabniki gledajo, ter časovne podatke o gledanju televizijskih programov (kdaj in koliko časa). V osrednjem delu se bomo osredotočili na samo izgradnjo podatkovnega skladišča, pridobivanje podatkov in proces njihove obdelave. Spoznali bomo določeno orodje za izgradnjo podatkovnega skladišča in njegove storitve, ki so uporabljene za obdelavo podatkov. 1

Cilj diplomskega dela je izgradnja podatkovnega skladišča in sistema za poslovno poročanje za potrebe internetne televizije. Pridobljene podatke bomo analizirali in jih predstavili na razumljiv način s pomočjo Excelove datoteke. Iz primerno zastavljenih vprašanj bomo odgovore predstavili v slikovni in tabelarični obliki. 2 INTERNETNA TELEVIZIJA Internetna televizija (angl. Internet television) [3] je storitev nove generacije, ki naročnikom omogoča ogled vsebin, neodvisno od naprave in lokacije. Televizijske vsebine je možno spremljati na računalniku, tablici ali pametnem telefonu, ne le prek televizorja. Je distribucija televizijskih vsebin prek interneta kot oblika videa na zahtevo (angl. Video on Demand - VoD) [4]. Za internetno televizijo potrebujemo le dostop do interneta in povezavo s svojim uporabniškim računom za gledanje vsebine. Gledanost programov oziroma to, katere programe je uporabnik ali večinska populacija gledala in na kateri napravi, se sproti beleži na strežnik kot oblika zapisa v datoteko s končnico.log. S temi podatki imamo evidenco nad vsebino in časom odjemanja uporabnikovega zahtevka. Vsakdo lahko sprejema internetno televizijo, po navadi brezplačno. V Sloveniji imamo na voljo videoportale, kot so: Kanal A/Pop TV, RTV, Mobia TV, VOYO, TviN, internettv idr. 2.1 Tehnologije internetne televizije 2

Konzorcij podjetij HbbTV (angl. Hybrid Broadcast Broadband TV), kot so SES, Philips in drugi, promovirajo in ustanavljajo odprt evropski standard hibridnih sprejemnikov za sprejem širokopasovne digitalne televizije in multimedijskih aplikacij z enotnega uporabniškega vmesnika. Trenutno ponudniki internetne televizije uporabljajo različne tehnologije, da lahko ponudijo storitve, kot so P2P (angl. Peer-to-Peer), VoD-sistemi in oddajanje v živo. V mnoge storitve je prav tako vključen DRM (angl. Digital Rights Management), da prepreči kopiranje vsebin. Tuji ponudniki internetne televizije so: Youtube, Hulu, Netflix idr. Internetna televizija je na voljo na vseh pomembnejših operacijskih sistemih. Nekateri ponudniki so predvajalnike razširili tudi na igralne konzole, kot so Microsoft Xbox 360, Nintendo Wii, Play Station [5]. Kakovost se nanaša na kakovost video in avdio vsebin od strežnika oziroma ponudnika do uporabnikovega domačega zaslona. Video višje kakovosti (kot je 720p+) zahteva višjo pasovno širino in hitrejše internetne priključke. Sprejemljiva hitrost internetnega priključka, da lahko podpira video visoke kakovosti, zakodirane s H.264, je 3500 kbit/s, kjer je za video standardne kakovosti dovolj že 500 1500 kbit/s, odvisno od ločljivosti zaslona. 2.2 VoD VoD ali avdio in video na zahtevo (angl. Audio and Video on Demand AVOD) je predvajanje vsebine v realnem oziroma sedanjem času (angl. Live TV) ali predvajanje vsebine s časovnim zamikom (angl. Timeshift). Ponovno lahko gledamo TV-vsebine (angl. Catch up TV ali Replay TV), saj so vsebine na voljo za obdobje več dni nazaj po prvotnem 3

predvajanju [6]. Prenos in pretok videa na zahtevo zagotavlja uporabniku veliko funkcionalnosti, kot so: pavza, previjanje hitro/počasi naprej, previjanje hitro/počasi nazaj, predvajaj/ustavi, predvajaj od začetka. Koliko funkcionalnosti ima VoD, je odvisno od ponudnika internetne televizije. Podatki posameznega zahtevanega videa se prenašajo prek RTSP (angl. Real Time streaming protocol), ki je aplikacijski protokol za prenos podatkov v realnem času. Namenjen je za vzpostavitev in nadzor nosilcev seje med začetno in končno točko. Prva VoD-storitev je bila v Hongkongu leta 1990 [4]. 2.3 Format MPEG-4 MPEG-4 je najnovejša zvokovna in slikovna kompresijska metoda, ki jo je standardiziral MPEG-odbor (angl. Moving Picture Experts Group), skupina znotraj ISO-organizacije (angl. International Organization for Standardization), ki je določila tudi zmagovalna Emmy Award standarda, znana kot MPEG-1 in MPEG-2. MPEG-4 je bil načrtovan posebej za nizkoprepustna omrežja (manj kot 1,5 MBit/sec). Je rezultat dela na stotine mednarodnih raziskovalcev in inženirjev, njegov uradni naziv pa je ISO/IEC 14496. Dokončan je bil oktobra 1998, mednarodni standard pa je postal leta 1999 [7]. Sestavljen je iz tesno povezanih, toda ločenih delov, ki se jih lahko implementira ločeno (MPEG-4 avdio lahko deluje tudi sam). Iz tega sledi, da MPEG-4 za razliko od predhodnikov MPEG-1 in MPEG-2 ni enoten kodirni mehanizem, temveč skupina več kodirnih mehanizmov zvoka in slike z enakimi ali podobnimi lastnostmi. Te imenujemo 4

profili ali plasti v kompresijski shemi MPEG-4. Vsaka od teh plasti mora biti združljiva za nazaj s starejšimi, nižjimi verzijami MPEG-4 v smislu predvajalnih sposobnosti. MPEG-4- odbor je standardiziral več plasti, najpomembnejše pa so: H.263+ (veliko se uporablja na mobilnih telefonih, imenuje se 3GP), H.264, ki se imenuje AVC (angl. Advanced Video Coding). H.264 je videokompresijski format, ki je trenutno najbolj uporabljan format za shranjevanje, kompresijo in distribucijo video vsebin. Zadnji popravki prve verzije so bili zaključeni maja 2003, vendar je bilo veliko dodatnih funkcij in razširitev dodanih v naslednjih verzijah. MPEG-4 vsebuje patentirane tehnologije, katerih uporaba zahteva licenco v državah, ki upoštevajo patente programskih algoritmov. MPEG-4 se uporablja na mnogo področjih, nekaj najbolj tipičnih pa je: televizija nadomešča MPEG-2, ki ne omogoča zadostne kompresije za prenos na stotine programov v visoki ločljivosti, IP-televizija (angl. Internet Protocol) manjši prenos na račun dobrega kodirnika omogoča storitve, kot so VoD, mobilne komunikacije in zabava profilni video MPEG-4 je del 3Gstandarda že od leta 2001 in omogoča dvosmerno videokomunikacijo, videokonference vsi večji proizvajalci opreme za videokonference so prepoznali potencial MPEG-4 in vgradili podporo temu v svoje naprave, snemalne kamere omogočajo shranjevanje večjega števila visokokakovostnih posnetkov na isti medij, satelitski radio uporaba zvočnega kodeka MPEG-4 AAC omogoča zasedanje manjše pasovne širine posameznega radia, varnost shranjevanje posnetkov višje kakovosti omogoča boljši pregled dogodkov, ki so se posneli v arhiv [8]. 2.4 Sorodne storitve 5

DVB (angl. Digital Video Broadcasting) je digitalno oddajanje televizije, ki nadomešča analogno oddajanje. Digitalna televizija ima visoko ločljivost in veliko možnih različnih kanalov za prenos podatkov, s tem da analogno oddajanje nima potrebnih zmogljivosti za to [9]. Imamo več različnih načinov digitalnega oddajanja televizijskih vsebin, ki smo jih opisali v naslednjih točkah: 1. DVB-T DVB-T (angl. Digital Video Broadcasting - Terrestrial) je digitalna prizemeljska televizija, na katero smo v Sloveniji prešli s 1. decembrom 2010 [10]. Omogoča nam prenašanje stisnjenega digitalnega zvoka, digitalnega videa in drugih podatkov v toku MPEG. DVB-T je platforma, kjer oddajamo z visoko ločljivostjo. Za sprejem DVB-T je v Sloveniji potrebna podpora za standard kodiranja MPEG -4 (AVC oziroma H.264 za sliko in AAC za zvok), s tem pa tudi DVB-T-dekodirnik oziroma Set-Top Box. Druga oprema je lahko enaka kot za sprejem analogne televizije, vključno z anteno (Slika 2.1). Slika 2.1: Arhitektura DVB-T [11] Z novo tehnologijo smo gledalci televizijskih vsebin pridobili: 6

boljšo kakovost sprejema slike in zvoka, možnost širokozaslonskega formata v razmerju 16 : 9 (prej 4 : 3), več možnih televizijskih in radijskih vsebin, možnost novih storitev za ljudi s posebnimi potrebami in starejše ljudi, izboljšane dodatne storitve (uporabniški vmesnik, jezikovni dodatki, podnapisi, nastavljive velikosti ter posebni znaki), možnost združene ponudbe televizije, telefonije in interneta, vsebine na zahtevo (plačljive vsebine) [11]. 2. DVB-S DVB-S (angl. Digital Video Broadcasting - Satellite) je digitalna satelitska televizija. Zelo je podobna tehnologiji DVB-T. Obe za delovanje potrebujeta oddajnik, kjer se skupek signalov pošlje na anteno z enim ali več odzivniki. Oddajanje satelitske televizije je možno na razdalji 35.000 kilometrov [12]. Uporablja se na več kanalih MCPC (angl. Multiple Channel Per Carrier) in na enem kanalu SCPC (angl. Single Channel Per Carrier). Nova generacija digitalne satelistke televizije je DVB-S2 (angl. Digital Video Broadcasting Satellite Second Generation). Temelji na standardu DVB-DSNG (angl. Digital Satellite News Gathering), uporabljenem z mobilnimi enotami, ki se uporabljajo za pošiljanje videov nazaj na televizijske postaje. K digitalni satelitski televiziji nove generacije sta bile dodani dve lastnosti: močan kodirni sistem, ki temelji na moderni LDPC-kodi (angl. Low-density Paritycheck), VMC (angl. Variable Coding and Modulation) in ACM (angl. Adaptive Coding and Modulation), ki omogočata optimalno uporabo pasovne širine z dinamičnim spreminjanjem parametrov prenosa [13]. 3. DVB-C DVB-C (angl. Digital Video Broadcasting - Cable) je digitalni prenos vsebin prek kabelskega sistema. Sistem prenaša zvok in sliko. Signal prek kabelskega sistema je kodiran v MPEG-2 ali MPEG-4 in uporablja QAM-modulacijo. Prednosti sta boljši 7

frekvenčni spekter in kakovostnejša slika. Programi se od kabelskega ponudnika prenašajo kodirano po kablu, lahko tudi nekodirano. Zraven televizijskih programov se predvajajo tudi radijski programi in prenašajo razni podatki, kot so elektronski programski vodič (angl. Electronic program guide EPG), nadgradnje za digitalni sprejemnik idr. Zaradi vedno večjih zahtev HDTV (angl. High-definition television), VoD, interaktivnih vsebin itd. so razvili novi standard DVB-C2 (angl. Digital Video Broadcasting Cable Second Generation), ki je bil pripravljen v letu 2009. Novi standard uporablja najnovejše modulacije in tehnike kodiranja, s tem pa omogoča visoko učinkovitost uporabe kabelskega omrežja, kot je video na zahtevo, in televizijo visoke ločljivosti HDTV [14]. 4. DVB-H DVB-H (angl. Digital Video Broadcasting Handheld) je eden izmed treh prevladujočih formatov za prenos digitalnih vsebin za mobilne telefone in dlančnike. DVB-H je bil razvit na podlagi digitalne prizemeljske televizije z dodatnimi funkcijami, namenjenimi prenosnim napravam. Formalno je bil sprejet kot standard leta 2004. Bil je tudi uradno potrjen s strani Evropske unije kot»najboljša tehnologija za prizemno mobilno oddajanje«[15]. DVB-H uporablja kot obliko prenosa OFDM (angl. Orthogonal Frequency Division Multiplex) zaradi visoke zmogljivosti, predvsem za oddajanje. Je odporen na motnje [16]. Leta 2013 je bil DVB-H razglašen kot komercialna napaka [17]. 5. IP-TV IP-TV (angl. Internet Protocol Television) je sistem, prek katerega se televizijske storitve izvajajo s pomočjo uporabe internetnega protokola, omrežja, kot je LAN (angl. Local Area Network) ali internet [18]. Rezultat tega je, da lahko IP-TV začne s predvajanjem vsebine, še preden je bila celotna datoteka prenesena. To je znano kot pretakanje medijev (angl. Streaming Media). IP-TV ponuja različne storitve, kot so televizija v živo (angl. Live Television), časovni premik in 8

video na zahtevo. IP-TV je podoben internetni televiziji, kjer so možne enake storitve (Slika 2.2): televizija v živo: možnost gledanja TV v živo prek interneta, televizijskega sprejemnika; Time Shift oziroma Catch-up TV: predvajanje televizijske vsebine za več dni nazaj odvisno od ponudnika storitev. Možnost pavze in predvajanje vsebine od začetka; Video on Demand: video na zahtevo je storitev, ki omogoča, da uporabnik izbere želeni video mimo oddaj, ki se predvajajo v živo. To so predvsem vsebine, ki so prikazane kot»videoteka«. Slika 2.2: VoD-hierarhija IP-TV se razlikuje od internetne televizije le v tem, da kanali visoke hitrosti dostopajo do končnih uporabnikov prek STB-opreme (angl. Set-Top Box). STB je naprava oziroma terminal, ki omogoča televizijskemu sprejemniku dostop do interneta. Set-top box vključuje RAM (angl. Random-access memory), MPEG-dekoder čip in več žetonov za avdiodekodiranje in obdelavo. Vsebina set-top boxa je odvisna od standarda DTV (angl. Digital television), ki se uporablja. Naprednejši set-top box vsebuje trdi disk, na katerega lahko shranimo posnetke televizijskih oddaj [19]. 9

6. MMDS MMDS (angl. Multichannel Multipoint Distribution Service) je brezžična telekomunikacijska tehnologija, ki se uporablja v širokopasovnem omrežju kot metoda prenosa kabelske televizije. MMDS se uporablja predvsem na redko poseljenih podeželskih območjih, kjer polaganje kablov ni ekonomično, možnost MMDS-storitve pa je možna tudi na urbanih območjih. Storitev je kar precej razširjena, predvsem na območju Združenih državah Amerike, v Kanadi, Mehiki, Dominikanski republiki, Islandiji, na Irskem, v Ukrajini, Rusiji, na Slovaškem in drugje. Za sprejem televizijskih vsebin prek MMDS-storitve potrebujemo sprejemnik, ki mora imeti vidno razdaljo do nameščenega oddajnika (oddajniki so večinoma v višje ležečih predelih) [20]. 3 PODATKOVNO SKLADIŠČE Podatkovno skladišče je po teoriji Ralpha Kimballa podatkovna baza, ki je načrtovana in implementirana za preiskovanje in poročanje [21]. Podatkovno skladišče Billa Inmona pa je predmetno orientirano in integrirano s časovnim zbiranjem podatkov [22]. Razlikujeta se predvsem v načinu skladiščenja podatkov. Bill Inmon ima centralizirano arhitekturo skladiščenja, kjer je uporabljen entitetno-relacijski podatkovni model. Ralph Kimball gradi na manjših enotah oziroma področjih (distribuirano arhitekturno skladiščenje) podatkovne tržnice (angl. Data mart), kjer je kot osnovni uporabljen dimenzijski model. Za analizo se lahko uporablja posamezno področje, ki lahko nastane na podlagi integracije iz različnih podatkovnih virov. Ti podatki so v podatkovnem skladišču prikazani kot en sam način identifikacije. Časovno zbiranje podatkov se lahko kopiči za nešteto mesecev 10

nazaj, kar je bistvo hranjenja podatkov v podatkovnem skladišču. Pravilo podatkovnega skladišča je, da se podatki v njem naj ne bi nikoli spreminjali (Slika 3.1). Slika 3.1: Podatkovno skladišče [23] Iz slike je razvidno, da podatki izhajajo iz operativnih sistemov, celovitih programskih rešitev (angl. Enterprise resource planning ERP), upravljanja odnosov s strankami CRM in lastnih datotek. Ker je podatkovno skladišče relacijska baza, kjer shranjujemo podatkovne entitete, bomo v našem primeru izhajali iz relacijskega modela. Podatkovno skladišče ima naslednje lastnosti: zgodovina hranimo podatke več let, integriranost skladišče polnimo iz različnih virov, statičnost podatke uporabimo za poizvedovanje, področna usmerjenost hranjenje podatkov o pomembnejših področjih poslovanja [23]. 3.1 Microsoft SQL Server Preden smo začeli, smo morali najprej dobro spoznati orodja, s katerimi bomo delali. Microsoft SQL Server je platforma za upravljanje baz podatkov, ki jo je razvil Microsoft. Glavna naloga je shranjevanje, pridobivanje in oblikovanje podatkov. Obstaja več različic 11

Microsoft SQL Server, namenjenih upravljanju od manjšega števila do velika števila podatkov. Njegov primarni poizvedbeni jezik je T-SQL (angl. Transact-SQL), ki je nadgradnja standardiziranega SQL (angl. Structured Query Language) [24]. Izbrani Microsoft SQL Server, v našem primeru verzija 11.0, vsebuje naslednje storitve: podatkovni strežnik SSIS (angl. SQL Server Integration Services), analitični strežnik SSAS (angl. SQL Server Analysis Services), poročilni strežnik SSRS (angl. SQL Server Reporting Services). Ne smemo pa pozabiti na relacijski strežnik (angl. SQL Server Management Studio). SQL Server Management Studio je programska aplikacija, ki smo jo uporabili za konfiguracijo, upravljanje in vodenje podatkovne baze. Značilnosti relacijskega strežnika: podpora večini administrativnih nalog, samostojno integrirano okolje za nadzor in avtorizacijo podatkovne baze SQL Server, urejevalnik skript za takojšnjo ali kasnejšo izvedbo, skupni dialog, ki omogoča izvajanje akcij po predefiniranem urniku, uvoz in izvoz nastavitev strežnika iz enega okolja v drugega idr. [25]. Delo z relacijskim strežnikom je predstavljeno v nadaljevanju poglavja 4. Pri izdelavi projekta smo v nadaljevanju izmed omenjenih storitev uporabili dve, SSIS in SSAS. Preden preidemo na praktično vsebino za spremljanje televizijskih vsebin, moramo biti najprej seznanjeni s storitvami Microsoft SQL Server 2012, ki so opisane v naslednjih podpoglavjih. 3.1.1 SSIS SSIS (angl. SQL Server Integration Services) je del programske opreme Microsoft SQL Server 2012. SSIS je platforma za integracijo 1 podatkov in aplikacij. V SSIS-orodju se 1 Povezovanje posameznih enot v celoto. 12

definirajo ETL-procesi (angl. Extract, transform, load), kjer pridobimo podatke, preoblikujemo in polnimo ter vzdržujemo podatkovne baze, kar je primarni namen orodja. SSIS ima zmožnost, da pridobiva podatke iz skoraj vseh virov, opravlja različne operacije nad podatki (npr. pretvorba tipa podatka iz ene vrste v drugo, pretvorba velikih črk v male črke, izvajanje računskih operacij idr.), definira in spremlja potek dela ter ima še nešteto dodatnih možnosti [26]. Kako se ETL-procesi definirajo, je predstavljeno v podpoglavju 3.3. 3.1.2 SSAS SSAS (angl. SQL Server Analysis Services) je namenjen analitični obdelavi podatkov OLAP (angl. On-Line Analytical processing), podatkovno rudarjenje in poročanje. Rešitve OLAP so osrednjega pomena za poslovno inteligenco. Z razumljivimi podatki lažje poslujemo in sprejemamo odločitve. SSAS uporabnikom omogoča, da združimo podatke iz več relacijskih podatkovnih baz v izbrano lokacijo in nato podatke predstavimo na najpreprostejši način. SSAS se uporablja kot orodje za analizo informacij med več podatkovnimi bazami ali v samostojni bazi podatkov. Namenjen je za izdelavo OLAP kock s souporabo podatkov iz podatkovnih izsekov (angl. Data mart) ali podatkovnega skladišča. OLAP kocke so večdimenzionalni podatkovni viri, ki vsebujejo dimenzije in dejstva, kjer lahko izvajamo povpraševanja MDX (angl. Multi-dimensional expression). Za svoje osnovne funkcionalnosti omogoča SSAS tabelarni model v pomnilniku, ki je namenjen za hitro izdelavo prototipov in zelo hitre poizvedbe [27]. 3.1.3 SSRS SSRS (angl. SQL Server Reporting Services) je platforma za generiranje poročil iz relacijskih, multidimenzionalnih ali XML-podatkovnih virov (angl. Extensible Markup Language). 13

Omogoča hitro in preprosto ustvarjanje in upravljanje poročil ter predstavitve v različnih oblikah. Ustvarimo lahko osnovna poročila, ki vsebujejo tabele in grafe, lahko pa tudi kompleksnejše vizualizacije, kjer so vključene preglednice in/ali zemljevidi. Storitev SSRS vsebuje vmesnik v Microsoft Visual Studio oziroma SQL Server Data Tools, kjer se lahko povežemo z bazo podatkov in na podlagi podatkov oblikujemo poročilo ne glede na količino in velikost podatkovnega skladišča. Generirana poročila lahko predstavimo s spletne strani, imenovane»report Manager«, ali pa si jih uporabniki ogledajo s pomočjo drugih aplikacij [28]. 3.2 Modeliranje podatkov Zelo pomemben korak za oblikovanje podatkovnega skladišča je modeliranje podatkov. Pri izdelavi našega podatkovnega skladišča bomo izhajali iz relacijskega podatkovnega modela. Dobro načrtovan podatkovni model nam bo omogočil enostavno rast podatkov, s tem pa tudi dobre rezultate in hitrejše izvajanje povpraševanj. Podatkovni modeli so po navadi zasnovani na uporabnikovih zahtevah. Zraven relacijskega podatkovnega modela poznamo tudi konceptualni model, logični model in fizični podatkovni model. Spodnja tabela nam predstavlja različne lastnosti posameznih modelov (Tabela 3.1). Tabela 3.1: Lastnosti podatkovnih modelov [29] Konceptualni model Logični model Fizični model Imena entitet Relacije entitet Atributi Primarni ključi Tuji ključi Imena tabel Imena stolpcev 14

Tipi stolpcev Relacijsko podatkovno bazo bomo predstavili z orodjem SQL Server Management Studio. Predstavljena bo z množico relacij (tabel), ki jo lahko prikažemo z dvodimenzionalnimi tabelami (Slika 3.2), kar predstavlja logično strukturo podatkovne baze. Lastnosti relacij: enolično ime, enolično ime atributov, enolične n-terice (vrstice) idr. [30]. Slika 3.2: Dvodimenzionalna tabela V tem poglavju smo opisali polnjenje relacijske podatkovne baze v treh fazah. 3.3 Polnjenje podatkovnega skladišča Za podatkovno skladišče ima veliko vlogo ETL-proces [31], ki nam vzame več kot polovico časa pri izgradnji podatkovnega skladišča. Ima tri faze (Slika 3.3): pridobi/ izvleci, preoblikuj/ oblikuj, polni/ naloži. 15

Slika 3.3: Arhitektura ETL-procesa [31] ETL-proces vzame največji delež časa za razvoj, saj moramo pridobiti izvorne podatke, popolnoma razumeti potrebne atribute in podatkovne modele. Primarni cilj ETL-procesa je kakovost podatkov. Pri sami integraciji podatkov smo naleteli na težave z zapisi programov, kjer gre za isti program oziroma televizijski kanal z različnimi zapisi (npr. KanalA Akanal, RTL2Hrvatska RTLHRVATSKA2 itd.). Faza preoblikovanja je namenjena oblikovanju oziroma preoblikovanju podatkov, od spreminjanja formatov, izračunov in izpeljanih vrednosti, združevanja in razdelitev polj, pretvorbe datuma in časa do matematičnih in drugih funkcij. Nekatere izmed naštetih smo uporabili tudi v našem ETL-procesu, kar je predstavljeno v podpoglavju 4.1. Pri zadnji fazi polnjenja podatkovnega skladišča smo imeli dve možnosti: polnjenje z nalaganjem (angl. Load), polnjenje z dodajanjem (angl. Append). Izbrali smo način polnjenja z nalaganjem, saj je bil enostavnejši v razvoju in testiranju procesa ter primernejši od dodajanja. Z nalaganjem smo imeli celoviti pregled nad pretokom podatkov in manjše možnosti za zapis napačnih podatkov. Če je tabela, ki smo jo polnili, že obstajala in vsebovala podatke, smo najprej izbrisali vsebino tabele in šele nato vstavili podatke. Enako je veljalo za primer prazne tabele, kjer je bil postopek enak. Način polnjenja z dodajanjem je način preverjanja že vnesenih podatkov v tabeli, kjer preverimo, ali enak podatek že obstaja. V primeru, da obstaja identičen zapis, ga lahko 16

odstranimo in ne dovolimo vnosa duplikatov (načeloma lahko tudi pustimo duplikate). Če pa podatek ne obstaja, se bo zapis dodal k drugim zapisom. Komande pri polnjenju z dodajanjem so: vstavi (angl. Insert) dodajanje novega zapisa, posodobi (angl. Update) posodobitev obstoječega zapisa, izbriši (angl. Delete) brisanje zapisa 3.4 Poslovno obveščanje Podatkovno skladišče je lahko del poslovnega obveščanja. Prav tako velja, da poslovno obveščanje lahko deluje tudi brez podatkovnega skladišča. Poslovno obveščanje se nanaša na informacije, ki vključujejo tudi vpogled v analizo podatkovnega rudarjenja. S poslovnim obveščanjem lahko preoblikujemo neobdelane podatke v smiselne in koristne informacije za namene poslovne analize. Da izvedemo analizo podatkov, lahko izbiramo med orodji, kot so [22]: Excel relativno poceni ter lahko prenosna vsebina za poročanje in sledenje, orodje za poročanje Sql Server Reporting Service, OLAP-orodje Sql Server Analysis Service, orodje za podatkovno rudarjenje uporablja se za ugotavljanje koleracij 2 med različnimi dejavniki. Prednosti uporabe poslovnega obveščanja: odprava nejasnosti, hitrejša povpraševanja, pridobitev ključnih poročil, vpogled v uporabnikovo dejavnost, izboljšanje učinkovitosti idr. [32]. V naslednjem poglavju so predstavljeni izgradnja podatkovnega skladišča za spremljanje gledanosti televizijskih vsebin in orodja, ki smo jih uporabljali. 2 Medsebojna odvisnost, soodvisnost. 17

4 SPREMLJANJE GLEDANOSTI TV VSEBIN Gledanost televizijskih vsebin se navezuje na izbranega telekomunikacijskega ponudnika. Ker je spremljanje in analiziranje podatkov v vsakem podjetju zelo pomembno, smo v tem poglavju predstavili korake dela po poglavjih za spremljanje gledanosti televizijskih vsebin s pomočjo shranjenih zapisov. Ta poglavja so: transformacija log datotek, izdelava dimenzijskega modela in analiza podatkov. 4.1 Transformacija log datotek V Apache http-strežniku smo preverili, na kakšen način se ustvarjajo log datoteke. Zapisane datoteke so zabeležene na način log.0... log.n, pri čemer je log.0 najnovejša, log.n pa najstarejša datoteka. Postopek beleženja podatkov v log datoteke je razviden iz spodnje slike (Slika 4.1). Slika 4.1: Zapisovanje log datotek 18

Ker je zapisov v eni sami datoteki lahko več kot milijon, smo ugotovili, katere vrste zapisov se največkrat pojavljajo in kateri so identični, in jih poskušali ločiti od nam pomembnih podatkov. Primeri različnih zapisov v log datotekah: 1. ZAPIS V ŽIVO (angl. Live TV) "xx.xx.xx.xxx»-«- [09/Apr/2014:07:35:20 +0200] ""GET /ts/popoto/stream_wifi_1200k.m3u8 HTTP/1.1"" 200 400 ""-"" ""VRPC"" 5.001 ""CC: SVN"" ""CN: Slovenia""" 2. ZAPIS S ČASOVNIM ZAMIKOM (angl. TimeShift) "xx.xx.xxx.xx»» - [09/Apr/2014:07:35:44 +0200] ""GET /ts/natgeo/2014-04- 06/1210211/NatGeo_wifi_1200k-6217.ts HTTP/1.1"" 200 1839580 ""-"" ""AppleCoreMedia/1.0.0.11A465 (ipad; U; CPU OS 7_0 like Mac OS X; en_us)"" 1.331 ""CC: SVN"" ""CN: Slovenia""" 3. NAPAKA ZAPISA (angl. Error) "xx.xxx.xxx.xx xxx.xx.xx.xxx - [09/Apr/2014:07:37:07 +0200] ""GET /CAB/BOOT?n=3668632463 HTTP/1.1"" 404 168 ""-"" ""VRPC"" 0.015 ""CC: SVN"" ""CN: Slovenia""" 4. SLIKOVNI ZAPIS "xxx.xxx.xx.x xxx.xxxx.xxxx.xxx - [09/Apr/2014:07:39:07 +0200] ""GET /twintv2_proxy/iview/mobiledevices//epg/images/phone/images_160dpi//131404.png HTTP/1.1"" 200 11416 ""-"" ""Dalvik/1.6.0 (Linux; U; Android 4.2.2; rk31sdk Build/JDQ39)"" 0.003 ""CC: HRV"" ""CN: Croatia""" 5. APLIKACIJSKI ZAPIS "xxx.xxx.xxx.xxx xxx.xxxx.xxxx.xxx - [09/Apr/2014:12:39:00 +0200] ""GET /amisapps/ios/ HTTP/1.1"" 200 575 ""-"" ""Mozilla/5.0 (ipad; CPU OS 7_1 like Mac OS 19

X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53"" 0.000 ""CC: SVN"" ""CN: Slovenia""" 6. RADIO ZAPIS "xx.xxx.xxx.xxx xxx.xxxx.xxxx.xxx - [09/Apr/2014:12:39:01 +0200] ""GET /ts/radioval202/2014-04-09/320000/radioval202_audio_320k-2393.ts HTTP/1.1"" 200 278804 ""-"" ""VRPC"" 0.201 ""CC: SVN"" ""CN: Slovenia""" V log datotekah najdemo zapise z različnimi status kodami, vrstami zapisov, prenos tipa datoteke (slika, video, epg) itd. Zapisi so definirani po vrsticah, kjer ima vsak nov zapis rezervirano svojo vrstico. Da smo pridobili posamične podatke, smo naredili SSIS-projekt s končnico.dtsx, ki je namenjen za ustvarjanje ETL-procesa. ETL-proces je razdeljen na dva osnovna nivoja: nadzor toka (angl. Control Flow), podatkovni tok (angl. Data Flow). V prvem nivoju (angl. Control Flow Task) smo definirali dve komponenti (Slika 4.2): 1. Komponenta»Execute SQL Task«v podatkovnem toku, imenovana»brisanje baze, če vsebuje podatke«, vsebuje naslednji SQL-stavek (Izvorna koda 4.1): 20

if(exists (select * from dbo.db)) delete from dbo.db Izvorna koda 4.1: Brisanje baze, če vsebuje podatke Slika 4.2: Control Flow S to komponento smo si pomagali na začetku, da smo lahko testirali delovanje procesa oziroma ali nam ETL-proces pravilno pretvori podatke. 2. Komponenta»Data Flow Task«v podatkovnem toku, imenovana»sprocesiraj in shrani podatke v bazo «, kaže na zaporedno izvajanje paketa v sekciji»data Flow«(Slika 4.3). 21

Slika 4.3: Data Flow Drugi nivo je Data Flow, ki je sestavljen iz štirih delov: 1. Prva komponenta»script Component«, imenovana»beri log datoteko (source)«, vsebuje C# algoritem, ki nam pretvori zapise iz log datotek po različnih členih (priloga A). 2. Komponenta»Derived Column«, imenovana»split DateTime«, izvede transformacijo datum čas in nam ga razdeli na dva dela. Primer celotnega člena datum in čas: 2014-04-09 07:35:20.000. Celoten člen smo razdelili s pomočjo dveh enostavnih izrazov: Datum, expression: (DT_DBDATE)(datum_cas), Datatype: database date [DT_DBDATE]; [2014-04-09] Cas, expression: (DT_DBTIME)(datum_cas), DataType: database time [DT_DBTIME]; [07:35:20.000] 3. Cilj podatkov tega ETL-procesa je komponenta»ole DB Destination«, imenovana»destination«. Na tej komponenti smo ustvarili povezavo na lokalno bazo, kjer smo uporabili SQL Connection Manager. Po uspešni transformaciji procesa se podatki zapišejo v lokalno bazo podatkov orodje SQL Server Management Studio. 22

4. Komponenta»Flat File Destination«, imenovana»error Destination«, je zgolj za evidenco, kateri podatki se niso zabeležili v lokalno bazo. Ta komponenta ustvari tekstovno datoteko (.txt) na disk takrat, ko se vsaj eden izmed zapisov ne pošlje v bazo podatkov. Tak podatek je zaznan kot»error«podatek, hkrati pa imamo večji pregled, ali nam ETL-proces deluje pravilno. S pravilnim delovanjem ETL-procesa smo napolnili lokalno bazo podatkov s strukturo: id (int, not null), ipnaslov (varchar(50), null), naslov (varchar(50), null), cas_pas (varchar(8), null), datum (date, null), zahteva (varchar(5), null), prenos_podatkov (varchar(50), null), up_dostop (varchar(200), null), direktorij (varchar(50), null), kanal (varchar(50), null), drzava (varchar(30), null), statuscode (varchar(10), null), TimeShift (varchar(200), null), LiveTV (varchar(200), null), datum_cas (datetime, null), cas_koncni (datetime, null) in cas (time(7), null). Dodatne tabele dbo.channelversions, dbo.epg in dbo.genres, vključene v lokalno bazo, so nam bile v dodatno pomoč, saj nas je zanimal podatek, s katerega IP-naslova so se gledali kateri programi, oddaje in žanri. Dodatne tabele so prikazane na spodnji sliki (Slika 4.4). 23

Slika 4.4: Podatki za EPG S povpraševalnim stavkom (Izvorna koda 4.2) si lahko v naši lokalni bazi ogledamo pridobljene podatke (Slika 4.5): select * from LB.dbo.LB Izvorna koda 4.2: Podatki v lokalni bazi Ti podatki so nam služili pri nadaljnjem delu, ko smo zgradili dimenzijski model za naše podatkovno skladišče. 24

Slika 4.5: Izsek iz lokalne baze Atribut»cas_koncni«, prikazan v spodnji tabeli (Tabela 4.1), smo vnesli s proceduro, ki se izvede po zapisu vseh podatkov v lokalno bazo. Začetni čas trenutnega zapisa se zapiše v bazo kot»cas_koncni«prejšnjega zapisa pod istim atributom (ipnaslov). Tako proceduro izvedemo s pomočjo orodja: Programmability Stored Procedures New Stored Procedure (priloga B). Drugi način zapisa»cas_koncni«je možen s»triggerjem«oziroma prožilcem, ki se izvede za vsakim trenutnim zapisom podatka v bazo. Prožilec izvedemo tudi s pomočjo orodja: Table Triggers New Trigger (priloga C). Tabela 4.1: Prikaz vrednosti atributov id datum_cas cas cas_koncni 6667 2014-04-09 07:35:24.000 07:35:24.000 07:35:34.000 6765 2014-04-09 07:35:24.000 07:35:24.000 07:36:57.000 6878 2014-04-09 07:35:24.000 07:35:24.000 07:35:40.000 6989 2014-04-09 07:35:24.000 07:35:24.000 07:35:55.000 25

4.2 Izdelava dimenzijskega modela Dimenzijski model smo načrtovali na podlagi pridobljenih podatkov iz log datotek na podlagi podpoglavja 4.1. Ko smo imeli lokalno bazo dokončno sestavljeno, smo naredili poglede (angl. Views), ki smo jih v nadaljevanju uporabili z orodjem SQL Management Studio za izgradnjo dimenzijskega modela. Pogled za uporabnika (Izvorna koda 4.3): SELECT TOP(70000) id AS iduporabnik, ipnaslov, naslov FROM dbo.db Izvorna koda 4.3: Pogled za uporabnika Pogled za datum_cas (Izvorna koda 4.4): SELECT TOP(70000) id AS iddatumcas, datum_cas, cas_koncni, datum, cas_pas FROM dbo.db Izvorna koda 4.4: Pogled za datum_cas Pogled za ts/live (Izvorna koda 4.5): SELECT TOP(70000) id AS idtslive, TimeShift, LiveTV FROM dbo.db Izvorna koda 4.5: Pogled za ts/live Pogleda za drzava (Izvorna koda 4.6): SELECT TOP(70000) id AS iddrzava, drzava FROM dbo.db Izvorna koda 4.6: Pogled za drzava Pogled za kanal (Izvorna koda 4.7): SELECT TOP(70000) id AS idkanal, kanal FROM dbo.db Izvorna koda 4.7: Pogled za kanal Pogled za status_code (Izvorna koda 4.8): 26

SELECT TOP(70000) id AS idstatuscode, statuscode, prenos_podatkov, up_dostop FROM dbo.db Izvorna koda 4.8: Pogled za status_code Kot uporabnika definiramo promet z določenega IP-naslova, kar pomeni, da vsak različen IP-naslov pomeni tudi drugega uporabnika. V praksi je možno, da je en uporabnik na dveh različnih IP-naslovih, zato v takem primeru ne moremo identificirati uporabnika na samo en določen IP-naslov. Zgodi pa se lahko tudi druga izjema, in sicer ko imamo več različnih uporabnikov z istim IP-naslovom (sosedje si delijo internetno povezavo). Da smo lahko povezali uporabnika z EPG, smo morali narediti povezavo med tabelami pridobljenega EPG Epg, Genres in ChannelVersions (Slika 4.6 in Slika 4.7). Način za povezavo med tabelami smo naredili s SQL INNER JOIN kanali, oddajami in žanri (Izvorna koda 4.9). V orodju SQL Server Management Studio smo naredili pogled s SQL-povpraševanjem za združitev tabel za EPG: SELECT dbo.epg.epgid, dbo.epg.titleslo, dbo.genres.genreslo, REPLACE(dbo.ChannelVersions.ChannelName, ' ', '') as ChannelName, dbo.channelvers ions.channelversionsid, CONVERT(VARCHAR(8), dbo.epg.starttime, 108) AS zaccas, CONVERT(VARCHAR(8), dbo.epg.endtime, 108) AS konccas, CONVERT(VARCHAR(2), DAY (dbo.epg.starttime)) AS dan, CONVERT(VARCHAR(2), MONTH(dbo.Epg.StartTime)) AS mesec, dbo.epg.starttime, dbo.epg.endtime FROM dbo.epg INNER JOIN dbo.genres ON dbo.epg.genreid = dbo.genres.genreid INNER JOIN dbo.channelversions ON dbo.epg.channelversionid = dbo.channelvers ions.channelversionid; Izvorna koda 4.9: Združitev tabel za EPG 27

Slika 4.6: Združitev tabel za EPG Slika 4.7: EPG-podatki Najpomembnejša tabela za dimenzijski model je tabela dejstev (angl. Fact table). Tudi za tabelo dejstev smo naredili pogled, ki pa se razlikuje od drugih pogledov. Tabela je izdelana s pogojem WHERE, ki nam zagotovi, da se bodo nazivi kanalov ujemali s kanali iz EPG-pogleda in da se bo pravilno določilo časovno obdobje gledanja televizijskih vsebin (trenutni in končni čas gledanja morata biti med EPG-začetnim in končnim časom). Spodnji SQL-stavek je primer takega načina združevanja podatkov (Izvorna koda 4.10). 28

SELECT TOP(1000) l.id AS dbo.dbid, l.id, e.epgid, dbo.uporabnik.iduporabnik, dbo.tslive.idtslive, dbo.status_code.idstatuscode, dbo.kanal.idkanal, dbo.datum_cas.iddatumcas, dbo.drzava.iddrzava, CONVERT(datetime, dbo.datum_cas.cas_koncni dbo.datum_cas.datum_cas, 108) AS dolzina_gledanja FROM dbo.db AS l INNER JOIN dbo.oddaja AS eon l.kanal = e.channelname INNER JOIN dbo.uporabnik ON l.id = dbo.uporabnik.iduporabnik INNER JOIN dbo.tslive ON l.id = dbo.tslive.idtslive INNER JOIN dbo.status_code ON l.id = dbo.status_code.idstatuscode INNER JOIN dbo.kanal ON l.id = dbo.kanal.idkanal INNER JOIN dbo.datum_cas ON l.id = dbo.datum_cas.iddatumcas INNER JOIN dbo.drzava ON l.id = dbo.drzava.iddrzava WHERE (l.datum_cas > e.starttime) AND (l.cas_koncni < e.endtime) OR (l.datum_cas < e.starttime) AND (l.cas_koncni > e.endtime) OR (l.datum_cas BETWEEN e.starttime ANDe.EndTime) OR (l.cas_koncni BETWEEN e.starttime AND e.endtime) ORDER BY DbID; Izvorna koda 4.10: Povpraševanje za tabelo dejstev Naslednji korak je bil izgradnja dimenzijskega modela z orodjem SQL Server Data Tools, kjer smo ustvarili SSAS-projekt. Izgradnja poteka od definiranja vira podatkov (angl. Data Source), izgradnje pogleda vira podatkov (angl. Data Source View), izgradnje modela kocke za OLAP-analizo (angl. On-Line Analytical Cube) do izgradnje dimenzij (angl. Dimensions), ki nam olajšajo oblikovanje podatkov za naša povpraševanja. Vir podatkov je povezava na lokalno bazo kot zapis: DataSource.ds. Pogled vira podatkov je dimenzijski model, ki ga sestavimo z vstavljanjem tabel iz vira podatkov. Dimenzijski model smo ustvarili v zvezdasti obliki. Model je sestavljen iz tabele dejstev (angl. Fact Table) in dimenzijskih tabel (angl. Dimenzional tables) (Slika 4.8). Dimenzijski tabeli datum_cas smo za lažje razumevanje oziroma boljšo preglednost podatkov dodali novo imenovane izračune (angl. New Named Calculation) kot dodatne atribute: dolzina_gledanja, dan, mesec, leto, 29

datum_celi, datumid. Slika 4.8: Dimenzijski model Posebna vrsta meritev ali vrsta izračuna je na novo imenovani izračun (angl. New Named Calculation), prikazan v tabeli datum_cas in tabeli TsLive. Primer je zapis atributa dolzina_gledanja. Sintaksa zapisa za izračun dolžine gledanja (Izvorna koda 4.11): convert(time, (cas_koncni datum_cas)) Izvorna koda 4.11: Sintaksa zapisa za izračun dolžine gledanja Enako smo naredili z novim atributom, imenovanim ts/live, saj imamo na ta način boljši pregled nad zapisi. V primeru, da je atribut ts/live 1, potem je bil celoten zapis kot LiveTV ali 0 kot TimeShift (Izvorna koda 4.12). 30

Sintaksa zapisa če je LiveTV, potem je zapis 1, če ne, je zapis 0: case end when LiveTV is null then '0' else '1' Izvorna koda 4.12: Sintaksa zapisa za LiveTV in TimeShift Dodana je tabela, imenovana»stevilo vrstic2«, ki nam je v pomoč, da preverimo pravilno število zabeleženih zapisov. Ti zapisi morajo biti enaki številu zapisov vrstic, ki so se procesirali skozi ETL-proces. Kot zadnja točka so dimenzije, ki smo jih definirali po lastnem izboru in ki določajo lastnosti, po katerih hočemo meriti, primerjati, računati določene atribute. Vsaki tabeli smo še definirali relacije med posameznimi tabelami. Naslednji korak, ki smo ga izvedli, je izgradnja modela OLAP kocke (Slika 4.9) iz vsebine pogleda vira podatkov. 31

Slika 4.9: Model OLAP-kocke S klikom na Razišči podatke (angl. Explore Data) na katero koli izmed tabel v modelu OLAP kocke ali na pogledu imamo pregled nad zapisi, ki smo jih kreirali za naše zahteve. 4.3 Analiza podatkov Analizo pridobljenih podatkov smo lahko izvedli s pomočjo SQL-povpraševanja ali pa s pomočjo vrtilne tabele v Excelovi datoteki. Povpraševanje s pomočjo SQL-stavka je kompleksnejše, saj lahko hitreje pride do napak v poizvedbi. V tem primeru smo SQLpovpraševanje zamenjali z Excelovo vrtilno tabelo in izvedli enake poizvedbe, pri čemer smo se izognili napakam, saj vrtilna tabela namesto nas opravi poizvedbo po določenih izračunih v oblikovanih dimenzijah našega modela. V nadaljevanju smo prikazali SQL-povpraševanje za en IP-naslov. Poglavje je prikaz povpraševanja s SQL-stavkom, nakar sledi poglavje s povpraševanjem z vrtilno tabelo v Excelovi datoteki. 32

4.3.1 Analiza s SQL-povpraševanjem Kot smo že omenili v prejšnjih poglavjih, ne moremo določiti določenega uporabnika s samo enim IP-naslovom, saj lahko en uporabnik istočasno spremlja televizijske vsebine z več IP-naslovov (Izvorna koda 4.13). V tem primeru smo se osredotočili na način»en IP naslov je en uporabnik«. Le s tem načinom smo lahko pridobili podatke, katere programe, katere oddaje in koliko časa so se te gledale z enega IP-naslova. SELECT l.id AS DB.id, dbo.oddaja.epgid, dbo.datum_cas.iddatumcas, l.cas_koncni - l.datum_cas AS dolzina_gledanja, dbo.uporabnik.iduporabnik, dbo.tslive.idtslive, dbo.kanal.idkanal, dbo.status_code.idstatuscode, dbo.drzava.iddrzava FROM dbo.db AS l INNER JOIN dbo.oddaja ON l.kanal = dbo.oddaja.channelname INNER JOIN dbo.status_code ON l.id = dbo.status_code.idstatuscode INNER JOIN dbo.drzava ON l.id = dbo.drzava.iddrzava INNER JOIN dbo.kanal ON l.id = dbo.kanal.idkanal AND dbo.oddaja.channelname = dbo.kanal.kan al INNER JOIN dbo.tslive ON l.id = dbo.tslive.idtslive INNER JOIN dbo.datum_cas ON l.id = dbo.datum_cas.iddatumcas INNER JOIN dbo.uporabnik ON l.id = dbo.uporabnik.iduporabnik WHERE (l.datum_cas > dbo.oddaja.starttime) AND (l.cas_koncni < dbo.oddaja.endtime) AND (l.ipnaslov = 'xx.xx.xx.xx') OR (l.datum_cas < dbo.oddaja.starttime) AND (l.cas_koncni > dbo.oddaja.e ndtime) AND (l.ipnaslov = 'xx.xx.xx.xx') OR (l.datum_cas BETWEEN dbo.oddaja.starttime AND dbo.oddaja.endtime) AND (l.ipnaslov = 'xx.xx.xx.xx') OR (l.cas_koncni BETWEEN dbo.oddaja.starttime AND dbo.oddaja.endtime) AN D (l.ipnaslov = 'xx.xx.xx.xx'); Izvorna koda 4.13: Povpraševanje za dnevno gledanje kanalov Povpraševanje po želenih informacijah smo si olajšali s povezavo SSAS-projekta z Excelovo datoteko, tako da iz orodne vrstice izberemo: Podatki Iz drugih virov Iz analitičnih storitev Ustvarimo povezavo Ko je povezava vzpostavljena, se nam ustvari vrtilna tabela, kjer lahko označujemo atribute, meritve, s čimer pa dobimo prikaz podatkov v tabelarični obliki in obliki grafa. Tako pridobivanje podatkov je enostavnejše in hitrejše, kot da vsakič pišemo nova SQLpovpraševanja. Najprej smo si zastavili določena vprašanja, ki nas zanimajo in se nanašajo na določeno temo. Na vsa vprašanja, ki bodo predstavljena v naslednjem poglavju, smo podatke poiskali z vrtilno tabelo. 33

4.3.2 Analiza z Excelovo datoteko Zanimali so nas podatki o televizijskih programih, oddajah in času gledanja vsebin za posameznega uporabnika, ki ga določa IP-naslov na dan 9. aprila 2014 (Slika 4.10). Slika 4.10: Delež gledanosti z enega IP-naslova Iz grafa je razvidno, da je uporabnik gledal en kanal, in sicer Nickledeon. Ogledal si je dve oddaji, Paw Patrol in Pojdi, Diego, pojdi!. Razvidno je, da je oddajo Paw Patrol gledal več časa. Na podlagi teh izračunov smo pridobili skupno dolžino gledanja oddaj izbranega uporabnika. Te vrednosti so predstavljene v spodnji tabeli (Tabela 4.2). Tabela 4.2: Dolžina dnevnega gledanja z enega IP-naslova KANAL ODDAJA DOLŽINA GLEDANJA Nickledeon Paw Patrol 0:32:41 Nickledeon Pojdi, Diego, pojdi! 0:02:03 SKUPNI ČAS 0:34:44 Zanimivo vprašanje se nam je prav tako zdelo, katere kanale dnevno največ gledajo uporabniki. Enako kot v prejšnjem primeru smo s pomočjo Excelove datoteke pridobili vse kanale, ki so jih uporabniki gledali na določen dan (Slika 4.11). Ta dan je bil v našem primeru 9. april 2014. 34

Slika 4.11: Delež dnevnega zapisa kanalov Zapisov o gledanju kanalov uporabnikov v enem dnevu je zelo veliko. V tabeli so predstavljeni zapisi gledanja kanalov raznih oblik (z različnimi statusnimi kodami, napačnimi zapisi, radio kanali itd.). Ker iz grafa slabše razberemo podatke o številu zapisov, smo za boljši pregled zapisali podatke v spodnjo tabelo (Tabela 4.3). Tabela 4.3: Število zapisov kanalov v enem dnevu NAZIV KANALA ŠTEVILO ZAPISOV - (napačen zapis) 49 AKanal 11430 BabyTV 444 Brio 101 Cartoon 1089 CartoonTCM 200 CMC 12 CNN 5 CRODOQ 35 CROHALLMARK 106 CROHISTORY 500 CROHISTORYCH 275 CRONATGEOW 920 DaVinciLear 10 DaVinciLearning 2 Discovery 193 DiscoveryChannel 1826 Disney 87 DisneyChannel 35 DisneyXD 44 35

DOQ 102 Eurosport 360 Extreme 21 ExtremeSports 11 Fox 59 FoxCrime 280 FoxCrimeCRO 21 FOXCRIMEHRVATSKA 124 Foxl 40 FoxLive 119 Golica 10 Hallmark 8 History 3 HistoryChannelCRO 229 Hrt1 187 Hrt2 96 Jetix 44 KanalA 14096 Minimax 1813 NatGeo 291 NGCCroatia 139 NGCWildCRO 300 Nickelodeon 383 Nickleodeon 193 Orf1 6 OUTDOOR 23 OutdoorChannel 1 PinkSi 2231 PinkTV3 73 PlanetTV 9491 PopKino 6526 PopOto 1030 PopTV 3753 Pro7 51 Radio1 8 RadioAntena 382 RadioCenter 152 RadioCity 201 RadioExpress 342 RadioHit 4 RadioVal202 896 RTL2Hrvatska 3642 RTLHrvatska 2542 RTLHRVATSKA2 10 S1 16 S2 5 36

Slo1 206 Slo2 173 SportClub 17 SportClub2 110 Travel 14 TravelChannel 900 TVGolica 11 UniversalChannel 292 UniversalChannelCRO 105 ViasatExplorer 451 ViasatHistoryCRO 44 SKUPAJ: 70000 Iz tabele je razvidno, da so uporabniki največ gledali Kanal A, Planet TV in Pop TV. Ne moremo pa zanemariti podatka, da so tudi radijski programi kar dobro poslušani. Naslednji zelo zanimiv podatek je tudi ta, ali uporabniki več gledajo televizijo v živo (Live TV) ali gledajo raje televizijo s časovnim zamikom (Time Shift). Rezultat je prikazan samo za določen dan, in sicer 9. april 2014, ki je prikazan v spodnjem grafu (Slika 4.12) in v naslednji tabeli (Tabela 4.4). Slika 4.12: Razmerje gledanosti TimeShift in LiveTV V tabeli imamo prikazane podatke o gledanosti programov v živo in s časovnim zamikom. Glede skupnega števila zapisov LiveTV in TimeShift moramo razumeti, da so to samo tisti 37

zapisi prenesenih paketov, ki jih je uporabnik odjemal. Vsi preostali zapisi, nevalidni, napačni, drugačni zapisi, niso bili prišteti k skupnemu številu. Tabela 4.4: Razmerje med gledanostjo TimeShift in LiveTV Število zapisov TimeShift 30101 LiveTV 20500 SKUPAJ: 50601 38

5 SKLEP V diplomskem delu smo predstavili internetno televizijo, njeno delovanje in storitve, ki so ji sorodne. Nadaljevali smo s podatkovnim skladiščem, kjer smo na podlagi pridobljenih podatkov naredili modeliranje in polnjenje podatkovnega skladišča s pomočjo ETLpostopka ter izvedli povpraševanja, ki so dala rezultate na zastavljena vprašanja. Preden smo se lotili naštetih korakov, smo morali spoznati sistem za upravljanje baz podatkov Microsoft SQL Server ter njegova orodja Integration Services in Analysis Services. Podatkovno skladišče smo napolnili s podatki, ki smo jih pridobili iz Apache strežnika oziroma njegovih log datotek. Ti podatki v začetnem stanju niso imeli nobene vrednosti, saj so bili zgoščeni in nerazumljivi. Ko smo raziskali, kateri podatki so za nas pomembni, smo s pomočjo integracije oziroma ETL-procesa razčlenili zapise na razumljive člene in jih shranili v lokalno podatkovno bazo. Naslednji korak je bila izgradnja dimenzijskega modela, ki smo ga skrbno načrtovali. Dimenzijski model je predstavljal podlago pri analizi, za kar nam je bila v pomoč OLAP kocka, ki temelji na dimenzijskem modelu. Za lažjo predstavo in povpraševanje smo uporabljali razne funkcionalnosti, ki jih ponuja OLAPorodje. K temu spadajo razne računske vsebine, prožilci, programske rešitve T-SQL idr. Zadnji del projekta je predstavitev podatkov podatkovnega skladišča v slikovnih in tabelaričnih oblikah, ki imajo za uporabnika večjo vrednost. Podatki so med sabo povezani in predstavljajo smiselno celoto. Taka vrsta poizvedb bi bila priporočljiva še za marsikatero podjetje, ki ima veliko količino neorganiziranih in neuporabljenih podatkov. Analize v našem primeru prikažejo širšo sliko glede gledanosti televizijskih programov. Pregled imamo nad dejstvi, kateri programi in oddaje so najbolj in kateri najmanj gledani. S takim načinom analiziranja delno prispevamo k lažji odločitvi ponudnika (internetne televizije ali katere koli druge storitve), katere oddaje bi veljalo ukiniti ali katere žanre več predvajati, saj bi s takim načinom vplivali na povečano gledanost televizijskih vsebin, posledično pa bi lahko tako ponudnik pridobil več uporabnikov. 39

6 LITERATURA [1] Finance. (2010, Oct.) Internet televizija ni enako IP TV Web page. http://www.finance.si/292867/ip-tv-ni-enako-kot-internetna-tv [2] Jennifer Burnham. (2013, Jan.) What is CRM web site. http://blogs.salesforce.com/company/2013/01/what-is-crm-your-business-nervecenter.html [3] Wikipedia. (2014, Aug.) Internet television Web site. http://en.wikipedia.org/wiki/internet_television [4] Margaret Rouse. (2007, Aug.) Video on Demand Web Site. http://searchtelecom.techtarget.com/definition/video-on-demand [5] wiki2. Hybrid Broadcast Broadband TV. http://en.wikipedia.org/wiki/hybrid_broadcast_broadband_tv [6] WIKIPEDIA. (2014, July) Video on Demand Web page. http://en.wikipedia.org/wiki/video_on_demand [7] Apple. MPEG4 pdf document. http://images.apple.com/quicktime/pdf/mpeg4_v3.pdf [8] The MPEG Industy Forum. (2005) MPEG Web document. https://www1.ethz.ch/replay/docs/whitepaper_mpegif.pdf [9] Tehnokrat. (2012, Aug.) Difference between DVB-T, DVB-S, DVB-H and DVB-C, Web Page. http://www.askingbox.com/info/difference-between-dvb-t-dvb-s-dvb-hand-dvb-c [10] akos-rs. (2014) DVB-T Web page. http://dvb-t.akos-rs.si [11] zlataleta. dvb-t web page. http://zlataleta.com/digitalna-televizija-dvb-t/ [12] mythtv. (2010, Nov.) DVB-S Web page. http://www.mythtv.org/wiki/dvb-s [13] blazevideo blog. DVB-S Web page. http://www.blazevideo.com/blog/what-is-dvb-sand-dvb-s2-and-the-difference.html [14] teles. (2012) DVB-C web site. http://www.teles.si/index.php?page=kaj-je-dvb-c [15] DVB Project Office. (2011, May) DVB-H FactSheet Pdf document. http://www.dvb.org/resources/public/factsheets/dvb-h_factsheet.pdf [16] Radio-Electronics. DVB-H Web page. http://www.radioelectronics.com/info/broadcast/digital-video-broadcasting/what-is-dvb-h-tutorial.php [17] Philip Laven. (2013) DVB-H Web page. http://www.hdforumconference.com/wpcontent/uploads/2013/06/laven.pdf [18] ebay. (2014, June) Difference between Internet TV and IP TV Web site. http://www.ebay.com/gds/what-is-the-difference-between-internet-tv-and- Internet-Protocol-Television-IPTV-/10000000177630834/g.html [19] Margaret Rouse. (2005, Apr.) Set-top Box Web Page. http://searchnetworking.techtarget.com/definition/set-top-box [20] wiki. MMDS Web page. http://en.wikipedia.org/wiki/multichannel_multipoint_distribution_service [21] crmt d.o.o. (2014, July) Podatkovno skladišče. http://www.crmt.com/si/3/260/podatkovno-skladisce 40

[22] 1keydata.com. (2014) Data warehouse Web site. http://www.1keydata.com/datawarehousing/data-warehouse-definition.html [23] 4u.info. (2008) Data Warehouse Web page. http://datawarehouse4u.info/index_en.html [24] wikipedia. MS SQL Server Web Page. http://en.wikipedia.org/wiki/microsoft_sql_server [25] msdn Microsoft. SQL Server Management Studio. SQL Server Management Studio includes the following general features: [26] Microsoft msdn. SSIS Web page. http://msdn.microsoft.com/enus/library/ms141026.aspx [27] msdn Microsoft. SSAS Web page. http://msdn.microsoft.com/enus/library/bb522607.aspx [28] Microsoft msdn. SSRS Web page. http://msdn.microsoft.com/enus/library/ms159106.aspx [29] 1keydata. podatkovno modeliranje. http://www.1keydata.com/datawarehousing/datamodeling-levels.html [30] relacijska podatkovna baza. fri link. http://www.google.si/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0cdiq FjAC&url=http%3A%2F%2Fbajecm.fri.unilj.si%2Fdownloads%2FRelacijski%2520podatkovni%2520model_v02.pptx&ei=NX MJVMjmD8aN7QaQhYDABQ&usg=AFQjCNE- 8rCkwayeLQGgHGMzuQqqjxKRvA&sig2=pVrYskkY6kJgD2uH0g3NrQ&bvm=bv.74649129,d.ZGU [31] element. (09/14) Element, experiance & expertise. http://www.element61.be/e/compete.asp?serviceid=136 [32] Jennifer Schiff. (2010, Nov.) BI benefits Web page. http://www.enterpriseappstoday.com/business-intelligence/ten-benefits-of-businessintelligence-software-1.html 41

7 PRILOGE Priloga A public override void CreateNewOutputRows() { string[] filepaths = Directory.GetFiles(@"C:\Users\janjak\Desktop\Logi"); foreach (string file in filepaths) { StreamReader sr = new StreamReader(file); string line = ""; CultureInfo ci = CultureInfo.CreateSpecificCulture("en-US"); // beri datoteko od začetka do konca while ((line = sr.readline())!= null) { try { if (line.indexof("get") == -1) continue; //brisanje prvega in zadnjega narekovaja v stringu line = line.trimstart('"').trimend('"'); // branje IP naslova string ip = line.substring(0, line.indexof(' ')); line = line.substring(line.indexof(' ') + 1); // branje domene string domena = line.substring(0, line.indexof(' ')); line = line.substring(line.indexof(' ') + 1); // branje celega datuma [DateTime] string celi_datum = line.substring(line.indexof('[') + 1, line.indexof(']') - line.indexof('[') - 1); line = line.substring(line.indexof(']') + 1); //branje datuma string datum = celi_datum.substring(0, celi_datum.indexof(" ")); // branje časovnega pasa string casovni_pas = celi_datum.substring(celi_datum.indexof(" ") + 1); 42

//notri je "GET... //odstrani prvi narekovaj, ker je samo v napoti line = line.substring(line.indexof("\"get")); int prvi_narekovaj = line.indexof("\""); int drugi_narekovaj = line.indexof("\"", prvi_narekovaj + 1); //pridobitev celega niza med prvim in naslednjim narekovajem string celi_niz = line.substring(prvi_narekovaj + 1, drugi_narekovaj - 1); if (celi_niz == "") { Console.WriteLine("Napaka v branju! Ni vsebine!"); return; } //v line shrani vse za drugim narekovajem line = line.substring(drugi_narekovaj + 2); // presledki spredaj in odzadaj so odstranjeni line = line.trim(); //sedaj je noter v line: 200 400 "-" "VRPC"... //branje status code string statuscode = line.substring(0, line.indexof(' ')); line = line.substring(line.indexof(' ') + 1); // če je statuscode drugačna od 200, potem gre ponovno od začetka //if (statuscode!= "200") // continue; //razčlenitev niza po presledkih, [' '] string[] array_celi_get = celi_niz.split(' '); if (array_celi_get[1].indexof("/im/") > 0 array_celi_get[1].indexof("/iview/") > 0 array_celi_get[1].indexof("/amisapps/") > 0) continue; //dodaj novo vrstico this.output0buffer.addrow(); // izpis podatkov v bazo (v primeru da statuscode!= 200, da ne bo nepotrebnih/ nepopolnih podatkov pisalo v bazo) Output0Buffer.ipNaslov = ip; Output0Buffer.naslov = domena; Output0Buffer.datumcas = DateTime.ParseExact(datum,"dd/MMM/yyyy:HH: mm:ss", ci); 43

Output0Buffer.caspas = casovni_pas; Output0Buffer.statusCode = statuscode; char[] charseparator = new char[] { '/' }; //razčlenjevanje niza po ['/'] string[] get_request = array_celi_get[1].split(charseparator, s.removeemptyentries); StringSplitOption if (get_request.length >= 3) { try { DateTime.ParseExact(get_request[2], "yyyy-dd-mm", ci); [4]; // Je TIMESHIFT if (get_request.length > 4) { get_request[2] = get_request[2] + "/" + get_request[3] + "/" + get_request Output0Buffer.TimeShift = get_request[2]; Output0Buffer.direktorij = get_request[0]; Output0Buffer.kanal = get_request[1]; } else { get_request[2] = get_request[2] + "/" + get_request[3]; Output0Buffer.TimeShift = get_request[2]; Output0Buffer.direktorij = get_request[0]; Output0Buffer.kanal = get_request[1]; } } catch (Exception e) { //Je LiveTV livetv(get_request, ref Output0Buffer); } } else { //Je LiveTV livetv(get_request, ref Output0Buffer); } //branje GET zahteve string getorset = array_celi_get[0]; Output0Buffer.zahteva = getorset; 44

//sedaj je noter v line: 400 "-" "VRPC"... //branje prenesenih podatkov string preneseni_podatki = line.substring(0, line.indexof(' ')); line = line.substring(line.indexof(' ') + 1); Output0Buffer.prenospodatkov = preneseni_podatki; //sedaj je noter v line: "-" "VRPC"... line = line.substring(line.indexof(' ') + 1); line = line.trimstart('"').trimend('"'); string up_dostop = line.substring(0, line.indexof('"')); Output0Buffer.updostop = up_dostop; } //branje zadnjega dela stringa v "line" string drzava = line.substring(line.indexof("cn:") + 3); drzava = drzava.substring(0, drzava.length); drzava = drzava.trim(); Output0Buffer.drzava = drzava; } } } catch (Exception ex) { MessageBox.Show("Napaka v pisanju podatkov" + ' ' + ex.tostring()); } public static void livetv(string[] get_request, ref Output0Buffer buffer) { // Je LIVETV if (get_request.length == 0) { buffer.livetv = "/"; buffer.direktorij = "/"; buffer.kanal = "/"; } else if (get_request.length == 1) { buffer.livetv = get_request[0]; buffer.direktorij = "/"; buffer.kanal = "/"; } else if (get_request.length == 2) { buffer.livetv = get_request[1]; buffer.direktorij = get_request[0]; 45

} } buffer.kanal = "/"; } else if (get_request.length == 3) { get_request[2] = get_request[1] + get_request[2]; buffer.livetv = get_request[2]; buffer.direktorij = get_request[0]; buffer.kanal = get_request[1]; } Priloga B USE [DB] GO /****** Object: StoredProcedure [dbo].[doloci_koncni_cas] Script Date: 19.5.2014 11:5 3:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Kolarič Janja> -- Create date: <7.5.2014> -- Description: <Update cas_koncni- določitev koncnega casa gledanja> -- ============================================= ALTER PROCEDURE [dbo].[doloci_koncni_cas] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- deklariram kurzor v katerega dam vse vrstice, ki majo cas_koncni null declare kurzor cursor for select ipnaslov, datum_cas from dbo.db where cas_koncni is null -- odprem kurzor open kurzor -- deklariram spremenljivki v kateri bom iz kurzorja iz vsake vrstice dala noter ip in datum_c as declare @ip varchar(200) declare @datum_cas datetime 46

-- potegni vrstico iz kurzorja fetch next from kurzor into @ip, @datum_cas -- ponavljaj dokler kurzor vrne veljaven podatek while @@FETCH_STATUS=0 begin -- posodobi cas_koncni iz prejsnjega zapisa update dbo.db set cas_koncni = @datum_cas where ipnaslov = @ip and datum_cas = (select max(datum_ cas) from dbo.db where ipnaslov=@ip and datum_cas < @datum_cas); -- izpiši števila vrstic, ki so bila posodobljena print @@rowcount -- potegni vrstice iz kurzorja fetch next from kurzor into @ip, @datum_cas end END Priloga C USE [DB] GO /****** Object: Trigger [dbo].[updatevsakevrstice] Script Date: 19.5.2014 12:00:57 * *****/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Kolaric Janja> -- Create date: <7.5.2014> -- Description: <Update vsake vrstice in vpis koncnega casa v stolpec cas_koncni> -- ============================================= ALTER TRIGGER [dbo].[updatevsakevrstice] ON [dbo].[db] AFTER INSERT AS BEGIN update dbo.db set cas_koncni = (select datum_cas from inserted) where ipnaslov = (select ipnaslov from inserted) and datum_cas = (select MAX(datum_cas) from dbo.db where ipnaslov = (select ipnaslov from inserted) and datum_cas!= (select datum_cas fro m inserted)); END 47

48

49

50