データ登録について

以下にBENTENにおけるデータ登録の手順について示します。

データ登録を行う際には、事前に以下に示す環境設定を行う必要があります。

ローカルストレージパスおよびディスク名の設定

これらパラメータの初期設定については、以下の資料を参照ください。

データ登録の手順

  • データ登録を行う際は、始めに、データ登録用グループアカウントでログインします。
    • 以下の例では BL14B2 (ビームラインアカウント)でログインする例を示しています。
$ benten.py login -u BL14B2
input password: xxxxx
### benten login ###
==> response (output to /xxxxx/.benten/auth_info.json)
--> filename = /xxxxx/.benten/auth_info.json
{
    "access_token":"37d1de33b6ed4ce59ff8c114fd17c5de",
    "refresh_token":"28fa9fb14dd04912b33ef1a14bbb56dc",
    "expires_in":86400,
    "expires_time":1552440434
}
  • 次に、以下に示すように登録データがあるディレクトリに移動します。
$ cd /disk/data1/test

Warning

データ登録を行うディレクトリは設定したローカルストレージパス下である必要があります。

  • 上記のデータ登録用のディレクトリ下で、登録用のデータを準備します。
  • データ登録時は(登録ベース名) を指定します。

    • 以下の条件に一致する複数のファイルを対象として登録を行うことができます。
パターン 例 (登録ベース名をbaseとした場合) 用途
(登録ベース名).* base.json, base.user.json, ... メタデータなど
(登録ベース名のディレクトリ)/* base/test.txt, base/test.hdf5, ... 実験データなど
  • データ登録では、データの属性を示すメタデータもメタデータファイルとして生成する必要があります。
    • 登録できるメタデータ項目については以下を参照ください。
    • 登録用のメタデータファイルは JSON形式で記述します。
  • 登録に用いる課題番号を事前に設定します。
    • 例えば、課題番号が 2014S000の場合は以下のようにセットします。
$ benten.py proposal_number -p 2014S000    # 課題番号を設定
### benten proposal_number ###
[LocalStorage::authorize] access_token = 02e4806976f24567b874430c9e610530
== ProposalNumberFile::set_proposal_number() ==
--> 2014S0000
--> filename = /home/usrname/.benten/proposal_number.yml
{
    "proposal_number":"2014S0000"
}
$ benten.py proposal_number -l        # 設定した課題番号を確認
### benten proposal_number ###
[LocalStorage::authorize] access_token = 02e4806976f24567b874430c9e610530
== ProposalNumberFile::list() ==
{
    "proposal_number":"2014S0000"
}
  • 登録ベース名を base とすると、 base.json を以下のようにJSON形式のメタデータファイルで準備します。メタデータファイルには様々なメタデータを記述できますが、最低限、課題番号のメタデータ項目を含む必要があります。可能であれば、登録した人の情報も記載してください。
{
    "@data_info@identifier@proposal_number":  "2014S0000",
    "@data_info@data_depositor@name":  "Taro Kokido",
    "@data_info@data_depositor@affiliation@organization": "JASRI"
}   

Note

  • メタデータの設定項目が課題番号 のみの場合は、(登録ベース名).json ファイルの準備はスキップできます。 (次のシステム用メタデータファイル生成時に自動生成されます)
  • 日本語の記述もできますが、ファイルは UTF-8形式(BOM無し)で保存してください。
  • 次に、同ディレクトリ下で、システム用メタデータファイルを bentenコマンドを用いて生成します。
$ benten.py create_meta_system base
[LocalStorage::authorize] access_token = 7e751fc167a54be5b61a791476f79ad
==> output system metadata into /disk/data1/test/base.system.json
{
    "execute_create_meta_system":true,
    "metadata":{
        "@data_info@identifier@register_name":"/SPring-8/BL14B2/test/base",
        "@data_info@facility":"SPring-8",
        "@data_info@class_name":"BL14B2",
        "@data_info@disk_name":"test",
        "@data_info@title_ja":"標準試料",
        "@data_info@title":"Standard Sample",
        "@data_info@contact_name@name":"Hironori Ofuchi",
        "@data_info@contact_name@affiliation@organization":"(公財)高輝度光科学研究センター",
        "@data_info@contact_name@role":"person",
        "@data_info@contact_name@identifier@name":"0007719",
        "@system@version@data_register":"0.6.0"
    }
}

Note

システム用メタデータファイルは (登録ベース名).system.json のファイル名で生成されます。

  • 他に必要となるメタデータを JSONファイルに適宜書き込みます。

    • いくつかのメタデータについては自動生成ツールが整備されています。詳しくは以下を参照ください。
    施設 ツール名 URL 用途
    SPring-8 benten-meta-sp8 http://itp-storage01.spring8.or.jp:10080/benten/benten-meta-sp8 BL14B2, BL46XU, BL32B2向けのメタデータ生成

Warning

メタデータとして登録するJSONファイル名は "(登録ベース名)[.*].json"である必要があります。登録ベース名は ドット(.)を除く文字列で構成することができます。

  • 最後に、以下のbentenコマンドを用いて登録ファイルをアップロードし、リポジトリにデータ登録を行います。
$ benten.py commit (登録ベース名)

Note

  • データ登録時にアップロードされるファイルは、更新されたファイルのみが対象となります。
  • システム用メタデータファイルが 未生成の場合、ファイルアップロード時に自動検知して自動生成し、追加で登録処理を行います。

Warning

システム負荷を軽減するため、一度に4GBファイル以上のファイルをアップロードすることを禁止しています。

  • 以下に示すように、登録ファイルのアップロードとデータ登録を別々に行うこともできます。
$ benten.py upload (登録ベース名)   
$ benten.py register (登録ベース名)