RJSDMX
(Connettori SDMX per Software Statistici)
Banca D’Italia
Area Ricerca Economica
Attilio Mattiocco
1
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
2
I Connettori SDMX
ECB
Secure
OECD
Secure
IMF
In futuro
Infostat
ECB
OECD
BIS
ISTAT
SDMX Providers
internet/intranet
SDMX Connectors
SDMX client
In futuro
Enterprise
Applications
3
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.
SDMX
Provider
Data
Process
Data
Dissemination
Data Capture
4
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
SDMX
Provider
Data
Process
Data
Dissemination
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
5
L’area Ricerca Economica della Banca d’Italia
Altri data providers
SDMX data providers
DataStream,
WorldBank,
OpenData
Altri protocolli
ISTAT
ECB
OECD
SDMX
Connettori
SDMX
Connettori
INFOSTAT
Area Ricerca
IMF
BIP
BISS
PRISMA
...
Accesso
nativo
INFOSTAT
6
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
7
Grazie!
attilio.mattiocco
diana.nicoletti
gianpaolo.lopez
@
bancaditalia.it
8
Backup
9
Load RJSDMX
Il package viene caricato nel workspace insieme alle sue dipendenze
10
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
11
Creazione di un client per la BCE
Il client ecb si connette ai web services forniti dallo Statistical Data Warehouse della BCE
12
Creazione di un client per l’OCSE
I nomi da usare per la creazione dei vari client sono gli stessi ottenuti
con la funzione getDataProviders()
13
Lista dei data flows disponibili in un provider
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.
14
Analisi della struttura di un Data Flow
Per ottenere le dimensioni di un data flow si può usare la funzione getDimensions()
15
Accesso a una time series
La funzione getTimeSeries() prende in input una stringa che identifica una time series,
e la carica nel workspace, in un oggetto di tipo zoo
16
Query language semplificato per la getTimeSeries
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
REFSERIES.IT.PPPGDP.A
# EXR flow in ECB, tutte le dimensioni specificate
# 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
REFSERIES.ITA.*.A
# La dimensione frequenza non è specificata
# 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
REFSERIES.ITA|AUS.*.A
# frequenza annuale e mensile, tutte le valute
# tutti i subject, location Italy e Australia
17
Accesso a una lista di time series
Un esempio di query che ritorna una lista di time series
18
Scarica

SDMX - Istat