SIARD Suite 2.2 - Avvio righe di comando

Le funzioni di download e upload di SIARD Suite possono essere avviate dalla riga di comando:

Inizio pagina

SiardFromDb

SiardFromDb è un programma di riga di comando che consente di scaricare una banca dati in un archivio SIARD. Con SiardFromDb è possibile generare

  • un archivio SIARD (metadati e dati primari) da una banca dati (opzione -s), e/o
  • dei metadati SIARD XML con la definizione di uno schema di banca dati (opzione -e).

Inizio pagina

Avvio

java -cp <siardpath>/lib/siardcmd.jar ch.admin.bar.siard2.cmd.SiardFromDb [-h] |
[-o] [-v] [-l=<login timeout>] [-q=<query timeout>] [-i=<import meta data>] [-x=<external lob folder>] [-m=<mime type>]
-j=<JDBC URL> -u=<database user> -p=<database password> -s=<siard file> -e=<export meta data>"
                

Come <siardpath> occorre indicare la cartella dove SIARD Suite è stata installata. Il file siardcmd.jar si trova nella sottocartella lib con la sua classe ch.admin.bar.siard2.cmd.SiardFromDb, il cui main() può essere richiamato con java (sotto Windows occorre usare javaw).

La sintassi di avvio viene visualizzata se è stata indicata come argomento della riga di comando, l'opzione -h (help).

Inizio pagina

Argomenti

ArgomentoSignificato
-osovrascrivere (overwrite) i file di output se esistono
-vInviare le views (schermate) come tabelle
<login timeout>Timeout in secondi per l'accesso (login) (0 per illimitato)
<query timeout>Timeout in secondi per un'interrogazione (query) (0 per illimitato)
<import meta data>Nome del file XML metadati, da considerare come campione
<external LOB folder>Cartella dove devono essere salvati i dati della colonna LOB (large object) più grande della banca dati esterna (i contenuti con lo stesso nome vengono sovrascritti!)
<mime type>Tipo MIME die dati della colonna LOB più grande (influisce sulla scelta dell'estensione del nome die LOB memorizzati esternamente)
<JDBC URL>URL JDBC della banca dati che deve essere scaricata
p. es.
per MS Access
jdbc:access:D:\Projekte\SIARD2\JdbcAccess\testfiles\testdb.mdb
per DB/2
jdbc:dbserver.enterag.ch:50000/testdb
per MySQL
jdbc:mysql://dbserver.enterag.ch:3306/testdb
per Oracle
jdbc:oracle:thin:@dbserver.enterag.ch:1521:orcl
per Postgres
jdbc:postgresql://dbserver.enterag.ch:5432/testdb
per SQL Server
jdbc:sqlserver://dbserver.enterag.ch\testdb:1433
<database user>Utente della banca dati
<database password>Password della banca dati
<siard file>Nome del file .siard che dev'essere generato
<export meta data>Nome del file di metadati .xml da esportare

Inizio pagina

Osservazioni

Devono essere indicati o il file SIARD, o il file d'esportazione per i metadati o entrambi.

Il programma SiardFromDb dovrebbe essere avviato contro uno snapshot di banca dati che non si modifica durante il processo d'archiviazione.

L'opzione Archivia le schermate come tabelle comporta di regola una memorizzazione doppia degli stessi dati ed è quindi sconsigliata. E' invece utile, se l'utente banca dati utilizzato per l'archiviazione può visualizzare i contenuti delle views (schermate), ma non quelli delle tabelle di base.

Il processo di archiviazione può essere concluso con successo completamente o fallisce del tutto.

Per banche dati di grandi dimensioni si consiglia di scaricare prima la XML dei metadati. Questo file contiene tutti i metadati e i valori delle tabelle e aiuta cosi a stimare il tempo che sarà necessario per il download. Inoltre si dovrebbe usare l'opzione -q 0, dato che è impossibile stimare quanti secondi durerà un'interrogazione di dimensioni.

La conversione di TIMEs e TIMESTAMPs nella banca dati, dipende dal fuso orario locale. Se è archiviato l'orario 15:30 a Zurigo, allora viene registrato nell'archivio SIARD l'orario UTC 14:3, in inverno. Per evitare questa conversione, occorre avviare SiardFromDb con l'opzione

-Duser.timezone=GMT

che costringe SIARD a interpretare tutti gli orari della banca dati come orari UTC.

Inizio pagina

Utente per l'archivio

In generale non è una buona idea utilizzare l'amministratore banca dati (DBA, root, dbo, ...) con tutti i diritti per il download di un archivio SIARD. Le dimensioni dei dati memorizzati nell'archivio SIARD sono definite dagli oggetti ai quali l'utente per l'archivio ha accesso con diritto di lettura. Il DBA (amministratore banca dati) globale può leggere di regola tutte le banche dati sul sistema e inoltre molte tabelle, che non sono da archiviare. Perciò è importante utilizzare un utente idoneo, eventualmente da creare, per il download.

Inizio pagina

SiardToDb

SiardToDb è un programma di riga di comando, che carica un archivio SIARD a scopo di ricerca in un'istanza banca dati.

Avvio

java -cp <siardpath>/lib/siardcmd.jar ch.admin.bar.siard2.cmd.SiardToDb [-h]
[-o] [-l=<login timeout>] [-q=<query timeout>]
-s=<siard file> -j=<JDBC URL> -u=<database user> -p=<database password>
[<schema> <mappedschema>]*

Come <siardpath> occorre indicare la cartella dove SIARD Suite è stata installata. Il file siardcmd.jar si trova nella sottocartella lib con la sua classe ch.admin.bar.siard2.cmd.SiardToDb, il cui main() può essere richiamato con java (sotto Windows occorre usare javaw).

La sintassi di avvio viene visualizzata se è stata indicata come argomento della riga di comando, l'opzione -h (help).

Inizio pagina

Argomenti

ArgomentoSignificato
-osovrascrivere (overwrite) i tipi e/o le tabelle con lo stesso nome in una banca dati, se esistono
<login timeout>Timeout in secondi per l'accesso (login) (0 per illimitato)
<query timeout>Timeout in secondi per un'interrogazione (query) (0 per illimitato)
<siard file>Nome del file .siard da caricare
<JDBC URL>URL JDBC della banca dati destinataria
p. es. per MS Access: jdbc:access:D:\Projekte\SIARD2\JdbcAccess\testfiles\testdb.mdb
per DB/2: jdbc:dbserver.enterag.ch:50000/testdb
per MySQL: jdbc:mysql://dbserver.enterag.ch:3306/testdb
per Oracle: jdbc:oracle:thin:@dbserver.enterag.ch:1521:orcl
per SQL Server: jdbc:sqlserver://dbserver.enterag.ch\testdb:1433
<database user>Utente banca dati
<database password>Password banca dati
<schema>Nome dello schema nell'archivio SIARD
<mappedschema>Nome dello schmea da utilizzare nella banca dati

Inizio pagina

Osservazioni

Dato che vecchie banche dati non sono conformi a SQL:2008, è inevitabile eseguire molti preparativi manuali per il upload. Non esistono oggetti di schema in MS Access. Utente e schemi non sono separabili in Oracle. Oggetti di schema e banche dati sono identici in MySQL. Per questo motivo tutti gli schemi devono essere creati manualmente prima del upload, inoltre l'utente banca dati deve avere il diritto di creare tabelle e tipi in questi schemi. Dato che ciò non sempre è possibile, gli schemi della banca dati vengono assegnati secondo la lista riportata nella riga di comando del nome dello schema.

L'upload crea tabelle e tipi e cerca di attivare chiavi univoche ed esterne. Non viene generato alcun altro oggetto nella banca dati destinataria. Se le chiavi non potevano essere attivate, appare un avviso, ma l'upload può essere considerato comunque terminato con successo. Si possono eseguire interrogazioni SQL SELECT anche senza queste chiavi.

Inoltre ci sono alcune restrizioni riguardo all'upload. In MS Access per esempio tutte le tabelle arrivano nella stessa MDB/ACCDB. In Oracle vengono abbreviati tutti i nomi più lunghi di 30 caratteri. Per evitare collisioni ai nomi delle tabelle e delle colonne viene aggiunto un contatore (per esempio nella tabella „un nome di tabella troppo lungo per Oracle“ il nome diventa „un nome di tabella troppe lungo pe01“.)

Laddove la massima precisione e il numero massimo di posti decimali (p.es. in MS Access) siano inferiori al necessario, vengono caricati i valori con precisione inferiore. SIARD cerca di destreggiarsi al meglio nella banca dati destinataria. Se si consultano i metadati della banca dati con SiardGui, allora si potranno assegnare le denominazioni e i valori corretti.

La conversione di TIMEs e TIMESTAMPs nella banca dati, dipende dal fuso orario locale. Se è archiviato l'orario 15:30 a Zurigo, allora viene registrato nell'archivio SIARD l'orario UTC 14:3, in inverno. Per evitare questa conversione, occorre avviare SiardToDb con l'opzione

-Duser.timezone=GMT

che costringe SIARD a interpretare tutti gli orari della banca dati come orari UTC.

Inizio pagina