データブラウザー

アプリケーションのデータ閲覧用ツールとして、開発者ポータルにはデータブラウザーが設置されています。データブラウザーを使うと Bucket 内のデータの確認や編集ができます。

データブラウザーを起動する

データブラウザーを起動する手順は以下のとおりです。

  1. 開発者ポータルにて対象アプリケーションを選択。
  2. "Objects" アイコンをクリック。
  3. "Data Browser" を選択。

次のような初期画面が表示されます。

Bucket を操作する

データブラウザーでは以下の操作ができます。

Bucket を追加する

  1. Bucket Type として "Normal bucket" を選択します。
  2. 次に Bucket のスコープを選択します。

    • グループスコープを指定する場合は、対象となるグループ名を選択してください。
    • ユーザースコープを閲覧する場合は、対象となるユーザーの指定方法を選択後、対象ユーザーを選択してください。
    • Thing スコープを選択した場合は、対象となる Thing の指定方法を選択後、対象となる Thing を選択してください。

    いずれの場合も、入力に応じた候補がドロップダウンで表示されます。ドロップダウンが表示されない場合、入力文字列を一旦削除し、ブラウザの画面サイズを大きくしてから入力し直してください。

  3. スコープを選択すると、スコープ内の既存 Bucket 一覧が表示されます。

  4. スコープ内に新しい Bucket を作成するには、検索ボックスに Bucket 名を入力後 "+Add" ボタンを押します。

    新たに Bucket が作成され、リストに追加されます。

Bucket を閲覧する

  1. Bucket Type として "Normal bucket" を選択します。
  2. 次に Bucket のスコープを選択します。

    • グループスコープを指定する場合は、対象となるグループ名を選択してください。
    • ユーザースコープを閲覧する場合は、対象となるユーザーの指定方法を選択後、対象ユーザーを選択してください。
    • Thing スコープを選択した場合は、対象となる Thing の指定方法を選択後、対象となる Thing を選択してください。

    いずれの場合も、入力に応じた候補がドロップダウンで表示されます。ドロップダウンが表示されない場合、入力文字列を一旦削除し、ブラウザの画面サイズを大きくしてから入力し直してください。

  3. スコープを選択すると、スコープ内の既存 Bucket 一覧が表示されます。

    デフォルトでは存在する全ての Bucket が表示されます。検索ボックスに文字をタイプすると Bucket 一覧を絞り込めます。

  4. 一覧より閲覧したい Bucket を選択してください。次のように Bucket 内の全 Object 一覧が表示されます。

一度に最大で 200 個の Object が表示されます。対象 Object がこれ以上存在する場合は、スクロールダウンすることで次の 200 個が表示されます。なお、表示可能な Object の数は最大で 1000 です。

リストの Object を選択すると内容の閲覧および編集ができます。詳しくは Object を操作する をご参照ください。

アプリケーションで作成したはずのデータを期待どおりに表示できない場合、スコープの違い もご確認ください。

表示するキーのカスタマイズ

デフォルトでは "_id" や "_created" などのデフォルトキーのみがリストに表示されます。表示するキーは "Columns" ボタンをクリックするとカスタマイズ可能です。

カスタムクエリの追加

Object 一覧フィルター用のカスタムクエリは、次の手順で追加します。

  1. "Add Query" ボタンを押します。

  2. 次のようなクエリビルダーが表示されます。

    以下の情報を入力してカスタムクエリを定義します。

    • Query name:カスタムクエリの名前。後でタブのラベルとして使われます。
    • All/Any:複数のクエリ条件をどう評価するかを設定します。
      • All:複数のクエリ条件を論理積(AND)で評価します。
      • Any:複数のクエリ条件を論理和(OR)で評価します。
    • クエリ条件:フィルター条件を定義します。新たなクエリ条件を追加するにはプラス記号(+)を、クエリ条件を削除するにはマイナス記号(-)をクリックします。

      利用可能なクエリ条件は以下のとおりです。

      • "is""is not" 条件

        指定したキーの値が、指定した値と一致する/一致しないかを確認します。この条件は、String, Integer, Decimal および Boolean 型に適用できます。

        一例として、上記のクエリ条件は「キー "name" の値が "John Doe" であり、キー "age" の値が 30 以外である」全 Object にマッチします。

      • "begins with" 条件

        指定したキーの値が、指定した文字列で始まるかを確認します。この条件は、String 型のみに適用できます。

        一例として、上記のクエリ条件は「キー "name" の値が "Jo" で始まる」全 Object にマッチします。

      • "より大きい(>)""以上(≥)""より小さい(<)""以下(≤)"条件

        指定したキーの値と、指定した値を比較します。この条件は Integer, Decimal および "Date and Time" 型に適用できます。

        一例として、上記のクエリ条件は「キー "age" の値が 20 より大きい」全 Object にマッチします。

        同様に上記のクエリ条件は「キー "date" の値が 2014-10-01 00:00:00 より前な」全 Object にマッチします。

      • "is between" 条件

        指定したキーの値が、指定した 2 つの数値の間にあるかを確認します。この条件は Integer, Decimal および "Date and Time" 型に適用できます。1 つ目の値が下限に、2 つ目の値が上限になります。

        一例として、上記のクエリ条件は「キー "age" の値が 20 以上 50 以下である」全 Object にマッチします。

      • "is in" 条件

        指定したキーの値が、指定した複数の値のうち 1 つと合致するかを確認します。複数値はカンマ区切りで指定します(カンマの前後の空白は無視されます)。この条件は String, Integer および Decimal 型に適用できます。

        一例として、上記のクエリ条件は「キー "city" の値が "New York"、"Tokyo"、"Beijing" のいずれかである」全 Object にマッチします。

      • "is of type" 条件

        指定したキーの値が、指定したデータ型であることを確認します。この条件は String, Integer, Decimal および Boolean 型に適用できます。

        一例として、上記のクエリ条件は「キー "paid" の値が Boolean である」全 Object にマッチします。

  3. カスタムクエリの定義が完了したら "Save" ボタンを押して保存します。

    カスタムクエリを保存するとこれに対応するタブがデータブラウザー上部に表示されます。後ほどこのタブをクリックすることで、いつでもカスタムクエリを適用できます。

カスタムクエリの編集・削除

カスタムクエリを編集するには、対象タブを選択後 "Edit Query" ボタンを押します。

選択したカスタムクエリが定義されたクエリビルダーが表示されます。

  • クエリを編集する場合は、クエリビルダーの内容を編集後 "Save" ボタンを押します。
  • クエリを削除する場合は "Delete" ボタンを押します。

Bucket の削除

  1. Bucket Type として "Normal bucket" を選択します。
  2. 次に Bucket のスコープを選択します。

    • グループスコープを指定する場合は、対象となるグループ名を選択してください。
    • ユーザースコープを閲覧する場合は、対象となるユーザーの指定方法を選択後、対象ユーザーを選択してください。
    • Thing スコープを選択した場合は、対象となる Thing の指定方法を選択後、対象となる Thing を選択してください。

    いずれの場合も、入力に応じた候補がドロップダウンで表示されます。ドロップダウンが表示されない場合、入力文字列を一旦削除し、ブラウザの画面サイズを大きくしてから入力し直してください。

  3. スコープを選択すると、スコープ内の既存 Bucket 一覧が表示されます。

    デフォルトでは存在する全ての Bucket が表示されます。検索ボックスに文字をタイプすると Bucket 一覧を絞り込めます。

  4. 一覧より対象となる Bucket を選択してください。Bucket 内の全 Object 一覧が表示されます。

  5. 一覧画面の右上に表示されている歯車アイコンをクリック後、"Delete Bucket" を選択します。

    確認画面が表示されます。"Delete" を選択すると Bucket が削除されます。

Bucket を削除すると、この Bucket 内の全ての Object も同時に削除されます。

Bucket の ACL を変更する

  1. Bucket Type として "Normal bucket" を選択します。
  2. 次に Bucket のスコープを選択します。

    • グループスコープを指定する場合は、対象となるグループ名を選択してください。
    • ユーザースコープを閲覧する場合は、対象となるユーザーの指定方法を選択後、対象ユーザーを選択してください。
    • Thing スコープを選択した場合は、対象となる Thing の指定方法を選択後、対象となる Thing を選択してください。

    いずれの場合も、入力に応じた候補がドロップダウンで表示されます。ドロップダウンが表示されない場合、入力文字列を一旦削除し、ブラウザの画面サイズを大きくしてから入力し直してください。

  3. スコープを選択すると、スコープ内の既存 Bucket 一覧が表示されます。

    デフォルトでは存在する全ての Bucket が表示されます。検索ボックスに文字をタイプすると Bucket 一覧を絞り込めます。

  4. 一覧より対象となる Bucket を選択してください。Bucket 内の全 Object 一覧が表示されます。

  5. 一覧画面の右上に表示されている歯車アイコンをクリック後、"ACL" を選択します。

    次のように "Bucket ACL 設定画面" が表示されます。

  6. 対象となる「アクション」を選択します。

    各アクションの詳細は「Bucket に対するアクセス権」(AndroidiOSJavaScriptREST)をご参照ください。

    アクションを選択する、このアクションの現在の ACL 設定が表示されます。

  7. 「匿名ユーザー(Anonymous User)」および「ログイン済みの全ユーザー(Any Authenticated User)」に対するアクセス権を変更する場合は、トグルボタンをクリックします。

    なお、「匿名ユーザー」と「ログイン済みの全ユーザー」に関する詳細は「サブジェクト」(AndroidiOSJavaScriptREST)をご参照ください。

  8. ACL エントリーを追加する場合は、アクセス許可を与える対象の種別(User ID、Group ID、または Thing ID)と ID を指定します。

    "+Grant" ボタンを押すと ACL エントリーが作成され、指定した対象にアクセスが許可されます。

  9. ACL エントリーを削除する場合は、対象となる ACL エントリーを選択後 "-Revoke" ボタンを押します。

    なお、削除できない ACL エントリーが存在する点に注意してください。詳細は 「スコープオーナーや作成者の ACL エントリーは削除できません」(AndroidiOSJavaScriptREST)をご参照ください。

Object を操作する

データブラウザーでは以下の操作ができます。

Object の追加と更新

"Add Object" ボタンをクリックすると、次のように編集画面が表示されます(ボタンは "All" タブ内でのみクリック可能です)。

また一覧内の Object をクリックすると、次のようにこの Object 内の現在のキーと値のペアが編集画面に表示されます。

いずれの場合も JSON を直接書き換えて Object を編集します。

Mac をご利用の方へ:
Google Chrome 日本語版(Mac)の不具合により、等幅フォントを Osaka に指定している場合、編集画面においてキャレットの位置がズレる可能性があります。他のフォントに切り替えることでこの問題は回避できます(なお、Google Chrome 日本語版をインストールすると、等幅フォントはデフォルトで Osaka に設定されています)。

なお、編集した JSON が不正の場合は次の例のようにエラーが表示されます。

Object を新規追加する場合は、Object ID を指定することもできます。

編集が完了したら "Save" ボタンを押してください。

Object の削除

Object を削除するには編集画面の "Delete" ボタンをクリックします。

また、一覧画面で複数の Object を選択して "Delete Objects" ボタンをクリックすると、複数の Object を同時に削除できます。

一度に削除可能な Object は 50 個までです。

Object Body の管理

"Body" タブをクリックすると Object Body コンソールが表示されます。

Object Body のアップロード

Object Body をアップロードするには、対象ファイルを選択後 "Upload" ボタンをクリックします。

Object Body のダウンロード

Object Body をダウンロードするには "Download" ボタンをクリックします。現在選択中の Object に Object Body が存在しないとボタンはクリックできません。

Object Body の削除

Object Body を削除するには "Delete" ボタンをクリックします。現在選択中の Object に Object Body が存在しないとボタンはクリックできません。

Object Body の公開

Object Body を公開するには "Generate URL" ボタンをクリックします。現在選択中の Object に Object Body が存在しないとボタンはクリックできません。

Object Body が公開されると、アクセス用の URL が表示されます。

データブラウザーはこの URL を記憶しません。たとえばブラウザを再読込すると公開 URL は消えてしまいます(あくまで表示されなくなるだけであり、この URL を使って公開された Object Body にアクセスすることはできます)。

Object Body を公開する際、有効期限を設定することもできます。有効期限は以下の 2 通りの方法で設定できます。

  • URL が無効になる日時を指定(2099 年 3 月 31 日に無効にする)
  • URL が無効になるまでの時間を指定(今から 1 時間後に無効にする)

データをインポート/エクスポートする

データブラウザーでは以下の操作ができます。

データをインポートする

データをインポートするには、インポート先 Bucket を選択後 "Data Import" ボタンを押します。

インポートファイルを選択後 "Import" を押すとデータのインポートがスタートします。

データインポートの際、以下の 3 つのオプションが選択可能です。

  • Treat all fields as String:このオプションを有効にすると、全ての値が String として解釈されます。
  • Bucket recreation:このオプションを有効にすると、データインポートに先立ち Bucket 内の全てのデータが消去されます。
  • Create / Update objects with _id:このオプションを有効にすると、データインポート時に ObjectID の指定ができます。

インポートファイルのフォーマット

インポートファイルは CSV か TSV 形式である必要があります。またファイルは UTF-8 でエンコードされているものとして解釈されます。

データフォーマットは以下のとおりです。

  • ファイルの最初の行はヘッダーとして解釈されます。

    • 行内の値は Object のキーとして扱われます。
    • "Create / Update objects with _id" オプションを有効にした場合は、さらに "_id" を行内に追加してください(注意: "_id" を除く "_" から始まる値は全て無視されます)。
  • 2 行目以降は Object のデータとして解釈されます。

    • 各行が 1 つの Object に対応します。行の値が Object の値として扱われます。
    • デフォルトで全ての値は JSON として解釈されます("Treat all fields as String" オプションを有効にした場合は String として解釈されます)。
    • "Create / Update objects with _id" オプションを有効にした場合は、ObjectID を指定してください。指定した ObjectID を持つ Object が存在しない場合は、新規に Object が作成されます。指定した ObjectID を持つ Object が存在する場合は、指定の値でこの Object が上書き更新されます。

例 1

name,surname,size
John,Doe,999
Jane,Doe,888

このファイルをインポートすると、インポート先 Bucket に以下の 2 つの Object が作成されます。

[
  {
    "name": "John",
    "surname": "Doe",
    "size": 999
  },
  {
    "name": "Jane",
    "surname": "Doe",
    "size": 888
  }
]

例 2

hello,cruel,world
"{ ""someobj"" : [ 1, 2, 3, null ] }",123,
true,false,null
"""true""","""false""","""null"""

このファイルをインポートすると、以下の Object が作成されます。

[
  {
    "hello": {
      "someobj": [
        1,
        2,
        3,
        null
      ]
    },
    "cruel": 123,
    "world": ""
  },
  {
    "hello": true,
    "cruel": false,
    "world": null
  },
  {
    "hello": "true",
    "cruel": "false",
    "world": "null"
  }
]

データをエクスポートする

データを CSV ファイルとしてエクスポートできます。現在アクティブなクエリに合致する Bucket 内の全ての Object がエクスポート対象となります。

データをエクスポートするには、対象 Bucket を選択し、必要に応じてカスタムクエリを使い Object の絞り込みを行った後に "Data Export" ボタンをクリックします。

エクスポートファイルの保存先を選択するダイアログが表示されます。

ファイルは UTF-8 エンコードされています。またファイル名は "{Bucket 名}.csv" となります。

エクスポートファイルのフォーマット

エクスポートファイルのデータフォーマットは以下のとおりです(基本的に インポートファイル と同様です)。

  • ファイルの最初の行はヘッダーとなり、全てのキーが列挙されます。

    • カスタムキーがアルファベット順に列挙されます。
    • Kii Cloud が自動的に設定する 所定キー_created_id)が、カスタムキーに続いて列挙されます。
  • 各 Object の値が、2 行目以降にダンプされます。各行が 1 つの Object に相当します。

    • 文字列値はクオーテーションで囲まれた形でダンプされます。
    • JSON 値は「フラット」化されてダンプされます。

例 1

{
    "name": "Michael",
    "surname": "Jackson",
    "size": 999
},
{
    "name": "Johnny",
    "surname": "Depp",
    "size": 888,
    "pirates": true
}

この 2 つの Object をエクスポートすると、次のようなファイルが作成されます。

name,pirates,size,surname,_created,_id,_modified,_owner,_version
"""Johnny""",true,888,"""Depp""",1440058127729,"""af18ce10-4712-11e5-87ed-123143052eaa""",1440058127729,"""bb2f192b159c0743a97b066cfd190ba2""","""1"""
"""Michael""",,999,"""Jackson""",1440058111051,"""a527f1b0-4712-11e5-87ed-123143052eaa""",1440058111051,"""bb2f192b159c0743a97b066cfd190ba2""","""1"""

例 2

{
  "hello": {
    "someobj": [
      1,
      2,
      3,
      null
    ]
  },
  "cruel": 123,
  "world": ""
},
{
  "hello": true,
  "cruel": false,
  "world": null
},
{
  "hello": "true",
  "cruel": "false",
  "world": "null"
}

これらの Object をエクスポートすると、次のようなファイルが作成されます。

cruel,hello,world,_created,_id,_modified,_owner,_version
123,"{""someobj"":[1,2,3,null]}","""""",1440057447395,"""c63da810-470b-11e5-87ed-123143052eaa""",1440057447395,"""bb2f192b159c0743a97b066cfd190ba2""","""1"""
false,true,null,1440057447135,"""f02902a0-470b-11e5-87ed-123143052eaa""",1440057447135,"""bb2f192b159c0743a97b066cfd190ba2""","""1"""
"""false""","""true""","""null""",1440057446835,"""f97c8d90-470b-11e5-a7dc-123143051a24""",1440057471951,"""bb2f192b159c0743a97b066cfd190ba2""","""2"""