ページの先頭行へ戻る
Data Analytics Smarter Hub V1.1.0 操作ガイド
FUJITSU Software

5.1 dashライブラリー

ベースレシピに同梱されたタスクノードのためのライブラリーです。

Pythonコードを編集する際、dashライブラリーを指定することで、タスクノードの入出力ポートに接続済のファイルに対するアクセスやタスクノードの実行状態を表示できます。

dashライブラリーのモジュール

portsモジュール

タスクノードの入出力ポートに接続されているファイルに対してアクセスできます。

詳細は、「dashlib.ports」を参照してください。

eventモジュール

タスクノードの実行状態を表示できます。

詳細は、「dashlib.event」を参照してください。

dbモジュール

データベースに対してクエリを実行できます。

詳細は、「dashlib.db」を参照してください。

dashライブラリーのインポート

import dashlib

dashライブラリーのヘルプ

dashlib.usage()

dashlib.ports

portsモジュールを利用することで、ノードに接続しているポートのファイル名やファイルハンドラーを取得できます。

dashlib.ports.usage()
各関数の説明など、portsモジュールの説明を表示します。
dashlib.ports.list()
対象のタスクノードで利用できるポート名の一覧を表示します。ここで表示されるポート名は、これ以降の項目の<ポート名>として使用できます。
dashlib.ports.<ポート名>(mode)

dashlib.ports.<ポート名>.asFile(mode)のエイリアスです。

ポートに接続済のファイルのファイルオブジェクトを取得します。

存在しないポートにアクセスすると、PortNotFoundエラーが発生します。

ポートだけ存在し、データノードを接続していない場合、LinkNotFoundエラーが発生します。

ポートにディレクトリーを接続した場合、IsADirectoryErrorが発生します。

表 5.1 引数
引数 説明
mode(str)

省略できます。Pythonの組み込み関数open関数のmodeに渡されます。

省略した場合、入力ポートの場合は"r"が、出力ポートの場合は"w"が自動的に使用されます。

dashlib.ports.<ポート名>.path

ポートに接続されているファイルにアクセスするためのフルパスを取得できます。

このプロパティを用いて、ディレクトリーなどに対するアクセスなどのコードを記述できます。

存在しないポートにアクセスすると、PortNotFoundエラーが発生します。

ポートだけ存在し、データノードが接続されていない場合、LinkNotFoundエラーが発生します。

ポートの接続例

タスクノードとデータノードを接続する場合、そのタスクのJupyter Notebookの画面上でタスクスクリプトを以下のように実行することで、Pythonのファイルオブジェクトを取得、利用できます。

図 5.1 ポートの接続例
ポートの接続例
import dashlib as dash

# 1. 入力ポートから内容を読み取り
f1 = dash.ports.In1()
in1_content = f1.read()
f1.close()

# 2. 出力ポートに内容を書き込み(*)

with dash.ports.Out1() as f:
    f.write(in1_content)

*: dashlib.ports.<ポート名>は、Python の open関数と同様のインターフェイスを持つため、withも利用できます。

dashlib.event

dashlib.event.Message.sendNodeProgress(comment, progressRatio)

Pythonソースコードの任意の場所で呼び出すと、キャンバス上のタスクノードの下部に、コメントおよび進捗率を出力できます。進捗率自体は、自分で計算して出力する必要があります。

この関数はフローの実行時だけ有効です。

タスクノードの[edit this task]アイコンからJupyter Notebookの画面を開いて、Jupyter Notebook単体での実行時には、利用できません。

表 5.2 引数
引数 説明
comment(str) タスクノードの下部に表示されるコメントです。
progressRatio(int) 0~100の間の値を指定できます。省略できます。

dashlib.db

dashlib.db.usage()
dbモジュールの説明を表示します。
dashlib.db.connect(did)

データベースのコネクタオブジェクトを取得します。Amazon Athenaのデータベースをサポートします。

返却されるコネクタオブジェクトは、AthenaConnectorクラスのオブジェクトだけです。

データベースに対して認証やIAMロールの選択が必要になる場合、入力が必要です。

認証に失敗した場合、AuthenticationError例外が発生します。

指定したデータベースが存在しない場合はNotFoundError例外が発生します。

引数

did(int): 接続先データベースのID。データベースIDは以下の方法で確認できます。

  1. データファイラーの左ペインで対象データベースを選択します。
  2. Webブラウザーのアドレスバーに表示されているURL「.../data_catalog/databases/<数字>/..」の"<数字>"がデータベースIDです。
dashlib.db.AthenaConnector.query(query_string)

データベースに対してクエリを実行します。クエリ結果としてdashlib.db.QueryResultが返却されます。

引数
query_string(string):クエリ文字列
dashlib.db.QueryResult.to_dataframe()
QueryResultオブジェクトをpandasデータフレームに変換します。
dashlib.db.QueryResult.to_cursor()

QueryResultオブジェクトをcursorオブジェクトに変換します。

cursorオブジェクトからタプルのリストとしてクエリ結果を取得できます。

詳細は、以下のURLを参照してください。

URL: https://www.python.org/dev/peps/pep-0249/#cursor-objects

参照

Jupyter Notebookの詳細については、以下の公開サイトを参照してください。

URL: https://jupyter.org/