CKAN CkanExtension
どうも皆様、こんにちは!
今回はオープンデータを公開するために使われているCKANを触ってみたので、ご紹介しようと思います!
CKANとは・・・?
CKANとはデータのハブやポータルをサポートするためのオープンソースのDMS(Data Management System)です。CKANは世界中にある何百ものポータルにおいて、データの配布・共有・活用をより簡単に行えるようにすることが出来ます。(CKANホームページ訳)
今、流行りのデータ連携基盤で活用するオープンデータの配布に一役買っているOSSになります。
CKANを使ってみよう
CKAN公式のドキュメントを参考に実際にやっていってみます!
利用した技術
- Docker
- 今回はローカルの環境を汚さないために利用します
- Python(2.7 , ^3.6)
- CKANがサポートしている言語になります
- 今後はPython3系のみのサポートに切り替わる
- Python3.9以降はまだバグ等が残っているが将来的にはサポートする予定
ダウンロード
まずは任意のディレクトリにて以下のコマンドを入力し、CKANのCloneを作成します。
git clone https://github.com/ckan/ckan.git
その後、任意のCKANバージョンに切り替えます。
今回は最新の2.9.7を使っていきます!
-
CKANのディレクトリに移動
cd ckan
-
バージョンの切り替え
git checkout tags/ckan-2.9.7
コンテナの立ち上げ
以下のコマンドでCKANのコンテナ群を立ち上げます。
-
docker-compose.yml
のあるディレクトリに移動cd contrib/docker
-
docker compose
でコンテナの立ち上げdocker compose up -d --build
※CKANのコンテナがうまく立ち上がらない場合は以下のコマンドで再起動をしてください。
docker-compose restart ckan
便利なパスの登録
こちらの登録をしておくと、開発をする際に便利かもしれません。
export VOL_CKAN_HOME=`docker volume inspect docker_ckan_home | jq -r -c '.[] | .Mountpoint'`
export VOL_CKAN_CONFIG=`docker volume inspect docker_ckan_config | jq -r -c '.[] | .Mountpoint'`
export VOL_CKAN_STORAGE=`docker volume inspect docker_ckan_storage | jq -r -c '.[] | .Mountpoint'`
Datastoreとdatapusher
Datastoreとdatapusherを有効にする際には事前に設定が必要になります。
-
以下のコマンドを実行します
docker exec ckan /usr/local/bin/ckan -c /etc/ckan/production.ini datastore set-permissions | docker exec -i db psql -U ckan
-
production.ini
を開くコンテナ内に入る
docker exec -it ckan bash
production.ini
ファイルをvimで開くvim /etc/ckan/production.ini
-
production.ini
を編集するdatastore
とdatapusher
を追加ckan.plugins = stats ・・・recline_view datastore datapusher
コメントアウトを解除
## Datapusher settings # Make sure you have set up the DataStore ckan.datapusher.formats = csv xls xlsx tsv application/csv application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet #ckan.datapusher.url = http://127.0.0.1:8800/ #ckan.datapusher.assume_task_stale_after = 3600
-
CKANコンテナを再起動
docker-compose restart ckan
管理者ユーザーを登録
以下のコマンドを実行して管理者ユーザーを作成しておきます。(名前は任意)
docker exec -it ckan /usr/local/bin/ckan -c /etc/ckan/production.ini sysadmin add johndoe
これにより登録した名前とパスワードでログインをすることができます。
CKANへアクセス
以下のURLへアクセスできるようになります。
http://localhost:5000
まとめ
いかがでしたでしょうか?
今回の手順に従えば、案外簡単にできたのではないでしょうか?
次回はCKANの拡張機能の開発について記事を書きたいと思います!
公開までお待ちください!
CKANの拡張機能開発(公開予定)
実際にチュートリアルをやってみて、
公式のドキュメントだけでは詰まってしまう場所がいくつかありました。
この記事が皆様のお役に立てることを願います。