「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
パイプラインのスケジューリング
AWS Data Pipeline では、スケジュールは、アクティビティを実行する時期など、予定されたイベントのタイミングを定義します。AWS Data Pipeline では、Schedule パイプラインコンポーネントを使用してこの機能を公開します。
コンソールを使用したスケジュールの作成
AWS Data Pipeline コンソールを使用すると、パイプラインをスケジュールし、作成することができます。これは、パイプラインを実稼働のワークロード用に設定する前に、テストおよびプロトタイプの作成を行う場合に役立ちます。
[Create Pipeline] セクションには、以下のフィールドがあります。
Field | アクション |
---|---|
Name | パイプラインの名前を入力します。 |
説明 |
(オプション)パイプラインの説明を入力します。 |
[Schedule] セクションには、以下のフィールドがあります。
Field | アクション |
---|---|
走行 |
|
Run every | 実行されるすべてのパイプラインに対する期間を入力します。 |
Starting | パイプラインを開始する日時を入力します。または、パイプラインをアクティブ化したときに開始時刻を自動的に選択することもできます。 |
Ending | パイプラインを終了する日時を入力します。[never] を選択すると、パイプラインは無限に実行されます。 |
[IAM Roles & Permissions] セクションには、以下のオプションがあります。
Field | アクション |
---|---|
デフォルト値 | このオプションを選択すると、ロールが AWS Data Pipeline によって決定されます。 |
Custom | 独自の IAM ロールを指定する場合は、このオプションを選択します。このオプションを選択した場合は、以下のロールを選択できます。
|
オンデマンド
[Other] セクションの [Architect] ページに、Default オブジェクトがあります。
AWS Data Pipeline にはオンデマンドスケジュールタイプがあります。これにより、パイプラインのアクティベーション時にパイプラインを実行するオプションが提供されます。パイプラインは、アクティベーションのリクエストに応じて 1 回実行されます。
オンデマンドパイプラインでは、デフォルトオブジェクトでスケジュールタイプを ondemand
に設定する必要があるのみです。オンデマンドパイプラインでは、スケジュールオブジェクトを使用しないことが必要で、複数のスケジュールは許可されません。オンデマンドパイプラインの同時実行の最大数は、Default オブジェクトのスロットを使用して設定できます。maxActiveInstancesこのスロットのデフォルト値は、オンデマンドパイプラインの場合は
1 で、設定できる最大値は 5 です。
次の Default オブジェクトは、オンデマンドスケジュールを使用します。
{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand" }
時系列形式と Cron 形式
AWS Data Pipeline では、2 つのタイプのパイプラインコンポーネントの定期的なスケジューリングが用意されています。時系列形式のスケジューリングと Cron 形式のスケジューリングです。
スケジュールのタイプによって、パイプラインコンポーネントのインスタンスを間隔(期間とも呼ばれる)の最初から開始するか、間隔の最後から開始するかを指定することができます。
時系列形式のスケジューリングは、インスタンスが各間隔の最後にスケジュールされることを意味し、Cron 形式のスケジューリングは、インスタンスが各間隔の最初にスケジュールされることを意味します。たとえば、時系列形式のスケジューリングを使用して、開始時刻が 22:00 UTC であり、間隔/期間が 30 分に設定されている場合、パイプラインコンポーネントインスタンスの最初の実行は 22:00 UTC ではなく、22:30 UTC に開始されます。インスタンスを期間/間隔の最初(22:00 UTC など)から実行する場合は、代わりに Cron 形式のスケジューリングを使用します。
最小スケジューリング間隔は 15 分です。
[Other] セクションの [Architect] ページに、Default オブジェクトがあります。
cron スタイルのパイプライン用の Default オブジェクトを次に示します。
{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "cron" }
時系列スタイルのパイプライン用の Default オブジェクトを次に示します。
{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "timeseries" }
スケジュールタイプを無視するリソース
AWS Data Pipeline は、パイプラインのスケジュールタイプの設定(時系列形式のスケジューリングまたは Cron 形式のスケジューリング)に応じて、スケジュール期間の最初または最後にアクティビティおよびデータノードインスタンスを作成します。ただし、AWS
Data Pipeline は、パイプラインのスケジュールタイプに関係なく EC2Resource
や EmrCluster
などの Resource
インスタンスを期間の最初に作成し、WAITING_ON_DEPENDENCIES ステータスに設定します。実際の基盤となるリソースは、関連付けられたアクティビティがスケジュールされるまでインスタンス化されません。
タスクのバックフィル
過去の開始時刻をスケジュールしてパイプラインを定義すると、AWS Data Pipeline はパイプライン内でタスクをバックフィルします。その場合、AWS Data Pipeline はパイプライン内のタスクの多くのインスタンスをすぐに実行し、スケジュールされた開始時刻から現在の時刻までの間で、実行されるはずであったそれらのタスクの回数について遅れを取り戻します。この処理が行われるときには、パイプラインを作成したときに指定した期間値よりも高い頻度で、パイプラインコンポーネントインスタンスが連続的に実行されます。AWS Data Pipeline がパイプラインを定義された期間に戻すのは、過去の実行回数の遅れを取り戻したときのみです。
開発およびテストフェーズでバックフィルを最小限にするには、startDateTime
~ endDateTime
の間隔を比較的短くします。
AWS Data Pipelineは、パイプラインコンポーネントが 1 日以上前である場合、パイプラインのアクティブ化をブロックして、誤ったバックフィルを防ごうと試みます。scheduledStartTime
パイプラインをすぐに起動するには、[Start Date Time (開始日付と時刻)] に過去の任意の日付を入力します。AWS Data Pipeline は、未処理の作業として認識された項目を解決するために、"期限が過ぎた" 実行を直ちに開始します。このバックフィリングは、AWS Data Pipeline が最初のクラスターを起動するまで 1 時間待つ必要がないことを意味します。
スケジュールを使用したリソースの最大効率
AWS Data Pipeline では、リソースと関連アクティビティに対して異なるスケジュールの期間をサポートすることによって、リソースの効率を最大化することができます。
たとえば、20 分間のスケジュール期間が設定されたアクティビティがあるとします。アクティビティのリソースにも 20 分のスケジュール期間が設定されている場合、AWS Data Pipeline はこのリソースのインスタンスを 1 時間に 3 つ作成し、タスクに必要なリソースの 3 倍のリソースを消費します。
代わりに、AWS Data Pipeline では異なるスケジュール、たとえば 1 時間のスケジュールでリソースを設定することができます。20 分のスケジュールのアクティビティと組み合わせた場合、AWS Data Pipeline は 1 時間にアクティビティの 3 つのインスタンスすべてにサービスを提供するためにリソースを 1 つだけ作成します。これによりリソースの使用率を最大化します。
データの上書きに対する保護
AWS Data Pipeline を使用して、1 日に複数回実行され、各実行で同じ Amazon S3 の場所に出力をルーティングする、反復的なインポートジョブがあるとします。
日付ベースの式を使用しない場合、誤って出力データを上書きする可能性があります。S3Output.DirectoryPath
で s3://myBucket/#{@scheduledStartTime}
などの日付ベースの式を使用して、期間ごとに異なるディレクトリパスを指定できます。詳細については、Schedule を参照してください。