CopyActivity - AWS Data Pipeline

AWS Data Pipeline non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Data Pipeline possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

CopyActivity

Copia i dati da una posizione all'altra. CopyActivitysupporta S3 DataNode e SqlDataNode come input e output e l'operazione di copia viene normalmente eseguita record-by-record. Tuttavia, CopyActivity fornisce una copia da Amazon S3 ad Amazon S3 ad alte prestazioni quando sono soddisfatte tutte le seguenti condizioni:

  • L'input e l'output sono S3 DataNodes

  • Il campo dataFormat è lo stesso per input e output

Se si forniscono file di dati compressi come input senza indicarlo utilizzando il campo compression sui nodi di dati S3, CopyActivity potrebbe non riuscire. In questo caso, CopyActivity non è in grado di rilevare correttamente il termine del carattere del record e l'operazione ha esito negativo. Inoltre, CopyActivity supporta la copia da una directory a un'altra directory e la copia di un file in una directory, ma la record-by-record copia si verifica quando si copia una directory in un file. Infine, non CopyActivity supporta la copia di file Amazon S3 multiparte.

CopyActivitypresenta limitazioni specifiche al supporto. CSV Quando usi un S3 DataNode come input perCopyActivity, puoi usare solo una variante Unix/Linux del formato di file di CSV dati per i campi di input e output di Amazon S3. La variante Unix/Linux richiede quanto segue:

  • Il separatore deve essere il carattere "," (virgola).

  • I record non sono citati.

  • Il carattere di escape predefinito è il ASCII valore 92 (barra rovesciata).

  • L'identificatore di fine record è il ASCII valore 10 (o "\n«).

I sistemi basati su Windows utilizzano in genere una sequenza di end-of-record caratteri diversa: un riage return e una linea di alimentazione combinati (ASCIIvalore 13 e valore 10). ASCII È necessario adeguarsi a questa differenza utilizzando un ulteriore meccanismo, come uno script di pre-copia per modificare i dati di input, e assicurare che CopyActivity sia in grado di rilevare correttamente la fine di un record; in caso contrario, CopyActivity ha ripetutamente esito negativo.

Quando si utilizza CopyActivity per esportare da un SQL RDS oggetto Postgre in un formato di TSV dati, il carattere predefinito è\n. NULL

Esempio

Di seguito è illustrato un esempio di questo tipo di oggetto. Questo oggetto fa riferimento a tre altri oggetti definiti nello stesso file di definizione della pipeline. CopyPeriod è un oggetto Schedule e InputData e OutputData sono oggetti di nodi di dati.

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

Sintassi

Campi Object Invocation Descrizione Tipo di slot
schedule Questo oggetto viene richiamato entro l'esecuzione di un intervallo di pianificazione. Gli utenti devono specificare un riferimento alla pianificazione di un altro oggetto per impostare l'ordine di esecuzione delle dipendenze per questo oggetto. Gli utenti possono soddisfare questo requisito impostando esplicitamente una pianificazione sull'oggetto, ad esempio specificando «schedule»: {"ref»: "«}. DefaultSchedule Nella maggior parte dei casi, è meglio inserire il riferimento alla pianificazione nell'oggetto pipeline di default, in modo che tutti gli oggetti possano ereditare tale pianificazione. O, se la pipeline consiste di una struttura di pianificazioni (nidificate all'interno della pianificazione principale), gli utenti possono creare un oggetto padre che dispone di un riferimento alla pianificazione. Per ulteriori informazioni sulle configurazioni di pianificazione opzionali di esempio, consulta https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html Oggetto di riferimento, ad esempio «schedule»: {"ref»:» «myScheduleId}
Gruppo richiesto (uno dei seguenti è obbligatorio) Descrizione Tipo di slot
runsOn Le risorse di calcolo per eseguire l'attività o il comando. Ad esempio, un'EC2istanza Amazon o un EMR cluster Amazon. Oggetto di riferimento, ad esempio "runsOn«: {" ref»:» myResourceId «}
workerGroup Il gruppo di lavoro. Utilizzato per le attività di routing. Se si fornisce un runsOn valore ed workerGroup esiste, workerGroup viene ignorato. Stringa

Campi opzionali Descrizione Tipo di slot
attemptStatus Lo stato segnalato più di recente dall'attività remota. Stringa
attemptTimeout Timeout per il completamento del lavoro in remoto. Se questo campo è impostato, un'attività remota che non viene completata entro il tempo impostato di avvio viene tentata di nuovo. Periodo
dependsOn Specifica una dipendenza su un altro oggetto eseguibile. Oggetto di riferimento, ad esempio "dependsOn«: {" ref»:» myActivityId «}
failureAndRerunModalità Descrive il comportamento del nodo consumer quando le dipendenze presentano un errore o vengono di nuovo eseguite Enumerazione
input Origine dati di input. Oggetto di riferimento, ad esempio «input»: {"ref»:» myDataNode Id "}
lateAfterTimeout Il tempo trascorso dall'inizio della pipeline entro il quale l'oggetto deve essere completato. Viene attivato solo quando il tipo di pianificazione non è impostato su. ondemand Periodo
maxActiveInstances Il numero massimo di istanze attive simultanee di un componente. Le riesecuzioni non contano ai fini del numero di istanze attive. Numero intero
maximumRetries Numero massimo di tentativi in caso di errore Numero intero
onFail Un'azione da eseguire quando l'oggetto corrente ha esito negativo. Oggetto di riferimento, ad esempio "onFail«: {" ref»:» myActionId «}
onLateAction Azioni che devono essere attivate se un oggetto non è stato ancora pianificato o non è ancora completo. Oggetto di riferimento, ad esempio "onLateAction«: {" ref»:» myActionId «}
onSuccess Un'operazione da eseguire quando l'oggetto corrente ha esito positivo. Oggetto di riferimento, ad esempio "onSuccess«: {" ref»:» myActionId «}
output Origine dati di output. Oggetto di riferimento, ad esempio «output»: {"ref»:» myDataNode Id "}
parent Padre dell'oggetto corrente da cui saranno ereditati gli slot. Oggetto di riferimento, ad esempio «parent»: {"ref»:» myBaseObject Id "}
pipelineLogUri L'S3 URI (come 's3://BucketName/Key/ ') per caricare i log per la pipeline. Stringa
precondizione Definisce eventualmente una precondizione. Un nodo di dati non è contrassegnato con "READY" finché non sono state soddisfatte tutte le condizioni preliminari. Oggetto di riferimento, ad esempio «precondition»: {"ref»:» «myPreconditionId}
reportProgressTimeout Timeout per il lavoro remoto: chiamate successive a. reportProgress Se impostato, le attività in remoto che non presentano avanzamenti nel periodo specificato potrebbero essere considerate bloccate e sono quindi oggetto di un altro tentativo. Periodo
retryDelay La durata del timeout tra due tentativi. Periodo
scheduleType Il tipo di pianificazione consente di specificare se gli oggetti nella definizione di pipeline devono essere programmati all'inizio o alla fine dell'intervallo. Time Series Style Scheduling significa che le istanze vengono programmate al termine di ogni intervallo e Cron Style Scheduling significa che le istanze vengono programmate all'inizio di ogni intervallo. Una pianificazione on demand consente di eseguire una pipeline una sola volta, per attivazione. Questo significa che non è necessario clonare o ricreare la pipeline per eseguirla di nuovo. Se si utilizza una pianificazione su richiesta, questa deve essere specificata nell'oggetto predefinito e deve essere l'unica scheduleType specificata per gli oggetti nella pipeline. Per utilizzare le pipeline su richiesta, è sufficiente chiamare l' ActivatePipeline operazione per ogni esecuzione successiva. I valori sono: cron, ondemand e timeseries. Enumerazione

Campi Runtime Descrizione Tipo di slot
@activeInstances Elenco di oggetti di istanze attive attualmente programmate. Oggetto di riferimento, ad esempio "activeInstances«: {" ref»:» myRunnableObject Id "}
@actualEndTime L'ora in cui è terminata l'esecuzione di questo oggetto. DateTime
@actualStartTime L'ora in cui è stata avviata l'esecuzione di questo oggetto. DateTime
cancellationReason Il cancellationReason se questo oggetto è stato annullato. Stringa
@cascadeFailedOn Descrizione della catena di dipendenza che ha generato l'errore dell'oggetto. Oggetto di riferimento, ad esempio "cascadeFailedOn«: {" ref»:» myRunnableObject Id "}
emrStepLog EMRi registri dei passaggi sono disponibili solo in caso di tentativi di EMR attività Stringa
errorId Il errorId se questo oggetto ha fallito. Stringa
errorMessage Il errorMessage se questo oggetto ha avuto esito negativo. Stringa
errorStackTrace Traccia dello stack di errore se l'oggetto non è riuscito. Stringa
@finishedTime L'ora in cui è terminata l'esecuzione di questo oggetto. DateTime
hadoopJobLog I log dei job Hadoop sono disponibili per EMR i tentativi di attività basate su di esse. Stringa
@healthStatus Lo stato di integrità dell'oggetto che riflette l'esito positivo o negativo dell'ultima istanza dell'oggetto che ha raggiunto lo stato di un'istanza terminata. Stringa
@healthStatusFromInstanceId Id dell'ultimo oggetto dell'istanza che ha raggiunto lo stato terminato. Stringa
@ Ora healthStatusUpdated L'ora in cui lo stato di integrità è stato aggiornato l'ultima volta. DateTime
hostname Il nome host del client che si è aggiudicato il tentativo dell'attività. Stringa
@lastDeactivatedTime L'ora in cui l'oggetto è stato disattivato. DateTime
@ latestCompletedRun Ora L'orario dell'esecuzione più recente durante il quale l'esecuzione è stata completata. DateTime
@latestRunTime L'orario dell'esecuzione più recente durante il quale l'esecuzione è stata pianificata. DateTime
@nextRunTime L'orario dell'esecuzione da programmare come successiva. DateTime
reportProgressTime Il periodo di tempo più recente in cui l'attività remota ha segnalato un progresso. DateTime
@scheduledEndTime L'orario di termine della pianificazione per un oggetto DateTime
@scheduledStartTime L'orario di inizio della pianificazione per l'oggetto DateTime
@status Lo stato di questo oggetto. Stringa
@version Versione della pipeline con cui l'oggetto è stato creato. Stringa
@waitingOn Descrizione dell'elenco di dipendenze per cui questo oggetto è in attesa. Oggetto di riferimento, ad esempio "waitingOn«: {" ref»:» myRunnableObject Id "}

Campi di sistema Descrizione Tipo di slot
@error Errore che descrive il formato oggetto errato Stringa
@pipelineId L'id della pipeline a cui appartiene questo oggetto Stringa
@sphere La sfera di un oggetto indica la propria posizione nel ciclo di vita: i Component Objects generano Instance Objects che eseguono Attempt Objects Stringa

Vedi anche