data.world API: come fare una query SQL

data.world è lo YouTube dei dati ed espone delle API con cui è possibile eseguire delle query SQL (e SPARQL).

Per sfruttare le API è necessario avere un account su data.world, eseguire il login e aprire la pagina https://data.world/settings/advanced.

Da questa copiare il proprio API token, necessario per autenticarsi in fase di interrogazione dei dati.

Fatto questo, si può usare il proprio linguaggio di scripting preferito e dialogare con le API di data.world.

Sotto un esempio in bash nel quale:

  • imposto in una variabile il token;
  • uso cURL per fare una chiamata verso un determinato dataset;
  • mi faccio riconoscere passando il mio token;
  • imposto come output il CSV;
  • imposto la query SQL che voglio eseguire sul dataset in oggetto.

Rifaccio dopo 2 secondi di pausa la stessa query, ma rimuovo le impostazioni sul tipo di output, e quindi ho quello di default che è in JSON.

#!/bin/bash
# Imposto il mio token
DW_API_TOKEN="ilMioToken"
# query con output in CSV
curl 'https://query.data.world/sql/ipersoft/comuni-italia' \
-H 'Authorization: Bearer '$DW_API_TOKEN' ' \
-H 'Accept: text/csv' \
--data-urlencode 'query=SELECT * FROM `elenco-comuni-italiani.csv/elenco-comuni-italiani`
where `elenco-comuni-italiani`.`Codice Regione`= 19
LIMIT 20'
# Questa pausa è solo per guardare a schermo sia il primo (CSV) che il secondo output (JSON)
sleep 2
# query con output in JSON, che è quello di default
curl 'https://query.data.world/sql/ipersoft/comuni-italia' \
-H 'Authorization: Bearer '$DW_API_TOKEN' ' \
--data-urlencode 'query=SELECT * FROM `elenco-comuni-italiani.csv/elenco-comuni-italiani`
where `elenco-comuni-italiani`.`Codice Regione`= 19
LIMIT 20'

Ecco i due output: quello in CSV e quello in JSON.

Like what you read? Give Andrea Borruso a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.