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.
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
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
Installer les dependences:
- pip install -r requirements.txt - pip install -r requirements-dev.txt - pip install -e .
Demarrer le DataPusher:
- pip3 install --upgrade requests - python datapusher/main.py deployment/datapusher_settings.py