1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ABEJA Platformでスキーマ機能を利用して、入力データの検証

Last updated at Posted at 2019-07-09

##はじめに
ABEJA Platformは機械学習を実施する際のデータレイク・アノテーション・学習・インフラ運用などをパイプラインで管理・実施いただけるSaaS型のサービスです。
柔軟度が高く、学習によく利用できるフレームワークを利用できるため、MLエンジニアやデータサイエンティストの方が不要な作業をせずにより開発のスピードアップと集中を実施いただけることがメリットです。

今回ご紹介するもの

「 ABEJA Platformスキーマ機能 」

schema.png

「 ABEJA Platformスキーマー機能 」って?

ABEJA Platformで、テーブルデータを利用したい場合、データを保存する前にデータに矛盾がないか保証を実施したいケースがあるかと思います。今回紹介するスキーマ機能は、データレイクへのデータ保存前にデータ内の整合性を検証し、問題なければ保存するといった機能となります。主に以下の手順を実施することで、簡単にValidation(検証)を実施いただけます。

  • スキーマの作成
  • データレイクチャンネルと紐付け

今回は、データレイクチャンネルにアップロードしたCSVをValidationできるか試してみたいと思います。

サンプルCSVは「Iris.csv」を利用しています。

それでは、早速実施していきましょう。

設定 (スキーマ作成)

  • まずは、スキーマを作成します。サイドメニューから「スキーマ」を選択し**「スキーマ作成」**を選択
1.png

今回はサンプルCSVに対するValidationを実施するため、以下の項目でスキーマ作成を行います。

項目(Item) 型(Type)
ID integer
SepalLengthCm float
SepalWidthCm float
PetalLengthCm float
PetalWidthCm float
Species string
  • 各スキーマ設定に関する項目を入力します。
    • スキーマ名:スキーマの名称
    • 詳細:スキーマの説明 (任意)
    • スキーマ:「ビジュアル」か「JSON」を選んでスキーマを選択可能
      • ビジュアル:「カラム名」「型」「プライマリキー」「必須」「nullを許容」を選択
      • JSON:以下サンプルのようにカラム名、型などをJSON形式で指定
sample.json
{
  "Species": {
    "type": "string",
    "required": false
  },
  "SepalWidthCm": {
    "type": "float",
    "required": true
  },
  "SepalLengthCm": {
    "type": "float",
    "required": true
  },
  "PetalWidthCm": {
    "type": "float",
    "required": true
  },
  "PetalLengthCm": {
    "type": "float",
    "required": true
  },
  "ID": {
    "type": "integer",
    "required": true
  }
}

上記の項目を参考に入力していきましょう。

■「ビジュアル」の場合
2.png

■「JSON」の場合
3.png

問題なければ**「スキーマ作成」**を選択。これで「スキーマ」の完成となります。

設定 (データレイクチャンネルへ紐付け)

  • 早速作成したスキーマ設定でCSVデータのValidation実施できるよう、データレイクチャンネルへ紐付けを行います。挙動としては、データレイクチャンネルへCSVファイルをアップロードした際に、CSVデータに矛盾がないかValidation(検証)実施するイメージとなります。

  • まずは、データレイクチャンネルを作成

4.png 5.png
  • その後、データレイクチャンネルの内の「メニュー」から「スキーマ紐付ける」を選択
6.png
  • 実際にアップロードを実施する予定のファイル属性やカラム等の設定を実施
    • 以下、設定項目となります。
      • スキーマID:作成したスキーマを選択
      • スキーマバージョン:利用するスキーマのバージョンを選択
      • Content Type:「JSON」「x-jsonlines」「CSV」から選択 (今回はCSVを選択)
      • データベースを使用する:スキーマ機能を利用してDBへの格納も利用可能です。
      • 既存のレコードを上書きする:テーブルへの追記ではなく上書きを実施する場合に選択
      • スキーマで定義されていないカラムを無視する:必要に応じて選択
      • CSVの1行目をヘッダーとする:CSVの1行目の項目をヘッダとして利用する場合に選択  

※データベースをご利用の際は、別途お問い合わせください
※こちらの機能CSVの1行目をヘッダーとするについては2019年7月現在、改修中となっております

各項目を入力し、**「紐付ける」**を選択頂くことで、設定完了です。

7.png

動作確認

  • 早速、スキーマを紐付けたデータレイクチャンネルにCSVファイルをアップロードして挙動を確認してみましょう。

  • スキーマ機能を利用せずにアップロードした場合

8.png
  • 正常ファイルの場合
    ファイル名の左に緑のチェックが付与され、正常にValidationされたことが見てわかります。
9.png 緑チェックを選択頂くと以下のように、どのスキーマでValidation OKとなったかも確認できます。 10.png
  • 異常ファイルの場合
    ファイル名の左に赤のエクスクラメーションマークが付与され、Validationに失敗したことが見てわかります。
11.png 赤のエクスクラメーションマークを選択すると、どの部分でValidation Errorとなったかも確認できます。 この場合、1行目に指定した型と違う値があったため、Errorとなってことがわかります。 12.png

このように、きちんとCSVデータの中身の整合性を検証して、正常なデータのみデータレイクチャンネルに保管ができる環境が簡単に整いました。テーブルデータを利用頂く場合でも、GUI上で、ABEJA Platform上にスキーマ作成をしていただき、Validationを実施頂くことが可能です。

まとめ

今回はスキーマ機能の一例として、データレイクチャンネルにアップロードするCSVファイルのValidationをサンプルとして実施しました。その他活用方法として、ABEJA Platformのスキーマ機能を活用しDBへの格納や、DBへの外部接続等も利用できますので、よりテーブルデータ周りの学習・モデル作成を加速していただけます!
ぜひ、スキーマ機能を活用してもご活用ください!

最後に

ABEJA Platformは、トライアルも提供しています。気になられた方は、是非、お気軽にお問い合わせください!また、フォーラムもありますので、是非、ご活用ください。

ABEJA Platformに関するお問い合わせ
https://abejainc.com/platform/ja/contact/

ABEJA Platform Forum
https://forums.abeja.io/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?