パラメータ Synthetic Data Generator
パラメータは、スクリプトの中で直接ハードコーディングするのではなく、実行時に値を渡す便利な方法です。 スクリプトを実行するたびに、これらのパラメータを変更できる。
フローは多くの場合、いくつかのパラメータが定義された状態であらかじめ構築されている。 これらのパラメータは、フローが実行される前に修正される。 例えば、 Synthetic Data Generator フローを作成し、パラメータを使用してデータソースを定義することができます。 次に、パラメータを使用して、フロー スクリプトを実行するたびに異なるデータ ソースをすばやく選択できます。 また、 Synthetic Data Generator ランタイムが開始されるたびに、ユーザーがパラメータに値を与えなければならないように設定することもできる。
パラメータとその値は、「フローのプロパティ」ダイアログを使用するか、スクリプトで定義することができる。 スクリプトで作成したパラメータは、「フローのプロパティ」ダイアログにも表示される。
フローのプロパティにパラメータを追加する
フロープロパティ」ダイアログを使用して、パラメータを追加することができます:
- ツールバーで、 フローのプロパティアイコン
をクリックします。
- Parameters タブで、 Add valueをクリックする。
- 表の行を埋めてパラメータを定義する。
- オプション : Synthetic Data Generator ランタイムが開始するたびに、ユーザーにパラメータ値を入力させたい場合は、 [プロンプトを表示しますか]を選択する。
パラメータを使ったスクリプティング
スクリプトを使用してパラメータを変更するには、以下の作業が必要です:
- パラメータの作成または変更
- 関連するフローのノードを見つける
- パラメータを使用して、ノードまたはフロー設定(またはその両方)を変更する
例えば、以下のスクリプトは、 DataSource と DataSourceID という2つのパラメータを作成し、それらに値 bank_customer_sample_data.csv と 94akc75b-1fef-4h98-8445-6dfb68741484 を与える。 これらのパラメータは、プロジェクトでデータ資産定義するために使用できます。
import sdg.api
stream = sdg.script.stream()
stream.setParameterStorage("DataSource", sdg.api.ParameterStorage.STRING)
stream.setParameterValue("DataSource", "bank_customer_sample_data.csv")
stream.setParameterLabel("DataSource", "datasourcetable")
stream.setParameterType("DataSource", sdg.api.ParameterType.TYPELESS)
stream.setParameterStorage("DataSourceID", sdg.api.ParameterStorage.STRING)
stream.setParameterValue("DataSourceID", "94edc75b-1fef-4c98-8445-6dfa69741484")
stream.setParameterLabel("DataSourceID", "datasourceid")
stream.setParameterType("DataSourceID", sdg.api.ParameterType.TYPELESS)
スクリプトは、特定のデータソースを使用するようにハードコードされる代わりに、2つのパラメータを使用するようにImportノードを変更することができます。 次のスクリプトでは、パラメータとして定義されたデータ資産使用します。
import sdg.api
importnode = stream.findByType("dataassetimport", None)
importnode.setPropertyValue("asset_type", "DataAsset")
sourcename = stream.getParameterValue("DataSource")
sourceid = stream.getParameterValue("DataSourceID")
importnode.setPropertyValue("asset_name", sourcename)
importnode.setPropertyValue("asset_id", sourceid)
接続をパラメータとして定義することもできる。 以下のスクリプトは、パラメータとして定義された接続を使用するようにImportノードを変更します。
import sdg.api
importnode = stream.findByType("dataassetimport", None)
importnode.setPropertyValue("asset_type", "Connection")
sourcename = stream.getParameterValue("DataSource")
sourceid = stream.getParameterValue("DataSourceID")
importnode.setPropertyValue("connection_name", sourcename)
importnode.setPropertyValue("connection_id", sourceid)
パラメータ機能
Stream クラスは、 ParameterProvider オブジェクトによって定義された一連の関数を実装している。 これらの関数はスクリプトの中で呼び出すことができる。 Session これらの関数を定義するオブジェクトを返すメソッド getParameters() を提供します。
| メソッド | 戻りの型 | 説明 |
|---|---|---|
p.parameterIterator() |
イテレータ | このオブジェクトのパラメータ名のイテレータを返します。 |
p.getParameterDefinition(parameterName) |
ParameterDefinition | 指定された名前のパラメータの定義を返します。ただし、このプロバイダに None そのようなパラメータが存在しない場合は、 この結果は、メソッドが呼び出された時点の定義のスナップショットであり、このプロバイダを通じてパラメータに加えられたその後の変更が反映されるとは限らない。 |
p.getParameterLabel(parameterName) |
ストリング | 指定されたパラメータのラベルを返します。そのようなパラメータが存在しない場合は None 、を返します。 |
p.getParameterType(parameterName) |
ParameterType | 指定されたパラメータの型を返します。そのようなパラメータが存在しない場合は None 、を返します。 |
p.getParameterStorage(parameterName) |
ParameterStorage | 指定されたパラメータの保存場所を返します。そのようなパラメータが存在しない場合は None 、を返します。 |
p.getParameterValue(parameterName) |
オブジェクト | 指定されたパラメータの値を返します。そのようなパラメータが存在しない場合は None 、を返します。 |
p.setParameterLabel(parameterName, label) |
適用外 | 指定されたパラメータのラベルを設定します。 |
p.setParameterStorage(parameterName, storage) |
適用外 | 指定されたパラメータの保存先を設定します。 |
p.setParameterType(parameterName, type) |
適用外 | 指定されたパラメータの型を設定します。 |
p.setParameterValue(parameterName, value) |
適用外 | 指定されたパラメータの値を設定します。 |