rjsdmx (connettori sdmx per software statistici)
Post on 01-Jan-2016
85 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
RJSDMX(Connettori SDMX per Software Statistici)
Attilio MattioccoBanca D’Italia
Area Ricerca Economica
2
Cos’è RJSDMX
• RJSDMX è un package per R, sviluppato dalla Banca d’Italia, per l’accesso a dati SDMX disseminati da providers istituzionali
• E’ stato ideato per portare in un ambiente computazionale R (nella forma di time series di tipo zoo) dati esposti attraverso Web Services SDMX.
• RJSDMX offre anche alcune funzionalità di base per query su metadati strutturali. Queste funzioni servono ad esplorare la struttura dei flussi SDMX e costruire le successive query dati.
• Il package è costituito da un nucleo principale di codice Java racchiuso in una ‘façade’ di codice R. Questa architettura ha permesso di sviluppare, in maniera molto efficiente (alto riuso di codice), un framework di Connettori SDMX per diversi software statistici
3
I Connettori SDMX
internet/intranet
ECB OECD ISTAT BISInfostat
In futuro
In futuro
Enterprise Applications
ECBSecure
OECDSecure
IMF
SDMX Providers
SDMX Connectors
SDMX client
4
Ragioni dei Connettori SDMX
La prima fase di un tipico processo di calcolo consiste nell’acquisizione dei dati oggetto dell’analisi.
Questa operazione, specialmente nel caso di dati esterni all’organizzazione, è spesso molto inefficiente e implica operazioni manuali (spesso ripetitive) o complessi processi di replica su sistemi interni.
Data Process
Data Dissemination
SDMXProvider
Data Capture
5
Ragioni dei Connettori SDMX
• L’uso combinato di SDMX e Web Services permette di semplificare notevolmente il passo di acquisizione di dati esterni.
• Si consideri, in particolare, l’incremento di efficienza nel caso di processi ripetitivi
Data Process
Data Dissemination
SDMXProvider
Data Capture
• Esiste però una complessità molto alta nella gestione dei web services SDMX.
• I Connettori SDMX sono stati quindi sviluppati allo scopo di mascherare tutte le complessità dello standard e delle tecnologie web utilizzate
6
L’area Ricerca Economica della Banca d’Italia
Area Ricerca
ISTAT
ECB OECD
IMF
SDMX data providersAltri data providers
DataStream, WorldBank,OpenData
SDMXAltri protocolli
Accessonativo
INFOSTAT
BIP BISS
PRISMA ...
SDMX
Co
nn
etto
riIN
FO
ST
AT
Co
nn
etto
riS
DM
X
7
Roadmap
• Supporto della versione 2.1 dello standard SDMX
• Sviluppo del client per i dati della Banca dei Regolamenti Internazionali
• Switch da protocollo SOAP a REST
• Potenziamento della estensibilità della libreria Java: pieno supporto di client sviluppati esternamente
• Rilascio dell’infrastruttura come Open Source, in un progetto indipendente o all’interno di una più generale infrastruttura SDMX
8
Grazie!
attilio.mattiocco diana.nicoletti @ bancaditalia.it gianpaolo.lopez
9
Backup
10
Load RJSDMX
Il package viene caricato nel workspace insieme alle sue dipendenze
11
Lista dei Data Providers disponibili
I providers disponibili dipendono dalla versione del package e possono essere ottenuti con la funzione getDataProviders(). Il client java interno può essere usato come una libreria di API per
lo sviluppo di ulteriori SDMX Providers
12
Il client ecb si connette ai web services forniti dallo Statistical Data Warehouse della BCE
Creazione di un client per la BCE
13
I nomi da usare per la creazione dei vari client sono gli stessi ottenuti con la funzione getDataProviders()
Creazione di un client per l’OCSE
14
La funzione getDataFlows può essere usata con o senza il parametro pattern. Nel primo caso darà in output tutti i data flows disponibili nel provider.
Lista dei data flows disponibili in un provider
15
Per ottenere le dimensioni di un data flow si può usare la funzione getDimensions()
Analisi della struttura di un Data Flow
16
La funzione getTimeSeries() prende in input una stringa che identifica una time series, e la carica nel workspace, in un oggetto di tipo zoo
Accesso a una time series
17
Il parametro id della funzione getTimeSeries è una sequnza di token. Il primo deve corrispondere al nome di un data flow (e.g. EXR). I successivi tokens devono corrispondere ai codici delle dimensioni dello stesso data flow.
e.g. EXR.A.USD.EUR.SP00.A # EXR flow in ECB, tutte le dimensioni specificateREFSERIES.IT.PPPGDP.A # REFSERIES flow in OECD, come sopra
Se non si vogliono specificare valori per alcune dimensioni, si possono usare delle wildcard. In ogni caso comunque il numero di tokens della quey deve corrispondere al numero delle dimensioni
e.g. EXR.*.USD.EUR.SP00.A # La dimensione frequenza non è specificataREFSERIES.ITA.*.A # come sopra
Se si vogliono specificare valori multipli per una dimensione si può usare il simbolo ‘|’ (logical or):
e.g. EXR.M|A.*.EUR.SP00.A # frequenza annuale e mensile, tutte le valuteREFSERIES.ITA|AUS.*.A # tutti i subject, location Italy e Australia
Query language semplificato per la getTimeSeries
18
Un esempio di query che ritorna una lista di time series
Accesso a una lista di time series
top related