パラメータ Synthetic Data Generator

パラメータは、スクリプトの中で直接ハードコーディングするのではなく、実行時に値を渡す便利な方法です。 スクリプトを実行するたびに、これらのパラメータを変更できる。

フローは多くの場合、いくつかのパラメータが定義された状態であらかじめ構築されている。 これらのパラメータは、フローが実行される前に修正される。 例えば、 Synthetic Data Generator フローを作成し、パラメータを使用してデータソースを定義することができます。 次に、パラメータを使用して、フロー スクリプトを実行するたびに異なるデータ ソースをすばやく選択できます。 また、 Synthetic Data Generator ランタイムが開始されるたびに、ユーザーがパラメータに値を与えなければならないように設定することもできる。

パラメータとその値は、「フローのプロパティ」ダイアログを使用するか、スクリプトで定義することができる。 スクリプトで作成したパラメータは、「フローのプロパティ」ダイアログにも表示される。

フローのプロパティにパラメータを追加する

フロープロパティ」ダイアログを使用して、パラメータを追加することができます:

  1. ツールバーで、 フローのプロパティアイコン フロー・プロパティ・アイコン をクリックします。
  2. Parameters タブで、 Add valueをクリックする。
  3. 表の行を埋めてパラメータを定義する。
  4. オプション : Synthetic Data Generator ランタイムが開始するたびに、ユーザーにパラメータ値を入力させたい場合は、 [プロンプトを表示しますか]を選択する。

パラメータを使ったスクリプティング

スクリプトを使用してパラメータを変更するには、以下の作業が必要です:

  • パラメータの作成または変更
  • 関連するフローのノードを見つける
  • パラメータを使用して、ノードまたはフロー設定(またはその両方)を変更する

例えば、以下のスクリプトは、 DataSourceDataSourceID という2つのパラメータを作成し、それらに値 bank_customer_sample_data.csv94akc75b-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() を提供します。

表 1. ParameterProvider オブジェクトによって定義される関数
メソッド 戻りの型 説明
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) 適用外 指定されたパラメータの値を設定します。