180 likes | 387 Views
RJSDMX (Connettori SDMX per Software Statistici). Banca D’Italia Area Ricerca Economica. Attilio Mattiocco. Cos’è RJSDMX. RJSDMX è un package per R, sviluppato dalla Banca d’Italia, per l’accesso a dati SDMX disseminati da providers istituzionali
E N D
RJSDMX (Connettori SDMX per Software Statistici) Banca D’Italia Area Ricerca Economica Attilio Mattiocco
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
ECB OECD ISTAT BIS Infostat ECB Secure OECD Secure IMF internet/intranet Enterprise Applications I Connettori SDMX In futuro SDMX Providers SDMX Connectors In futuro SDMX client
Data Capture SDMX Provider Data Process Data Dissemination 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 Capture SDMX Provider Data Process Data Dissemination 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 • 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
Altri data providers SDMX data providers ISTAT ECB OECD IMF DataStream, WorldBank, OpenData BIP BISS ... PRISMA Altri protocolli SDMX SDMX Connettori SDMX Accesso nativo Connettori INFOSTAT Area Ricerca INFOSTAT L’area Ricerca Economica della Banca d’Italia
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 • clientsviluppati esternamente • Rilascio dell’infrastruttura come Open Source, in un progetto indipendente • o all’interno di una più generale infrastruttura SDMX
Grazie! attilio.mattiocco diana.nicoletti @ bancaditalia.it gianpaolo.lopez
Load RJSDMX Il package viene caricato nel workspace insieme alle sue dipendenze
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
Creazione di un client per la BCE Il client ecb si connette ai web services forniti dallo Statistical Data Warehouse della BCE
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()
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.
Analisi della struttura di un Data Flow Per ottenere le dimensioni di un data flow si può usare la funzione getDimensions()
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
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 # EXR flow in ECB, tutte le dimensioni specificate REFSERIES.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 è specificata REFSERIES.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 valute REFSERIES.ITA|AUS.*.A # tutti i subject, location Italy e Australia
Accesso a una lista di time series Un esempio di query che ritorna una lista di time series