HiveActivity - AWS Data Pipeline

AWS Data Pipeline は、新規顧客には利用できなくなりました。の既存のお客様 AWS Data Pipeline は、通常どおりサービスを引き続き使用できます。詳細はこちら

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

HiveActivity

EMR クラスターで Hive クエリを実行します。 HiveActivity を使用すると、Amazon EMRアクティビティの設定が容易になり、Amazon S3 または Amazon から受信した入力データに基づいて Hive テーブルが自動的に作成されますRDS。指定する必要があるのは、ソースデータで実行する HiveQL だけです。 は${input2}HiveActivity オブジェクトの入力フィールドに基づいて、${input1}、 などを使用して Hive テーブル AWS Data Pipeline を自動的に作成します。

Amazon S3 入力の場合、dataFormat フィールドを使用して Hive の列名が作成されます。

MySQL (Amazon RDS) 入力の場合、SQLクエリの列名を使用して Hive 列名が作成されます。

注記

このアクティビティでは、Hive CSV Serde を使用します。

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

{ "name" : "ProcessLogData", "id" : "MyHiveActivity", "type" : "HiveActivity", "schedule" : { "ref": "MySchedule" }, "hiveScript" : "INSERT OVERWRITE TABLE ${output1} select host,user,time,request,status,size from ${input1};", "input" : { "ref": "MyS3Input" }, "output" : { "ref": "MyS3Output" }, "runsOn" : { "ref": "MyEmrCluster" } }

構文

オブジェクト呼び出しフィールド 説明 スロットタイプ
schedule このオブジェクトは、スケジュール期間の実行中に呼び出されます。このオブジェクトの依存関係の実行順序を設定するために、別のオブジェクトへのスケジュール参照を指定します。この要件を満たすには、オブジェクトに明示的にスケジュールを設定します。例えば、「スケジュール」: {"ref": "DefaultSchedule"} を指定します。ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、スケジュール参照をデフォルトのパイプラインオブジェクトに配置することをお勧めします。または、パイプラインにスケジュールのツリー (マスタースケジュール内のスケジュール) がある場合は、スケジュール参照がある親オブジェクトを作成できます。オプションのスケジュール設定の例については、「https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html」を参照してください。 リファレンスオブジェクト、例: "schedule":{"ref"myScheduleId"}

必須のグループ (次のいずれかが必要です) 説明 スロットタイプ
hiveScript 実行する Hive スクリプト。 文字列
scriptUri 実行する Hive スクリプトの場所 (s3:// などscriptLocation)。 文字列

必須のグループ 説明 スロットタイプ
runsOn これがHiveActivity実行されるEMRクラスター。 リファレンスオブジェクト、例: "runsOn":{"ref"myEmrClusterId"}
workerGroup ワーカーグループ。これはルーティングタスクに使用されます。値 runsOn を指定して、workerGroup がある場合、workerGroup は無視されます。 文字列
input 入力データソース。 「input」:{「ref"myDataNodeId」} などのリファレンスオブジェクト
output 出力データソース。 「output」:{「ref"myDataNodeId」} などのリファレンスオブジェクト

オプションのフィールド 説明 スロットタイプ
attemptStatus リモートアクティビティから最も最近報告されたステータス。 文字列
attemptTimeout リモートの作業完了のタイムアウト。設定された場合、設定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 [Period] (期間)
dependsOn 実行可能な別のオブジェクトで依存関係を指定します。 dependsOn「」:{「ref"myActivityId」} などのリファレンスオブジェクト
failureAndRerunモード 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 一覧表
hadoopQueue ジョブを送信する先の Hadoop スケジューラーのキュー名。 文字列
lateAfterTimeout オブジェクトが完了しなければならない、パイプライン開始からの経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 [Period] (期間)
maxActiveInstances コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 整数
maximumRetries 失敗時の最大再試行回数。 整数
onFail 現在のオブジェクトが失敗したときに実行するアクション。 onFail「」:{「ref"myActionId」} などのリファレンスオブジェクト
onLateAction オブジェクトが予定されていないか、まだ完了していない場合にトリガーされるアクション。 onLateAction「」:{「ref"myActionId」} などのリファレンスオブジェクト
onSuccess 現在のオブジェクトが成功したときに実行するアクション。 onSuccess「」:{「ref"myActionId」} などのリファレンスオブジェクト
parent スロットの継承元となる現在のオブジェクトの親。 「parent」:{「ref"myBaseObjectId」} などのリファレンスオブジェクト
pipelineLogUri パイプラインのログをアップロードするための S3 URI (「s3://BucketName/Key/」など)。 文字列
postActivityTask設定 実行するポストアクティビティ設定スクリプト。これは、Amazon S3 URIのシェルスクリプトの と引数のリストで構成されます。 Amazon S3 postActivityTask「Config」:{「ref"myShellScriptConfigId」} などのリファレンスオブジェクト
preActivityTask設定 実行するプリアクティビティ設定スクリプト。これは、Amazon S3 URIのシェルスクリプトの と引数のリストで構成されます。 Amazon S3 preActivityTask「Config」:{「ref"myShellScriptConfigId」} などのリファレンスオブジェクト
precondition オプションで前提条件を定義します。すべての前提条件が満たされREADYるまで、データノードは「」とマークされません。 「precondition」:{「ref"myPreconditionId」} などのリファレンスオブジェクト
reportProgressTimeout reportProgress へのリモート作業の連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 [Period] (期間)
resizeClusterBefore実行中 入力または出力として指定された DynamoDB データノードに対応するため、このアクティビティを実行する前にクラスターのサイズを変更します。
注記

アクティビティで を入力データノードまたは出力データノードDynamoDBDataNodeとして使用し、 resizeClusterBeforeRunningを に設定するとTRUE、 はm3.xlargeインスタンスタイプを使用して AWS Data Pipeline 開始します。これによりインスタンスタイプの選択が m3.xlarge に上書きされるため、月別コストが増加することがあります。

ブール値
resizeClusterMaxインスタンス サイズ変更アルゴリズムによってリクエストできるインスタンスの最大数の制限。 整数
retryDelay 2 回の再試行の間のタイムアウト期間。 [Period] (期間)
scheduleType スケジュールタイプによって、パイプライン定義のオブジェクトを、期間の最初にスケジュールするか、最後にスケジュールするかを指定できます。[Time Series Style Scheduling] は、インスタンスが各間隔の最後にスケジュールされることを意味し、[Cron Style Scheduling] は、インスタンスが各間隔の最初にスケジュールされることを意味します。オンデマンドスケジュールにより、アクティベーションごとに 1 回パイプラインを実行することができます。つまり、パイプラインを再実行するために、クローンしたり再作成したりする必要はありません。オンデマンドスケジュールを使用する場合は、デフォルトオブジェクトで指定する必要があり、パイプライン内のオブジェクトに対して scheduleType 指定されるのは のみである必要があります。オンデマンドパイプラインを使用するには、後続の実行ごとに ActivatePipeline オペレーションを呼び出すだけです。値は、cron、ondemand、および timeseries です。 一覧表
scriptVariable スクリプトの実行中に Amazon EMRが Hive に渡すスクリプト変数を指定します。例えば、次のスクリプト変数の例では、 SAMPLEおよび FILTER_DATE 変数を Hive SAMPLE=s3://elasticmapreduce/samples/hive-adsに渡します。 FILTER_DATE=#{format(@scheduledStartTime,'YYYY-MM-dd')}%このフィールドでは、複数の値を指定でき、script フィールドと scriptUri フィールドの両方で機能します。さらに scriptVariable は stage の設定が truefalse かに関係なく機能します。このフィールドは、 AWS Data Pipeline の式と関数を利用して Hive に動的な値を送信するときに特に便利です。 文字列
ステージ スクリプトの実行前または後に、ステージングが有効かどうかを決定します。Hive 11 では許可されていないため、Amazon EMRAMIバージョン 3.2.0 以降を使用してください。 ブール値

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

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

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