Overføring av data

For å overføre data mellom bakke og sky brukes Data Transfer, som er en tjeneste i Google Cloud Console. Denne tjenesten kan brukes til å flytte data både til og fra Linuxstammen og Dapla, og er tilgjengelig for teamets kildedataansvarlige. Den kan også brukes til å flytte data mellom bøtter.

For å få tilgang til å overføre filer må man be om dette ved opprettelsen av teamet. Ber man om det skjer følgende:

  1. En mappe blir opprettet på Linux i prodsonen under /ssb/cloud_sync/
  2. Et Google Project blir opprettet med navn <team navn>-ts.

Dette Google-prosjektet er ikke det samme som der du lagrer annen data. Det har navnet <team navn>-ts, og filstiene på bakken og sky vises i Figur 1.

Bilde som viser hvilke mapper eller bøtter som Data Transfer flytter mellom.

Figur 1: Hvordan Transfer Service kan flytte filer mellom bakke og sky.

Teamets kildedataansvarlige vil være spesifisert som en del av å opprette et Dapla-team.

Sette opp overføringsjobber

Enten man skal overføre filer opp til sky eller ned til bakken så bruker man den samme Data Transfer tjenesten. For å få tilgang til denne må man først logge seg inn i Google Cloud Console. Sjekk at du er logget inn med din SSB-konto (xxx@ssb.no).

Øverst på siden, til høyre for teksten Google Cloud finnes det en prosjektvelger, og her er det viktig å velge korrekt Google prosjekt. Hvis du trykker på prosjektvelgeren vil det åpnes opp et nytt vindu. Sjekk at det står SSB.NO øverst i dette vinduet. Trykk deretter på fanen ALL for å få opp alle tilgjengelige Google-prosjekter under organisasjonen ssb.no (Figur 2)

Bilde som viser prosjektvelgeren i Google Cloud Console

Figur 2: Prosjektvelgeren i Google Cloud Console

Under ssb.no vil det ligge flere mapper. Åpne mappen som heter production og let frem en undermappe som har navnet på ditt Dapla-team. Strukturen skal se slik ut:

    ssb.no
    ├── production
        └── <teamnavn>
            ├── prod-<teamnavn>
            └── <teamnavn>-ts

Det underste nivået (prod-<teamnavn> og <teamnavn>-ts) viser prosjektene, nivået i mellom er mapper, og toppnivået er organisasjonen (ssb.no). Prosjektet <teamnavn>-ts er et separat prosjekt som bare teamets kildedataansvarlige har tilgang til, og det er her tjenesten Data Transfer skal settes opp.

  • Velg derfor prosjektet <teamnavn>-ts.

  • I søkefeltet til Google Cloud Console, skriv Data transfer og trykk på det valget som kommer opp.

  • Første gang man kommer inn på siden til Transfer Services vil man bli vist en blå knapp med teksten Set Up Connection. Når du trykker på denne vil det dukke opp et nytt felt hvor du får valget Create Pub-Sub Resources. Dette er noe som bare trengs å gjøre én gang. Trykk på den blå CREATE knappen, og deretter trykk på Close lenger nede.

  • I navigasjonsmenyen til venstre trykk Transfer jobs, og deretter trykk på + Create transfer job øverst på siden for å opprette en ny overføringsjobb.

Overføring fra Linuxstammen til Dapla

Følgende oppskrift tar utgangspunkt i siden Create a transfer job (Figur 3):

Bilde som viser Create a transfer job i Google Cloud Console

Figur 3: Opprett overføringsjobb i Google Cloud Console
  1. Velg POSIX filesystem under “Source type” og Google cloud storage under “Destination type” (eller motsatt hvis overføringsjobben skal gå fra Dapla til Linuxstammen). Trykk Next step
  2. Nedtrekkslisten “Agent pool” skal normalt bare ha ett valg: transfer_service_default. Velg denne.
  3. I feltet “Source directory path” skal man kun skrive data/tilsky siden overføringsagenten kun har tilgang til mapper som ligger relativt plassert under /ssb/cloud_sync/<teamnavn>/. Trykk Next step
  4. Velg en destinasjon for overføringsjobben. Trykk på Browse og velg bøtten med navn som passer til ssb-prod-<teamnavn>-data-synk-opp. Vi anbefaler at du også oppretter en mappe inne i denne bøtten. Det gjøres ved å trykke på mappeikonet med et +-tegn foran. Skriv inn et passende mappenavn og trykk Select i bunnen av siden. Trykk deretter Next step
  5. Neste steg “Choose how and when to run this job” er opp til brukeren å bestemme. Hvis man f.eks. velger at Data Transfer skal overføre data en gang i uken, vil den kun starte en overføring hvis det finnes nye data. Trykk Next step
  6. Beskriv overføringsjobben, f.eks: “Flytter data for <teamnavn> til sky”. Resten av feltene er opp til brukeren å bestemme. Standardverdiene er OK.

Trykk til slutt på den blå Create-knappen. Du vil kunne se kjørende jobber under menyen Transfer jobs.

For å sjekke om data har blitt overført, skriv inn cloud storage i søkefeltet øverst på siden og trykk på det første valget som kommer opp. Her vil du finne en oversikt over alle teamets bøtter, deriblant en med navn ssb-prod-<teamnavn>-data-synk-opp. Når overføringsjobben er ferdig vil du kunne finne igjen dataene i den mappen som ble definert i stegene overnfor.

Overføring fra Dapla til Linuxstammen

Overføringsjobben settes opp nesten identisk med Overføring fra Linuxstammen til Dapla med unntak av følgende:

  • Steg 1: Velg Google cloud storage under “Source type” og POSIX filesystem under “Destination type”
  • Steg 2: Velg bøtten ssb-prod-<teamnavn>-data-synk-ned
  • Step 3: Velg transfer_service_default som “Agent pool” og skriv data/frasky inn i feltet for “Destination directory path”.

For å se om data har blitt overført til Linuxstammen må du nå gå til mappen /ssb/cloud_sync/<teamnavn>/data/frasky fra FileZilla.

Husk: Du kan alltids gå tilbake og se på tidligere fullførte jobber, og starte en overføringsjobb manuelt fra menyen Transfer jobs.

Overføring mellom bøtter

Det er også mulig å sette opp overføringsjobber mellom bøtter. For eksempel fra ssb-prod-<teamnavn>-data-synk-opp til ssb-prod-<teamnavn>-data-kilde. Stegene under viser hvordan man overfører mellom de nevnte bøttene. Tar man utgangspunkt i Figur 3 skal følgende gjøres:

  1. Velg Google cloud storage under både “Source type” og “Destination type”.
  2. Velg bøtten ssb-prod-<teamnavn>-data-synk-opp under choose source.
  3. Trykk på nedtrekksmenyen ved siden av Project ID. Deretter velger du bøtten ssb-prod-<teamnavn>-data-kilde.
  4. Konfigurer overføringstjenestens hyppighet (Choose when to run job).
  5. Beskriv overføringsjobben, f.eks: “Flytter data for <teamnavn> fra ssb-prod-<teamnavn>-data-synk-opp til ssb-prod-<teamnavn>-data-kilde”.

Trykk så på den blå Create-knappen.

Skrive ut data

Når du har satt opp en, enten for å overføre fra sky eller til sky, kan du skrive ut data til mappen eller bøtten som du har bedt Transfer Service om å overføre data fra.

Hvis du skal overføre data fra bakken/prodsonen til sky, så må teamets kildedataansvarlige skrive ut data til Linux-mappen /ssb/cloud_sync/<team navn>/data/tilsky, og det vil ende opp i Dapla-bøtta gs://ssb-prod-<team navn>-data-synk-opp Dette kan du gjøre med alle programmeringsverktøy som har en kobling til Linux-stammene der dataene ligger. For eksempel:

  • SAS EG
  • SAS-installasjon på Linux
  • Jupyterlab i prodsonen
  • Rstudio på sl-stata-03

Skal du flytte data fra Dapla til bakken/prodsonen, så må teamets kildedataansvarlige skrive ut data til gs://ssb-prod-<team navn>-data-synk-opp-bøtta på Dapla. Det er noe man typisk gjør fra Jupyterlab på Dapla.