CKANをインストールする
はじめに
「データカタログ」は、欲しいデータはどこにあるか、このデータはどういう意味か、データをどう活用すればよいかなど、データに関する目録情報(メタデータ)を管理するソフトウェアです。組織で扱う多様なデータを一元的に管理することでデータの重複や矛盾をなくし、利用者が必要とするデータを検索し活用することができます。データ管理ソフトウェアには、更新頻度が比較的低い集計表や統計データなどの静的なデータを中心に扱うものと、センサデータやトランザクションデータなど時間経過に伴って計測または生成される動的データを中心に扱うものとがあります。ここでは、主に静的データの管理を得意とするソフトウェアの1つであるCKANについて紹介します。
CKANとは
CKAN (Comprehensive Knowledge Archive Network)は、オープンソースのデータ管理ソフトウェアです(ライセンスはAGPL3.0)。英国Open Knowledge Foundationによって開発され、様々な国や自治体などによるオープンデータやデータセットの公開サイトで利用されています。
CKANの主な機能
Featuresには下記の11件のあげられています。
- API: すべてのコア機能は外部から呼び出し可能なAPIを提供
- Datastore: 構造化データとして保存するためのデータベースを提供
- Extend: 公開されている拡張機能を利用して機能を追加(執筆時点で260件以上の登録があります)。ガイドに沿って拡張機能の独自開発も可能
- Geospatial: データのプレビュー等で地理空間情報を利用
- Metadata: メタデータの共通モデルを提供
- Manage data: データ管理を容易に行えるWebインタフェース
- Search: Googleライクなキーワード検索とフィルタリングによる検索エクスペリエンス
- Themeable: サイトのテーマをカスタマイズ
- Visualization: データをグラフ等で可視化
- Federate: ハーベスティング機能を利用して他のデータサイトからメータデータを取り込み。国のサイトが地方自治体のサイトからデータカタログ情報を集約するような利用を想定していて、その場合は両サイトへ登録しなくてすむとのこと。また、データカタログ標準語彙DCATに対応していれば、CKANでないサイトから取り込むことも可能
- Filestore: メディアファイルをアップロード
実行環境
お試しで実行するだけなので、お手軽なDockerを利用します。
macOS 14.2 (arm64)
Docker Desktop 4.25.2 / Docker Compose v2.23.0-desktop.1
CKAN 2.10.3
インストール手順
Docker Compose setup for CKANにはDocker Composeを利用したインストー方法が記載されています。ステップは1から15までありますが、今回は起動するところまでなので4まで実行することにします。
まず、ソースコードを取得しておきます。
% git clone https://github.com/ckan/ckan-docker.git
次に、Dockerイメージをビルドします。docker-compose.yml
を見ると、CKANコアに加えて、DataPusher、PostgreSQL、Solr、Redis、NGINXの各イメージをビルドするようです。
環境設定用ファイル.env.example
を.env
にリネームまたはコピーし、サイトのURLやポート番号、管理者のユーザ名/パスワードなどを適宜修正します。今回はデフォルトのままとしました。
ビルドは、base mode と development mode が選択できます。CKANおよびCKAN拡張のコードに対して手を入れず起動するだけですので、base modeのインストール手順を進めます。
% cd ckan-docker
% cp .env.example .env
% docker compose buiild
% docker compose up -d
設定ファイル .env で指定した CKAN_SITE_URL
にブラウザでアクセスします。
次に、.env に指定されている 管理者用のユーザ名 CKAN_SYSADMIN_NAME
, とパスワード CKAN_SYSADMIN_PASSWORD
を利用してログインしてみます(今回はお試しですのでデフォルトのままにしていますが、実際に開発運用する際は変更しておきましょう)。
無事にログインできました。
先ほど、6つのDockerイメージをビルドすると書きましたが、実際に稼働しているコンテナを見てみると、以下の6つでした。
- ckan: CKANコア
- db: PostgreSQL。カタログデータを格納
- solr: Apache Solr。カタログデータを検索
- redis: インメモリのデータストア。バックグラウンドジョブに利用
- datapusher: ファイル等からデータを抽出してCKANに自動登録
- nginx: リバースプロキシ
ローカルで動かしてみてもっさりした感じはありませんでしたが、運用に応じてリソースを用意したほうがよさそうです。CKAN hosting guidelines には以下の記載があります(2017年にアップされたもので情報が古いです)。
For a large national portal with heavy traffic:
2 * Servers with 8GB of RAM (One for Web and one for the Database/solr)
160GB hard drive on both. (You may want more storage on the Web server if you intend to do a lot of file storage)
Quad core processors (faster better)For a city level portal with lower traffic levels:
2 * Servers with 2GB of RAM (Web and DB/solr)
80GB hard drive on both. (You may want more storage on the Web server if you intend to do a lot of file storage)
Dual core processors
おわりに
Docker Composeにおまかせしていることあり、お試し環境の構築で悩むところはありませんでした。次回はデータセットを登録してみたいと思います。
参考にしたページ
Discussion