データカタログソフトウェア「CKAN」の使い方について備忘録

  •  
 
トビウオ2019年11月5日 - 10:33 に投稿

タグ

データカタログとは

  • データカタログとは? | 自治体オープンデーを参照してください。要はデータの検索システムです
  • 「データ」は、CSVファイルやXLSXファイルなど、様々なファイルフォーマットで表現されます
  • データに対しては、それに対応する「メタ情報」(作成日時、カテゴリーなどのタグ、説明文など)が存在します
  • データとメタ情報を合わせたものを「データセット」と呼びます。検索により自由にデータセットを探し出せるのがデータカタログです

CKANとは

  • 代表的なデータカタログソフトウェアの1つです。公式でデモページが存在しますので、操作感を容易に確かめることができます
  • CKANはオープンソースです。また、ローカライズ機能も備えており、日本語表示にも対応しています
  • その性質上、日本や海外における、政府や自治体などが公開するオープンデータの管理によく用いられています

CKANのインストール方法

CKANでファイルをアップロードして登録する方法について

  • CKANは、デフォルト状態だとファイルを登録するのにURLしか指定できません
    • それだと困る場合、ファイルアップロード機能を提供するために、FileStoreプラグインを導入する必要があります
  • 導入方法(プラグインを有効にする方法)は、公式ドキュメントを参考にしてください。
    • つまり、アップロードされたファイルを保存するディレクトリを作り、その位置をCKAN構成ファイルに登録してからWebサーバーを再起動すればOKです

CKANでデータを登録する方法について

  • 基本的にはマウスで画面上をポチポチするだけで登録できます
  • 登録する単位として、主に次の4種類があります
    • Organization……名前・説明・アイコン画像のURL・カスタムなKey-Value値などが登録可能
    • Group……名前・説明・アイコン画像のURL・カスタムなKey-Value値などが登録可能
    • Dataset……名前・説明・URL・タグ・ライセンス・Organization・ソース・カスタムなKey-Value値などが登録可能
    • File……名前・ファイルフォーマット・ファイル自体のURL or 実体などが登録可能
  • FileはDatasetに紐付き、DatasetはOrganizationに紐付きます。Dataset登録後、それに対してどのGroupに該当するかを設定できます
  • 「説明」(Description)はMarkdown形式です。なので、改行する際は行の末尾に半角空白が2つ必要です
  • 前述のFileStoreプラグインを導入すると、アイコン画像やファイルをURLではなくファイル直接アップロードで設定できます
  • 「カスタムなKey-Value値」とは、その名の通り「Author: 夏目漱石」「Publisher: 小学館」などの任意の値を登録する機能のことです
    • データ検索での絞り込みに利用できます

CKANでデータを検索する方法について

  • 画面見たまんまなので詳細は省きます
  • Datasetにおいて、タイトル・タグ・カスタムなKey-Value値は検索対象になりますが、Description(説明)・URL・Dataの中身は検索対象になりませんのでご注意ください

REST APIについて

API仕様で特筆するべきところ

  • APIの戻り値はJSON形式で、HTTPステータスコードは基本的に「200 OK」です。API自体の成功可否は、successフィールド(真偽値)で判断されます
    • つまりRESTfulではありません
  • 戻り値のhelpフィールドにAPIの設定値が常に書き込まれます
    • これについてはなぜ付いているのか謎ですが、将来的な拡張枠を意図しているのかもしれません
  • APIの成功時は、resultフィールドに結果の戻り値が入ります(フォーマットの詳細はREST API依存)。失敗時は、errorフィールドにその詳細が入ります
    • error.messageにテキストでエラー詳細、error.__typeにエラーの型が代入されます
  • CKANはPythonで組まれているためか、サンプルコードにもPythonコード例が豊富です(ただしPython2なので別途読み替えが必要)
  • 認証としては、アカウントごとに振られたAPI Keyを、リクエストヘッダーに含めることで対応します。
    • つまり、ヘッダーさえ見ればユーザーがAPI叩き放題なので、どの権限で公開するかは注意が必要です
  • POST系リクエストでパラメーターをJSONで指定する際、Content-Typeapplication/jsonにする必要があります
  • POST系リクエストでファイルをアップロードする際、Content-Typemultipart/form-dataにする必要があります
  • 一般的なformタグで対応できるようにするためか、GETPOSTのみでデータ操作する設計になっています
  • GET系のリクエストについてのみ、JSONPにも対応しています

よく使うAPI一覧(大きめの画像なので注意)

CKAN APIマニュアル-1

CKAN APIマニュアル-2

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像
CKAN APIマニュアル-1
CKAN APIマニュアル-2