Skip to main content

Datavarehuset TK innsikt

Her går vi gjennom praktisk informasjon om datavarehuset TK innsikt sin database som kan være greit å vite om.

Databasens inndeling

Det er TK Innsikt som forvalter databasen, men vi har fått utdelt en del skjemaer som tilhører Saga. Et skjema i Oracle er et område hvor man kan legge inn egne tabeller og views. Det ligner litt på et datasett i Google BigQuery. Et skjema eies alltid av en databasebruker og har det samme navnet som denne brukeren. Derfor finner man de ulike skjemaene under "Other users" i Oracle SQL Developer.

Figuren under viser grovt sett hvordan databasen er oppdelt. Fra før av finnes det en del skjemaer hvor eksisterende data ligger. I tillegg har Saga fått et område hvor det ligger skjemaer både for ulike fyrtårn-teams og per bruker.

Datavarehuset TK innsikt sin database

Når du skal begynne med utforsking av et datasett kan du gjøre dette i ditt personlige skjema. Innhold som skal deles med resten av teamet ditt bør ligge i teamets skjema. For å kunne opprette tabeller i teamets skjema må du logge inn med teamets databasebruker. Brukernavn og passord finnes i ditt teams område i PAM.

Flytting av data fra personlig skjema til teamets skjema

For å gjenskape eller flytte tabeller eller views i teamets skjema har du flere muligheter:

Gjenskape SQL

En måte er å kopiere all SQL som trengs for å lage tabellen/viewet, og kjøre dette på nytt som teamets bruker. Dersom du heller jobber i en Jupyter Notebook kan du kjøre notebooken på nytt men endre brukerinnloggingen og skrive til en tabell i teamets skjema.

Kopiere tabell fra ditt personlige skjema

En annen måte er å gi teamets databasebruker lesetilgang til din brukers tabeller, og deretter kopiere relevante tabeller inn i teamets skjema. Dette kan du gjøre på flere måter:

Kjør følgende SQL:

GRANT SELECT ON TABLE <tabellnavn/viewnavn> TO <teamets brukernavn>

Når du så har gitt teamets databasebruker lesetilgang til relevante tabeller må du logge inn som teamets bruker, og deretter opprette tabellen i teamets skjema ved å gjøre et av de følgende stegene:

Kjør følgende SQL:

CREATE TABLE <skjemanavn>.<tabellnavn> AS (
SELECT * FROM <personlig skjema>.<tabellnavn>
)

Ytelse på spørringer

Enkelte views kan ta lang tid å spørre mot, fordi de for eksempel fletter sammen flere tabeller. Hvis du opplever at det er vanskelig å kjøre spørringer du trenger i din analyse, er det mulig å lage en tabell basert på viewet. Dette kan gjøre at spørringer går en del raskere fordi man slipper å joine fra de opprinnelige tabellene i hver spørring. Vær oppmerksom på at dette også har ulemper. Den største er at dataene i din lokale tabell ikke automatisk blir oppdatert. I tillegg vil det ta opp mye plass om alle brukere av databasen skal lage egne kopier fra alle views.

For å lage en slik kopi, kjør følgende SQL:

CREATE TABLE <skjemanavn>.<tabellnavn> AS (
SELECT * FROM <skjema>.<viewnavn>
)