diff --git "a/Installasjon-p\303\245-VDI/vscode/egenskaper.png" "b/Installasjon-p\303\245-VDI/vscode/egenskaper.png" new file mode 100644 index 0000000..2c06072 Binary files /dev/null and "b/Installasjon-p\303\245-VDI/vscode/egenskaper.png" differ diff --git "a/Installasjon-p\303\245-VDI/vscode/endre_navn.png" "b/Installasjon-p\303\245-VDI/vscode/endre_navn.png" new file mode 100644 index 0000000..314ac08 Binary files /dev/null and "b/Installasjon-p\303\245-VDI/vscode/endre_navn.png" differ diff --git "a/Installasjon-p\303\245-VDI/vscode/index.html" "b/Installasjon-p\303\245-VDI/vscode/index.html" index cded76a..61a4f99 100644 --- "a/Installasjon-p\303\245-VDI/vscode/index.html" +++ "b/Installasjon-p\303\245-VDI/vscode/index.html" @@ -634,6 +634,15 @@ + + +
  • + + + Oracle oppsett for Preview query + + +
  • @@ -1313,6 +1322,15 @@ + + +
  • + + + Oracle oppsett for Preview query + + +
  • @@ -1375,23 +1393,32 @@

    Installasjon og oppsettInstalleres via VS Code Marketplace, følg installasjonsrutinene til Altimate

    Utover standardinstallasjon må følgende hensyn tas for bruk på VDI Utvikler og mot Oracle DVH:

    dbt Power User krever at man setter opp miljøvariabler med credentials via PowerShell, før VS Code startes opp i samme PowerShell-sesjon.

    -

    Eksempel på hvordan man kan sette opp miljøvariabler i forkant via PowerShell:

    +

    Det finnes et skript start_vscode_dbt.ps1 i dette repoet som setter opp miljøvariable, oppretter ptyhon miljø hvis det ikke finnes fra før, og starter Visual Studtio Code som forenkler denne prosessen.

    +

    Skriptet er generelt og krever at stien til et gyldig dbt-prosjekt settes som argument i tillegg til schemanavnet dbt skal bruke som proxy. F.eks.:

    +
    start_vscode_dbt.ps1 c:\sti\til\dbt-prosjekt\ skjemanavn
    +
    +

    (Her må \c:\sti\til\dbt-prosjekt\ peke på mappen som inneholder dbt_project.yml)

    +

    Ideen er at man kan legge skriptet et sted på utviklerimage, f.eks. c:\datavarehus\start_vscode_dbt.ps1, og lage snarveier på skrivebordet til hvert av prosjektene, slik at miljøet for hvert prosjekt kan startes opp med et dobbeltklikk.

    +

    For slikt oppsett, gjør følgende:

      -
    1. Lukk eventuelle eksisterende sesjoner av VS Code
    2. -

      Start PowerShell i dbt-mappen i aktuelt dbt-prosjekt. Trykk på dbt-mappen, hold deretter inne Shift-tasten og høyreklikk på mappen. Velg Åpne PowerShell-vindu her (eller tilsvarende tekst på engelsk om du er litt mer internasjonal)

      -

      Åpne mappe i Powershell

      +

      Høyreklikk - hold - dra over skrivebordet - slipp. Velg Lag snarveier her.

      +

      Lag snarvei

      +
    3. +
    4. +

      Høyreklikk på den nye snarveien og velg Egenskaper

      +

      Høyreklikk

    5. -

      Kjør .\setup_dbt_env.ps1 + enter i PowerShell-vinduet som åpnet seg (skriv setup + trykk på TAB for auto-complete)

      -

      Kjør .\setup_dbt_env

      +

      Fyll inn følgende tekst i Mål: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -ExecutionPolicy Bypass -File "C:\datavarehus\start_vscode_dbt.ps1" c:\sti\til\dbt-prosjekt\ skjemanavn

      +

      Mål

    6. -

      Start VS Code fra samme PowerShell-vindu som .\setup_dbt_env.ps1 ble kjørt i, code . + enter

      -

      Start VS Code

      +

      Endre navn på snarvei til noe mer passende:

      +

      Endre navn

    -

    (Espen jobber med et PowerShell script som skal gjøre denne operasjonen enklere)

    +
    Oracle oppsett for Preview query

    Preview query-template må endres for Oracle-bruk:
    1. Åpne Settings ved å trykke CTRL + , 2. Søk etter dbt.queryTemplate @@ -1421,7 +1448,7 @@

    Erfaringer - December 19, 2023 + December 20, 2023 diff --git "a/Installasjon-p\303\245-VDI/vscode/lag_snarvei.png" "b/Installasjon-p\303\245-VDI/vscode/lag_snarvei.png" new file mode 100644 index 0000000..37e17e3 Binary files /dev/null and "b/Installasjon-p\303\245-VDI/vscode/lag_snarvei.png" differ diff --git "a/Installasjon-p\303\245-VDI/vscode/lag_snarvei1.png" "b/Installasjon-p\303\245-VDI/vscode/lag_snarvei1.png" new file mode 100644 index 0000000..422cc7b Binary files /dev/null and "b/Installasjon-p\303\245-VDI/vscode/lag_snarvei1.png" differ diff --git "a/Installasjon-p\303\245-VDI/vscode/maal.png" "b/Installasjon-p\303\245-VDI/vscode/maal.png" new file mode 100644 index 0000000..59ab084 Binary files /dev/null and "b/Installasjon-p\303\245-VDI/vscode/maal.png" differ diff --git a/search/search_index.json b/search/search_index.json index 6317031..0d98cb1 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduksjon til dbt","text":"

    dbt (data build tool) er et SQL basert transformasjonsvekt\u00f8y som lar deg modularisere og skrive testbar SQL kode. dbt s\u00f8rger for at SQLene blir kj\u00f8rt i riktig rekkef\u00f8lge slik at sluttproduktet blir oppdatert korrekt.

    En SQL fil i dbt blir kalt en modell i dbt. Modeller kan materialiseres p\u00e5 ulike m\u00e5ter. Som view, tabell eller rett og slett en SQL snutt som kan gjenbrukes i flere modeller etter DRY-prinsippet.

    dbt er IKKE et extract-load verkt\u00f8y. Det betyr at dataene som skal transformeres allerede m\u00e5 ligge i databasen dbt er koblet til. dbt krever alts\u00e5 at data er lastet p\u00e5 forh\u00e5nd, med feks en pythonjobb eller kafkakonsument. Dataene trenger ikke n\u00f8dvendigvis ligge i samme komponentskjema eller samme BigQuery prosjekt. S\u00e5 lenge dataene er tilgjengelig p\u00e5 samme database og dbt service brukeren har tilgang til \u00e5 lese dataene er du good to go.

    dbt kommer b\u00e5de i som open source i form av dbt-core og i en egen cloud versjon, dbt cloud. Cloud versjonen st\u00f8tter kun skydatabaser som feks. BigQuery og Snowflake. dbt Cloud kan derfor ikke brukes mot Oracle onprem databasen til datavarehus. For datasett som befinner seg p\u00e5 datamarkedsplassen i BigQuery, kan dbt Cloud v\u00e6re en mulighet.

    For Oracle on-prem benytter vi dbt-oracle som er en python pakke som baserer seg p\u00e5 dbt-core. Oracle er ikke offisielt st\u00f8ttet av dbt, men Oracle har tatt ansvar for community connectoren og og blir aktiv vedlikeholdt og fortl\u00f8pende oppdatert til siste versjon av dbt-core. For \u00e5 n\u00e5 on-prem Oracle m\u00e5 vi som kjent benytte utviklerimage. Denne guiden tar for seg installasjon og oppsett av dbt-oracle p\u00e5 vdi utvikler gjennom Visual Studio Code.

    "},{"location":"#lenker","title":"Lenker","text":"

    F\u00f8r du g\u00e5r gjennom detaljene p\u00e5 hvordan dbt b\u00f8r settes opp er det lurt \u00e5 bli kjent med hvordan dbt fungerer. Nedenfor er det et knippe nyttige lenker som hjelper deg med \u00e5 komme igang og l\u00e6re de viktigste kommandoene og funksjonene i dbt.

    "},{"location":"#kurs-dbt-fundamentals","title":"Kurs - dbt fundamentals","text":"

    Det er sterkt anbefalt \u00e5 starte med \u00e5 g\u00e5 gjennom fundamentals kurset til dbt labs. Dette kurset bruker dbt cloud, men mesteparten av innholdet kan overf\u00f8res til dbt-core. Bruk gjerne GCP dev milj\u00f8et til teamet for \u00e5 sette opp testprosjektet i BigQuery, men husk p\u00e5 \u00e5 slette ressursene i etterkant

    "},{"location":"#designprinsipper","title":"Designprinsipper","text":"

    How to design a dbt model from scratch. Hvordan b\u00f8r du tenke n\u00e5 du designer nye modeller med dbt? Det er fort gjort \u00e5 bomme p\u00e5 f\u00f8rste fors\u00f8k, og det koster mye tid.

    "},{"location":"#dimensjonsmodellering","title":"Dimensjonsmodellering","text":"

    Kimball er fortsatt relevant med dbt. Building a Kimball dimensional model with dbt

    "},{"location":"#bok","title":"Bok","text":"

    Det er nylig (juni 2023) lansert en bok om Data Engineering with dbt. Boken inneholder instroduksjon til data engineering generelt og endelt om ulike skydatabaser i tillegg til grunnleggende bruk av dbt. Kanskje den mest interessante delen er kapittel 8 som omhandler testing med dbt.

    "},{"location":"#nyttige-lenker","title":"Nyttige lenker","text":"

    dbt's egne guider: Lessons

    Community basert samling av lenker: awsome-dbt

    "},{"location":"#hvorfor-skal-jeg-bruke-dbt-jeg-kan-jo-kjre-sql-med-python","title":"Hvorfor skal jeg bruke dbt? Jeg kan jo kj\u00f8re SQL med Python","text":"

    Det er riktig. Dersom du bare skal kj\u00f8re noen enkle SQL sp\u00f8rringer er det kanskje like greit \u00e5 sette opp en Pythonjobb som kj\u00f8rer SQLen for deg. Men med en gang antall sp\u00f8rringer eller kompleksiteten p\u00e5 sp\u00f8rringene \u00f8ker vil dbt hjelpe med med \u00e5 strukturere koden og holde oversikt over rekkef\u00f8lgen. Det er ikke uvanlig at en komponent best\u00e5r av 30 eller flere SQL filer som avhenger av hverandre.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/","title":"DBT","text":"

    Det finnes en offisiell oracle adapter for dbt v1.x. Gjerne start med \u00e5 ta en titt p\u00e5 denne installasjonsguiden f\u00f8rst.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#installasjon","title":"Installasjon","text":"

    dbt kan installeres sammen med oracle adapteren med kommandoen:

    pip install dbt-oracle\n

    Nedlasting feiler

    $ pip install dbt-oracle\nWARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)'))': /simple/dbt-oracle/\n\n...\n\nCould not fetch URL https://pypi.org/simple/dbt-oracle/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/dbt-oracle/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))\n

    Sjekk om du har gjort oppsett av sertifikater til pip.

    Installasjon feiler

    I noen tilfeller har vi opplevd at Microsoft Visual C++ mangler. Feilmeldingen kan se slik ut:

    ...\nBuilding wheels for collected packages: cx-Oracle\nBuilding wheel for cx-Oracle (pyproject.toml) ... error\nerror: subprocess-exited-with-error\n\n\u00d7 Building wheel for cx-Oracle (pyproject.toml) did not run successfully.\n\u2502 exit code: 1\n\u2570\u2500> [8 lines of output]\n      C:\\Users\\RA_S167159\\AppData\\Local\\Temp\\pip-build-env-lh09agh5\\overlay\\Lib\\site-packages\\setuptools\\config\\expand.py:144: UserWarning: File 'C:\\\\Users\\\\RA_S167159\\\\AppData\\\\Local\\\\Temp\\\\pip-install-ki6mcccg\\\\cx-oracle_5a1e160a6cb5498187fe05d5b5637d8c\\\\README.md' cannot be found\n        warnings.warn(f\"File {path!r} cannot be found\")\n    pip_system_certs: ERROR: could not register module: No module named 'wrapt'\n    running bdist_wheel\n    running build\n    running build_ext\n    building 'cx_Oracle' extension\n    error: Microsoft Visual C++ 14.0 or greater is required. Get it with \"Microsoft C++ Build Tools\": https://visualstudio.microsoft.com/visual-cpp-build-tools/\n    [end of output]\n\nnote: This error originates from a subprocess, and is likely not a problem with pip.\nERROR: Failed building wheel for cx-Oracle\nFailed to build cx-Oracle\nERROR: Could not build wheels for cx-Oracle, which is required to install pyproject.toml-based projects\n...\n
    Last ned og installer Build Tools. F\u00f8lg gjerne guiden her: Fixed: Microsoft Visual C++ 14.0 Is Required Error Husk \u00e5 restarte VDI etter installasjon.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#opprette-nytt-dbt-prosjekt-for-oracle","title":"Opprette nytt dbt prosjekt for Oracle","text":"

    Oppsettet av nytt prosjekt er forenklet og tilpasset datavarehus. Det er laget eksempelprosjekt i repo dvh_template for bruk av dbt til komponentskjemaer. dbt prosjektet ligger i en egen branch dbt_template.

    Hvis du ikke \u00f8nsker \u00e5 ta i bruk standardprosjektet, men heller kj\u00f8re dbt init er det noen ting som kan skape uforst\u00e5elige feilmeldinger:

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#quoting","title":"Quoting","text":"

    Quoting av databasenavn m\u00e5 aktiveres i dbt_project.yml siden databasenenavnene til dvh-databasene er med sm\u00e5 bokstaver (eks. dwhu1). Hvis ikke dette gj\u00f8res kommer det feilmeling som sier noe slikt som approximate match

    For \u00e5 skru p\u00e5 quoting m\u00e5 f\u00f8lgende settes i dbt_project.yml:

    quoting:\n  database: true\n
    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#hemmeligheter-ved-kjring-fra-utviklerimage","title":"Hemmeligheter ved kj\u00f8ring fra utviklerimage","text":"

    Av sikkerhetshensyn anbefaler vi og oracle \u00e5 bruke milj\u00f8variabler for \u00e5 holde p\u00e5 hemmeligheter. Vi har derfor laget et script og profiles.yml som kan ligge i dbt-prosjektet.

    Scriptet kan lastes ned fra navikt/dvh_template/dbt/setup_db_user.ps1.

    profiles.yml skal opprettes i p\u00e5 toppniv\u00e5 i dbt-prosjektmappen, eksempel navikt/dvh_template/dbt/profiles.yml Merk at navn p\u00e5 profil er profilnavnet det henvises til i dbt_project.yml

    <navn p\u00e5 profil>:\n  target: \"{{env_var('DBT_DB_TARGET')}}\"\n ...\n

    N\u00e5r profilen er p\u00e5 plass i prosjektmappen kan du teste at dbt fungerer.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#teste-dbt-installasjonen","title":"Teste dbt installasjonen","text":"

    Etter at dbt er p\u00e5 plass kan du verifisere at dbt fungerer ved \u00e5 kj\u00f8re .\\setup_db_user.ps1 etterfulgt av dbt debug fra prosjektmappen. Er det et nytt prosjekt m\u00e5 du opprette profiles.yml f\u00f8rst.

    .\\setup_db_user.ps1 m\u00e5 kj\u00f8res hver gang en starter en ny terminal eller \u00f8nsker \u00e5 bytte target (db). Scriptet vill midlertidlig opprette milj\u00f8variablene i terminal-sesjonen for target, brukernavn, passord, schema og peke dbt mot profiles.yml i prosjektmappen.

    Success

    $ .\\setup_db_user.ps1\nTarget db: U <eventuelt Q,R eller P>\nSchema: \n\ncmdlet Get-Credential at command pipeline position 1\nSupply values for the following parameters:\nCredential\n\n$ dbt debug\n09:15:08  Running with dbt=1.1.1\ndbt version: 1.1.1\npython version: 3.8.10\npython path: c:\\users\\****\\appdata\\local\\programs\\python\\python38\\python.exe      \nos info: Windows-10-10.0.19044-SP0\nUsing profiles.yml file at C:\\Users\\****\\git\\dvh-sykefravar-dmx\\profiles.yml\nUsing dbt_project.yml file at C:\\Users\\****\\git\\dvh-sykefravar-dmx\\dbt_project.yml\n\n09:15:08  oracle adapter: Running in cx mode\nConfiguration:\n  profiles.yml file [OK found and valid]   \n  dbt_project.yml file [OK found and valid]\n\nRequired dependencies:\n- git [OK found]\n\nConnection:\n  user: ****\n  database: dwhu1\n  schema: ****\n  protocol: tcp\n  host: dm07-scan.adeo.no\n  port: 1521\n  tns_name: None\n  service: dwhu1\n  connection_string: None\n  shardingkey: []\n  supershardingkey: []\n  cclass: None\n  purity: None\n  Connection test: [OK connection ok]\n\nAll checks passed!\n

    DBT er n\u00e5 klart til bruk.

    Error

    Connection test: [ERROR]\n\n2 checks failed:\nError from git --help: Could not find command, ensure it is in the user's PATH and that the user has permissions to run it: \"git\"\n\ndbt was unable to connect to the specified database.\nThe database returned the following error:\n\n  >Database Error\n  DPI-1047: Cannot locate a 64-bit Oracle Client library: \"failed to get message for Windows Error 126\". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help\n\nCheck your database credentials and try again. For more information, visit:\nhttps://docs.getdbt.com/docs/configure-your-profile\n

    Oracle client library er mest sannsynlig ikke installert.

    "},{"location":"Installasjon-p%C3%A5-VDI/git/","title":"GIT","text":"
    1. Installering av GIT - har du den allerede er det flott.
    2. Denne finner du p\u00e5 felles disken under programvare. programvare\\git. Installer f.eks Git-2.30.2-64-bit. Legg installasjon directory inn i milj\u00f8variabel PATH. F.eks C:\\Users\\<brukernavn>\\AppData\\Local\\GitHubDesktop\\bin
    3. Dette steget er sannsynligvis ikke n\u00f8dvendig, og utf\u00f8res kun om det oppst\u00e5r problemer i senere steg. Oppdatere milj\u00f8variabler slik at utviklingsimaget kan kommunisere med Github. Dette er beskrevet i https://confluence.adeo.no/pages/viewpage.action?pageId=272519832 punkt 10c
    4. F\u00f8lgende legges inn som milj\u00f8 variabler
    5. https_proxy til http://webproxy-utvikler.nav.no:8088
    6. http_proxy: http://155.55.60.117:8088/
    7. no_proxy: localhost,127.0.0.1,*.adeo.no,.local,.adeo.no,.nav.no,.aetat.no,.devillo.no,.oera.no,devel
    8. Opprett et PAT (personal access token) som du m\u00e5 bruke som passord ved autentisering. Se https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token Alternativt kan du bruke GitHub Dekstop som setter dette opp for deg automatisk.
    9. Clone repositoriet du skal jobbe med. Husk \u00e5 bruke PAT opprettet i punkt 3. som passord om du ikke bruker GitHub Desktop.
    "},{"location":"Installasjon-p%C3%A5-VDI/installere/","title":"Installere DBT p\u00e5 VDI","text":""},{"location":"Installasjon-p%C3%A5-VDI/installere/#forutsetninger","title":"Forutsetninger","text":"

    For \u00e5 installere dbt m\u00e5 du ha f\u00f8lgende installert:

    "},{"location":"Installasjon-p%C3%A5-VDI/installere/#anbefalinger","title":"Anbefalinger","text":"

    For en god utvikleropplevelse anbefaler vi deg \u00e5 ha f\u00f8lgende installert:

    "},{"location":"Installasjon-p%C3%A5-VDI/miljovariabler/","title":"Legge til milj\u00f8variabler","text":"
    1. S\u00f8k etter milj\u00f8variabler
    2. Klikk p\u00e5: Rediger milj\u00f8bariabler for kontoen din
    1. Trykk p\u00e5 Ny...
    2. Gi variabelen et navn i Variabelnavn.
    3. Skriv inn path til programmet i Variabelverdi
    4. Trykk OK
    1. Marker Path variabelen
    2. Trykk Rediger...
    1. Trykk Ny
    2. Skriv inn navnet p\u00e5 variabelen du opprettet med syntaksen %<variabelnavn>% eks: %PIP%
    3. Trykk OK
    1. Trykk OK

    Note

    Husk at du m\u00e5 lukke cmd (ledetekst) og \u00e5pne p\u00e5 nytt for at endringen skal tre i kraft.

    "},{"location":"Installasjon-p%C3%A5-VDI/oracle-client-library/","title":"Oracle client library","text":"

    Note

    Dette steget utg\u00e5r hvis du bruker thin mode (tynnklient som ikke trenger klientbiblioteket. Introdusert i dbt-oracle 1.1.1). Det anbefales \u00e5 bruke thin mode, da kj\u00f8ring av kode g\u00e5r en del raskere.

    Dette finnes p\u00e5 fellesdisken og mappen programvare\\oracle\\ og kan kopieres lokalt. Det er er instantclient-basiclite-windows som benyttes.

    Oppdater PATH milj\u00f8variabelen med path til oracle client library. Eksmpel:

    C:\\data\\instantclient-basiclite-windows\\instantclient_19_11\n

    Note

    Se legg til milj\u00f8variabler hvis du ikke vet hvordan du oppdatere PATH.

    "},{"location":"Installasjon-p%C3%A5-VDI/pip-og-oppsett/","title":"PIP og oppsett av python med dbt","text":"

    Vi har laget et ferdig oppsett av et dbt prosjekt tilpasset NAV dvh. Enten lag et nytt repo basert p\u00e5 dvh_template eller amd_template avhengig av preferanse for komponentoppsett p\u00e5 github. Deretter m\u00e5 dbt_template merges inn for \u00e5 f\u00e5 integrert dbt prosjektet.

    F\u00f8lgende script (ogs\u00e5 p\u00e5 github) installerer et virtuelt python milj\u00f8 kun for dette prosjektet.

    pip --version\n

    "},{"location":"Installasjon-p%C3%A5-VDI/pip-og-oppsett/#feilsk-sjekk-om-du-har-pip","title":"Feils\u00f8k: Sjekk om du har PIP","text":"

    Har du installert python, s\u00e5 har du nesten sikkert ogs\u00e5 pip. Men dersom overst\u00e5ende feiler, kj\u00f8r pip --version for \u00e5 se om pip er tilgjengelig:

    pip --version\n

    Success

    pip --version\n\npip 21.1.1 from c:\\users\\*****\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\pip (python 3.8)\n

    Fortsett til \"Sett opp config fil for pip\"

    Failure

    pip --version\n\n'pip' is not recognized as an internal or external command, operable program or batch file.\n

    Kj\u00f8r py -3 -m ensurepip for \u00e5 se om pip allerede eksisterer.

    Looking in links: c:\\Users\\****\\AppData\\Local\\Temp\\tmp4r6s0n91\nRequirement already satisfied: setuptools in c:\\users\\****\\appdata\\local\\programs\\python\\python38\\lib\\site-packages (58.1.0)\nRequirement already satisfied: pip in c:\\users\\****\\appdata\\local\\programs\\python\\python38\\lib\\site-packages (21.2.4)\n

    I dette tilfelle m\u00e5 milj\u00f8variabelen PATH oppdateres. Bruk gjerne Fil utforsker for \u00e5 finne riktig path men normalt ligger PIP under:

    c:\\users\\<brukernavn>\\appdata\\local\\programs\\python\\python38\\scripts\n

    Info

    Se legg til milj\u00f8variabler hvis du ikke vet hvordan du oppdatere PATH.

    Husk at du m\u00e5 lukke og \u00e5pne cmd (ledetekst) etter path variabel er lagt inn. Du kan n\u00e5 verifisere at pip er tilgjengelig ved \u00e5 kj\u00f8re pip --version.

    "},{"location":"Installasjon-p%C3%A5-VDI/pip-og-oppsett/#oppsett-av-sertifikater-til-pip","title":"Oppsett av sertifikater til pip","text":"

    Note

    Dette steget skjer automatisk under kj\u00f8ring av setup_python_env.ps1 og er ikke lenger n\u00f8dvendig.

    Til vanlig bruker pip sitt eget sertifikat for \u00e5 validere at vi laster ned pakker fra riktig server. Siden VDI bruker en webproxy for \u00e5 kommunisere med omverdenen vill vi f\u00e5 en feilmeling ved pip install xxx.

    Error

    13:42:24  Encountered an error: External connection exception occurred:\nHTTPSConnectionPool(host='hub.getdbt.com', port=443): Max retries exceeded\nwith url: /api/v1/index.json (Caused by SSLError(SSLCertVerificationError(1,\n'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get\nlocal issuer certificate (_ssl.c:1108)')))\n

    For \u00e5 fikse feilen kan vi installere pakkene setuptools-scm og pip-system-certs som f\u00e5r pip til \u00e5 bruke Windows Certificate Store istedenfor.

    pip install setuptools-scm pip-system-certs --trusted-host pypi.org --trusted-host  files.pythonhosted.org\n
    "},{"location":"Installasjon-p%C3%A5-VDI/python/","title":"Python","text":"

    Sjekk om Python er installert med py --version. dbt-versjon 1.4 og senere st\u00f8tter Python-versjon 3.11, for en tidligere dbt-versjon m\u00e5 Python-versjon v\u00e6re >= 3.8 og < 3.11.

    Last eventuelt ned python 3.10.x og installer ved \u00e5 f\u00f8lge installsjonsveiviseren.

    py --version\n

    Success

    $ py --version\n\nPython 3.8.10\n

    Fortsett til PIP

    Failure

    $ py --version\n\nPython 3.6.4\n
    For gammel version av Python

    Last ned Python

    Failure

    $ py --version\n\npython is not recognized as an internal or external command, operable program, or batch file\n

    Python er ikke installert

    Last ned Python

    "},{"location":"Installasjon-p%C3%A5-VDI/sqlfluff/","title":"SQLFluff","text":"

    SQLFluff er en linter som hjelper oss med \u00e5 formattere SQL-koden p\u00e5 en fornuftig m\u00e5te.

    "},{"location":"Installasjon-p%C3%A5-VDI/sqlfluff/#installering-av-sqlfluff","title":"Installering av SQLFluff","text":"
    pip install sqlfluff sqlfluff-templater-dbt\n
    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/","title":"Visual Studio Code","text":"

    Bruk https://code.visualstudio.com/download, velg Windows versjonen. Last ned, pakk ut og start programmet code. F\u00f8lg instruksjonene ved innstalleringen.

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#anbefalte-extensions","title":"Anbefalte extensions","text":""},{"location":"Installasjon-p%C3%A5-VDI/vscode/#dbt-power-user","title":"dbt Power User","text":"

    dbt Power User gir oss en rekke nyttige verkt\u00f8y, som f.eks.:

    dbt Power User p\u00e5 GitHub

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#installasjon-og-oppsett","title":"Installasjon og oppsett","text":"

    Installeres via VS Code Marketplace, f\u00f8lg installasjonsrutinene til Altimate

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#utover-standardinstallasjon-ma-flgende-hensyn-tas-for-bruk-pa-vdi-utvikler-og-mot-oracle-dvh","title":"Utover standardinstallasjon m\u00e5 f\u00f8lgende hensyn tas for bruk p\u00e5 VDI Utvikler og mot Oracle DVH:","text":"

    dbt Power User krever at man setter opp milj\u00f8variabler med credentials via PowerShell, f\u00f8r VS Code startes opp i samme PowerShell-sesjon.

    Eksempel p\u00e5 hvordan man kan sette opp milj\u00f8variabler i forkant via PowerShell:

    1. Lukk eventuelle eksisterende sesjoner av VS Code
    2. Start PowerShell i dbt-mappen i aktuelt dbt-prosjekt. Trykk p\u00e5 dbt-mappen, hold deretter inne Shift-tasten og h\u00f8yreklikk p\u00e5 mappen. Velg \u00c5pne PowerShell-vindu her (eller tilsvarende tekst p\u00e5 engelsk om du er litt mer internasjonal)

    3. Kj\u00f8r .\\setup_dbt_env.ps1 + enter i PowerShell-vinduet som \u00e5pnet seg (skriv setup + trykk p\u00e5 TAB for auto-complete)

    4. Start VS Code fra samme PowerShell-vindu som .\\setup_dbt_env.ps1 ble kj\u00f8rt i, code . + enter

    (Espen jobber med et PowerShell script som skal gj\u00f8re denne operasjonen enklere)

    Preview query-template m\u00e5 endres for Oracle-bruk: 1. \u00c5pne Settings ved \u00e5 trykke CTRL + , 2. S\u00f8k etter dbt.queryTemplate 3. Endre skript til select * from ({query}) where ROWNUM <= {limit}

    Ref.: #dbtquerytemplate-for-oracle

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#erfaringer-feil-som-har-oppstatt-ved-bruk-av-dbt-power-user","title":"Erfaringer - feil som har oppst\u00e5tt ved bruk av dbt Power User:","text":""},{"location":"arkitektur/style_guide/","title":"DBT Stil Guide","text":"

    forket fra https://github.com/dbt-labs/corp/blob/main/dbt_style_guide.md

    "},{"location":"arkitektur/style_guide/#modell-naming","title":"Modell Naming","text":"

    V\u00e5r modellere organiserers inn i tre hovedgrupper: staging, marts, base/intermediate. See f\u00f8lgnede diskusjon. The navngiving blir som f\u00f8lger:

    \u251c\u2500\u2500 dbt_project.yml\n\u2514\u2500\u2500 models\n    \u251c\u2500\u2500 marts\n    |   \u2514\u2500\u2500 core\n    |       \u251c\u2500\u2500 mellomlager\n    |       |   \u251c\u2500\u2500 mellomlager.yml\n    |       |   \u251c\u2500\u2500 posteringer__unionisert.sql\n    |       |   \u2514\u2500\u2500 posteringer__gruppert.sql\n    |       \u251c\u2500\u2500 core.docs\n    |       \u251c\u2500\u2500 dim_artskonti\n    |           \u251c\u2500\u2500 dim_artskonti.yml\n    |           \u2514\u2500\u2500 dim_artskonti.sql\n    |       \u251c\u2500\u2500 dim_konstnadssteder\n    |           \u251c\u2500\u2500 dim_konstnadssteder.yml\n    |           \u2514\u2500\u2500 dim_konstnadssteder.sql\n    |       \u2514\u2500\u2500 fak_hovedbok_posteringer\n    |           \u251c\u2500\u2500 fak_hovedbok_posteringer.yml\n    |           \u2514\u2500\u2500 fak_hovedbok_posteringer.sql\n    \u2514\u2500\u2500 staging\n        \u2514\u2500\u2500 oebs\n            \u251c\u2500\u2500 base\n            |   \u251c\u2500\u2500 base.yml\n            |   \u2514\u2500\u2500 base__oebs_kontoplan.sql\n            \u251c\u2500\u2500 src_oebs.yml\n            \u251c\u2500\u2500 src_oebs.docs\n            \u251c\u2500\u2500 stg_oebs__posteringerslinjer\n            |   \u251c\u2500\u2500 stg_oebs__posteringerslinjer.yml\n            |   \u2514\u2500\u2500 stg_oebs__posteringerslinjer.sql\n            \u251c\u2500\u2500 stg_oebs__budjsett_balanser\n            |   \u251c\u2500\u2500 stg_oebs__budjsett_balanser.yml\n            |   \u2514\u2500\u2500 stg_oebs__budjsett_balanser.sql\n
    - All objekter oppgis p\u00e5 flertallsform, slik som: stg_oebs__hovedbok_posteringslinjer, stg_oebs__artskonti, etc. - Basetabeller prefikses med base__, slik som: base__<source>_<object> - Mellomlagringstabeller skal avsluttes med et fortidsverb som indikerer hvilken handling som er gjort p\u00e5 objektet, slik som: hovedbok_posteringslinjer__filtrert_budsjett - Datatorg, eller marter, er fordelt mellom faktaer (uforandelig, verb) og dimensjoner (foranderlig, subjekt) og prefikses med fak_ og dim_, henholdvis. - Staged strukter inneholder alle kolonner fra r\u00e5-tabellen og utvides med avledede kolonner, for \u00e5 angi naturlig n\u00f8kler, hashed n\u00f8kler, omd\u00f8ping av kolonnenavn, etc.

    "},{"location":"arkitektur/style_guide/#model-konfigurasjon","title":"Model konfigurasjon","text":"

    {{\n  config(\n    materialized = 'table',\n    sort = 'id',\n    dist = 'id'\n  )\n}}\n
    - Marter b\u00f8r alltid configureres som tabeller - med mindre det er sv\u00e6rt gode grunner til \u00e5 ikke gj\u00f8re det.

    "},{"location":"arkitektur/style_guide/#dbt-konvensjoner","title":"DBT konvensjoner","text":""},{"location":"arkitektur/style_guide/#tester","title":"Tester","text":""},{"location":"arkitektur/style_guide/#navngivining-og-felt-konvensjoner","title":"Navngivining og felt konvensjoner","text":""},{"location":"arkitektur/style_guide/#cteer","title":"CTEer","text":"

    For mer informasjon om hvorfor vi bruker CTEer, see f\u00f8lgende post. Kortversjonen er at det hjelper oss \u00e5 samle kildene \u00f8verst, gj\u00f8re enkle transformasjoner og joiner i midten og se resultatet nederst. Oracle skal st\u00f8tte passthrough slik at masse wither p\u00e5 rad ikke p\u00e5virker ytelsen.

    WITH\n\nhendelser AS (\n\n    ...\n\n),\n\n-- CTE comments go here\nfiltrerte_hendelser AS (\n\n    ...\n\n),\n\nendelig AS (\n\n    SELECT * FROM filtrerte_hendelser\n\n),\n\n\nSELECT * FROM endelig\n
    "},{"location":"arkitektur/style_guide/#sql-stil-guide","title":"SQL stil guide","text":""},{"location":"arkitektur/style_guide/#eksempel-sql","title":"Eksempel SQL","text":"
    WITH\n\nmin_data AS (\n\n    SELECT * FROM {{ ref('min_data') }}\n\n),\n\nen_cte AS (\n\n    SELECT * FROM {{ ref('en_cte') }}\n\n),\n\nen_cte_agg AS (\n\n    SELECT\n        id,\n        SUM(felt_4) AS total_felt_4,\n        MAX(felt_5) AS max_felt_5\n\n    FROM en_cte\n    GROUP BY 1\n\n),\n\nendelig AS (\n\n    SELECT [DISITNCT]\n        min_data.felt_1,\n        min_data.felt_2,\n        min_data.felt_3,\n\n        -- Bruk linjeshift for visuelt separere kalkulasjoner inn i blokker.\n        CASE\n            WHEN min_data.kansellerings_dato IS NULL\n                AND min_data.utgangs_dato is not null\n                THEN utgangsdato_date\n            WHEN my_data.kansellerings_dato IS NULL\n                THEN my_data.start_dato + 7\n            ELSE my_data.kansellerings_date\n        END AS kansellerings_dato,\n\n        en_cte_agg.total_felt_4,\n        en_cte_agg.max_felt_5\n\n    FROM min_data\n    LEFT JOIN en_cte_agg  \n        ON min_data.id = en_cte_agg.id\n    WHERE min_data.felt_1 = 'abc'\n        AND (\n            min_data.felt_2 = 'def' OR\n            min_data.felt_2 = 'ghi'\n        )\n    HAVING COUNT(*) > 1\n\n)\n\nSELECT * FROM final\n
    "},{"location":"arkitektur/style_guide/#yaml-stil-guide","title":"YAML stil guide","text":""},{"location":"arkitektur/style_guide/#eksample-yaml","title":"Eksample YAML","text":"
    version: 2\n\nmodels:\n  - name: hendelser\n    columns:\n      - name: pk_hendelser\n        description: Dette er n prim\u00e6rn\u00f8kkel\n        tests:\n          - unique\n          - not_null\n\n      - name: hendelse_ts \n        description: \"N\u00e5r hendelse skjedde i UTC (eg. 2018-01-01 12:00:00)\"\n        tests:\n          - not_null\n\n      - name: fk_brukere\n        description: Brukeren som st\u00e5 for hendelsen \n        tests:\n          - not_null\n          - relationships:\n              to: ref('brukere')\n              field: pk_brukere\n
    "},{"location":"arkitektur/style_guide/#jinja-stil-guide","title":"Jinja stil guide","text":""},{"location":"dokumentasjon/dokumentasjon/","title":"Dokumentasjon","text":""},{"location":"dokumentasjon/dokumentasjon/#tabelldokumentasjon","title":"Tabelldokumentasjon","text":"

    Tabellene konfigureres og dokumenteres i yml filene i hver mappe i prosjektet. Kommentarer kan settes p\u00e5 b\u00e5de tabellniv\u00e5 og kolonneniv\u00e5. Les mer her.

    "},{"location":"dokumentasjon/dokumentasjon/#persist-docs","title":"Persist docs","text":"

    dbt-oracle har st\u00f8tte for \u00e5 skrive kommentarer til databasen. Som andre konfig, kan det settes p\u00e5 prosjektniv\u00e5, mappeniv\u00e5 eller modellniv\u00e5. For \u00e5 sette det p\u00e5 prosjektniv\u00e5, legg til f\u00f8lgende i dbt_project.yml

    models:\n  +persist_docs:\n    relation: true\n    columns: true\n

    En ting \u00e5 v\u00e6re oppmerksom p\u00e5 n\u00e5r persist_docs er aktivert er at kolonnenavn i modellen m\u00e5 v\u00e6re det samme som definert i yml filen.

    ORA-00904

    ORA-00904: \"KOLONNE\": invalid identifier\n
    SELECT\n  kolonne\nFROM ...\n
    - name: kolonne_navn\n  description: ...\n

    Her har Oracle fors\u00f8kt \u00e5 skrive kommentar til en kolonne som ikke eksisterer. Sammenlign modell og yml fil og sjekk at navnet p\u00e5 kolonnen er lik.

    "},{"location":"dokumentasjon/dokumentasjon/#overskrive-overview","title":"Overskrive overview","text":"

    Komponentdokumentasjonen kan integreres i dbt dokumentasjonen. I dbt/models folderen m\u00e5 det opprettes en overview.md fil. Bruk gjerne overview.md som mal

    "},{"location":"dokumentasjon/dokumentasjon/#deployere-dokumentasjon","title":"Deployere dokumentasjon","text":"

    Hver gang kommandoen dbt docs kj\u00f8res, genereres det tre filer i target mappa under dbt prosjektmappa: index.hml, catalog.json og manifest.json. Disse filene er statiske og inneholder alt som trengs for \u00e5 publisere en versjon av dokumentasjonen p\u00e5 en webserver.

    Github pages har slik st\u00f8tte. Publsiering til github pages kan gj\u00f8res p\u00e5 flere m\u00e5ter, men kanskje enklest er det \u00e5 bruke en github action:

    # Simple workflow for dbt docs content to GitHub Pages\nname: Deploy dbt docs to GitHub Pages\n\non:\n  push:\n    branches: [\"master\"]\n    paths:\n      - docs/**\n\n  workflow_dispatch:\n\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\n# Allow one concurrent deployment\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: true\n\njobs:\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Setup Pages\n        uses: actions/configure-pages@v2\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v1\n        with:\n          path: 'docs'\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v1\n
    1. Importer overst\u00e5ende github action i .workflow
    2. Kj\u00f8r kommandoen dbt docs generate
    3. Lag en docs mappe p\u00e5 roten av repoet, hvis det ikke allerede finnes.
    4. Kopier over filene index.hml, catalog.json og manifest.json fra target mappen til docs mappen.
    5. Commit og push til main branchen.
    6. Docen blir automatisk publisert av github action, til url spesifisert av jobben.
    "},{"location":"dokumentasjon/overview/","title":"Overview","text":"

    {% docs overview %}

    "},{"location":"dokumentasjon/overview/#xxx-komponenten","title":"XXX - komponenten","text":""},{"location":"dokumentasjon/overview/#formal","title":"Form\u00e5l","text":"

    Overordnet beskrivelse av form\u00e5l med l\u00f8sningen

    "},{"location":"dokumentasjon/overview/#komponentbeskrivelse","title":"Komponentbeskrivelse","text":""},{"location":"dokumentasjon/overview/#struktur-pa-repo","title":"Struktur p\u00e5 repo","text":"

    Lenke til dokumentasjon p\u00e5 confluence

    Vi har f\u00f8lgende mapper: - db (medf\u00f8lgende readme) - install (her ligger ddl filer per tabell/view. Ogs\u00e5 dcl-filer som gir grants) - patch (hvert script har jira-kode som prefiks og kort forklaring/tabellnavn). N\u00e5r man endrer en tabell her m\u00e5 man ogs\u00e5 endre den i install-filen) - utils (kanskje, hvis man trenger det) - dbt - dbt prosjektet. dette er stien der man kj\u00f8rer dbt kommandoer.

    "},{"location":"dokumentasjon/overview/#overordnet-design","title":"Overordnet design","text":""},{"location":"dokumentasjon/overview/#dataflyt-diagram","title":"Dataflyt-diagram","text":"

    Dataflyten finnes ved \u00e5 klikke p\u00e5 det bl\u00e5 ikonet nederst til h\u00f8yre p\u00e5 siden

    # DAG task kilde m\u00e5l kommentar"},{"location":"dokumentasjon/overview/#databasebeskrivelse","title":"Databasebeskrivelse","text":"

    En oversikt over de viktigste tabellene

    Tabell/Views Beskrivelse tabell1 besk tabell2 besk"},{"location":"dokumentasjon/overview/#databasescript","title":"Databasescript","text":"

    Referanser til hvor databasescriptene befinner seg

    "},{"location":"dokumentasjon/overview/#drift","title":"Drift","text":""},{"location":"dokumentasjon/overview/#workflows-og-kjretidspunkt","title":"Workflows og kj\u00f8retidspunkt","text":"

    Inneholder informasjon om viktige punkter for kj\u00f8retider

    "},{"location":"dokumentasjon/overview/#tilgangsstyring","title":"Tilgangsstyring","text":"

    Er det noen spesielle rettigheter som kreves for denne komponenten?

    "},{"location":"dokumentasjon/overview/#overvaking-og-datakvalitet","title":"Overv\u00e5king og datakvalitet","text":""},{"location":"dokumentasjon/overview/#datakvalitet","title":"Datakvalitet","text":"

    Det kj\u00f8res datakvalitetsm\u00e5linger for disse tabellene

    "},{"location":"dokumentasjon/overview/#overvaking","title":"Overv\u00e5king","text":"

    F\u00f8lgende Sitescope-monitorer kj\u00f8res for denne komponenten.

    "},{"location":"dokumentasjon/overview/#sikkerhet-og-personvern","title":"Sikkerhet og personvern","text":"

    Inneholder detaljer rundt f.eks tilgang

    Det er ikke utarbeidet PVK for denne komponenten.

    H\u00e5ndtering av kode 6 og 7: Under arbeid

    "},{"location":"dokumentasjon/overview/#backlog","title":"Backlog","text":"

    Lenke til jira-oversikt?

    "},{"location":"dokumentasjon/overview/#dbt-docs-brukerguide","title":"dbt docs - brukerguide","text":""},{"location":"dokumentasjon/overview/#navigasjon","title":"Navigasjon","text":"

    Du kan bruke navigasjonsfanene Project og Database p\u00e5 venstre side av vinduet for \u00e5 utforske modellene i komponenten.

    "},{"location":"dokumentasjon/overview/#prosjektfane","title":"Prosjektfane","text":"

    Prosjekt-fanen speiler katalogstrukturen til dbt-prosjektet ditt. I denne fanen kan du se alle modeller definert i dbt-prosjektet ditt, samt modeller importert fra dbt-pakker.

    "},{"location":"dokumentasjon/overview/#database-fanen","title":"Database-fanen","text":"

    Fanen Database viser ogs\u00e5 modellene dine, men i et format som ser mer ut som en databaseutforsker. Denne utsikten viser relasjoner (tabeller og visninger) gruppert i databaseskjemaer. Merk at ephemeral modeller ikke vises i dette grensesnittet, da de ikke finnes i databasen.

    "},{"location":"dokumentasjon/overview/#grafutforskning","title":"Grafutforskning","text":"

    Du kan klikke p\u00e5 det bl\u00e5 ikonet nederst til h\u00f8yre p\u00e5 siden for \u00e5 se lineage til modellene dine.

    P\u00e5 modellsidene vil du se de n\u00e6rmeste foreldrene og barna til modellen du utforsker. Ved \u00e5 klikke p\u00e5 Expand. knappen \u00f8verst til h\u00f8yre i denne avstamningsruten, vil du kunne se alle modellene som brukes til \u00e5 bygge, eller er bygget fra, modellen du utforsker.

    N\u00e5r den er utvidet, vil du kunne bruke --select og --exclude modellvalgsyntaks for \u00e5 filtrere modeller i grafen. For mer informasjon om modellvalg, sjekk ut dbt docs.

    Merk at du ogs\u00e5 kan h\u00f8yreklikke p\u00e5 modeller for \u00e5 filtrere og utforske grafen interaktivt.

    "},{"location":"dokumentasjon/overview/#mer-info","title":"Mer info","text":"

    {% enddocs %}

    "},{"location":"feilsoking/feilsoking/","title":"Feils\u00f8king","text":"

    Samleside for vanlige feilsistuasjoner som kan oppst\u00e5 med dbt og Oracle i NAV

    "},{"location":"feilsoking/feilsoking/#incremental","title":"Incremental","text":""},{"location":"feilsoking/feilsoking/#ora-00955-det-finnes-allerede-et-objekt-med-det-navnet","title":"ORA-00955: det finnes allerede et objekt med det navnet","text":"

    ???

    "},{"location":"feilsoking/feilsoking/#ora-00904-kolonne-invalid-identifier","title":"ORA-00904: \"KOLONNE\": invalid identifier","text":"

    Dersom persist_docs er aktivert i dbt_project.yml, ta en titt p\u00e5 siden om Dokumentasjon.

    "},{"location":"feilsoking/feilsoking/#kobling-mot-oracle-database","title":"Kobling mot oracle database","text":""},{"location":"feilsoking/feilsoking/#dpy-2029-https_proxy-requires-use-of-the-tcps-protocol","title":"DPY-2029: https_proxy requires use of the tcps protocol","text":"

    Bytte fra thin mode til cx mode. I outputen du f\u00e5r i terminalen, sjekk hvilken mode du kj\u00f8rer i. Kj\u00f8rer du i thin mode endr det til cx mode. Dette gj\u00f8res ved \u00e5 bruke Oracle Instant Client. Sett path til Oracle Instant Client i milj\u00f8veriabler og slett ORA_PYTHON_DRIVER_TYPE=thin fra milj\u00f8variabler.

    "},{"location":"prosjekter/dvh-sykefravar-dmx/","title":"dvh-sykefravar-dmx","text":"

    Eies av Team Sykefrav\u00e6r

    "},{"location":"prosjekter/dvh-sykefravar-dmx/#formal","title":"Form\u00e5l","text":"

    Analysetorg brukt til syfo (sykefrav\u00e6rsoppfoling)

    "},{"location":"prosjekter/dvh-sykefravar-dmx/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-team-sykefrav\u00e6r

    "},{"location":"prosjekter/dvh_arb_cv/","title":"dvh_arb_cv","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_cv/#formal","title":"Form\u00e5l","text":"

    Siste versjon av CV-elementer og jobb\u00f8nsker per person registrert arbeidss\u00f8ker NAV.

    "},{"location":"prosjekter/dvh_arb_cv/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_permittering/","title":"dvh_arb_permittering","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_permittering/#formal","title":"Form\u00e5l","text":"

    NAV har behov for \u00e5 samle statistikk for oversikt over permitterte arbeidss\u00f8kere og forh\u00e5ndsmelding om permittering og masseoppsigelser.

    Arbeidsgivere som vurderer \u00e5 g\u00e5 til masseoppsigelser eller permitteringer, gir melding om dette til NAV. Fra 2020 blir disse meldingene sendt inn elektronisk til NAV, og registreres i l\u00f8sningen Permittering.

    Dekker i f\u00f8rste omgang forh\u00e5ndsmelding om permittering, dvs n\u00e5r virksomheter permittere over 10 personer s\u00e5 skal de melde til NAV p\u00e5 forh\u00e5nd.

    "},{"location":"prosjekter/dvh_arb_permittering/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_person/","title":"dvh_arb_person","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_person/#formal","title":"Form\u00e5l","text":"

    Arbeidsmakedsstatistikken.

    "},{"location":"prosjekter/dvh_arb_person/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_styrke_ssb/","title":"dvh_arb_styrke_ssb","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_styrke_ssb/#formal","title":"Form\u00e5l","text":"

    Komponenten leser data inn fra SSB i to forskjellige l\u00f8p:

    "},{"location":"prosjekter/dvh_arb_styrke_ssb/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_tiltak/","title":"dvh_arb_tiltak","text":"

    Eies av Team Oppf\u00f8lging Eies av Team Oppf\u00f8lging)

    "},{"location":"prosjekter/dvh_arb_tiltak/#formal","title":"Form\u00e5l","text":"

    Brukes i Tiltaks- og oppf\u00f8lgingsstatistikken.

    "},{"location":"prosjekter/dvh_arb_tiltak/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-oppf\u00f8lging

    "},{"location":"prosjekter/nystol/vdl-regnskapsdata/","title":"vdl-regnskapsdata","text":"

    Eies av Team-VDL

    "},{"location":"prosjekter/nystol/vdl-regnskapsdata/#formal","title":"Form\u00e5l","text":"

    Analysedata av hovedbok

    "},{"location":"prosjekter/nystol/vdl-regnskapsdata/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #virksomhetsdatalaget

    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduksjon til dbt","text":"

    dbt (data build tool) er et SQL basert transformasjonsvekt\u00f8y som lar deg modularisere og skrive testbar SQL kode. dbt s\u00f8rger for at SQLene blir kj\u00f8rt i riktig rekkef\u00f8lge slik at sluttproduktet blir oppdatert korrekt.

    En SQL fil i dbt blir kalt en modell i dbt. Modeller kan materialiseres p\u00e5 ulike m\u00e5ter. Som view, tabell eller rett og slett en SQL snutt som kan gjenbrukes i flere modeller etter DRY-prinsippet.

    dbt er IKKE et extract-load verkt\u00f8y. Det betyr at dataene som skal transformeres allerede m\u00e5 ligge i databasen dbt er koblet til. dbt krever alts\u00e5 at data er lastet p\u00e5 forh\u00e5nd, med feks en pythonjobb eller kafkakonsument. Dataene trenger ikke n\u00f8dvendigvis ligge i samme komponentskjema eller samme BigQuery prosjekt. S\u00e5 lenge dataene er tilgjengelig p\u00e5 samme database og dbt service brukeren har tilgang til \u00e5 lese dataene er du good to go.

    dbt kommer b\u00e5de i som open source i form av dbt-core og i en egen cloud versjon, dbt cloud. Cloud versjonen st\u00f8tter kun skydatabaser som feks. BigQuery og Snowflake. dbt Cloud kan derfor ikke brukes mot Oracle onprem databasen til datavarehus. For datasett som befinner seg p\u00e5 datamarkedsplassen i BigQuery, kan dbt Cloud v\u00e6re en mulighet.

    For Oracle on-prem benytter vi dbt-oracle som er en python pakke som baserer seg p\u00e5 dbt-core. Oracle er ikke offisielt st\u00f8ttet av dbt, men Oracle har tatt ansvar for community connectoren og og blir aktiv vedlikeholdt og fortl\u00f8pende oppdatert til siste versjon av dbt-core. For \u00e5 n\u00e5 on-prem Oracle m\u00e5 vi som kjent benytte utviklerimage. Denne guiden tar for seg installasjon og oppsett av dbt-oracle p\u00e5 vdi utvikler gjennom Visual Studio Code.

    "},{"location":"#lenker","title":"Lenker","text":"

    F\u00f8r du g\u00e5r gjennom detaljene p\u00e5 hvordan dbt b\u00f8r settes opp er det lurt \u00e5 bli kjent med hvordan dbt fungerer. Nedenfor er det et knippe nyttige lenker som hjelper deg med \u00e5 komme igang og l\u00e6re de viktigste kommandoene og funksjonene i dbt.

    "},{"location":"#kurs-dbt-fundamentals","title":"Kurs - dbt fundamentals","text":"

    Det er sterkt anbefalt \u00e5 starte med \u00e5 g\u00e5 gjennom fundamentals kurset til dbt labs. Dette kurset bruker dbt cloud, men mesteparten av innholdet kan overf\u00f8res til dbt-core. Bruk gjerne GCP dev milj\u00f8et til teamet for \u00e5 sette opp testprosjektet i BigQuery, men husk p\u00e5 \u00e5 slette ressursene i etterkant

    "},{"location":"#designprinsipper","title":"Designprinsipper","text":"

    How to design a dbt model from scratch. Hvordan b\u00f8r du tenke n\u00e5 du designer nye modeller med dbt? Det er fort gjort \u00e5 bomme p\u00e5 f\u00f8rste fors\u00f8k, og det koster mye tid.

    "},{"location":"#dimensjonsmodellering","title":"Dimensjonsmodellering","text":"

    Kimball er fortsatt relevant med dbt. Building a Kimball dimensional model with dbt

    "},{"location":"#bok","title":"Bok","text":"

    Det er nylig (juni 2023) lansert en bok om Data Engineering with dbt. Boken inneholder instroduksjon til data engineering generelt og endelt om ulike skydatabaser i tillegg til grunnleggende bruk av dbt. Kanskje den mest interessante delen er kapittel 8 som omhandler testing med dbt.

    "},{"location":"#nyttige-lenker","title":"Nyttige lenker","text":"

    dbt's egne guider: Lessons

    Community basert samling av lenker: awsome-dbt

    "},{"location":"#hvorfor-skal-jeg-bruke-dbt-jeg-kan-jo-kjre-sql-med-python","title":"Hvorfor skal jeg bruke dbt? Jeg kan jo kj\u00f8re SQL med Python","text":"

    Det er riktig. Dersom du bare skal kj\u00f8re noen enkle SQL sp\u00f8rringer er det kanskje like greit \u00e5 sette opp en Pythonjobb som kj\u00f8rer SQLen for deg. Men med en gang antall sp\u00f8rringer eller kompleksiteten p\u00e5 sp\u00f8rringene \u00f8ker vil dbt hjelpe med med \u00e5 strukturere koden og holde oversikt over rekkef\u00f8lgen. Det er ikke uvanlig at en komponent best\u00e5r av 30 eller flere SQL filer som avhenger av hverandre.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/","title":"DBT","text":"

    Det finnes en offisiell oracle adapter for dbt v1.x. Gjerne start med \u00e5 ta en titt p\u00e5 denne installasjonsguiden f\u00f8rst.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#installasjon","title":"Installasjon","text":"

    dbt kan installeres sammen med oracle adapteren med kommandoen:

    pip install dbt-oracle\n

    Nedlasting feiler

    $ pip install dbt-oracle\nWARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)'))': /simple/dbt-oracle/\n\n...\n\nCould not fetch URL https://pypi.org/simple/dbt-oracle/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/dbt-oracle/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))\n

    Sjekk om du har gjort oppsett av sertifikater til pip.

    Installasjon feiler

    I noen tilfeller har vi opplevd at Microsoft Visual C++ mangler. Feilmeldingen kan se slik ut:

    ...\nBuilding wheels for collected packages: cx-Oracle\nBuilding wheel for cx-Oracle (pyproject.toml) ... error\nerror: subprocess-exited-with-error\n\n\u00d7 Building wheel for cx-Oracle (pyproject.toml) did not run successfully.\n\u2502 exit code: 1\n\u2570\u2500> [8 lines of output]\n      C:\\Users\\RA_S167159\\AppData\\Local\\Temp\\pip-build-env-lh09agh5\\overlay\\Lib\\site-packages\\setuptools\\config\\expand.py:144: UserWarning: File 'C:\\\\Users\\\\RA_S167159\\\\AppData\\\\Local\\\\Temp\\\\pip-install-ki6mcccg\\\\cx-oracle_5a1e160a6cb5498187fe05d5b5637d8c\\\\README.md' cannot be found\n        warnings.warn(f\"File {path!r} cannot be found\")\n    pip_system_certs: ERROR: could not register module: No module named 'wrapt'\n    running bdist_wheel\n    running build\n    running build_ext\n    building 'cx_Oracle' extension\n    error: Microsoft Visual C++ 14.0 or greater is required. Get it with \"Microsoft C++ Build Tools\": https://visualstudio.microsoft.com/visual-cpp-build-tools/\n    [end of output]\n\nnote: This error originates from a subprocess, and is likely not a problem with pip.\nERROR: Failed building wheel for cx-Oracle\nFailed to build cx-Oracle\nERROR: Could not build wheels for cx-Oracle, which is required to install pyproject.toml-based projects\n...\n
    Last ned og installer Build Tools. F\u00f8lg gjerne guiden her: Fixed: Microsoft Visual C++ 14.0 Is Required Error Husk \u00e5 restarte VDI etter installasjon.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#opprette-nytt-dbt-prosjekt-for-oracle","title":"Opprette nytt dbt prosjekt for Oracle","text":"

    Oppsettet av nytt prosjekt er forenklet og tilpasset datavarehus. Det er laget eksempelprosjekt i repo dvh_template for bruk av dbt til komponentskjemaer. dbt prosjektet ligger i en egen branch dbt_template.

    Hvis du ikke \u00f8nsker \u00e5 ta i bruk standardprosjektet, men heller kj\u00f8re dbt init er det noen ting som kan skape uforst\u00e5elige feilmeldinger:

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#quoting","title":"Quoting","text":"

    Quoting av databasenavn m\u00e5 aktiveres i dbt_project.yml siden databasenenavnene til dvh-databasene er med sm\u00e5 bokstaver (eks. dwhu1). Hvis ikke dette gj\u00f8res kommer det feilmeling som sier noe slikt som approximate match

    For \u00e5 skru p\u00e5 quoting m\u00e5 f\u00f8lgende settes i dbt_project.yml:

    quoting:\n  database: true\n
    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#hemmeligheter-ved-kjring-fra-utviklerimage","title":"Hemmeligheter ved kj\u00f8ring fra utviklerimage","text":"

    Av sikkerhetshensyn anbefaler vi og oracle \u00e5 bruke milj\u00f8variabler for \u00e5 holde p\u00e5 hemmeligheter. Vi har derfor laget et script og profiles.yml som kan ligge i dbt-prosjektet.

    Scriptet kan lastes ned fra navikt/dvh_template/dbt/setup_db_user.ps1.

    profiles.yml skal opprettes i p\u00e5 toppniv\u00e5 i dbt-prosjektmappen, eksempel navikt/dvh_template/dbt/profiles.yml Merk at navn p\u00e5 profil er profilnavnet det henvises til i dbt_project.yml

    <navn p\u00e5 profil>:\n  target: \"{{env_var('DBT_DB_TARGET')}}\"\n ...\n

    N\u00e5r profilen er p\u00e5 plass i prosjektmappen kan du teste at dbt fungerer.

    "},{"location":"Installasjon-p%C3%A5-VDI/dbt/#teste-dbt-installasjonen","title":"Teste dbt installasjonen","text":"

    Etter at dbt er p\u00e5 plass kan du verifisere at dbt fungerer ved \u00e5 kj\u00f8re .\\setup_db_user.ps1 etterfulgt av dbt debug fra prosjektmappen. Er det et nytt prosjekt m\u00e5 du opprette profiles.yml f\u00f8rst.

    .\\setup_db_user.ps1 m\u00e5 kj\u00f8res hver gang en starter en ny terminal eller \u00f8nsker \u00e5 bytte target (db). Scriptet vill midlertidlig opprette milj\u00f8variablene i terminal-sesjonen for target, brukernavn, passord, schema og peke dbt mot profiles.yml i prosjektmappen.

    Success

    $ .\\setup_db_user.ps1\nTarget db: U <eventuelt Q,R eller P>\nSchema: \n\ncmdlet Get-Credential at command pipeline position 1\nSupply values for the following parameters:\nCredential\n\n$ dbt debug\n09:15:08  Running with dbt=1.1.1\ndbt version: 1.1.1\npython version: 3.8.10\npython path: c:\\users\\****\\appdata\\local\\programs\\python\\python38\\python.exe      \nos info: Windows-10-10.0.19044-SP0\nUsing profiles.yml file at C:\\Users\\****\\git\\dvh-sykefravar-dmx\\profiles.yml\nUsing dbt_project.yml file at C:\\Users\\****\\git\\dvh-sykefravar-dmx\\dbt_project.yml\n\n09:15:08  oracle adapter: Running in cx mode\nConfiguration:\n  profiles.yml file [OK found and valid]   \n  dbt_project.yml file [OK found and valid]\n\nRequired dependencies:\n- git [OK found]\n\nConnection:\n  user: ****\n  database: dwhu1\n  schema: ****\n  protocol: tcp\n  host: dm07-scan.adeo.no\n  port: 1521\n  tns_name: None\n  service: dwhu1\n  connection_string: None\n  shardingkey: []\n  supershardingkey: []\n  cclass: None\n  purity: None\n  Connection test: [OK connection ok]\n\nAll checks passed!\n

    DBT er n\u00e5 klart til bruk.

    Error

    Connection test: [ERROR]\n\n2 checks failed:\nError from git --help: Could not find command, ensure it is in the user's PATH and that the user has permissions to run it: \"git\"\n\ndbt was unable to connect to the specified database.\nThe database returned the following error:\n\n  >Database Error\n  DPI-1047: Cannot locate a 64-bit Oracle Client library: \"failed to get message for Windows Error 126\". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help\n\nCheck your database credentials and try again. For more information, visit:\nhttps://docs.getdbt.com/docs/configure-your-profile\n

    Oracle client library er mest sannsynlig ikke installert.

    "},{"location":"Installasjon-p%C3%A5-VDI/git/","title":"GIT","text":"
    1. Installering av GIT - har du den allerede er det flott.
    2. Denne finner du p\u00e5 felles disken under programvare. programvare\\git. Installer f.eks Git-2.30.2-64-bit. Legg installasjon directory inn i milj\u00f8variabel PATH. F.eks C:\\Users\\<brukernavn>\\AppData\\Local\\GitHubDesktop\\bin
    3. Dette steget er sannsynligvis ikke n\u00f8dvendig, og utf\u00f8res kun om det oppst\u00e5r problemer i senere steg. Oppdatere milj\u00f8variabler slik at utviklingsimaget kan kommunisere med Github. Dette er beskrevet i https://confluence.adeo.no/pages/viewpage.action?pageId=272519832 punkt 10c
    4. F\u00f8lgende legges inn som milj\u00f8 variabler
    5. https_proxy til http://webproxy-utvikler.nav.no:8088
    6. http_proxy: http://155.55.60.117:8088/
    7. no_proxy: localhost,127.0.0.1,*.adeo.no,.local,.adeo.no,.nav.no,.aetat.no,.devillo.no,.oera.no,devel
    8. Opprett et PAT (personal access token) som du m\u00e5 bruke som passord ved autentisering. Se https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token Alternativt kan du bruke GitHub Dekstop som setter dette opp for deg automatisk.
    9. Clone repositoriet du skal jobbe med. Husk \u00e5 bruke PAT opprettet i punkt 3. som passord om du ikke bruker GitHub Desktop.
    "},{"location":"Installasjon-p%C3%A5-VDI/installere/","title":"Installere DBT p\u00e5 VDI","text":""},{"location":"Installasjon-p%C3%A5-VDI/installere/#forutsetninger","title":"Forutsetninger","text":"

    For \u00e5 installere dbt m\u00e5 du ha f\u00f8lgende installert:

    "},{"location":"Installasjon-p%C3%A5-VDI/installere/#anbefalinger","title":"Anbefalinger","text":"

    For en god utvikleropplevelse anbefaler vi deg \u00e5 ha f\u00f8lgende installert:

    "},{"location":"Installasjon-p%C3%A5-VDI/miljovariabler/","title":"Legge til milj\u00f8variabler","text":"
    1. S\u00f8k etter milj\u00f8variabler
    2. Klikk p\u00e5: Rediger milj\u00f8bariabler for kontoen din
    1. Trykk p\u00e5 Ny...
    2. Gi variabelen et navn i Variabelnavn.
    3. Skriv inn path til programmet i Variabelverdi
    4. Trykk OK
    1. Marker Path variabelen
    2. Trykk Rediger...
    1. Trykk Ny
    2. Skriv inn navnet p\u00e5 variabelen du opprettet med syntaksen %<variabelnavn>% eks: %PIP%
    3. Trykk OK
    1. Trykk OK

    Note

    Husk at du m\u00e5 lukke cmd (ledetekst) og \u00e5pne p\u00e5 nytt for at endringen skal tre i kraft.

    "},{"location":"Installasjon-p%C3%A5-VDI/oracle-client-library/","title":"Oracle client library","text":"

    Note

    Dette steget utg\u00e5r hvis du bruker thin mode (tynnklient som ikke trenger klientbiblioteket. Introdusert i dbt-oracle 1.1.1). Det anbefales \u00e5 bruke thin mode, da kj\u00f8ring av kode g\u00e5r en del raskere.

    Dette finnes p\u00e5 fellesdisken og mappen programvare\\oracle\\ og kan kopieres lokalt. Det er er instantclient-basiclite-windows som benyttes.

    Oppdater PATH milj\u00f8variabelen med path til oracle client library. Eksmpel:

    C:\\data\\instantclient-basiclite-windows\\instantclient_19_11\n

    Note

    Se legg til milj\u00f8variabler hvis du ikke vet hvordan du oppdatere PATH.

    "},{"location":"Installasjon-p%C3%A5-VDI/pip-og-oppsett/","title":"PIP og oppsett av python med dbt","text":"

    Vi har laget et ferdig oppsett av et dbt prosjekt tilpasset NAV dvh. Enten lag et nytt repo basert p\u00e5 dvh_template eller amd_template avhengig av preferanse for komponentoppsett p\u00e5 github. Deretter m\u00e5 dbt_template merges inn for \u00e5 f\u00e5 integrert dbt prosjektet.

    F\u00f8lgende script (ogs\u00e5 p\u00e5 github) installerer et virtuelt python milj\u00f8 kun for dette prosjektet.

    pip --version\n

    "},{"location":"Installasjon-p%C3%A5-VDI/pip-og-oppsett/#feilsk-sjekk-om-du-har-pip","title":"Feils\u00f8k: Sjekk om du har PIP","text":"

    Har du installert python, s\u00e5 har du nesten sikkert ogs\u00e5 pip. Men dersom overst\u00e5ende feiler, kj\u00f8r pip --version for \u00e5 se om pip er tilgjengelig:

    pip --version\n

    Success

    pip --version\n\npip 21.1.1 from c:\\users\\*****\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\pip (python 3.8)\n

    Fortsett til \"Sett opp config fil for pip\"

    Failure

    pip --version\n\n'pip' is not recognized as an internal or external command, operable program or batch file.\n

    Kj\u00f8r py -3 -m ensurepip for \u00e5 se om pip allerede eksisterer.

    Looking in links: c:\\Users\\****\\AppData\\Local\\Temp\\tmp4r6s0n91\nRequirement already satisfied: setuptools in c:\\users\\****\\appdata\\local\\programs\\python\\python38\\lib\\site-packages (58.1.0)\nRequirement already satisfied: pip in c:\\users\\****\\appdata\\local\\programs\\python\\python38\\lib\\site-packages (21.2.4)\n

    I dette tilfelle m\u00e5 milj\u00f8variabelen PATH oppdateres. Bruk gjerne Fil utforsker for \u00e5 finne riktig path men normalt ligger PIP under:

    c:\\users\\<brukernavn>\\appdata\\local\\programs\\python\\python38\\scripts\n

    Info

    Se legg til milj\u00f8variabler hvis du ikke vet hvordan du oppdatere PATH.

    Husk at du m\u00e5 lukke og \u00e5pne cmd (ledetekst) etter path variabel er lagt inn. Du kan n\u00e5 verifisere at pip er tilgjengelig ved \u00e5 kj\u00f8re pip --version.

    "},{"location":"Installasjon-p%C3%A5-VDI/pip-og-oppsett/#oppsett-av-sertifikater-til-pip","title":"Oppsett av sertifikater til pip","text":"

    Note

    Dette steget skjer automatisk under kj\u00f8ring av setup_python_env.ps1 og er ikke lenger n\u00f8dvendig.

    Til vanlig bruker pip sitt eget sertifikat for \u00e5 validere at vi laster ned pakker fra riktig server. Siden VDI bruker en webproxy for \u00e5 kommunisere med omverdenen vill vi f\u00e5 en feilmeling ved pip install xxx.

    Error

    13:42:24  Encountered an error: External connection exception occurred:\nHTTPSConnectionPool(host='hub.getdbt.com', port=443): Max retries exceeded\nwith url: /api/v1/index.json (Caused by SSLError(SSLCertVerificationError(1,\n'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get\nlocal issuer certificate (_ssl.c:1108)')))\n

    For \u00e5 fikse feilen kan vi installere pakkene setuptools-scm og pip-system-certs som f\u00e5r pip til \u00e5 bruke Windows Certificate Store istedenfor.

    pip install setuptools-scm pip-system-certs --trusted-host pypi.org --trusted-host  files.pythonhosted.org\n
    "},{"location":"Installasjon-p%C3%A5-VDI/python/","title":"Python","text":"

    Sjekk om Python er installert med py --version. dbt-versjon 1.4 og senere st\u00f8tter Python-versjon 3.11, for en tidligere dbt-versjon m\u00e5 Python-versjon v\u00e6re >= 3.8 og < 3.11.

    Last eventuelt ned python 3.10.x og installer ved \u00e5 f\u00f8lge installsjonsveiviseren.

    py --version\n

    Success

    $ py --version\n\nPython 3.8.10\n

    Fortsett til PIP

    Failure

    $ py --version\n\nPython 3.6.4\n
    For gammel version av Python

    Last ned Python

    Failure

    $ py --version\n\npython is not recognized as an internal or external command, operable program, or batch file\n

    Python er ikke installert

    Last ned Python

    "},{"location":"Installasjon-p%C3%A5-VDI/sqlfluff/","title":"SQLFluff","text":"

    SQLFluff er en linter som hjelper oss med \u00e5 formattere SQL-koden p\u00e5 en fornuftig m\u00e5te.

    "},{"location":"Installasjon-p%C3%A5-VDI/sqlfluff/#installering-av-sqlfluff","title":"Installering av SQLFluff","text":"
    pip install sqlfluff sqlfluff-templater-dbt\n
    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/","title":"Visual Studio Code","text":"

    Bruk https://code.visualstudio.com/download, velg Windows versjonen. Last ned, pakk ut og start programmet code. F\u00f8lg instruksjonene ved innstalleringen.

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#anbefalte-extensions","title":"Anbefalte extensions","text":""},{"location":"Installasjon-p%C3%A5-VDI/vscode/#dbt-power-user","title":"dbt Power User","text":"

    dbt Power User gir oss en rekke nyttige verkt\u00f8y, som f.eks.:

    dbt Power User p\u00e5 GitHub

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#installasjon-og-oppsett","title":"Installasjon og oppsett","text":"

    Installeres via VS Code Marketplace, f\u00f8lg installasjonsrutinene til Altimate

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#utover-standardinstallasjon-ma-flgende-hensyn-tas-for-bruk-pa-vdi-utvikler-og-mot-oracle-dvh","title":"Utover standardinstallasjon m\u00e5 f\u00f8lgende hensyn tas for bruk p\u00e5 VDI Utvikler og mot Oracle DVH:","text":"

    dbt Power User krever at man setter opp milj\u00f8variabler med credentials via PowerShell, f\u00f8r VS Code startes opp i samme PowerShell-sesjon.

    Det finnes et skript start_vscode_dbt.ps1 i dette repoet som setter opp milj\u00f8variable, oppretter ptyhon milj\u00f8 hvis det ikke finnes fra f\u00f8r, og starter Visual Studtio Code som forenkler denne prosessen.

    Skriptet er generelt og krever at stien til et gyldig dbt-prosjekt settes som argument i tillegg til schemanavnet dbt skal bruke som proxy. F.eks.:

    start_vscode_dbt.ps1 c:\\sti\\til\\dbt-prosjekt\\ skjemanavn\n

    (Her m\u00e5 \\c:\\sti\\til\\dbt-prosjekt\\ peke p\u00e5 mappen som inneholder dbt_project.yml)

    Ideen er at man kan legge skriptet et sted p\u00e5 utviklerimage, f.eks. c:\\datavarehus\\start_vscode_dbt.ps1, og lage snarveier p\u00e5 skrivebordet til hvert av prosjektene, slik at milj\u00f8et for hvert prosjekt kan startes opp med et dobbeltklikk.

    For slikt oppsett, gj\u00f8r f\u00f8lgende:

    1. H\u00f8yreklikk - hold - dra over skrivebordet - slipp. Velg Lag snarveier her.

    2. H\u00f8yreklikk p\u00e5 den nye snarveien og velg Egenskaper

    3. Fyll inn f\u00f8lgende tekst i M\u00e5l: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -noexit -ExecutionPolicy Bypass -File \"C:\\datavarehus\\start_vscode_dbt.ps1\" c:\\sti\\til\\dbt-prosjekt\\ skjemanavn

    4. Endre navn p\u00e5 snarvei til noe mer passende:

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#oracle-oppsett-for-preview-query","title":"Oracle oppsett for Preview query","text":"

    Preview query-template m\u00e5 endres for Oracle-bruk: 1. \u00c5pne Settings ved \u00e5 trykke CTRL + , 2. S\u00f8k etter dbt.queryTemplate 3. Endre skript til select * from ({query}) where ROWNUM <= {limit}

    Ref.: #dbtquerytemplate-for-oracle

    "},{"location":"Installasjon-p%C3%A5-VDI/vscode/#erfaringer-feil-som-har-oppstatt-ved-bruk-av-dbt-power-user","title":"Erfaringer - feil som har oppst\u00e5tt ved bruk av dbt Power User:","text":""},{"location":"arkitektur/style_guide/","title":"DBT Stil Guide","text":"

    forket fra https://github.com/dbt-labs/corp/blob/main/dbt_style_guide.md

    "},{"location":"arkitektur/style_guide/#modell-naming","title":"Modell Naming","text":"

    V\u00e5r modellere organiserers inn i tre hovedgrupper: staging, marts, base/intermediate. See f\u00f8lgnede diskusjon. The navngiving blir som f\u00f8lger:

    \u251c\u2500\u2500 dbt_project.yml\n\u2514\u2500\u2500 models\n    \u251c\u2500\u2500 marts\n    |   \u2514\u2500\u2500 core\n    |       \u251c\u2500\u2500 mellomlager\n    |       |   \u251c\u2500\u2500 mellomlager.yml\n    |       |   \u251c\u2500\u2500 posteringer__unionisert.sql\n    |       |   \u2514\u2500\u2500 posteringer__gruppert.sql\n    |       \u251c\u2500\u2500 core.docs\n    |       \u251c\u2500\u2500 dim_artskonti\n    |           \u251c\u2500\u2500 dim_artskonti.yml\n    |           \u2514\u2500\u2500 dim_artskonti.sql\n    |       \u251c\u2500\u2500 dim_konstnadssteder\n    |           \u251c\u2500\u2500 dim_konstnadssteder.yml\n    |           \u2514\u2500\u2500 dim_konstnadssteder.sql\n    |       \u2514\u2500\u2500 fak_hovedbok_posteringer\n    |           \u251c\u2500\u2500 fak_hovedbok_posteringer.yml\n    |           \u2514\u2500\u2500 fak_hovedbok_posteringer.sql\n    \u2514\u2500\u2500 staging\n        \u2514\u2500\u2500 oebs\n            \u251c\u2500\u2500 base\n            |   \u251c\u2500\u2500 base.yml\n            |   \u2514\u2500\u2500 base__oebs_kontoplan.sql\n            \u251c\u2500\u2500 src_oebs.yml\n            \u251c\u2500\u2500 src_oebs.docs\n            \u251c\u2500\u2500 stg_oebs__posteringerslinjer\n            |   \u251c\u2500\u2500 stg_oebs__posteringerslinjer.yml\n            |   \u2514\u2500\u2500 stg_oebs__posteringerslinjer.sql\n            \u251c\u2500\u2500 stg_oebs__budjsett_balanser\n            |   \u251c\u2500\u2500 stg_oebs__budjsett_balanser.yml\n            |   \u2514\u2500\u2500 stg_oebs__budjsett_balanser.sql\n
    - All objekter oppgis p\u00e5 flertallsform, slik som: stg_oebs__hovedbok_posteringslinjer, stg_oebs__artskonti, etc. - Basetabeller prefikses med base__, slik som: base__<source>_<object> - Mellomlagringstabeller skal avsluttes med et fortidsverb som indikerer hvilken handling som er gjort p\u00e5 objektet, slik som: hovedbok_posteringslinjer__filtrert_budsjett - Datatorg, eller marter, er fordelt mellom faktaer (uforandelig, verb) og dimensjoner (foranderlig, subjekt) og prefikses med fak_ og dim_, henholdvis. - Staged strukter inneholder alle kolonner fra r\u00e5-tabellen og utvides med avledede kolonner, for \u00e5 angi naturlig n\u00f8kler, hashed n\u00f8kler, omd\u00f8ping av kolonnenavn, etc.

    "},{"location":"arkitektur/style_guide/#model-konfigurasjon","title":"Model konfigurasjon","text":"

    {{\n  config(\n    materialized = 'table',\n    sort = 'id',\n    dist = 'id'\n  )\n}}\n
    - Marter b\u00f8r alltid configureres som tabeller - med mindre det er sv\u00e6rt gode grunner til \u00e5 ikke gj\u00f8re det.

    "},{"location":"arkitektur/style_guide/#dbt-konvensjoner","title":"DBT konvensjoner","text":""},{"location":"arkitektur/style_guide/#tester","title":"Tester","text":""},{"location":"arkitektur/style_guide/#navngivining-og-felt-konvensjoner","title":"Navngivining og felt konvensjoner","text":""},{"location":"arkitektur/style_guide/#cteer","title":"CTEer","text":"

    For mer informasjon om hvorfor vi bruker CTEer, see f\u00f8lgende post. Kortversjonen er at det hjelper oss \u00e5 samle kildene \u00f8verst, gj\u00f8re enkle transformasjoner og joiner i midten og se resultatet nederst. Oracle skal st\u00f8tte passthrough slik at masse wither p\u00e5 rad ikke p\u00e5virker ytelsen.

    WITH\n\nhendelser AS (\n\n    ...\n\n),\n\n-- CTE comments go here\nfiltrerte_hendelser AS (\n\n    ...\n\n),\n\nendelig AS (\n\n    SELECT * FROM filtrerte_hendelser\n\n),\n\n\nSELECT * FROM endelig\n
    "},{"location":"arkitektur/style_guide/#sql-stil-guide","title":"SQL stil guide","text":""},{"location":"arkitektur/style_guide/#eksempel-sql","title":"Eksempel SQL","text":"
    WITH\n\nmin_data AS (\n\n    SELECT * FROM {{ ref('min_data') }}\n\n),\n\nen_cte AS (\n\n    SELECT * FROM {{ ref('en_cte') }}\n\n),\n\nen_cte_agg AS (\n\n    SELECT\n        id,\n        SUM(felt_4) AS total_felt_4,\n        MAX(felt_5) AS max_felt_5\n\n    FROM en_cte\n    GROUP BY 1\n\n),\n\nendelig AS (\n\n    SELECT [DISITNCT]\n        min_data.felt_1,\n        min_data.felt_2,\n        min_data.felt_3,\n\n        -- Bruk linjeshift for visuelt separere kalkulasjoner inn i blokker.\n        CASE\n            WHEN min_data.kansellerings_dato IS NULL\n                AND min_data.utgangs_dato is not null\n                THEN utgangsdato_date\n            WHEN my_data.kansellerings_dato IS NULL\n                THEN my_data.start_dato + 7\n            ELSE my_data.kansellerings_date\n        END AS kansellerings_dato,\n\n        en_cte_agg.total_felt_4,\n        en_cte_agg.max_felt_5\n\n    FROM min_data\n    LEFT JOIN en_cte_agg  \n        ON min_data.id = en_cte_agg.id\n    WHERE min_data.felt_1 = 'abc'\n        AND (\n            min_data.felt_2 = 'def' OR\n            min_data.felt_2 = 'ghi'\n        )\n    HAVING COUNT(*) > 1\n\n)\n\nSELECT * FROM final\n
    "},{"location":"arkitektur/style_guide/#yaml-stil-guide","title":"YAML stil guide","text":""},{"location":"arkitektur/style_guide/#eksample-yaml","title":"Eksample YAML","text":"
    version: 2\n\nmodels:\n  - name: hendelser\n    columns:\n      - name: pk_hendelser\n        description: Dette er n prim\u00e6rn\u00f8kkel\n        tests:\n          - unique\n          - not_null\n\n      - name: hendelse_ts \n        description: \"N\u00e5r hendelse skjedde i UTC (eg. 2018-01-01 12:00:00)\"\n        tests:\n          - not_null\n\n      - name: fk_brukere\n        description: Brukeren som st\u00e5 for hendelsen \n        tests:\n          - not_null\n          - relationships:\n              to: ref('brukere')\n              field: pk_brukere\n
    "},{"location":"arkitektur/style_guide/#jinja-stil-guide","title":"Jinja stil guide","text":""},{"location":"dokumentasjon/dokumentasjon/","title":"Dokumentasjon","text":""},{"location":"dokumentasjon/dokumentasjon/#tabelldokumentasjon","title":"Tabelldokumentasjon","text":"

    Tabellene konfigureres og dokumenteres i yml filene i hver mappe i prosjektet. Kommentarer kan settes p\u00e5 b\u00e5de tabellniv\u00e5 og kolonneniv\u00e5. Les mer her.

    "},{"location":"dokumentasjon/dokumentasjon/#persist-docs","title":"Persist docs","text":"

    dbt-oracle har st\u00f8tte for \u00e5 skrive kommentarer til databasen. Som andre konfig, kan det settes p\u00e5 prosjektniv\u00e5, mappeniv\u00e5 eller modellniv\u00e5. For \u00e5 sette det p\u00e5 prosjektniv\u00e5, legg til f\u00f8lgende i dbt_project.yml

    models:\n  +persist_docs:\n    relation: true\n    columns: true\n

    En ting \u00e5 v\u00e6re oppmerksom p\u00e5 n\u00e5r persist_docs er aktivert er at kolonnenavn i modellen m\u00e5 v\u00e6re det samme som definert i yml filen.

    ORA-00904

    ORA-00904: \"KOLONNE\": invalid identifier\n
    SELECT\n  kolonne\nFROM ...\n
    - name: kolonne_navn\n  description: ...\n

    Her har Oracle fors\u00f8kt \u00e5 skrive kommentar til en kolonne som ikke eksisterer. Sammenlign modell og yml fil og sjekk at navnet p\u00e5 kolonnen er lik.

    "},{"location":"dokumentasjon/dokumentasjon/#overskrive-overview","title":"Overskrive overview","text":"

    Komponentdokumentasjonen kan integreres i dbt dokumentasjonen. I dbt/models folderen m\u00e5 det opprettes en overview.md fil. Bruk gjerne overview.md som mal

    "},{"location":"dokumentasjon/dokumentasjon/#deployere-dokumentasjon","title":"Deployere dokumentasjon","text":"

    Hver gang kommandoen dbt docs kj\u00f8res, genereres det tre filer i target mappa under dbt prosjektmappa: index.hml, catalog.json og manifest.json. Disse filene er statiske og inneholder alt som trengs for \u00e5 publisere en versjon av dokumentasjonen p\u00e5 en webserver.

    Github pages har slik st\u00f8tte. Publsiering til github pages kan gj\u00f8res p\u00e5 flere m\u00e5ter, men kanskje enklest er det \u00e5 bruke en github action:

    # Simple workflow for dbt docs content to GitHub Pages\nname: Deploy dbt docs to GitHub Pages\n\non:\n  push:\n    branches: [\"master\"]\n    paths:\n      - docs/**\n\n  workflow_dispatch:\n\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\n# Allow one concurrent deployment\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: true\n\njobs:\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Setup Pages\n        uses: actions/configure-pages@v2\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v1\n        with:\n          path: 'docs'\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v1\n
    1. Importer overst\u00e5ende github action i .workflow
    2. Kj\u00f8r kommandoen dbt docs generate
    3. Lag en docs mappe p\u00e5 roten av repoet, hvis det ikke allerede finnes.
    4. Kopier over filene index.hml, catalog.json og manifest.json fra target mappen til docs mappen.
    5. Commit og push til main branchen.
    6. Docen blir automatisk publisert av github action, til url spesifisert av jobben.
    "},{"location":"dokumentasjon/overview/","title":"Overview","text":"

    {% docs overview %}

    "},{"location":"dokumentasjon/overview/#xxx-komponenten","title":"XXX - komponenten","text":""},{"location":"dokumentasjon/overview/#formal","title":"Form\u00e5l","text":"

    Overordnet beskrivelse av form\u00e5l med l\u00f8sningen

    "},{"location":"dokumentasjon/overview/#komponentbeskrivelse","title":"Komponentbeskrivelse","text":""},{"location":"dokumentasjon/overview/#struktur-pa-repo","title":"Struktur p\u00e5 repo","text":"

    Lenke til dokumentasjon p\u00e5 confluence

    Vi har f\u00f8lgende mapper: - db (medf\u00f8lgende readme) - install (her ligger ddl filer per tabell/view. Ogs\u00e5 dcl-filer som gir grants) - patch (hvert script har jira-kode som prefiks og kort forklaring/tabellnavn). N\u00e5r man endrer en tabell her m\u00e5 man ogs\u00e5 endre den i install-filen) - utils (kanskje, hvis man trenger det) - dbt - dbt prosjektet. dette er stien der man kj\u00f8rer dbt kommandoer.

    "},{"location":"dokumentasjon/overview/#overordnet-design","title":"Overordnet design","text":""},{"location":"dokumentasjon/overview/#dataflyt-diagram","title":"Dataflyt-diagram","text":"

    Dataflyten finnes ved \u00e5 klikke p\u00e5 det bl\u00e5 ikonet nederst til h\u00f8yre p\u00e5 siden

    # DAG task kilde m\u00e5l kommentar"},{"location":"dokumentasjon/overview/#databasebeskrivelse","title":"Databasebeskrivelse","text":"

    En oversikt over de viktigste tabellene

    Tabell/Views Beskrivelse tabell1 besk tabell2 besk"},{"location":"dokumentasjon/overview/#databasescript","title":"Databasescript","text":"

    Referanser til hvor databasescriptene befinner seg

    "},{"location":"dokumentasjon/overview/#drift","title":"Drift","text":""},{"location":"dokumentasjon/overview/#workflows-og-kjretidspunkt","title":"Workflows og kj\u00f8retidspunkt","text":"

    Inneholder informasjon om viktige punkter for kj\u00f8retider

    "},{"location":"dokumentasjon/overview/#tilgangsstyring","title":"Tilgangsstyring","text":"

    Er det noen spesielle rettigheter som kreves for denne komponenten?

    "},{"location":"dokumentasjon/overview/#overvaking-og-datakvalitet","title":"Overv\u00e5king og datakvalitet","text":""},{"location":"dokumentasjon/overview/#datakvalitet","title":"Datakvalitet","text":"

    Det kj\u00f8res datakvalitetsm\u00e5linger for disse tabellene

    "},{"location":"dokumentasjon/overview/#overvaking","title":"Overv\u00e5king","text":"

    F\u00f8lgende Sitescope-monitorer kj\u00f8res for denne komponenten.

    "},{"location":"dokumentasjon/overview/#sikkerhet-og-personvern","title":"Sikkerhet og personvern","text":"

    Inneholder detaljer rundt f.eks tilgang

    Det er ikke utarbeidet PVK for denne komponenten.

    H\u00e5ndtering av kode 6 og 7: Under arbeid

    "},{"location":"dokumentasjon/overview/#backlog","title":"Backlog","text":"

    Lenke til jira-oversikt?

    "},{"location":"dokumentasjon/overview/#dbt-docs-brukerguide","title":"dbt docs - brukerguide","text":""},{"location":"dokumentasjon/overview/#navigasjon","title":"Navigasjon","text":"

    Du kan bruke navigasjonsfanene Project og Database p\u00e5 venstre side av vinduet for \u00e5 utforske modellene i komponenten.

    "},{"location":"dokumentasjon/overview/#prosjektfane","title":"Prosjektfane","text":"

    Prosjekt-fanen speiler katalogstrukturen til dbt-prosjektet ditt. I denne fanen kan du se alle modeller definert i dbt-prosjektet ditt, samt modeller importert fra dbt-pakker.

    "},{"location":"dokumentasjon/overview/#database-fanen","title":"Database-fanen","text":"

    Fanen Database viser ogs\u00e5 modellene dine, men i et format som ser mer ut som en databaseutforsker. Denne utsikten viser relasjoner (tabeller og visninger) gruppert i databaseskjemaer. Merk at ephemeral modeller ikke vises i dette grensesnittet, da de ikke finnes i databasen.

    "},{"location":"dokumentasjon/overview/#grafutforskning","title":"Grafutforskning","text":"

    Du kan klikke p\u00e5 det bl\u00e5 ikonet nederst til h\u00f8yre p\u00e5 siden for \u00e5 se lineage til modellene dine.

    P\u00e5 modellsidene vil du se de n\u00e6rmeste foreldrene og barna til modellen du utforsker. Ved \u00e5 klikke p\u00e5 Expand. knappen \u00f8verst til h\u00f8yre i denne avstamningsruten, vil du kunne se alle modellene som brukes til \u00e5 bygge, eller er bygget fra, modellen du utforsker.

    N\u00e5r den er utvidet, vil du kunne bruke --select og --exclude modellvalgsyntaks for \u00e5 filtrere modeller i grafen. For mer informasjon om modellvalg, sjekk ut dbt docs.

    Merk at du ogs\u00e5 kan h\u00f8yreklikke p\u00e5 modeller for \u00e5 filtrere og utforske grafen interaktivt.

    "},{"location":"dokumentasjon/overview/#mer-info","title":"Mer info","text":"

    {% enddocs %}

    "},{"location":"feilsoking/feilsoking/","title":"Feils\u00f8king","text":"

    Samleside for vanlige feilsistuasjoner som kan oppst\u00e5 med dbt og Oracle i NAV

    "},{"location":"feilsoking/feilsoking/#incremental","title":"Incremental","text":""},{"location":"feilsoking/feilsoking/#ora-00955-det-finnes-allerede-et-objekt-med-det-navnet","title":"ORA-00955: det finnes allerede et objekt med det navnet","text":"

    ???

    "},{"location":"feilsoking/feilsoking/#ora-00904-kolonne-invalid-identifier","title":"ORA-00904: \"KOLONNE\": invalid identifier","text":"

    Dersom persist_docs er aktivert i dbt_project.yml, ta en titt p\u00e5 siden om Dokumentasjon.

    "},{"location":"feilsoking/feilsoking/#kobling-mot-oracle-database","title":"Kobling mot oracle database","text":""},{"location":"feilsoking/feilsoking/#dpy-2029-https_proxy-requires-use-of-the-tcps-protocol","title":"DPY-2029: https_proxy requires use of the tcps protocol","text":"

    Bytte fra thin mode til cx mode. I outputen du f\u00e5r i terminalen, sjekk hvilken mode du kj\u00f8rer i. Kj\u00f8rer du i thin mode endr det til cx mode. Dette gj\u00f8res ved \u00e5 bruke Oracle Instant Client. Sett path til Oracle Instant Client i milj\u00f8veriabler og slett ORA_PYTHON_DRIVER_TYPE=thin fra milj\u00f8variabler.

    "},{"location":"prosjekter/dvh-sykefravar-dmx/","title":"dvh-sykefravar-dmx","text":"

    Eies av Team Sykefrav\u00e6r

    "},{"location":"prosjekter/dvh-sykefravar-dmx/#formal","title":"Form\u00e5l","text":"

    Analysetorg brukt til syfo (sykefrav\u00e6rsoppfoling)

    "},{"location":"prosjekter/dvh-sykefravar-dmx/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-team-sykefrav\u00e6r

    "},{"location":"prosjekter/dvh_arb_cv/","title":"dvh_arb_cv","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_cv/#formal","title":"Form\u00e5l","text":"

    Siste versjon av CV-elementer og jobb\u00f8nsker per person registrert arbeidss\u00f8ker NAV.

    "},{"location":"prosjekter/dvh_arb_cv/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_permittering/","title":"dvh_arb_permittering","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_permittering/#formal","title":"Form\u00e5l","text":"

    NAV har behov for \u00e5 samle statistikk for oversikt over permitterte arbeidss\u00f8kere og forh\u00e5ndsmelding om permittering og masseoppsigelser.

    Arbeidsgivere som vurderer \u00e5 g\u00e5 til masseoppsigelser eller permitteringer, gir melding om dette til NAV. Fra 2020 blir disse meldingene sendt inn elektronisk til NAV, og registreres i l\u00f8sningen Permittering.

    Dekker i f\u00f8rste omgang forh\u00e5ndsmelding om permittering, dvs n\u00e5r virksomheter permittere over 10 personer s\u00e5 skal de melde til NAV p\u00e5 forh\u00e5nd.

    "},{"location":"prosjekter/dvh_arb_permittering/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_person/","title":"dvh_arb_person","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_person/#formal","title":"Form\u00e5l","text":"

    Arbeidsmakedsstatistikken.

    "},{"location":"prosjekter/dvh_arb_person/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_styrke_ssb/","title":"dvh_arb_styrke_ssb","text":"

    Eies av A-Team

    "},{"location":"prosjekter/dvh_arb_styrke_ssb/#formal","title":"Form\u00e5l","text":"

    Komponenten leser data inn fra SSB i to forskjellige l\u00f8p:

    "},{"location":"prosjekter/dvh_arb_styrke_ssb/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-a-team

    "},{"location":"prosjekter/dvh_arb_tiltak/","title":"dvh_arb_tiltak","text":"

    Eies av Team Oppf\u00f8lging Eies av Team Oppf\u00f8lging)

    "},{"location":"prosjekter/dvh_arb_tiltak/#formal","title":"Form\u00e5l","text":"

    Brukes i Tiltaks- og oppf\u00f8lgingsstatistikken.

    "},{"location":"prosjekter/dvh_arb_tiltak/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #dv-oppf\u00f8lging

    "},{"location":"prosjekter/nystol/vdl-regnskapsdata/","title":"vdl-regnskapsdata","text":"

    Eies av Team-VDL

    "},{"location":"prosjekter/nystol/vdl-regnskapsdata/#formal","title":"Form\u00e5l","text":"

    Analysedata av hovedbok

    "},{"location":"prosjekter/nystol/vdl-regnskapsdata/#dokumentasjon","title":"Dokumentasjon","text":"

    slack: #virksomhetsdatalaget

    "}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index e29be7e..564c95b 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,107 +2,107 @@ https://navikt.github.io/dbt-i-nav/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/dbt/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/git/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/installere/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/miljovariabler/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/oracle-client-library/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/pip-og-oppsett/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/python/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/sqlfluff/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/Installasjon-p%C3%A5-VDI/vscode/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/arkitektur/style_guide/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/dokumentasjon/dokumentasjon/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/dokumentasjon/overview/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/feilsoking/feilsoking/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/dvh-sykefravar-dmx/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/dvh_arb_cv/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/dvh_arb_permittering/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/dvh_arb_person/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/dvh_arb_styrke_ssb/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/dvh_arb_tiltak/ - 2023-12-19 + 2023-12-20 daily https://navikt.github.io/dbt-i-nav/prosjekter/nystol/vdl-regnskapsdata/ - 2023-12-19 + 2023-12-20 daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 1a42829..0cef56e 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ