以下のファイル形式は、BellaDatiの手動インポートでサポートされています:
- CSV (プレーンテキストファイル)
- Microsoft Excel (XLS, XLSX) - Office 2003 - 2016 (以前のバージョンは保証されていません)
- XMLファイル
- ZIPファイル (上記のサポートされている1つ以上のファイル形式を含む)
- JSONファイル
ファイルをインポートするには:
- データセットページへ行く
- データをインポートを選択
- インポートタイプでデータファイルを選択
- 適切なデータファイル形式を選択
データファイルを選択した後、ファイルがアップロードされるまでお待ちください。
インポートするデフォルトの最大ファイルサイズは20MBです。BellaDati UnlimitedまたはBellaDatiオンプレミスでは、ファイルサイズの制限が異なっている場合があります。ZIPアーカイブにインポートする際に、ファイルサイズを圧縮できます (以下参照)。
CSVからインポート
CSVからインポートする場合は、インポート設定ページへ直接進んでください。
Microsoft Excelからインポート
XLS/XLSXファイルをアップロード後、目的のスプレッドシートリストを選択するよう求められます。
Excelスプレッドシートに1つしかリストを含まない場合、リスト選択は表示されません。
XMLからインポート
XMLインポートガイドでは、繰り返し可能なデータ文を示す行タグを選択するよう求められます。以下の例は、従業員を含むXMLファイルで行タグを示しています:
<employees> <employee> <name>Jan</name> <surname>Novak</surname> </employee> <employee> <name>Petr</name> <surname>Novak</surname> </employee> ... </employees>
この場合、行タグは<employee>です。
行タグ: XML構造でリピートタグを選択します。左側のプレビューで、抽出されたコンテンツを確認します。
- オプションとして、カスタム列を繰り返し追加できます: XML構造が複雑な場合は、アイテムや属性を選択します。
カスタム列の定義にxPath構文を使用できます。詳細については、カスタム列の設定方法の例を示したチュートリアルに進んでください。
ZIPからインポート
ZIPアーカイブとして圧縮されたデータをインポートすることは、インポートされたファイルサイズとアップロード時間を劇的に減らす効率的な方法を表します。以下のファイル形式を含めることができます:
- プレーンテキスト (CSV)
- Microsoft Excel (XLS, XLSX)
- XML
Microsoft ExcelまたはXMLファイル形式のインポートを続けるには、上記の対応する章をご参照ください。
インポートプロセスが正常に終了するまで、新しいデータセットは作成されません。
JSONからインポート
JSONからのインポートは、BellaDati 2.9以降で利用可能です。
BellaDatiでは、ユーザーがJSONファイルからデータをインポートすることもできます。特別な変換関数を使用することにより、JSON配列とオブジェクトを解析できます。
場合によっては、データを行に正しく解析するために配列要素を変更する必要があります。これは、インポート設定で行うことができます。
配列要素を正しく選択した後、parseJSON()関数を使用してJSON値を変数にロードし、getString(), getInteger(), getDouble()といった関数を使用して値をロードし、値にアクセスすることができます。ネストされたオブジェクトにアクセスするには、getJSONObject()関数を使用する必要があります。配列にアクセスするには、関数getJSONArray()関数を使用できます。
配列要素が別のオブジェクトにネストされている場合は、"," 文字を使用して配列パスを区切ります。
例
次の構造を持つJSONファイルを作成しましょう:
{ "sales": [{ "category": "Food", "summary": { "totalPrice": 136, "totalItems": 8, "cashierName": "John Doe", "items": [{ "name": "Bread", "amount": 5, "price": 55 }, { "name": "Butter", "amount": 3, "price": 81 } ] } }, { "category": "Drinks", "summary": { "totalPrice": 40, "totalItems": 5, "cashierName": "Jane Doe", "items": [{ "name": "Water", "amount": 2, "price": 10 }, { "name": "Juice", "amount": 3, "price": 30 } ] } } ] }
値を取得できるようにするには、配列要素としてsalesを指定する必要があります。
カテゴリーを取得するには、属性として新しい列を追加し、次のコードを使用します:
JSONElement e = parseJSON(value(1)) return e.getString('category')
合計アイテムを取得するには、インジケータとして新しい列を追加し、次のコードを使用します:
JSONElement e = parseJSON(value(1)) JSONElement f= e.getJSONObject('summary') as JSONObject; return f.getInteger('totalItems')
すべてのアイテムの価格から合計価格を計算するには、次の式を使用します:
JSONElement e = parseJSON(value(1)) JSONElement f= e.getJSONObject('summary') as JSONObject; total = 0; f.getJSONArray('items').each() { JSONObject o = it as JSONObject; g = o.getInteger('price') as Integer total = total + g } return total
このJSONを使用してみましょう:
{"sensorId":"sensor01","values":["sensor01","2018/9/28 18:17","26.55","42"],"mqttTopic":"belladati","mqttMessageId":-1}
JSONArrayから値にアクセスするには、次の式を使用します:
JSONElement e = parseJSON(value(1)) JSONArray a = e.getJSONArray('values') as JSONArray a.getString(2)
このJSONを使用してみましょう:
{ "data": { "total":123, "data": [{ "name": "Water", "amount": 2, "price": 10 }, { "name": "Juice", "amount": 3, "price": 30 } ] } }
この場合、"data,data"を配列要素として設定する必要があります。
要素名から値を取得するには、次の変換スクリプトを使用できます:
JSONElement e = parseJSON(value(1)) return e.getString('name')