Dataphin は、タスク開発を効率化するためにオフラインコンピューティングテンプレートの作成をサポートしています。このトピックでは、オフラインコンピューティングテンプレートを作成、構成、および送信する手順について説明します。
背景情報
複数のタスクが類似のコードロジックを共有しているが、特定の設定項目や入力パラメーターが異なる場合、これらの構成と入力用の変数パラメーターを持つオフラインコンピューティングテンプレートにコードをカプセル化できます。後続のタスクでテンプレートを参照することにより、共通のコードロジックを簡単に維持および再利用でき、タスクコードの開発効率が向上します。
通常、タスクには専用のランタイムリソースがあり、多くのタスクが同時に実行されると、リソース消費量が多くなり、タスクの同時実行性に影響を与える可能性があります。Dataphin では、同じオフラインコンピューティングテンプレートを参照する複数のタスクがランタイムリソースを共有できるため、効率的なリソース使用率が確保され、他のタスクが中断されることなく操作できます。この機能を有効にするには、オフラインコンピューティングテンプレートの共有ランタイムリソーススイッチをアクティブにします。
前提条件
オフラインコンピューティングテンプレートの共有ランタイムリソースを有効にする前に、グローバル共有リソーススイッチがアクティブであることを確認してください。詳細については、「ランタイム設定」をご参照ください。
制限事項
オフラインコンピューティングテンプレートの作成、構成、および送信は、スーパーユーザ、プロジェクト管理者、または プロジェクト開発者 のロールを持つユーザーに制限されます。
プロジェクト管理者および開発者のロールを取得する方法の詳細については、「プロジェクトメンバーの追加」をご参照ください。。
オフラインコンピューティングテンプレートの共有ランタイムリソーススイッチは、[スーパー管理者] および [システム管理者] のみが有効にできます。
手順
Dataphin のホームページに移動し、トップメニューバーから [開発] > [データ開発] を選択します。
[開発] ページで、トップメニューバーから [プロジェクト] を選択します (Dev-Prod モードで環境を選択します)。
左側のナビゲーションウィンドウで、[データ処理] をクリックし、次に [テンプレート] をクリックします。[テンプレート] リストから
アイコンを選択し、[オフラインコンピューティングテンプレート] を選択します。[オフラインコンピューティング] [テンプレート] の作成ダイアログボックスで、次のパラメーターを設定できます。
パラメーター
説明
テンプレート名
命名規則は次のとおりです。
大文字と小文字の英字、数字、アンダースコア (_)、およびハイフン (-) をサポートします。
グローバルに一意。
64 文字を超えることはできません。
ノードタイプ
[Shell]、[Python]、および [データベース Sql] をサポートします。オフラインコンピュートエンジンに基づいて、さまざまなオフラインコンピューティングテンプレートを作成できます。
ノードタイプ が Shell または Python の場合、Python サードパーティパッケージ を構成できます。
Python パッケージにサードパーティモジュールを追加した後、コードにインポートする前に、ノードでモジュールへの参照を宣言する必要があります。計算ノードプロパティの Python モジュール設定項目で、参照されるモジュールを編集できます。
ノードタイプ が データベース SQL に設定されている場合、データベース/スキーマ も選択する必要があります。Presto データソースの場合、カタログ も構成する必要があります。
ディレクトリの選択
デフォルトの選択はオフラインコンピューティングテンプレートです。[テンプレート] ページにターゲットフォルダを作成し、それをコンピューティングテンプレートのディレクトリとして選択することもできます。新しいフォルダを作成する手順は次のとおりです。
コンピューティングテンプレートリストの上にある
アイコンをクリックして、[フォルダの作成] ダイアログボックスを開きます。[フォルダの作成] ダイアログボックスで、フォルダの [名前] を入力し、[オフライン] [タイプ] を選択し、必要に応じて [ディレクトリの選択] の場所を選択します。
[確定] をクリックします。
説明
オフラインコンピューティングテンプレートの簡単な説明を 1000 文字以内で入力します。
[確認] をクリックします。
コード開発ページでオフラインコンピューティングテンプレートのコードを開発します。
テンプレートの変数パラメーターは
@@{variable_parameter_name}のフォーマットで定義できます。パラメーター名は文字で始まり、文字、数字、アンダースコア (_) のみを含むことができます。例:@@{variable}。
オフラインコンピューティングテンプレートのコード開発が完了したら、ページの左上隅にある [テスト] ボタンをクリックします。[パラメーターの入力] ダイアログボックスで、パラメーターの値を入力します。
[確認] をクリックします。
コード開発ページで、右側の [属性] をクリックします。
[属性] パネルで、パラメーターを設定します。
パラメーター
説明
基本情報
説明
オフラインコンピューティングテンプレートの簡単な説明を入力します。
Python サードパーティパッケージ
必要な Python サードパーティパッケージを選択します。詳細については、「Python サードパーティパッケージのインストールと管理」をご参照ください。。
説明Python サードパーティパッケージにサードパーティモジュールを追加した後、コードでモジュールをインポートする前に、タスクで参照を宣言する必要があります。
ランタイム構成
共有ランタイムリソース
共有ランタイムリソースを有効にすると、このテンプレートを参照するタスクインスタンスはランタイムリソースを共有してリソースを節約できます。この操作は スーパーユーザ の実行に制限されます。
重要テンプレートの [共有ランタイムリソース] 構成は、[グローバル共有リソース] を持つ操作 (メタデータウェアハウス) テナントで有効にする必要があります。そうしないと、構成はサポートされません。このテンプレートを参照して作成されたタスクは、排他的なリソースタスクです。特定の操作については、「ランタイム設定」をご参照ください。
パラメーター設定
パラメーターの説明
開発者が理解しやすいように、コードにパラメーターの説明を記述します。
デフォルト値
コード内のパラメーターに値を割り当てます。このテンプレートを参照するタスクでパラメーター値を変更でき、タスクの実行後に有効になります。
パラメーターの暗号化
パラメーターの暗号化を有効にすると、デフォルトのパラメーター値は機密データを保護するために暗号文で保存されます。このテンプレートを参照する後続のタスクでは、デフォルトのパラメーター値をプレーンテキストで表示することはできません。Dataphin は、タスクの実行時にデフォルトのパラメーター値を自動的に復号します。
パラメーターの暗号化を無効にすると、設定されたデフォルトのパラメーター値は自動的にクリアされます。
リソース構成
リソースグループ
タスクのスケジューリングには、スケジューリングリソースを消費する必要があります。テンプレートを参照して生成された各タスクインスタンスが使用できるスケジューリングリソースグループを指定できます。インスタンスのスケジューリング中に、指定されたリソースグループのクォータからリソースが占有されます。指定されたリソースグループに使用可能なリソースがない場合、[スケジューリングリソースを待機中] ステータスになります。異なるリソースグループ間のリソースは分離されており、互いに影響を与えないため、スケジューリングの安定性が確保されます。
[共有ランタイムリソース] を有効にすると、カスタムリソースグループを指定できなくなります。テンプレートを参照して作成されたタスクは、共有リソースタスクです。共有リソースタスクは、すべての共有リソースタスクのスケジューリングをサポートするために、デフォルトで共有スケジューリングリソースプールで構成されます。共有リソースプールでサポートされる最大同時実行数制限を変更するには、メタデータウェアハウスシステム管理者 に連絡して変更を依頼してください。
[共有ランタイムリソース] を無効にすると、カスタムリソースグループを指定できます。[毎日のノードスケジューリング] に使用され、現在のノードが属する [プロジェクトに関連付けられている] リソースグループのみを選択できます。詳細については、「リソースグループの構成」をご参照ください。。
重要テンプレートを参照して作成されたタスクは、テンプレートでのスケジューリングリソースグループの構成のみをサポートします。
[プロジェクトのデフォルトリソースグループ] が選択されている場合、プロジェクトのデフォルトリソースグループの構成に基づいて自動的に更新されます。
[確認] をクリックして、オフラインコンピューティングテンプレートの構成を完了します。
オフラインコンピューティングテンプレートのコード開発ページで、ページ上部の [送信] ボタンをクリックします。送信備考ダイアログボックスに、[備考] を入力します。
[確認して送信] をクリックします。
送信されたデータベースの SQL コンピュートテンプレートを編集した後:
システムは、テンプレートコードが新しい入力テーブルを導入するかどうかを自動的にチェックします。新しい入力テーブルが導入されない場合、送信は正常に続行されます。
テンプレートコードに新しい入力テーブルが導入された場合、システムは下流ノードが [最新バージョンを自動的に参照する] ように構成されているかどうかをチェックします。そのようなノードが存在する場合、送信は失敗します。それ以外の場合、送信は正常に続行されます。
SQL コードの解析に失敗した場合でも、テンプレートを送信できます。ただし、システムは次のプロンプトを表示します: テンプレート変数が存在するため、システムはコードを解析できません。SQL テンプレートコードを変更すると、新しい入力テーブルが導入される可能性があり、このテンプレートを参照するノードインスタンスが上流の依存関係を欠く原因となる可能性があります。注意して進めてください。
次のステップ
新しいオフラインコンピューティングテンプレートを使用してタスクを作成します。詳細な手順については、以下をご参照ください。