🤓

CKANをインストールする

2023/12/28に公開

はじめに

「データカタログ」は、欲しいデータはどこにあるか、このデータはどういう意味か、データをどう活用すればよいかなど、データに関する目録情報(メタデータ)を管理するソフトウェアです。組織で扱う多様なデータを一元的に管理することでデータの重複や矛盾をなくし、利用者が必要とするデータを検索し活用することができます。データ管理ソフトウェアには、更新頻度が比較的低い集計表や統計データなどの静的なデータを中心に扱うものと、センサデータやトランザクションデータなど時間経過に伴って計測または生成される動的データを中心に扱うものとがあります。ここでは、主に静的データの管理を得意とするソフトウェアの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まで実行することにします。

https://github.com/ckan/ckan-docker

まず、ソースコードを取得しておきます。

% 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におまかせしていることあり、お試し環境の構築で悩むところはありませんでした。次回はデータセットを登録してみたいと思います。

参考にしたページ

https://dev.classmethod.jp/articles/try-oss-data-management-system-ckan/
https://qiita.com/To-Ki-O/items/ecd1795cbdecad18ce66

Discussion