MaxComputeジョブを定期的に実行する場合は、DataWorksコンソールでDataStudioを使用して、自動トリガーノードで実行されるジョブを開発し、ノードの関連パラメーターを設定できます。 関連パラメータは、時間特性およびスケジューリング依存性を含む。 その後、MaxComputeジョブをDataWorksオペレーションセンターに送信して、定期的なスケジューリングを行うことができます。 このトピックでは、DataWorksコンソールで定期的にスケジュールされたジョブを開発する方法について説明します。
開発ワークフロー
次の図は、DataWorksコンソールでのMaxComputeジョブの基本的な開発ワークフローを示しています。 
DataWorksワークスペースは、基本モードまたは標準モードで動作できます。 標準モードでは、1つのDataWorksワークスペースが本番環境のMaxComputeプロジェクトと開発環境のMaxComputeプロジェクトに関連付けられます。 上の図では、標準モードのDataWorksワークスペースが使用されています。
以下の点に注意する必要があります。
さまざまな種類のジョブを、ODPS SQLノード、ODPS Sparkノード、PyODPSノードなどのさまざまな種類のノードで実行できます。
DataWorksコンソールでは、MaxComputeテーブルを作成し、MaxCompute関数をDataWorksに登録し、MaxComputeリソースを作成できます。 このようにして、ジョブの開発効率が向上します。
DataWorksコンソールで一般ノードを使用して、ループやトラバースなどの複雑なジョブロジックを実装することもできます。
課金
DataWorks DataStudioおよびOperation Centerを使用して、MaxComputeからのデータの読み書き、MaxComputeデータの処理、またはMaxComputeタスクの定期的なスケジュールを行う場合、DataWorksリソースだけでなく、他のAlibaba Cloudサービスのリソースに対しても課金されます。
1. DataWorksリソースの料金
このセクションでは、DataWorksの請求書に含まれる料金について説明します。 DataWorksの課金可能な項目については、「課金の概要」をご参照ください。
料金 | 説明 |
使用するDataWorksエディションの料金 | DataWorksでタスクを開発する前に、DataWorksを有効化する必要があります。 DataWorks Standard Edition、DataWorks Professional Edition、またはDataWorks Enterprise Editionを有効化した場合、エディションの購入時にそのエディションの料金が課金されます。 |
タスクのスケジュールに使用するスケジューリングリソースの料金 | タスクが開発された後、タスクをスケジュールするためにスケジューリングリソースが必要です。 スケジューリング用にサーバーレスリソースグループまたは旧バージョンの排他的リソースグループを購入し、リソースグループの料金を支払うことができます。 サーバーレスリソースグループを購入することを推奨します。 説明 購入したサーバーレスリソースグループは、タスクのスケジューリングとデータの同期に使用できます。 |
データの同期に使用するリソースの料金 | データ同期タスクは、スケジューリングリソースと同期リソースを消費します。 Data Integration用のサーバーレスリソースグループまたは旧バージョンの排他的リソースグループを購入し、リソースグループの料金を支払うことができます。 サーバーレスリソースグループを購入することを推奨します。 |
[DataStudio] ページの上部ツールバーの [run] または [Run with Parameters] をクリックしてノードでタスクを実行する場合、スケジューリング料金は請求されません。
失敗したタスクまたはドライ実行タスクのスケジューリング料金は請求されません。
請求の詳細を理解するのに役立つ詳細については、「オペレーションセンター」をご参照ください。
2. 他のAlibaba Cloudサービスのリソースに対する料金
このセクションでは、DataWorksの請求書に含まれていない料金について説明します。 また、DataWorksでタスクを開発および実行するために使用される他のAlibaba Cloudサービスのリソースに対して課金される場合もあります。
Alibaba Cloudサービスの課金ロジックに基づいて、他のAlibaba Cloudサービスのリソースに対して課金されます。 詳細については、Alibaba Cloudサービスの課金ドキュメントをご参照ください。 たとえば、使用するMaxComputeコンピューティングエンジンの課金の詳細については、「MaxComputeの課金項目」をご参照ください。
料金 | 説明 |
データベース料金 | データ同期タスクを実行してデータベースからデータを読み取り、データベースにデータを書き込むと、データベース料金が発生する可能性があります。 |
コンピューティングおよびストレージ料金 | 特定の種類のコンピューティングエンジンのタスクを実行すると、この種類のコンピューティングエンジンのコンピューティング料金とストレージ料金が発生する可能性があります。 たとえば、ODPS SQLノードでタスクを実行してMaxComputeテーブルを作成し、MaxComputeテーブルにデータを書き込む場合、MaxComputeコンピューティングエンジンのコンピューティングリソースとストレージリソースに対して課金される可能性があります。 |
ネットワークサービス料金 | DataWorksと他の関連サービスとの間にネットワーク接続を確立すると、ネットワークサービス料金が発生する場合があります。 たとえば、Express Connect、Elastic IPアドレス (EIP) 、インターネット共有帯域幅などのサービスを使用して、DataWorksと他の関連サービスとの間にネットワーク接続を確立する場合、ネットワークサービス料金が請求されることがあります。 |
権限管理
DataWorksは、製品レベルの権限とモジュールレベルの権限を管理するための包括的な権限管理システムを提供します。 DataWorksコンソールでは、MaxComputeデータソースに対するアクセス許可を要求したり、MaxComputeデータソースへのアクセス要求を処理したりできます。
1. データアクセス権限の管理
ODPS SQLまたはアドホッククエリノードを使用して、MaxComputeテーブルのデータをクエリできます。 DataWorksワークスペースを基本モードで使用する場合、開発環境と本番環境間のデータの詳細な権限管理と分離はサポートされません。 このトピックでは、標準モードのDataWorksワークスペースを使用します。
MaxComputeの組み込みワークスペースレベルのロールの権限の説明
次の表に、RAMユーザーがメンバーとしてワークスペースに追加され、ワークスペースレベルのロールが割り当てられた後の、MaxComputeでのRAMユーザーの権限を示します。
権限タイプ
説明
開発環境でのMaxComputeプロジェクトの権限
RAMユーザーにワークスペースで組み込みのワークスペースレベルのロールを割り当て、MaxComputeプロジェクトを開発環境のワークスペースに関連付けると、RAMユーザーには、開発環境でMaxComputeプロジェクトのマッピングされたロールの権限が自動的に付与されます。 ただし、RAMユーザーには、本番環境のMaxComputeプロジェクトの権限がありません。
本番環境のMaxComputeプロジェクトに対する権限
スケジューリングアクセスIDとして使用されるRAMユーザーは、本番環境のMaxComputeプロジェクトに対して高い権限を持っています。 他のRAMユーザーには、本番環境のMaxComputeプロジェクトに対する権限がありません。 本番環境でMaxComputeテーブルに対して操作を実行するには、Security Centerに移動して必要な権限を要求する必要があります。
DataWorksは、デフォルトのリクエスト処理手順を提供します。 DataWorksでは、管理権限が付与されたユーザーがリクエスト処理手順をカスタマイズすることもできます。
MaxComputeの権限管理の詳細については、「MaxCompute計算エンジンインスタンスのデータに対する権限の管理」をご参照ください。
データアクセス動作の説明
MaxComputeでは、プロジェクト間でテーブルをクエリできます。 DataStudioページでプロジェクト名を指定することで、本番環境のワークスペースに関連付けられているMaxComputeプロジェクトのデータを照会できます。 次の表に、プロジェクト間でテーブルをクエリする方法と、さまざまな環境でテーブルにアクセスするために使用できるアカウントを示します。
説明[ワークスペース] ページの [Compute Engine Information] セクションでは、開発環境と本番環境のワークスペースに関連付けられているMaxComputeプロジェクトと、MaxComputeプロジェクトの環境を構成するために使用されるアカウントを表示できます。 詳細については、「MaxCompute データソースの追加」をご参照ください。
標準モードのワークスペースでは、デフォルトでタスクエグゼキュータの個人IDを使用して開発環境でMaxComputeタスクを実行し、Alibaba CloudアカウントをスケジューリングアクセスIDとして使用して、本番環境でMaxComputeタスクを実行します。 詳細については、「MaxCompute データソースの追加」をご参照ください。
サンプルコード
開発環境の実行アカウント (開発環境のDataStudioおよびオペレーションセンター)
運用環境での実行アカウント (運用環境でのオペレーションセンター)
開発環境のMaxComputeプロジェクトのテーブルにアクセスします。
select col1 from projectname_dev.tablename;タスクエグゼキュータの個人用Alibaba Cloudアカウントは、開発環境のMaxComputeプロジェクトのテーブルにアクセスするために使用されます。
RAMユーザーがタスクを実行する場合、RAMユーザーの個人用Alibaba Cloudアカウントを使用して、開発環境のMaxComputeプロジェクトのテーブルにアクセスします。
Alibaba Cloudアカウントを使用してタスクを実行する場合、Alibaba Cloudアカウントを使用して、開発環境のMaxComputeプロジェクトのテーブルにアクセスします。
スケジューリングアクセスIDは、開発環境のMaxComputeプロジェクトのテーブルにアクセスするために使用されます。
本番環境のMaxComputeプロジェクトのテーブルにアクセスします。
select col1 from projectname.tablename;タスクエグゼキュータの個人用Alibaba Cloudアカウントは、本番環境のMaxComputeプロジェクトのテーブルにアクセスするために使用されます。
説明本番環境のデータに対するセキュリティ制御のため、個人のAlibaba Cloudアカウントを使用して、本番環境のMaxComputeプロジェクトのテーブルにアクセスすることはできません。 個人のAlibaba Cloudアカウントを使用して、本番環境のMaxComputeプロジェクトのテーブルにアクセスするには、Security Centerにアクセスして権限を要求します。 DataWorksは、デフォルトのリクエスト処理手順を提供します。 DataWorksでは、管理権限が付与されたユーザーがリクエスト処理手順をカスタマイズすることもできます。
スケジューリングアクセスIDは、本番環境のMaxComputeプロジェクトのテーブルにアクセスするために使用されます。
開発環境などの目的の環境でMaxComputeプロジェクトで次のステートメントを実行して、MaxComputeプロジェクトのテーブルにアクセスします。
select col1 from tablename;タスクエグゼキュータの個人用Alibaba Cloudアカウントを使用して、開発環境のMaxComputeプロジェクトのテーブルにアクセスできます。
スケジューリングアクセスIDを使用して、本番環境のMaxComputeプロジェクトのテーブルにアクセスできます。
2. サービスと機能に対する権限の管理
DataWorksでRAMユーザーとしてデータを開発する前に、RAMユーザーにワークスペースレベルのロールを割り当てて、RAMユーザー固有の権限を付与する必要があります。 詳細については、「RAMユーザーの権限を管理するためのベストプラクティス」をご参照ください。
メンバー権限管理を使用して、DataWorksユーザーによるデータマップへのアクセスの禁止など、DataWorksサービスモジュールの権限を管理したり、DataWorksユーザーによるワークスペースの削除など、DataWorksコンソールでの操作の実行権限を管理したりできます。
メンバー権限管理を使用して、DataWorksユーザーがDataStudioにアクセスして開発関連の操作を実行できるようにするなど、DataWorksワークスペースレベルのサービスモジュールのアクセス許可を管理したり、DataWorksユーザーがData Security Guardにアクセスできないようにするなど、DataWorksグローバルレベルのサービスモジュールのアクセス許可を管理したりできます。
