Configurer le Stockage

Note

La configuration du DataStore est facultative. Cependant, si vous sautez cette étape, le Fonctionnalités du DataStore ne sera pas disponible et les tests DataStore échoueront.

1. Configurer l’upload de fichiers

Note

L’upload de fichiers est necessaire que si le stockage se fait en loac. Dans le cas ou l’extension ckanext-s3filestore est active, on n’aura pas necessairement de besoin de Configurer l’upload de ficher

Pour configurer le FileStore de CKAN avec un stockage de fichiers en local:

Créer le répertoire où CKAN stockera les fichiers téléchargés:

sudo mkdir -p /var/lib/ckan/default

Ajouter la ligne suivante à votre fichier de configuration CKAN, après la ligne « [app:main]``:

ckan.storage_path = /var/lib/ckan/default

Définir les permissions pour le répertoire ckan.storage_path:

sudo chown www-data /var/lib/ckan/default
sudo chmod u+rwx /var/lib/ckan/default

Redémarrer le serveur web

2. L’extension DataStore

L’extension CKAN DataStore fournit une base de données ad hoc pour le stockage de données structurées provenant de ressources CKAN. ressources CKAN. Les données peuvent être extraites des fichiers de ressources et stockées dans dans le DataStore.

Lorsqu’une ressource est ajoutée au DataStore, vous obtenez :

  • Des aperçus automatiques des données sur la page de la ressource, en utilisant l’extension Data Explorer.

  • `L'API DataStore`_ : rechercher, filtrer et mettre à jour les données, sans devoir télécharger et télécharger l’ensemble du fichier de données

Le DataStore est intégré au CKAN API et au système d’autorisation.

Le DataStore est généralement utilisé aux côtés du DataPusher, qui va télécharger automatiquement les données vers le DataStore à partir de fichiers appropriés, qu’ils soient téléchargés dans le FileStore de CKAN ou liés de manière externe.

Relation avec le FileStore

Le DataStore est distinct mais complémentaire du FileStore (voir filestore). Contrairement au FileStore qui fournit un stockage « blob » de des fichiers entiers sans possibilité d’accéder ou d’interroger des parties de ce fichier, le DataStore est comme une base de données dans laquelle des données individuelles sont stockées. DataStore est comme une base de données dans laquelle les éléments de données individuels sont accessibles et interrogeables. Pour illustrer cette distinction, considérons le stockage d’un fichier de feuille de calcul comme un document CSV ou Excel. Dans le FileStore, ce fichier serait stocké directement. Pour y accéder, vous devez télécharger le fichier dans son intégralité. En revanche, si les données de la feuille de calcul sont stockées dans le DataStore, on peut accéder à aux lignes individuelles de la feuille de calcul par le biais d’une simple API Web, ainsi qu’aux des requêtes sur le contenu de la feuille de calcul.

Configurer le DataStore

Activer le plugin

Ajoutez le plugin datastore à votre fichier de configuration CKAN:

ckan.plugins = datastore

Configurer la base de données

Avertissement

Assurez-vous que vous suivez correctement les étapes de la section `Set Permissions`_ ci-dessous. Des paramètres incorrects peuvent entraîner de graves problèmes de sécurité.

Le DataStore nécessite une base de données PostgreSQL séparée pour y enregistrer les ressources du DataStore.

Liste des bases de données existantes:

sudo -u postgres psql -l

a. Créer les utilisateurs et la base de données

sudo -u postgres createuser -S -D -R -P -l ckan_default

Créez un utilisateur de base de données appelé datastore_default. Cet utilisateur recevra accès en lecture seule à votre base de données DataStore dans l’étape `Set Permissions`_ ci-dessous. ci-dessous :

sudo -u postgres createuser -S -D -R -P -l datastore_default

Créer la base de données (appartenant à ckan_default), que nous appellerons datastore_default :

sudo -u postgres createdb -O ckan_default datastore_default -E utf-8

b. Définir les URLs

Maintenant, décommentez les lignes ckan.datastore.write_url et ckan.datastore.read_url dans votre fichier de configuration CKAN et modifiez-les si nécessaire, par exemple :

ckan.datastore.write_url = postgresql://ckan_default:pass@localhost/datastore_default
ckan.datastore.read_url = postgresql://datastore_default:pass@localhost/datastore_default

Remplacer pass par les mots de passe que vous avez créés pour vos utilisateurs de la base de données ckan_default et datastore_default de la base de données.

c. Définir les permissions

Une fois que la base de données DataStore et les utilisateurs sont créés, les permissions sur la base de données DataStore et CKAN doivent être définies. CKAN fournit une commande ckan pour vous aider à définir correctement ces permissions.

Si vous pouvez utiliser la commande psql pour vous connecter à votre base de données comme un super-utilisateur, vous pouvez utiliser la commande datastore set-permissions pour émettre le SQL approprié pour définir les permissions.

Par exemple, si vous pouvez vous connecter à votre serveur de base de données en tant que superutilisateur postgres en utilisant:: :. superutilisateur en utilisant

sudo -u postgres psql

Vous pouvez ensuite utiliser cette connexion pour définir les autorisations :

ckan -c /etc/ckan/default/ckan.ini datastore set-permissions | sudo -u postgres psql --set ON_ERROR_STOP=1

Si vous ne pouvez pas utiliser la commande psql de cette manière, vous pouvez simplement copier et coller la sortie de la commande :

ckan -c /etc/ckan/default/ckan.ini datastore set-permissions

dans une console PostgreSQL superutilisateur.

d. Tester la configuration

Le DataStore est maintenant configuré. Pour tester l’installation, (re)lancez CKAN et exécutez la commande suivante commande suivante pour lister toutes les ressources du DataStore

curl -X GET "http://127.0.0.1:5000/api/3/action/datastore_search?resource_id=_table_metadata"

Ceci devrait retourner une page JSON sans erreur.

3. Datapusher

DataPusher est un service Web autonome qui télécharge automatiquement tout fichier de données tabulaires (CSV ou Excel) à partir des ressources d’un site CKAN lorsqu’elles sont ajoutées au site CKAN, les analyse pour en extraire les données réelles, puis utilise l’API DataStore pour pousser les données dans le DataStore du site CKAN.

Les données des fichiers de ressources sont ainsi disponibles via l’API DataStore du site CKAN. En particulier, de nombreux plugins de visualisation et d’aperçu des données de CKAN ne fonctionneront (ou fonctionneront beaucoup mieux) qu’avec des fichiers dont le contenu se trouve dans le DataStore.

  1. Installer les paquets nécessaires:

    - sudo apt-get update
    - sudo apt-get install python-dev python3-virtualenv build-essential libxslt1-dev libxml2-dev zlib1g-dev git libffi-dev
    
  2. Créer un virtualenv et y installer le datapusher:

    - virtualenv /usr/lib/ckan/datapusher
    - mkdir /usr/lib/ckan/datapusher/src
    - cd /usr/lib/ckan/datapusher/src
    - git clone  https://github.com/ckan/datapusher.git
    - cd datapusher/
    - . ../../bin/activate
    
  3. Installer les dependences:

    - pip install -r requirements.txt
    - pip install -r requirements-dev.txt
    - pip install -e .
    
  4. Demarrer le DataPusher:

    - pip3 install --upgrade requests
    - python datapusher/main.py deployment/datapusher_settings.py