Å lage Noark 4 uttrekk selv Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472
Prosjektet IKA Kongsberg / HiOA Kan vi lage et Noark 4 uttrekk for en av IKA Kongsbergs kommuner? Uformell samarbeid men HiOA vil undertegne en brukskontrakt med IKA Kongsberg som regulerer bruken av data for forskningsarbeid HiOA kan ikke påta seg denne typen arbeid på oppdragsbasis 2 / 22
Hvordan vi håndterer data Skiller mellom uttrekk generering og videre bruk Vi vil fjerne personnummer og andre personlige opplysninger Vi vil fjerne all dokumenter Prosjektet vil opprette en sikkersone på HiOA All tilgang til maskin pålogging / tidspunkter vil logges Bare de som er spesifisert i bruksavtalen med IKA Kongsberg får tilgang Rapporterer bruk på halvårlig basis Hvis ikke annet er spesifisert slettes dataen ved utløpet av avtalen med IKA Kongsberg 3 / 22
Hvorfor HiOA abi@hioa lager uttrekket fordi vi ønsker å tilegne oss denne kunnskapen Undervisning Bruke det som en del av Digital Depot kurset våren 2012 Lære studentene hvordan Noark 4 uttrekk lages Forsking Se på hvordan arkivnøkkel er brukt i elektronisk arkiv Utføre en datakvalitets analyse 4 / 22
Hvorfor vi sa ja Jeg kan ikke mye om Noark 4 men dette burde være en grei sak Noark 4 95 tabeller, 885 attributter DTDer er spesifisert Enkel strategi Bruk php XML_Query2XML biblioteket som som kan trekke ut alle tuppler fra en tabell i xml format Mulighet til endre på xml tagger
Jeg trodde alle godkjente Noark 4 systemer forholder seg til disse 95 tabeller!
Databasen - Steg 1. Finne ut hvilken Oracle versjon backupen er fra Oracle Database 10g Release 10.2.0.1.0 Som er tilgjengelig fra Oracle sin webside Lisensen sier at jeg kan bruke det til å teste programvare jeg utvikler Så jeg vil ikke ha lov til å utføre selve uttrekket på en dumpfil Jeg må nok ta med koden og kjøre fra maskinen Eller bli en Sabeltanns gode menn!
Forutsetninger Vurderte å konvertere Oracle dump filen til MySQL Vet vi da om vi har alt? Mister vi noe? Bevarer vi integriteten? Hvis problemer oppstår er det pga konvertering? Valget var å forholde seg til databasen så nær original oppsett som mulig
Databasen - Steg 2. Oppsett av Oracle Fungerer ikke på alle Linux, støttet på Red Hat Linux 4.0 CentOS 4.0 tilsvarer RHL4 Fungerer ikke optimalt på lenovo laptop Mye problemer med nettverkskort for å installere oracle Prosess hver gang maskinen starter Problemer med installasjon av php og andre verktøy
Databasen - Steg 3. Import av databasen Relativ grei prosess men spørsmål om det er en backup restore eller import For autentisitetens skyld full backup restore Passord problemer Filen er på 22GB 796 tabeller i databasen 332 MGMT_* To grupperinger av 199 tabeller PROD og KURS
Linux problemer Oracle på Linux er kommando linje basert Høy læringskurv Prøvde installere GUI men måtte gi opp, brukte flere dager men fikk det ikke til Dependency problems! Til slutt er valget å bruke kommandolinje og utvikle i PHP for å komme i gang
Finne dokumentene Hvor er dokumentene? Er de i databasen? Tabellen DGDOKLAGER0 693305.. importing table DGDOKLAGER0 693305 rows imported.. importing table DGJHBSDOKKAT 51 rows imported.. importing table DGJHDOKKAT 13 rows imported.. importing table DGJHDOKSTATUS 2 rows imported.. importing table DGJMSENDDOK 10858 rows imported.. importing table DGDOKLAGER0 4543 rows imported.. importing table DGJHBSDOKKAT 51 rows imported.. importing table DGJHDOKKAT 13 rows imported.. importing table DGJHDOKSTATUS 2 rows imported.. importing table DGJMSENDDOK 37 rows imported
Finne Filer Steg 1. Opplagt at det ikke er 693,305 filer i basen men skjønte ikke hva dette var Kolonne type var LONG RAW LONG RAW har ingenting med LONG datatypen i feks Java Brukes til å lagre ca 32K av en fil Filer med større størrelse lagres over flere tupler Lagde en php skript som kan hente ut filen som en binær streng og lagre på disk Så bruke Linux file kommandoen for å identifisere filtypen
<?php putenv("oracle_sid=orcl"); $ora_db_host = '127.0.0.1'; $ora_db_port = 1521; $ora_db_name = 'DATA3'; $ora_db_user = 'PROD'; $ora_db_pswd = '****'; $ora_db_sid = 'orcl'; $ora_db_location = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $ora_db_host)(port = $ora_db_port)) (CONNECT_DATA = (SID = $ora_db_sid)))"; $conn = oci_connect("$ora_db_user", "$ora_db_pswd", $ora_db_location); if (!$conn) { trigger_error("could not connect to database", E_USER_ERROR); } $stid = oci_parse($conn, "select unique FILID from DGDOKLAGER0"); oci_execute($stid); $filinnhold =""; $filnavn="filelist.txt"; $fh = fopen($filnavn, 'w') or die("kan ikke åpne fil"); echo "executed query results : \n"; while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) { fwrite($fh, $row["filid"]. "\n"); } echo "\n... finished\n"; flush($fh); fclose($fh);?>
Finne Filer Steg 2. Kan hente ut alle filer men har ikke gjort det enda Stikktest viste at fåtallet av filene er konvertert til arkivformat PDF/A Har bare funnet Word dokumenter så langt Brukte tid på å finne ut hvordan automatisere konvertering Skript som kjører OpenOffice, da må OO startes og lukkes Java / python biblioteker som kan kalle OO API
Status Prosjektet stoppet opp pga av andre prioriteringer Høstens undervisning er tidskrevende Begynner igjen i uke 44 men jeg har pappaperm desember/januar Prosjektet går veldig i rykk og napp Jeg håper at vi kan ha et testuttrekk før jul php skript som kan lage uttrekksfilene Dimitar tar seg av kjernen og den er for tiden i gode hender
Framover Kan vi garantere konvertering av filene til arkivformat? Kan leverandørene gjøre det? Ønsker å hente ut alle filene og automatisk konvertere til godkjent arkivformat Håper at det bare er word dokumenter Mulig at det må gjøres via MS Office Lagt merke til at det står «exit 1» i en del utgående word dokumenter i header området Tror dette er noe som blir fjernet av word når dokumentet åpnes fra systemet Da må det gå via danningsprogrammet
Framover Finne ut hvor sakene/journalposter er Intuitivt så vil antall journalposter være lik 3-5 ganger antall saker?? Nødt til å besøke kommunen og snakke med arkivleder Nå ønsker jeg å importere til MySQL for å gjøre gravearbeidet lettere LIMIT statement virker litt komplisert i ORACLE Bruker mye tid på den type problematikken
arkivlab.org/no Når vi har arkivlab på plass så vil jeg oppdatere og blogge om arbeidet der
Datakvalitetsprosjekt (N4OK) Vi ønsker å sette datakvalitet på dagsorden Vi har gjort det med Noark 5 men det er mye mer vi kan gjøre N4OK består av DCU, HiOA, IKA Kongsberg og KDRS Prosjektet løper over et år og består av 6 1/2 Månedsverk (HiOA har 4) Målet med prosjektet er å se om vi kan måle datakvalitet i Noark 4 avleveringer 20 / 22
Datakvalitetsprosjekt (N4OK) Kan vi finne nye dimensjoner som vi ikke har fra n5 prosjektet Det er ofte svikt i prosessene som skaper dårlig datakvalitet men også dårlig systemdesign 21 / 22
N4OK Leveranser Rapport om hvilken verktøy som kan måle datakvalitet Rapport om hvilken datakvalitetsdimensjoner er relevant for arkivbevaring, med basis i Noark 4 Datakvalitetsanalyse av Noark 4 uttrekket En analyse av datakvalitet i uttrekket opp mot datakvalitet i databasen Synes det hadde vært interessant og se resultatene opp mot URD/DIAS Forventninger 22 / 22