クイックスタート
RDE構造化プログラム構築の一例です。
プロジェクトを作成する
まず、RDE構造化プログラムに必要なファイルを準備します。以下のコマンドをターミナルやシェル上で実行してください。
1 |
|
1 |
|
コマンドが正しく動作すると、下記で示したファイル・ディレクトリが生成されます。
この例では、container
というディレクトリを作成して、開発を進めます。
- requirements.txt
- 構造化プログラム構築で使用したいPythonパッケージを追加してください。必要に応じて
pip install
を実行してください。
- 構造化プログラム構築で使用したいPythonパッケージを追加してください。必要に応じて
- modules
- 構造化処理で使用したいプログラムを格納してください。別セクションで説明します。
- main.py
- 構造化プログラムの起動処理を定義
- data/inputdata
- 構造化処理対象データファイルを配置してください。
- data/invoice
- ローカル実行させるためには空ファイルでも必要になります。
- data/tasksupport
- 構造化処理の補助するファイル群を配置してください。
1 2 3 4 5 6 7 8 9 10 11 |
|
構造化処理の実装
RDE構造化処理は、大きく分けて、以下の3つのフェーズに分けられます。
graph LR
起動処理 --> カスタム構造化処理
カスタム構造化処理 --> 終了処理
起動処理、終了処理は、rdetoolkitを使うことで簡単に実行できます。そのため、ユーザー自身は、ご自身のデータに対する処理を実行する カスタム構造化処理 を定義するだけです。
Documents
カスタム用構造化処理関数の作成
rdetoolkitでは、独自の処理をRDEの構造化処理のフローに組み込み込むことが可能です。独自の構造化処理は、入力データに対してデータ加工・グラフ化・機械学習用のcsvファイルの作成など、データセット固有の処理を定義することで、RDEへ柔軟にデータを登録可能です。
仮に、rdetoolkitへ渡す独自データセット関数を、dataset()
とします。dataset()
は、以下の2つの引数を渡してください。
- srcpaths (RdeInputDirPaths): 処理のための入力リソースへのパス
- resource_paths (RdeOutputResourcePath): 処理結果を保存するための出力リソースへのパス
1 2 |
|
Reference
- API Documentation: RdeInputDirPaths - rde2types
- API Documentation: RdeOutputResourcePath - rde2types
今回の例では、modules
以下に、display_messsage()
, custom_graph()
, custom_extract_metadata()
というダミー処理を定義し、独自の構造化処理を定義します。これらの関数は、modules/modules.py
というファイルを作成し定義します。以下の2つの引数を渡す関数でなければ、rdetoolkitは正しく処理が実行できません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
上記のdataset()
を次のセクションの起動処理で実行します。
起動処理について
続いて、rdetoolkit.workflow.run()
を使って、構造化処理を実行します。起動処理で主に実行処理は、
- 入力ファイルのチェック
- 入力ファイルとRDE構造化で規定する各種ディレクトリパスを取得する
- ユーザーごとで定義した具体的な構造化処理を実行(上記セクションで定義した
dataset()
など) - 各種入力ファイルのバリデーション
Reference
- API Documentation: run - workflows
今回の例では、main.py
を作成し、modules/modules.py
で定義したdataset()
を実行します。
1 2 3 4 5 |
|
もし、独自の構造化処理を渡さない場合、以下のように定義してください。
1 2 3 |
|
ローカル環境で構造化処理を動作させる
上記の手順で定義したmain.py
を、各自のローカル環境で、デバッグやテスト的にRDEの構造化処理を実行したい場合、data
ディレクトリ、tasksupport
ディレクトリに必要な入力データを追加することで、ローカル環境で実行可能です。ディレクトリ構造は、以下のように、main.pyと同じ階層にdataディレクトリを配置していただければ動作します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
上記のディレクトリ構造は、あくまで一例です。data/inputdataディレクトリ、tasksupportディレクトリは、必要なファイルを適宜追加/修正してください。
下記のように実行してください。
1 2 |
|