CopyActivity - AWS Data Pipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CopyActivity

ある場所から別の場所にデータをコピーします。CopyActivityサポートするS3DataNodeそしてSqlDataNode入力と出力としてコピー操作は通常どおり実行されますrecord-by-record。ただし、以下のすべての条件が満たされた場合、CopyActivity は Amazon S3 から Amazon S3 への高速コピーを実行します。

  • 入力と出力は S3DataNodes

  • dataFormat フィールドが入力と出力で同じであること

入力として圧縮データファイルを指定した場合に、それを S3 データノードの compression フィールドを使用して示していなければ、CopyActivity は失敗することがあります。この場合、CopyActivity がレコード終了文字を適切に検出できないために、操作が失敗しています。さらに、CopyActivityディレクトリから別のディレクトリへのコピーとディレクトリへのファイルのコピーはサポートしていますがrecord-by-recordコピーは、ディレクトリをファイルにコピーするときに発生します。また、CopyActivity では、マルチパートの Amazon S3 ファイルのコピーはサポートされません。

CopyActivity には CSV サポートに関して特定の制限があります。S3 を使用する場合DataNodeの入力としてCopyActivity、Amazon S3 の入力フィールドと出力フィールドには、CSV データファイル形式の Unix/Linux バリアントのみを使用できます。この Unix/Linux 形式では、次の条件が満たされる必要があります。

  • 区切り文字はカンマ(,)文字です。

  • レコードが引用符で囲まれることはありません。

  • デフォルトのエスケープ文字は、ASCII 値 92(バックスラッシュ)です。

  • レコード終了識別子は、ASCII 値 10("\n")です。

Windows ベースのシステムでは通常、別の e を使用します。nd-of-record文字シーケンス:キャリッジリターンとラインフィードを合わせたもの (ASCII 値 13 と ASCII 値 10)。入力データを変更するコピー前スクリプトなどを利用して、この違いを吸収し、CopyActivity が適切にレコード終端を検出できるようにする必要があります。そうしないと、CopyActivity が繰り返し失敗します。

CopyActivity を使用して PostgreSQL RDS オブジェクトから TSV データ形式にエクスポートする場合、デフォルトの NULL 文字は \n です。

以下は、このオブジェクト型の例です。このオブジェクトは、同じパイプライン定義ファイルで定義した他のオブジェクトを 3 つ参照します。CopyPeriodSchedule オブジェクトで、InputDataOutputData はデータノードオブジェクトです。

{ "id" : "S3ToS3Copy", "type" : "CopyActivity", "schedule" : { "ref" : "CopyPeriod" }, "input" : { "ref" : "InputData" }, "output" : { "ref" : "OutputData" }, "runsOn" : { "ref" : "MyEc2Resource" } }

構文

オブジェクト呼び出しフィールド 説明 スロットタイプ
schedule このオブジェクトは、スケジュール期間の実行中に呼び出されます。ユーザーは、このオブジェクトの依存関係の実行順序を設定するには、別のオブジェクトへのスケジュール参照を指定する必要があります。ユーザーは、たとえば「schedule」: {"ref」:」と指定するなどして、オブジェクトにスケジュールを明示的に設定することで、この要件を満たすことができます。DefaultSchedule「}。ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、スケジュール参照をデフォルトのパイプラインオブジェクトに配置することをお勧めします。または、パイプラインにスケジュールのツリー (マスタースケジュール内のスケジュール) がある場合、ユーザーは、スケジュール参照がある親オブジェクトを作成することができます。オプションのスケジュール設定の例については、「https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html」を参照してください。 参照オブジェクト、例:「スケジュール」: {"ref」:」myScheduleId「}
必須のグループ (次のいずれかが必要です) 説明 スロットタイプ
runsOn アクティビティまたはコマンドを実行するコンピューティングリソース。たとえば、Amazon EC2 インスタンスまたは Amazon EMR クラスター。 参照オブジェクト、例えば「RunSon」: {"ref」:」myResourceId「}
workerGroup ワーカーグループ。これはルーティングタスクに使用されます。runsOn 値を指定して、workerGroup がある場合、workerGroup は無視されます。 文字列

オプションのフィールド 説明 スロットタイプ
attemptStatus リモートアクティビティから最も最近報告されたステータス。 文字列
attemptTimeout リモートの作業完了のタイムアウト。設定された場合、設定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 [Period] (期間)
dependsOn 実行可能な別のオブジェクトで依存関係を指定します。 参照オブジェクト、例えば「DependsOn」: {"ref」:」myActivityId「}
failureAndRerunモード 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 一覧表
input 入力データソース。 参照オブジェクト、例:「input」: {"ref」:」myDataNodeID "}
lateAfterTimeout オブジェクトが完了しなければならない、パイプライン開始からの経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 [Period] (期間)
maxActiveInstances コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 整数
maximumRetries 失敗時の最大再試行回数 整数
onFail 現在のオブジェクトが失敗したときに実行するアクション。 参照オブジェクト、例えば「onFail」: {"ref」:」myActionId「}
onLateAction オブジェクトが予定されていないか、まだ完了していない場合にトリガーされるアクション。 参照オブジェクト、例:」onLateAction「: {" 参照」:」myActionId「}
onSuccess 現在のオブジェクトが成功したときに実行するアクション。 参照オブジェクト、例:「onSuccess」: {"ref」:」myActionId「}
output 出力データソース。 参照オブジェクト、例えば「出力」: {"ref」:」myDataNodeID "}
parent スロットの継承元となる現在のオブジェクトの親。 参照オブジェクト、例えば「親」: {"ref」:」myBaseObjectID "}
pipelineLogUri S3 の URI (「S3://」など)BucketName/Key/ ') はパイプラインのログをアップロードするためのものです。 文字列
precondition オプションで前提条件を定義します。すべての前提条件を満たすまで、データノードは "READY" とマークされません。 参照オブジェクト、例:「前提条件」: {"ref」:」myPreconditionId「}
reportProgressTimeout reportProgress へのリモート作業の連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 [Period] (期間)
retryDelay 2 回の再試行の間のタイムアウト期間。 [Period] (期間)
scheduleType スケジュールタイプによって、パイプライン定義のオブジェクトを、期間の最初にスケジュールするか、最後にスケジュールするかを指定できます。[Time Series Style Scheduling] は、インスタンスが各間隔の最後にスケジュールされることを意味し、[Cron Style Scheduling] は、インスタンスが各間隔の最初にスケジュールされることを意味します。オンデマンドスケジュールにより、アクティベーションごとに 1 回パイプラインを実行することができます。つまり、パイプラインを再実行するために、クローンしたり再作成したりする必要はありません。オンデマンドスケジュールを使用する場合は、デフォルトオブジェクトで指定し、パイプラインのオブジェクトに対して指定される唯一の scheduleType である必要があります。オンデマンドパイプラインを使用するには、を呼び出すだけです。ActivatePipeline以降の実行ごとに操作を行います。値は、cron、ondemand、および timeseries です。 一覧表

実行時フィールド 説明 スロットタイプ
@activeInstances 現在スケジュールされているアクティブなインスタンスオブジェクトのリスト。 参照オブジェクト、例えば「アクティブインスタンス」: {"ref」:」myRunnableObjectID "}
@actualEndTime このオブジェクトの実行が終了した時刻。 DateTime
@actualStartTime このオブジェクトの実行が開始された時刻。 DateTime
cancellationReason このオブジェクトがキャンセルされた場合の cancellationReason。 文字列
@cascadeFailedOn オブジェクトが失敗した際の依存関係チェーンの説明。 参照オブジェクト、例:」cascadeFailedOn「: {" 参照」:」myRunnableObjectID "}
emrStepLog EMR アクティビティの試行でのみ使用可能な EMR ステップログ 文字列
errorId このオブジェクトが失敗した場合は errorId。 文字列
errorMessage このオブジェクトが失敗した場合は errorMessage。 文字列
errorStackTrace このオブジェクトが失敗した場合は、エラースタックトレース。 文字列
@finishedTime このオブジェクトが実行を終了した時刻。 DateTime
hadoopJobLog EMR ベースのアクティビティで試みることができる Hadoop ジョブのログ。 文字列
@healthStatus 終了状態に達した最後のオブジェクトインスタンスの成功または失敗を反映する、オブジェクトのヘルスステータス。 文字列
@healthStatusFromInstanceId 終了状態に達した最後のインスタンスオブジェクトの ID。 文字列
@healthStatusUpdated時間 ヘルス状態が最後に更新された時間。 DateTime
hostname タスクの試行を取得したクライアントのホスト名。 文字列
@lastDeactivatedTime このオブジェクトが最後に非アクティブ化された時刻。 DateTime
@latestCompletedRun時間 実行が完了した最後の実行の時刻。 DateTime
@latestRunTime 実行がスケジュールされた最後の実行の時刻。 DateTime
@nextRunTime 次回にスケジュールされた実行の時刻。 DateTime
reportProgressTime リモートアクティビティで進捗状況が報告された最新の時刻。 DateTime
@scheduledEndTime オブジェクトの予定された終了時刻 DateTime
@scheduledStartTime オブジェクトの予定された開始時刻 DateTime
@status このオブジェクトのステータス。 文字列
@バージョン オブジェクトが作成されたパイプラインのバージョン。 文字列
@waitingOn このオブジェクトが待機している依存関係のリストの説明。 参照オブジェクト、例えば「WaitingOn」: {"ref」:」myRunnableObjectID "}

システムフィールド 説明 スロットタイプ
@error 形式が正しくないオブジェクトを説明するエラー 文字列
@pipelineId このオブジェクトが属するパイプラインの ID 文字列
@sphere オブジェクトの球は、ライフサイクルにおける場所を示します。コンポーネントオブジェクトにより、試行オブジェクトを実行するインスタンスオブジェクトが発生します 文字列

以下も参照してください。