AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline,...

342
AWS Data Pipeline Guía para desarrolladores Versión de API 2012-10-29

Transcript of AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline,...

Page 1: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data PipelineGuía para desarrolladoresVersión de API 2012-10-29

Page 2: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

AWS Data Pipeline: Guía para desarrolladoresCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Table of Contents¿Qué es AWS Data Pipeline? .............................................................................................................. 1

Servicios relacionados ................................................................................................................. 2Acceso a AWS Data Pipeline ....................................................................................................... 3Precios ...................................................................................................................................... 3Tipos de instancia compatibles con las actividades de trabajo de canalización ...................................... 3

Instancias de Amazon EC2 predeterminadas de las regiones de AWS ....................................... 4Instancias Amazon EC2 adicionales admitidas ....................................................................... 5Instancias Amazon EC2 admitidas para clústeres de Amazon EMR ............................................ 5

Conceptos de AWS Data Pipeline ......................................................................................................... 7Definición de la canalización ........................................................................................................ 7Componentes de canalización, instancias e intentos ........................................................................ 8Aplicaciones de ejecución de tareas .............................................................................................. 9Nodos de datos ........................................................................................................................ 10Bases de datos ........................................................................................................................ 10Actividades .............................................................................................................................. 10Condiciones previas .................................................................................................................. 11

Condiciones previas administradas por el sistema .................................................................. 12Condiciones previas administradas por el usuario .................................................................. 12

Recursos ................................................................................................................................. 12Límites de recursos ........................................................................................................... 12Plataformas admitidas ....................................................................................................... 13Instancias de spot de Amazon EC2 con clústeres de Amazon EMR y AWS Data Pipeline ............. 13

Actions .................................................................................................................................... 14Monitorización proactiva de canalizaciones ........................................................................... 14

Configuración ................................................................................................................................... 15Inscripción en AWS ................................................................................................................... 15Creación de los roles de IAM necesarios (solo para CLI o API) ........................................................ 15Asignación de una política administrada con PassRole a roles predefinidos de IAM ............................. 16Asignación de una política insertada con PassRole a roles personalizados de IAM .............................. 17

Introducción a AWS Data Pipeline ....................................................................................................... 19Crear la canalización ................................................................................................................. 19Monitorizar la canalización en ejecución ....................................................................................... 20Ver la salida ............................................................................................................................ 21Eliminar la canalización ............................................................................................................. 21

Trabajar con canalizaciones ............................................................................................................... 22Programación de canalizaciones ................................................................................................. 22

Creación de una programación mediante la consola ............................................................... 22Bajo demanda .................................................................................................................. 23Estilo serie temporal frente a estilo cron ............................................................................... 24Tareas de reposición ......................................................................................................... 24Eficiencia máximo de recursos mediante el uso de programaciones .......................................... 25Protección contra la sobrescritura de datos ........................................................................... 25

Creación de una canalización ..................................................................................................... 25Creación de canalizaciones con plantillas de consola ............................................................. 26Creación de canalizaciones utilizando manualmente la consola ................................................ 39

Visualización de las canalizaciones ............................................................................................. 45Interpretación de los códigos de estado de la canalización ...................................................... 46Interpretación del estado de salud de canalizaciones y componentes ........................................ 47Visualización de las definiciones de canalización ................................................................... 48Visualización de detalles de instancias de canalización ........................................................... 49Visualización de registros de canalización ............................................................................ 51

Edición de la canalización .......................................................................................................... 52Limitaciones ..................................................................................................................... 52Edición de una canalización mediante la consola ................................................................... 52

Versión de API 2012-10-29iii

Page 4: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Edición de una canalización mediante la AWS CLI ................................................................ 53Clonación de la canalización ...................................................................................................... 53Etiquetado de la canalización ..................................................................................................... 54Desactivación de la canalización ................................................................................................. 55

Desactive la canalización mediante la consola ...................................................................... 55Desactivación de la canalización mediante la AWS CLI .......................................................... 55

Eliminación de la canalización .................................................................................................... 56Datos y tablas transitorios con actividades .................................................................................... 56

Uso transitorio de datos con ShellCommandActivity ............................................................... 57Tablas transitorias con nodos de datos compatibles con el uso de datos transitorios y Hive ........... 58Tablas transitorias con nodos de datos no compatibles con el uso de datos transitorios y Hive ....... 59

Lanzamiento de recursos en una VPC ......................................................................................... 60Crear y configurar una VPC ............................................................................................... 61Configuración de la conectividad entre recursos .................................................................... 61Configurar el recurso ......................................................................................................... 63

Uso de instancias de spot en una canalización ............................................................................. 64Uso de recursos en varias regiones ............................................................................................ 64Errores en cascada y repeticiones de ejecuciones ......................................................................... 66

Actividades ...................................................................................................................... 66Nodos de datos y condiciones previas ................................................................................. 66Recursos ......................................................................................................................... 66Volver a ejecutar objetos con errores en cascada .................................................................. 66Error en cascada y reposiciones ......................................................................................... 67

Sintaxis de los archivos de definición de la canalización ................................................................. 67Estructura de archivos ....................................................................................................... 67Campos de canalización .................................................................................................... 68Campos definidos por el usuario ......................................................................................... 69

Uso de la API .......................................................................................................................... 69Instalar el SDK de AWS .................................................................................................... 70Realización de una solicitud HTTP a AWS Data Pipeline ........................................................ 70

Control del acceso a canalizaciones y recursos ..................................................................................... 74Políticas de IAM para AWS Data Pipeline ..................................................................................... 74

Sintaxis de la política ........................................................................................................ 75Control del acceso a canalizaciones mediante etiquetas ......................................................... 75Control del acceso a canalizaciones mediante grupos de procesos de trabajo ............................. 77

Ejemplos de políticas para AWS Data Pipeline .............................................................................. 78Ejemplo 1: Otorgar a los usuarios acceso de solo lectura basado en una etiqueta ....................... 78Ejemplo 2: Otorgar a los usuarios acceso completo basado en una etiqueta ............................... 79Ejemplo 3: Otorgar acceso completo al propietario de la canalización ........................................ 79Ejemplo 4: Otorgar acceso a los usuarios a la consola de AWS Data Pipeline ............................. 80

Roles de IAM ........................................................................................................................... 80Actualización de roles de IAM existentes para AWS Data Pipeline ............................................ 81Cambio de roles en canalizaciones existentes ....................................................................... 84

Tutoriales ......................................................................................................................................... 85Procesar datos utilizando Amazon EMR con Hadoop Streaming ....................................................... 85

Antes de comenzar ........................................................................................................... 86Mediante la consola .......................................................................................................... 86Mediante la CLI ................................................................................................................ 89

Importar y exportar datos de DynamoDB ...................................................................................... 92Primera parte: importar datos en DynamoDB ........................................................................ 93Segunda parte: exportar datos desde DynamoDB .................................................................. 97

Copiar datos CSV de Amazon S3 a Amazon S3 .......................................................................... 102Antes de comenzar ......................................................................................................... 103Mediante la consola ........................................................................................................ 104Mediante la CLI .............................................................................................................. 108

Exportar datos de MySQL a Amazon S3 .................................................................................... 113Antes de comenzar ......................................................................................................... 113

Versión de API 2012-10-29iv

Page 5: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Mediante la consola ........................................................................................................ 114Mediante la CLI .............................................................................................................. 117

Copiar datos en Amazon Redshift ............................................................................................. 124Antes de comenzar: configurar las opciones de COPY .......................................................... 124Antes de comenzar: configurar la canalización, la seguridad y el clúster ................................... 125Mediante la consola ........................................................................................................ 126Mediante la CLI .............................................................................................................. 129

Expresiones y funciones de canalizaciones ......................................................................................... 136Tipos de datos simples ............................................................................................................ 136

DateTime ....................................................................................................................... 136Numérico ....................................................................................................................... 136Referencias de objetos .................................................................................................... 136Período .......................................................................................................................... 136Cadena .......................................................................................................................... 137

Expresiones ............................................................................................................................ 137Objetos y campos de referencia ........................................................................................ 137Expresiones anidadas ...................................................................................................... 138Listas ............................................................................................................................ 138Expresión de nodo .......................................................................................................... 139Evaluación de expresiones ............................................................................................... 140

Funciones matemáticas ............................................................................................................ 140Funciones de cadena .............................................................................................................. 140Funciones de fecha y hora ....................................................................................................... 141Caracteres especiales .............................................................................................................. 146

Referencia de objeto de canalización ................................................................................................. 148Nodos de datos ...................................................................................................................... 149

DynamoDBDataNode ....................................................................................................... 149MySqlDataNode .............................................................................................................. 154RedshiftDataNode ........................................................................................................... 159S3DataNode ................................................................................................................... 164SqlDataNode .................................................................................................................. 169

Actividades ............................................................................................................................. 174CopyActivity .................................................................................................................... 174EmrActivity ..................................................................................................................... 180HadoopActivity ................................................................................................................ 186HiveActivity ..................................................................................................................... 193HiveCopyActivity ............................................................................................................. 199PigActivity ...................................................................................................................... 205RedshiftCopyActivity ........................................................................................................ 215ShellCommandActivity ...................................................................................................... 224SqlActivity ...................................................................................................................... 230

Recursos ............................................................................................................................... 235Ec2Resource .................................................................................................................. 235EmrCluster ..................................................................................................................... 242HttpProxy ....................................................................................................................... 260

Condiciones previas ................................................................................................................ 262DynamoDBDataExists ...................................................................................................... 263DynamoDBTableExists ..................................................................................................... 265Exists ............................................................................................................................ 268S3KeyExists ................................................................................................................... 271S3PrefixNotEmpty ........................................................................................................... 274ShellCommandPrecondition .............................................................................................. 277

Bases de datos ....................................................................................................................... 280JdbcDatabase ................................................................................................................. 281RdsDatabase .................................................................................................................. 282RedshiftDatabase ............................................................................................................ 284

Formatos de los datos ............................................................................................................. 285

Versión de API 2012-10-29v

Page 6: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Formato de los datos CSV ............................................................................................... 285Formato de los datos personalizado ................................................................................... 287DynamoDBDataFormat ..................................................................................................... 288DynamoDBExportDataFormat ............................................................................................ 290RegEx Data Format ......................................................................................................... 292Formato de datos TSV ..................................................................................................... 293

Actions .................................................................................................................................. 294SnsAlarm ....................................................................................................................... 294Finalizar ......................................................................................................................... 296

Programación ......................................................................................................................... 297Ejemplos ........................................................................................................................ 297Sintaxis .......................................................................................................................... 301

Utilidades ............................................................................................................................... 302ShellScriptConfig ............................................................................................................. 302EmrConfiguration ............................................................................................................. 303Propiedad ...................................................................................................................... 306

Uso de Task Runner ....................................................................................................................... 309Task Runner en recursos administrados por AWS Data Pipeline ..................................................... 309Ejecución de trabajo en recursos existentes mediante Task Runner ................................................ 311

Instalación de Task Runner .............................................................................................. 312(Opcional) Concesión a Task Runner de acceso a Amazon RDS ............................................ 313Inicio de Task Runner ...................................................................................................... 314Verificación del registro de Task Runner ............................................................................. 315

Subprocesos y condiciones previas de Task Runner .................................................................... 315Opciones de configuración de Task Runner ................................................................................ 315Uso de Task Runner con un Proxy ............................................................................................ 317Task Runner y AMI personalizadas ............................................................................................ 317

Solución de problemas ..................................................................................................................... 318Localización de errores en canalizaciones .................................................................................. 318Identificación del clúster de Amazon EMR que da servicio a la canalización ..................................... 318Interpretación de los detalles de estado de la canalización ............................................................ 319Localización de los registros de error ......................................................................................... 320

Registros de canalización ................................................................................................. 320Registros de trabajos de Hadoop y de pasos de Amazon EMR .............................................. 321

Resolución de problemas comunes ............................................................................................ 321Canalización bloqueada en estado pendiente ...................................................................... 322Componente de la canalización bloqueado en el estado Waiting for Runner .............................. 322Componente de la canalización bloqueado en el estado WAITING_ON_DEPENDENCIES ........... 322No se ejecuta cuando está programada ............................................................................. 323Los componentes de la canalización se ejecutan en el orden incorrecto ................................... 323El clúster de EMR falla con un error: el token de seguridad que se incluye en la solicitud no esválido ............................................................................................................................ 324Permisos insuficientes para obtener acceso a los recursos .................................................... 324Status Code: 400 Error Code: PipelineNotFoundException ..................................................... 324La creación de una canalización produce un error del token de seguridad ................................ 324No se pueden ver los detalles de la canalización en la consola .............................................. 324Error in remote runner Status Code: 404, AWS Service: Amazon S3 ....................................... 325Acceso denegado: no está autorizado a realizar la función datapipeline: .................................. 325Las AMI de Amazon EMR más antiguas pueden crear datos falsos para archivos CSV de grantamaño .......................................................................................................................... 325Aumento de los límites de AWS Data Pipeline ..................................................................... 326

Registro de llamadas al API de AWS Data Pipeline mediante AWS CloudTrail .......................................... 327Información de AWS Data Pipeline en CloudTrail ......................................................................... 327Descripción de las entradas de los archivos de registro de AWS Data Pipeline .................................. 328

Límites ........................................................................................................................................... 329Límites de la cuenta ................................................................................................................ 329Límites de llamadas a servicios web .......................................................................................... 330

Versión de API 2012-10-29vi

Page 7: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Consideraciones de escalado .................................................................................................... 331Recursos de AWS Data Pipeline ....................................................................................................... 332Historial de revisión ......................................................................................................................... 333

Versión de API 2012-10-29vii

Page 8: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

¿Qué es AWS Data Pipeline?AWS Data Pipeline es un servicio web que puede utilizar para automatizar el movimiento y latransformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datosen los que las tareas dependan de que se hayan realizado correctamente las tareas anteriores. Debedefinir los parámetros de las transformaciones de datos y AWS Data Pipeline aplicará la lógica que hayaconfigurado.

Los siguientes componentes de AWS Data Pipeline se combinan para administrar los datos:

• Una definición de canalización especifica la lógica de negocio de la administración de datos. Paraobtener más información, consulte Sintaxis de los archivos de definición de la canalización (p. 67).

• Una canalización programa y ejecuta tareas mediante la creación de instancias Amazon EC2 que llevana cabo las actividades de trabajo definidas. Solo tiene que cargar la definición de canalización en lacanalización y, a continuación, activar la canalización. Puede editar la definición de la canalización deuna canalización en ejecución y activar de nuevo la canalización para que surta efecto. Puede desactivarla canalización, modificar una fuente de datos y, a continuación, activar la canalización de nuevo.Cuando haya terminado con la canalización, puede eliminarla.

• Task Runner realiza un sondeo para comprobar si hay tareas y, a continuación, realiza esas tareas. Porejemplo, Task Runner podría copiar archivos de registro en Amazon S3 y lanzar clústeres de AmazonEMR. Task Runner se instala y se ejecuta automáticamente en los recursos creados por las definicionesde la canalización. Puede escribir una aplicación de ejecución de tareas personalizada o puede usar laaplicación Task Runner que se incluye en AWS Data Pipeline. Para obtener más información, consulteAplicaciones de ejecución de tareas (p. 9).

Por ejemplo, puede utilizar AWS Data Pipeline para archivar los registros del servidor web en AmazonSimple Storage Service (Amazon S3) cada día y, a continuación, ejecutar un clúster de Amazon EMR(Amazon EMR) cada semana en esos registros para generar informes de tráfico. AWS Data Pipelineprograma las tareas diarias para copiar los datos y la tarea semanal para lanzar el clúster de AmazonEMR. AWS Data Pipeline también garantiza que Amazon EMR espera a que se carguen los datos al finaldel día en Amazon S3 antes de empezar su análisis, incluso si hay un retraso imprevisto en la carga de losregistros.

Versión de API 2012-10-291

Page 9: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresServicios relacionados

Contenido• Servicios relacionados (p. 2)• Acceso a AWS Data Pipeline (p. 3)• Precios (p. 3)• Tipos de instancia compatibles con las actividades de trabajo de canalización (p. 3)

Servicios relacionadosAWS Data Pipeline funciona con los siguientes servicios para almacenar datos.

• Amazon DynamoDB: ofrece una base de datos NoSQL totalmente administrada con un rendimientorápido de bajo costo. Para obtener más información, consulte Guía para desarrolladores de AmazonDynamoDB.

• Amazon RDS: ofrece una base de datos relacional totalmente administrada que se puede escalarpara trabajar con conjuntos de datos grandes. Para obtener más información, consulte Guía paradesarrolladores de Amazon Relational Database Service.

• Amazon Redshift: proporciona un almacén de datos de varios petabytes rápido y totalmenteadministrado que permite analizar gran cantidad de datos de forma sencilla y económica. Para obtenermás información, consulte Amazon Redshift Database Developer Guide.

• Amazon S3: proporciona un almacenamiento de objetos seguro, altamente escalable y duradero. Paraobtener más información, consulte Guía para desarrolladores de Amazon Simple Storage Service.

AWS Data Pipeline funciona con los siguientes servicios de computación para transformar datos.

• Amazon EC2: proporciona capacidad de computación redimensionable (es decir, servidores de loscentros de datos de Amazon) que se puede usar para crear y alojar sistemas de software. Para obtenermás información, consulte Guía del usuario de Amazon EC2 para instancias de Linux.

Versión de API 2012-10-292

Page 10: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAcceso a AWS Data Pipeline

• Amazon EMR: hace que sea fácil, rápido y rentable distribuir y procesar grandes cantidades de datosentre servidores de Amazon EC2, utilizando un marco como Apache Hadoop o Apache Spark. Paraobtener más información, consulte Guía para desarrolladores de Amazon EMR.

Acceso a AWS Data PipelinePuede crear, acceder y administrar las canalizaciones desde cualquiera de las siguientes interfaces:

• Consola de administración de AWS: proporciona una interfaz web que se puede utilizar para obteneracceso a AWS Data Pipeline.

• AWS Command Line Interface (AWS CLI): proporciona comandos para numerosos servicios deAWS, incluido AWS Data Pipeline, y es compatible con Windows, macOS y Linux. Para obtener másinformación sobre la instalación de la AWS CLI, consulte AWS Command Line Interface. Para obteneruna lista de comandos para AWS Data Pipeline, consulte datapipeline.

• SDK de AWS: proporcionan API específicas de cada lenguaje y se encargan de muchos de los detallesde la conexión, tales como el cálculo de firmas, el control de reintentos de solicitud y el control deerrores. Para obtener más información, consulte SDK de AWS.

• API de consultas: proporciona acciones de API de nivel bajo a las que se llama mediante solicitudesHTTPS. Utilizar la API de consultas es la forma más directa de obtener acceso a AWS Data Pipeline,pero requiere que la aplicación controle niveles de detalle de bajo nivel, tales como la generación delcódigo hash para firmar la solicitud o el control de errores. Para obtener más información, consulte laAWS Data Pipeline API Reference.

PreciosCon Amazon Web Services se paga únicamente por lo que se utiliza. Para AWS Data Pipeline, se pagapor la canalización según la frecuencia con la que estén programadas las ejecuciones de las actividades ylas condiciones previas y el lugar en que se ejecuten. Para obtener más información, consulte Precios deAWS Data Pipeline.

Si su cuenta de AWS tiene menos de 12 meses, puede utilizar la capa gratuita. La capa gratuita incluyetres condiciones previas de baja frecuencia y cinco actividades de baja frecuencia al mes sin ningún tipo decosto. Para obtener más información, consulte Capa gratuita de AWS.

Tipos de instancia compatibles con las actividadesde trabajo de canalización

Cuando AWS Data Pipeline ejecuta una canalización, compila los componentes de la canalización paracrear un conjunto de instancias Amazon EC2 procesables. Cada instancia contiene toda la informaciónpara realizar una tarea específica. El conjunto completo de instancias es la lista de tareas pendientes de lacanalización. AWS Data Pipeline entrega las instancias a las aplicaciones de ejecución de tareas para quelas procesen.

Las instancias EC2 aparecen en diferentes configuraciones, lo que se conoce como tipos de instancia.Cada tipo de instancia tiene una CPU, entrada/salida y capacidad de almacenamiento diferentes. Ademásde especificar el tipo de instancia para una actividad, puede elegir distintas opciones de compra. Notodos los tipos de instancia están disponibles en todas las regiones de AWS. Si un tipo de instancia noestá disponible, es posible que su canalización no se pueda aprovisionar o que se bloquee durante elaprovisionamiento. Para obtener información sobre la disponibilidad de las instancias, consulte la Páginade precios de Amazon EC2. Abra el enlace de la opción de compra de instancias y filtre por Región para

Versión de API 2012-10-293

Page 11: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInstancias de Amazon EC2

predeterminadas de las regiones de AWS

ver si un tipo de instancia está disponible en la región. Para obtener más información sobre estos tiposde instancias, familias y tipos de virtualización, consulte Instancias de Amazon EC2 y Matriz de tipos deinstancias de las AMI de Amazon Linux.

En la siguiente tabla, se describen los tipos de instancias que admite AWS Data Pipeline. Puede utilizarAWS Data Pipeline para lanzar instancias de Amazon EC2 en cualquier región, incluidas las regiones enlas que AWS Data Pipeline no se admite. Para obtener más información sobre las regiones en las que seadmite AWS Data Pipeline, consulte Regiones y puntos de enlace de AWS.

Contenido• Instancias de Amazon EC2 predeterminadas de las regiones de AWS (p. 4)• Instancias Amazon EC2 adicionales admitidas (p. 5)• Instancias Amazon EC2 admitidas para clústeres de Amazon EMR (p. 5)

Instancias de Amazon EC2 predeterminadas de lasregiones de AWSSi no especifica un tipo de instancia en la definición de canalización, AWS Data Pipeline lanza unainstancia de forma predeterminada.

En la tabla siguiente, se muestran las instancias Amazon EC2 que AWS Data Pipeline utiliza de formapredeterminada en las regiones en las que se admite AWS Data Pipeline.

Nombre de la región Región Tipo de instancia

EE.UU. Este (Norte de Virginia) us-east-1 m1.small

EE.UU. Oeste (Oregón) us-west-2 m1.small

Asia Pacífico (Sídney) ap-southeast-2 m1.small

Asia Pacífico (Tokio) ap-northeast-1 m1.small

UE (Irlanda) eu-west-1 m1.small

En la tabla siguiente se muestran las instancias Amazon EC2 que AWS Data Pipeline lanza de formapredeterminada en las regiones en las que no se admite AWS Data Pipeline.

Nombre de la región Región Tipo de instancia

EE.UU. Este (Ohio) us-east-2 t2.small

EE.UU. Oeste (Norte deCalifornia)

us-west-1 m1.small

Asia Pacífico (Mumbai) ap-south-1 t2.small

Asia Pacífico (Singapur) ap-southeast-1 m1.small

Asia Pacífico (Seúl) ap-northeast-2 t2.small

Canadá (Central) ca-central-1 t2.small

UE (Fráncfort) eu-central-1 t2.small

Versión de API 2012-10-294

Page 12: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInstancias Amazon EC2 adicionales admitidas

Nombre de la región Región Tipo de instancia

UE (Londres) eu-west-2 t2.small

UE (París) eu-west-3 t2.small

América del Sur (São Paulo) sa-east-1 m1.small

Instancias Amazon EC2 adicionales admitidasAdemás de las instancias predeterminadas que se crean en caso de que no especifique un tipo deinstancia en la definición de canalización, son compatibles las siguientes instancias.

En la tabla siguiente, se muestran las instancias Amazon EC2 que admite AWS Data Pipeline y que puedecrear, si se especifica.

Clase de instancia Tipos de instancia

Fin general t2.nano | t2.micro | t2.small | t2.medium | t2.large

Optimizada para computación c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c4.large |c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.xlarge | c5.9xlarge| c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge | c5d.xlarge |c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.18xlarge

Optimizada para memoria m3.medium | m3.large | m3.xlarge | m3.2xlarge | m4.large | m4.xlarge| m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16xlarge | m5.xlarge |m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge | m5d.xlarge |m5d.2xlarge | m5d.4xlarge | m5d.12xlarge | m5d.24xlarge

r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.large |r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge

Optimizada para almacenamiento i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | hs1.8xlarge | g2.2xlarge| g2.8xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge

Instancias Amazon EC2 admitidas para clústeres deAmazon EMREn esta tabla siguiente, se muestran las instancias Amazon EC2 que admite AWS Data Pipeline y quepuede crear para clústeres de Amazon EMR, si se especifica. Para obtener más información, consulteTipos de instancias admitidos en la Guía de administración de Amazon EMR.

Clase de instancia Tipos de instancia

Fin general m1.small | m1.medium | m1.large | m1.xlarge | m3.xlarge |m3.2xlarge

Optimizada para computación c1.medium | c1.xlarge | c3.xlarge | c3.2xlarge | c3.4xlarge |c3.8xlarge | cc1.4xlarge| cc2.8xlarge | c4.large | c4.xlarge |c4.2xlarge| c4.4xlarge | c4.8xlarge | c5.xlarge | c5.9xlarge |c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge | c5d.xlarge |c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.18xlarge

Versión de API 2012-10-295

Page 13: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInstancias Amazon EC2 admitidaspara clústeres de Amazon EMR

Clase de instancia Tipos de instancia

Optimizada para memoria m2.xlarge | m2.2xlarge | m2.4xlarge | r3.xlarge | r3.2xlarge |r3.4xlarge | r3.8xlarge | cr1.8xlarge | m4.large | m4.xlarge |m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16large | m5.xlarge |m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge | m5d.xlarge |m5d.2xlarge | m5d.4xlarge | m5d.12xlarge | m5d.24xlarge | r4.large |r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge

Optimizada para almacenamiento h1.4xlarge | hs1.2xlarge | hs1.4xlarge| hs1.8xlarge | i2.xlarge |i2.2xlarge | i2.4large | i2.8xlarge | d2.xlarge | d2.2xlarge| d2.4xlarge |d2.8xlarge

Computación acelerada g2.2xlarge | cg1.4xlarge

Versión de API 2012-10-296

Page 14: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDefinición de la canalización

Conceptos de AWS Data PipelineAntes de comenzar, lea acerca de los conceptos y los componentes clave de AWS Data Pipeline.

Contenido• Definición de la canalización (p. 7)• Componentes de canalización, instancias e intentos (p. 8)• Aplicaciones de ejecución de tareas (p. 9)• Nodos de datos (p. 10)• Bases de datos (p. 10)• Actividades (p. 10)• Condiciones previas (p. 11)• Recursos (p. 12)• Actions (p. 14)

Definición de la canalizaciónUna definición de canalización es la forma de comunicar la lógica de negocio a AWS Data Pipeline.Contiene la siguiente información:

• Nombres, ubicaciones y formatos de sus orígenes de datos• Actividades que transforman los datos• La programación de esas actividades• Recursos que ejecutan sus actividades y condiciones previas• Condiciones previas que deben cumplirse antes de que las actividades se puedan programar• Modos de avisarle con actualizaciones de estado a medida que continúa la ejecución de la canalización

En la definición de la canalización, AWS Data Pipeline determina las tareas, las programa y las asigna alas aplicaciones de ejecución de tareas. Si una tarea no se completa correctamente, AWS Data Pipelinevuelve a intentar realizarla siguiendo las instrucciones y, en caso necesario, la reasigna a otra aplicaciónde ejecución de tareas. Si la tarea devuelve error repetidamente, puede configurar la canalización para quele notifique.

Por ejemplo, en la definición de la canalización, podría especificar que los archivos de registro generadospor la aplicación deben archivarse cada mes de 2013 en un bucket de Amazon S3. AWS Data Pipelinecrearía 12 tareas, cada una de ellas haciendo una copia de los datos correspondientes a un mes,independientemente de si el mes tenía 30, 31, 28 o 29 días.

Puede crear una definición de la canalización de cualquiera de estas formas:

• Gráficamente, mediante la consola de AWS Data Pipeline• Textualmente, escribiendo un archivo JSON en el formato usado por la interfaz de línea de comandos• Mediante programación, llamando al servicio web con uno de los SDK de AWS o la API de AWS Data

Pipeline

Una definición de la canalización puede contener los siguientes tipos de componentes.

Versión de API 2012-10-297

Page 15: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresComponentes de canalización, instancias e intentos

Componentes de canalización

Nodos de datos (p. 10)

La ubicación de los datos de entrada para una tarea o la ubicación donde se van a almacenar losdatos de salida.

Actividades (p. 10)

Una definición del trabajo que se realizará de manera programada mediante un recurso informático y,habitualmente, nodos de datos de entrada y salida.

Condiciones previas (p. 11)

Una instrucción condicional que debe ser "true" antes de que una acción pueda ejecutarse.Programación de canalizaciones (p. 22)

Define los tiempos de un evento programado, como cuando se ejecuta una actividad.Recursos (p. 12)

El recurso informático que realiza el trabajo que define una canalización.Actions (p. 14)

Una acción que se desencadena al cumplirse condiciones especificadas como, por ejemplo, el errorde una actividad.

Para obtener más información, consulte Sintaxis de los archivos de definición de la canalización (p. 67).

Componentes de canalización, instancias e intentosHay tres tipos de elementos asociados a una canalización programada:

• Componentes de canalización: los componentes de canalización representan la lógica de negocio de lacanalización y están representados por las diferentes secciones de una definición de canalización. Loscomponentes de canalización especifican los orígenes de datos, las actividades, la programación y lascondiciones previas del flujo de trabajo. Pueden heredar propiedades de los componentes principales.Las relaciones entre los componentes se definen por referencia. Los componentes de canalizacióndefinen las reglas de administración de datos.

• Instancias: cuando AWS Data Pipeline ejecuta una canalización, compila los componentes de lacanalización para crear un conjunto de instancias procesables. Cada instancia contiene toda lainformación para realizar una tarea específica. El conjunto completo de instancias es la lista de tareaspendientes de la canalización. AWS Data Pipeline entrega las instancias a las aplicaciones de ejecuciónde tareas para que las procesen.

• Intentos: para proporcionar una administración de datos sólida, AWS Data Pipeline intenta realizarde nuevo una operación fallida. Sigue haciéndolo hasta que la tarea alcanza el número máximo dereintentos permitidos. Los objetos de intento realizan un seguimiento de los diversos intentos, resultadosy motivos de error si corresponde. Básicamente, es la instancia con un contador. AWS Data Pipelinerealiza reintentos con los mismos recursos de los intentos anteriores, como los clústeres de AmazonEMR y las instancias EC2.

Note

El reintento de tareas fallidas constituye una parte importante de una estrategia de tolerancia aerrores, mientras que las definiciones de AWS Data Pipeline proporcionan condiciones y umbralespara controlar los reintentos. Sin embargo, demasiados reintentos pueden retrasar la detección deun error no recuperable, ya que AWS Data Pipeline no notifica ningún error hasta que ha agotado

Versión de API 2012-10-298

Page 16: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAplicaciones de ejecución de tareas

todos los reintentos especificados. Los reintentos adicionales pueden acumular otros cargos si seejecutan en recursos de AWS. Por ello, considere con cautela cuándo conviene utilizar valoresmás altos para la configuración predeterminada de AWS Data Pipeline que se usan para controlarlos reintentos y los ajustes relacionados.

Aplicaciones de ejecución de tareasUna aplicación de ejecución de tareas es una aplicación que sondea AWS Data Pipeline para comprobar sihay tareas y, a continuación, realiza dichas tareas.

Task Runner es una implementación predeterminada de una aplicación de ejecución de tareasproporcionada por AWS Data Pipeline. Cuando se instala y configura Task Runner, sondea AWS DataPipeline para comprobar si hay tareas asociadas a las canalizaciones que están activadas. Cuando unatarea se asigna a Task Runner, realiza dicha tarea y notifica su estado a AWS Data Pipeline.

En el diagrama siguiente, se ilustra cómo interactúan AWS Data Pipeline y una aplicación de ejecución detareas para procesar una tarea programada. Una tarea es una unidad discreta de trabajo que el servicioAWS Data Pipeline comparte con una aplicación de ejecución de tareas. Difiere de una canalización, quees una definición general de actividades y recursos que suele generar varias tareas.

Versión de API 2012-10-299

Page 17: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresNodos de datos

Puede usar Task Runner de dos formas para procesar una canalización:

• AWS Data Pipeline instala Task Runner automáticamente en los recursos que el servicio web AWS DataPipeline lanza y administra.

• Usted instala Task Runner en un recurso informático que administra como, por ejemplo, una instanciaEC2 de ejecución prolongada, o un servidor local.

Para obtener más información sobre el trabajo con la aplicación de ejecución de tareas, consulte Uso deTask Runner (p. 309).

Nodos de datosEn AWS Data Pipeline, un nodo de datos define la ubicación y el tipo de datos que una actividad decanalización usa como entrada o salida. AWS Data Pipeline admite los siguientes tipos de nodos de datos:

DynamoDBDataNode (p. 149)

Una tabla de DynamoDB que contiene datos para que HiveActivity (p. 193) o EmrActivity (p. 180)los use.

SqlDataNode (p. 169)

Una tabla SQL y una consulta de base de datos que representan los datos para que una actividad decanalización los use.

Note

Anteriormente, se usaba MySqlDataNode. Use SqlDataNode en su lugar.RedshiftDataNode (p. 159)

Una tabla de Amazon Redshift que contiene datos para que RedshiftCopyActivity (p. 215) los use.S3DataNode (p. 164)

Una ubicación de Amazon S3 que contiene uno o varios archivos para que una actividad decanalización los use.

Bases de datosAWS Data Pipeline admite los siguientes tipos de bases de datos:

JdbcDatabase (p. 281)

Una base de datos JDBC.RdsDatabase (p. 282)

Una base de datos de Amazon RDS.RedshiftDatabase (p. 284)

Una base de datos de Amazon Redshift.

ActividadesEn AWS Data Pipeline, una actividad es un componente de canalización que define el trabajo que se deberealizar. AWS Data Pipeline proporciona varias actividades previamente empaquetadas que se adaptan

Versión de API 2012-10-2910

Page 18: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCondiciones previas

a escenarios comunes, como mover datos de una ubicación a otra, ejecutar consultas de Hive, etc. Lasactividades son ampliables, por lo que puede ejecutar sus propios scripts personalizados para admitirinfinitas combinaciones.

AWS Data Pipeline admite los siguientes tipos de actividades:

CopyActivity (p. 174)

Copia datos de una ubicación a otra.EmrActivity (p. 180)

Ejecuta un clúster de Amazon EMR.HiveActivity (p. 193)

Ejecuta una consulta de Hive en un clúster de Amazon EMR.HiveCopyActivity (p. 199)

Ejecuta una consulta de Hive en un clúster de Amazon EMR con soporte para filtrado de datosavanzado y soporte para S3DataNode (p. 164) y DynamoDBDataNode (p. 149).

PigActivity (p. 205)

Ejecuta un script de Pig en un clúster de Amazon EMR.RedshiftCopyActivity (p. 215)

Copia datos a tablas de Amazon Redshift y desde ellas.ShellCommandActivity (p. 224)

Ejecuta un comando de shell de UNIX/Linux personalizado como actividad.SqlActivity (p. 230)

Ejecuta una consulta SQL en una base de datos.

Algunas actividades poseen una compatibilidad especial para uso transitorio de datos y tablas de labase de datos. Para obtener más información, consulte Datos y tablas transitorios con actividades decanalización (p. 56).

Condiciones previasEn AWS Data Pipeline, una condición previa es un componente de canalización que contiene instruccionescondicionales que deben cumplirse antes de que una actividad pueda ejecutarse. Por ejemplo,una condición previa puede comprobar si los datos de origen están presentes antes de que unaactividad de canalización intente copiarlos. AWS Data Pipeline proporciona varias condiciones previaspreempaquetadas que se adaptan a escenarios comunes, por ejemplo, si una tabla de la base de datosexiste, si una clave de Amazon S3 está presente, etc. Sin embargo, las condiciones previas son ampliablesy le permiten ejecutar sus propios scripts personalizados para admitir infinitas combinaciones.

Hay dos tipos de condiciones previas; condiciones previas administradas por el sistema y condicionesprevias administradas por el usuario. El servicio web AWS Data Pipeline ejecuta automáticamente lascondiciones previas administradas por el sistema, que no requieren ningún recurso informático. Lascondiciones previas administradas por el usuario solo se ejecutan en los recursos informáticos queespecifique mediante los campos runsOn o workerGroup. El recurso workerGroup se deriva de laactividad que usa la condición previa.

Versión de API 2012-10-2911

Page 19: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCondiciones previas administradas por el sistema

Condiciones previas administradas por el sistemaDynamoDBDataExists (p. 263)

Comprueba si existen datos en una tabla de DynamoDB específica.DynamoDBTableExists (p. 265)

Comprueba si existe una tabla de DynamoDB.S3KeyExists (p. 271)

Comprueba si existe una clave de Amazon S3.S3PrefixNotEmpty (p. 274)

Comprueba si un prefijo de Amazon S3 está vacío.

Condiciones previas administradas por el usuarioExists (p. 268)

Comprueba si existe un nodo de datos.ShellCommandPrecondition (p. 277)

Ejecuta un comando de shell de Unix/Linux personalizado como condición previa.

RecursosEn AWS Data Pipeline, un recurso es el recurso informático que realiza el trabajo especificado por unaactividad de canalización. AWS Data Pipeline admite los siguientes tipos de recursos:

Ec2Resource (p. 235)

Una instancia EC2 que realiza el trabajo definido por una actividad de canalización.EmrCluster (p. 242)

Un clúster de Amazon EMR que realiza el trabajo definido por una actividad de canalización, comoEmrActivity (p. 180).

Los recursos pueden ejecutarse en la misma región con su conjunto de datos de trabajo, inclusouna región distinta de la de AWS Data Pipeline. Para obtener más información, consulte Uso de unacanalización con recursos en varias regiones (p. 64).

Límites de recursosAWS Data Pipeline se escala para adaptarse a un número elevado de tareas simultáneas, y es posibleconfigurarlo para crear automáticamente los recursos necesarios para gestionar grandes cargas detrabajo. Estos recursos se crean automáticamente bajo su control y se tienen en cuenta para loslímites de recursos de la cuenta de AWS. Por ejemplo, si configura AWS Data Pipeline para que creeautomáticamente un clúster de Amazon EMR de 20 nodos para procesar datos y su cuenta de AWS tieneun límite de instancias EC2 establecido en 20, es posible que agote sin darse cuenta sus recursos dereposición disponibles. Como resultado, tenga en cuenta estas restricciones de recursos en el diseño o

Versión de API 2012-10-2912

Page 20: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPlataformas admitidas

aumente los límites de su cuenta en consonancia. Para obtener más información sobre Service Limits,consulte Límites de los servicios de AWS en la Referencia general de AWS.

Note

El límite es una instancia por objeto de componente Ec2Resource.

Plataformas admitidasLas canalizaciones pueden lanzar sus recursos en las siguientes plataformas:

EC2-Classic

Los recursos se ejecutan en una sola red plana que comparte con otros clientes.EC2-VPC

Los recursos se ejecutan en una nube virtual privada (VPC), que está aislada lógicamente para sucuenta de AWS.

Su cuenta de AWS puede lanzar recursos en ambas plataformas o solo en EC2-VPC, según cada región.Para obtener más información, consulte Plataformas compatibles en la Guía del usuario de Amazon EC2para instancias de Linux.

Si su cuenta de AWS solo admite EC2-VPC, creamos una VPC predeterminada automáticamente en cadaregión de AWS. De forma predeterminada, lanzamos sus recursos en una subred predeterminada de laVPC predeterminada. De forma alternativa, puede crear una VPC no predeterminada y especificar una desus subredes al configurar sus recursos. A continuación, lanzamos sus recursos en la subred especificadade la VPC no predeterminada.

Al lanzar una instancia en una VPC, debe especificar un grupo de seguridad creado específicamentepara esa VPC. No puede especificar un grupo de seguridad que ha creado para EC2-Classic al lanzaruna instancia en una VPC. Además, debe usar el ID de grupo de seguridad y no el nombre del grupo deseguridad para identificar un grupo de seguridad de una VPC.

Para obtener más información sobre el uso de una VPC con AWS Data Pipeline, consulte Lanzamiento derecursos para su canalización en una VPC (p. 60).

Instancias de spot de Amazon EC2 con clústeres deAmazon EMR y AWS Data PipelineLas canalizaciones pueden utilizar instancias de spot de Amazon EC2 para los nodos de tareas en susrecursos del clúster de Amazon EMR. De forma predeterminada, las canalizaciones usan instancias bajodemanda. Las instancias de spot le permiten usar instancias EC2 libres y ejecutarlas. El modelo de preciosde instancias de spot complementa los modelos de precios de instancias reservadas y bajo demanda,proporcionando posiblemente la opción más rentable para obtener capacidad de cómputo, dependiendode su aplicación. Para obtener más información, consulte la página de producto de Instancias de spot deAmazon EC2.

Si se usan instancias de spot, AWS Data Pipeline envía el precio máximo ofrecido por la instancia de spota Amazon EMR cuando se lanza el clúster. También asigna de forma automática el trabajo del clúster alnúmero de nodos de tareas de instancia de spot que se defina mediante el campo taskInstanceCount.AWS Data Pipeline limita las instancias de spot para nodos de tarea a fin de garantizar que haya nodosprincipales bajo demanda disponibles para ejecutar la canalización.

Puede editar una instancia de recurso de canalización fallida o completada para añadir instancias de spot;cuando la canalización vuelve a lanzar el clúster, utiliza instancias de spot para los nodos de tarea.

Versión de API 2012-10-2913

Page 21: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresActions

Consideraciones de instancias de spotAl usar instancias de spot con AWS Data Pipeline, se aplican las siguientes consideraciones:

• Las instancias de spot pueden finalizarse cuando el precio de la instancia de spot supere el preciomáximo ofrecido por la instancia o por razones de capacidad de Amazon EC2. Sin embargo, los datosno se pierden porque AWS Data Pipeline emplea clústeres con nodos principales que siempre soninstancias bajo demanda y no están sujetos a la terminación.

• Las instancias de spot pueden tardar más tiempo en empezar, ya que cumple su capacidad de formaasíncrona. Por lo tanto, una canalización de una instancia de spot podría ejecutarse más lentamente queuna canalización de instancia bajo demanda equivalente.

• Su clúster podría no ejecutarse si no recibe sus instancias de spot, como cuando su precio máximo esdemasiado bajo.

ActionsLas acciones de AWS Data Pipeline son pasos que sigue un componente de canalización cuando seproducen determinados eventos, como actividades realizadas correctamente, fallidas o que se realizantarde. El campo de evento de una actividad hace referencia a una acción, como una referencia asnsalarm en el campo onLateAction de EmrActivity.

AWS Data Pipeline confía en las notificaciones de Amazon SNS como forma principal de indicar el estadode las canalizaciones y sus componentes de un modo desatendido. Para obtener más información,consulte Amazon SNS. Además de las notificaciones de SNS, se puede usar la CLI y la consola de AWSData Pipeline para obtener información sobre el estado de la canalización.

AWS Data Pipeline admite las siguientes acciones:

SnsAlarm (p. 294)

Una acción que envía una notificación de SNS a un tema basado en los eventos onSuccess, OnFaily onLateAction.

Finalizar (p. 296)

Una acción que desencadena la cancelación de una actividad, recurso o nodo de datos pendientes oinacabados. No puede finalizar acciones que incluyen onSuccess, OnFail u onLateAction.

Monitorización proactiva de canalizacionesLa mejor forma de detectar problemas es monitorizar sus canalizaciones de manera proactiva desde elinicio. Puede configurar los componentes de canalización para informarle de determinadas situacioneso eventos, como cuando un componente de canalización produce un error o no comienza a su hora deinicio programada. AWS Data Pipeline facilita la configuración de notificaciones proporcionando campos deevento en los componentes de canalización que se pueden asociar a notificaciones de Amazon SNS comoonSuccess, OnFail y onLateAction.

Versión de API 2012-10-2914

Page 22: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInscripción en AWS

Configuración de AWS Data PipelineAntes de usar AWS Data Pipeline por primera vez, realice las siguientes tareas.

Tareas• Inscripción en AWS (p. 15)• Creación de los roles de IAM necesarios (solo para CLI o API) (p. 15)• Asignación de una política administrada con PassRole a roles predefinidos de IAM (p. 16)• Asignación de una política insertada con PassRole a roles personalizados de IAM (p. 17)

Después de completar estas tareas, puede comenzar a utilizar AWS Data Pipeline. Para ver un tutorialbásico, consulte Introducción a AWS Data Pipeline (p. 19).

Inscripción en AWSAl inscribirse en Amazon Web Services (AWS), su cuenta de AWS se inscribe automáticamente en todoslos servicios de AWS, incluido AWS Data Pipeline. Solo se le cobrará por los servicios que utilice. Paraobtener más información sobre las tarifas de uso de AWS Data Pipeline, consulte AWS Data Pipeline.

Si ya dispone de una cuenta de AWS, pase a la siguiente tarea. Si no dispone de una cuenta de AWS,utilice el siguiente procedimiento para crear una.

Para crear una cuenta de AWS

1. Abra https://portal.aws.amazon.com/billing/signup.2. Siga las instrucciones en línea.

Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e indicar un código deverificación en el teclado del teléfono.

Creación de los roles de IAM necesarios (solo paraCLI o API)

AWS Data Pipeline requiere roles de IAM para determinar las acciones que pueden realizar lascanalizaciones y los recursos a los que pueden tener acceso. Además, cuando la canalización crea unrecurso, como una instancia EC2 o un clúster de EMR, los roles de IAM determinan qué acciones puedenrealizar las aplicaciones y a qué recursos pueden tener acceso.

La consola de AWS Data Pipeline crea los siguientes roles automáticamente:

• DataPipelineDefaultRole concede a AWS Data Pipeline acceso a los recursos de AWS• DataPipelineDefaultResourceRole concede a las aplicaciones de sus instancias EC2 acceso a sus

recursos de AWS

Si ya ha utilizado AWS Data Pipeline anteriormente y dispone de versiones de estos roles de IAM, esposible que tenga que actualizarlos. Para obtener más información, consulte Actualización de roles de IAMexistentes para AWS Data Pipeline (p. 81).

Versión de API 2012-10-2915

Page 23: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAsignación de una política administrada

con PassRole a roles predefinidos de IAM

Si utiliza una CLI o una API y no ha utilizado la consola de AWS Data Pipeline para crear una canalizacióncon anterioridad, debe crear estos roles manualmente utilizando AWS Identity and Access Management(IAM).

Para crear manualmente los roles de IAM necesarios

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Cree el rol DataPipelineDefaultRole de la siguiente forma:

a. En el panel de navegación, seleccione Roles, Create New Role.b. En la página Set Role Name, en Role name, especifique DataPipelineDefaultRole.c. En la página Select Role Type, en AWS Service Roles, elija Select en la fila de AWS Data

Pipeline.d. En la página Attach Policy, seleccione la política AWSDataPipelineRole y elija Next Step.e. En la página Review, elija Create Role.

3. Cree el rol DataPipelineDefaultResourceRole de la siguiente forma:

a. En el panel de navegación, seleccione Roles, Create New Role.b. En la página Set Role Name, en Role name, especifique

DataPipelineDefaultResourceRole.c. En la página Select Role Type, en AWS Service Roles, elija Select en la fila de Amazon EC2 Role

for Data Pipeline.d. En la página Attach Policy, seleccione la política AmazonEC2RoleforDataPipelineRole y elija Next

Step.e. En la página Review, elija Create Role.

De forma alternativa, puede crear y utilizar roles personalizados. Para obtener más información sobrecómo especificar roles personalizados para un objeto EmrCluster, consulte Especificar roles de IAMpersonalizados (p. 245).

Asignación de una política administrada conPassRole a roles predefinidos de IAM

Todos los usuarios de AWS Data Pipeline de su cuenta deben tener permisos"Action":"iam:PassRole" para los roles predefinidos DataPipelineDefaultRole yDataPipelineDefaultResourceRole, o para cualquier otro rol personalizado que utilice para obtener accesoa AWS Data Pipeline.

Para mayor comodidad, puede crear un grupo de usuarios para esos usuarios y asociarle una políticaadministrada, AWSDataPipeline_FullAccess. Esta política administrada permite que los usuarios tenganpermisos "Action":"iam:PassRole" para los roles que se utilizan con AWS Data Pipeline.

En esta tarea, debe crear un grupo de usuarios y, a continuación, asociarle una política administradaAWSDataPipeline_FullAcces.

Para crear un grupo de usuarios DataPipelineDevelopers y asociar la políticaAWSDataPipeline_FullAccess

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, seleccione Groups, Create New Group.3. En Group Name, escriba el nombre del grupo, DataPipelineDevelopers. Seleccione Next Step.

Versión de API 2012-10-2916

Page 24: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAsignación de una política insertada conPassRole a roles personalizados de IAM

4. En la lista de políticas, seleccione la política administrada AWSDataPipeline_FullAccess. SeleccioneNext Step.

5. Elija Create Group.6. Añada usuarios al grupo. Elija Groups y, a continuación, elija el grupo DataPipelineDevelopers.

Elija la pestaña Users y, a continuación, elija Add Users to Group. Seleccione los usuarios que deseaagregar y, a continuación, elija Add Users to Group.

Asignación de una política insertada con PassRolea roles personalizados de IAM

En lugar de utilizar la política administrada AWSDataPipeline_FullAccess con dos roles predefinidos paraAWS Data Pipeline, puede crear dos tipos de roles personalizados para AWS Data Pipeline y asociar acada uno de ellos una política insertada que contenga "Action":"iam:PassRole".

Cree estos dos tipos de roles personalizados:

• Un rol personalizado usado para lanzar clústeres de Amazon EMR mediante AWS Data Pipeline. Esterol puede ser muy similar al rol predefinido DataPipelineDefaultRole o puede tener menos permisos queel rol predefinido. Sin embargo, este rol personalizado debe tener la relación de confianza con los dosservicios que utiliza, Amazon EMR y AWS Data Pipeline, tal y como se indica a continuación:

"Effect": "Allow", "Principal": { "Service": "datapipeline.amazonaws.com" "Service": "elasticmapreduce.amazonaws.com" }

• Un rol personalizado usado para lanzar clústeres de Amazon EC2 mediante AWS Data Pipeline. Esterol puede ser muy similar al rol predefinido DataPipelineDefaultResourceRole o puede tener menospermisos que el rol predefinido. Sin embargo, este rol personalizado debe tener la relación de confianzacon el servicio Amazon EC2, tal y como se indica a continuación:

"Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }

Para obtener más información, consulte Edición de la relación de confianza para un rol existente.

Para obtener más información sobre cómo especificar roles personalizados para un objeto EmrCluster,consulte Especificar roles de IAM personalizados (p. 245).

Si desea crear su propia política insertada para cualquier rol CUSTOM_ROLE que tenga acceso a AWSData Pipeline, utilice este ejemplo de política insertada como referencia. "Action":"iam:PassRole" seespecifica para CUSTOM_ROLE.

{ "Version": "2012-10-17", "Statement": [ { "Action": [

Versión de API 2012-10-2917

Page 25: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAsignación de una política insertada conPassRole a roles personalizados de IAM

"s3:List*", "dynamodb:DescribeTable", ... ... ], "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/CUSTOM_ROLE" ] }}

Versión de API 2012-10-2918

Page 26: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCrear la canalización

Introducción a AWS Data PipelineAWS Data Pipeline le ayuda a secuenciar, programar, ejecutar y administrar cargas de trabajo deprocesamiento de datos recurrentes de forma fiable y rentable. Este servicio simplifica el diseño deactividades de extracción, transformación y carga (ETL) mediante datos estructurados y sin estructurar,tanto local como en la nube, según su lógica empresarial.

Para usar AWS Data Pipeline, cree una definición de canalización que especifique la lógica de negociopara su procesamiento de datos. Una definición de la canalización típica consta de actividades (p. 10) quedefinen el trabajo que se realizará, nodos de datos (p. 10) que definen la ubicación y el tipo de datos deentrada y salida y una programación (p. 22) que determina cuándo se realizan las actividades.

En este tutorial, ejecuta un script de comandos de shell que cuenta el número de solicitudes GET enregistros del servidor web Apache. Esta canalización se ejecuta cada 15 minutos durante una hora yescribe la salida a Amazon S3 en cada iteración.

Requisitos previos

Antes de comenzar, complete las tareas de Configuración de AWS Data Pipeline (p. 15).

Objetos de canalización

La canalización usa los siguientes objetos:

ShellCommandActivity (p. 224)

Lee el archivo de registro de entrada y cuenta el número de errores.S3DataNode (p. 164) (input)

El bucket de S3 que contiene el archivo de registro de entrada.S3DataNode (p. 164) (salida)

El bucket de S3 para la salida.Ec2Resource (p. 235)

El recurso informático que AWS Data Pipeline usa para realizar la actividad.

Tenga en cuenta que si tiene una gran cantidad de datos de los archivos de registro, puede configurarsu canalización para usar un clúster de EMR a fin de procesar los archivos en lugar de una instanciaEC2.

Programación (p. 297)

Define que la actividad se realiza cada 15 minutos durante una hora.

Tareas• Crear la canalización (p. 19)• Monitorizar la canalización en ejecución (p. 20)• Ver la salida (p. 21)• Eliminar la canalización (p. 21)

Crear la canalizaciónLa forma más rápida de comenzar a trabajar con AWS Data Pipeline es usar una definición de lacanalización denominada plantilla.

Versión de API 2012-10-2919

Page 27: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMonitorizar la canalización en ejecución

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. En la barra de navegación, seleccione una región. Se puede seleccionar cualquier región disponible,

independientemente de su ubicación. Muchos recursos de AWS son específicos de cada región, peroAWS Data Pipeline le permite usar recursos que se encuentran en una región diferente a la de lacanalización.

3. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

4. En Name (Nombre), escriba el nombre de la canalización.5. (Opcional) En Description (Descripción), escriba la descripción de la canalización.6. Para Source, seleccione Build using a template y, a continuación, seleccione la siguiente plantilla:

Getting Started using ShellCommandActivity.7. En la sección Parameters, que se abrió al seleccionar la plantilla, deje S3 input folder y Shell

command to run con sus valores predeterminados. Haga clic en el icono de la carpeta junto a S3output folder, seleccione uno de los buckets o carpetas y, a continuación, haga clic en Select.

8. En Schedule, deje los valores predeterminados. Al activar la canalización, empieza la ejecución de lacanalización y, después, continúa cada 15 minutos durante una hora.

Si lo prefiere, puede seleccionar Run once on pipeline activation en su lugar.9. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Si lo prefiere, puede deshabilitar el registro.10. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).11. Haga clic en Activate (Activar).

Si lo prefiere, puede elegir Edit in Architect (Editar en Architect) para modificar esta canalización. Porejemplo, puede agregar condiciones previas.

Monitorizar la canalización en ejecuciónDespués de activar la canalización, se abrirá la página Execution details, donde puede monitorizar elprogreso de la canalización.

Para monitorizar el progreso de la canalización

1. Haga clic en Update o pulse F5 para actualizar el estado mostrado.

Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) y End (in UTC)abarquen el principio y el final programados de la canalización y, a continuación, haga clic enUpdate.

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas.

Versión de API 2012-10-2920

Page 28: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVer la salida

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

Ver la salidaAbra la consola de Amazon S3 y vaya al bucket. Si ejecutó su canalización cada 15 minutos durante unahora, verá cuatro subcarpetas con marca de tiempo. Cada subcarpeta contiene la salida en un archivodenominado output.txt. Dado que ejecutamos el script en el mismo archivo de entrada cada vez, losarchivos de salida son idénticos.

Eliminar la canalizaciónPara que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Cuando ya no necesite la salida de este tutorial, elimine las carpetas de salida del bucket de Amazon S3.

Versión de API 2012-10-2921

Page 29: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresProgramación de canalizaciones

Trabajar con canalizacionesPuede administrar, crear y modificar canalizaciones con la consola de AWS Data Pipeline, con un SDK deAWS o con la interfaz de línea de comandos (CLI). En las secciones siguientes, se presentan conceptosfundamentales de AWS Data Pipeline y se muestra cómo trabajar con canalizaciones.

Important

Antes de comenzar, consulte Configuración de AWS Data Pipeline (p. 15).

Contenido• Programación de canalizaciones (p. 22)• Creación de una canalización (p. 25)• Visualización de las canalizaciones (p. 45)• Edición de la canalización (p. 52)• Clonación de la canalización (p. 53)• Etiquetado de la canalización (p. 54)• Desactivación de la canalización (p. 55)• Eliminación de la canalización (p. 56)• Datos y tablas transitorios con actividades de canalización (p. 56)• Lanzamiento de recursos para su canalización en una VPC (p. 60)• Uso de instancias de spot de Amazon EC2 en una canalización (p. 64)• Uso de una canalización con recursos en varias regiones (p. 64)• Errores en cascada y repeticiones de ejecuciones (p. 66)• Sintaxis de los archivos de definición de la canalización (p. 67)• Uso de la API (p. 69)

Programación de canalizacionesEn AWS Data Pipeline, una programación define en qué momentos debe ejecutarse un eventoprogramado, por ejemplo, cuándo se ejecuta una actividad. AWS Data Pipeline expone esta funcionalidada través del componente de canalización Programación (p. 297).

Creación de una programación mediante la consolaLa consola de AWS Data Pipeline permite programar y crear canalizaciones. Esto es útil para probar ycrear prototipos de canalizaciones antes de establecerlas para cargas de trabajo de producción.

La sección Create Pipeline tiene los siguientes campos:

Campo Acción

Nombre Introduzca un nombre para la canalización.

Descripción (Opcional) Escriba una descripción para la canalización.

Versión de API 2012-10-2922

Page 30: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresBajo demanda

La sección Schedule tiene los siguientes campos:

Campo Acción

Ejecute • Elija on activation para ejecutar la canalización como una canalización bajodemanda. Esto crea una canalización que se puede ejecutar cuando se activa.

Run every Introduzca un período para la ejecución de cada canalización.

Starting Introduzca una hora y una fecha para que comience la canalización. La fecha yla hora de inicio también se pueden seleccionar automáticamente al activar lacanalización.

Ending Introduzca una hora y una fecha para que finalice la canalización. Si seleccionanever, la canalización continúa ejecutándose de forma indefinida.

La sección IAM Roles & Permissions tiene las siguientes opciones:

Campo Acción

Default(Predeterminado)

Elija esta opción para que AWS Data Pipeline determine los roles por usted.

Custom(Personalizado)

Elija esta opción para designar sus propios roles de IAM. Si selecciona esta opción,puede elegir los siguientes roles:

• Rol de canalización: el rol que determina qué puede hacer AWS Data Pipelinecon los recursos de la cuenta.

• Rol de instancia EC2: el rol que controla qué pueden hacer las aplicaciones deAmazon EC2 con los recursos de la cuenta.

Bajo demandaNote

Encontrará el objeto Default en la página Architect de la sección Other.

AWS Data Pipeline ofrece un tipo de programación bajo demanda que ofrece la posibilidad de ejecutar unacanalización al activarla. La canalización se ejecuta una vez en respuesta a una solicitud de activación.

Las canalizaciones bajo demanda solo requieren que el tipo de programación se establezca en ondemanden el objeto predeterminado. Las canalizaciones bajo demanda requieren que no se utilice un objetode programación y no permiten realizar varias programaciones. El número máximo de ejecucionessimultáneas de una canalización bajo demanda se puede configurar con el slot maxActiveInstances delobjeto Default. El valor predeterminado para este slot es de 1 para las canalizaciones bajo demanda ypuede tener un valor máximo de 5.

El siguiente objeto Default utiliza programación bajo demanda:

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand"}

Versión de API 2012-10-2923

Page 31: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEstilo serie temporal frente a estilo cron

Estilo serie temporal frente a estilo cronAWS Data Pipeline ofrece dos tipos de programación de componentes periódicos de canalización:programación de estilo de serie temporal y programación de estilo cron.

El tipo de programación permite especificar si las instancias de componentes de la canalización debencomenzar al principio del intervalo (también conocido como el período) o al final del intervalo.

La programación de estilo de serie temporal significa que las instancias se programan al final de cadaintervalo y la programación de estilo cron significa que las instancias se programan al principio de cadaintervalo. Por ejemplo, utilizando la programación de estilo de serie temporal, si la hora de inicio es 22:00UTC y el intervalo/período se ajusta en 30 minutos, la primera ejecución de la instancia de componentede la canalización comienza a las 22:30 UTC, no a las 22:00 UTC. Si desea que la instancia se ejecute alprincipio del período/intervalo, tal como a las 22:00 UTC, utilice la programación de estilo cron en su lugar.

Note

El intervalo de programación mínimo es de 15 minutos.

Note

Encontrará el objeto Default en la página Architect de la sección Other.

A continuación se presenta un objeto Default para canalizaciones de estilo cron:

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "cron"}

A continuación se presenta un objeto Default para canalizaciones de estilo serie temporal:

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "timeseries"}

Tipo de programación de omisión de recursosAWS Data Pipeline crea instancias de nodos de datos y actividad al principio o al final del intervalo deprogramación en función del ajuste del tipo de programación de la canalización (programación de estilode serie temporal o programación de estilo cron). Sin embargo, AWS Data Pipeline crea instancias deResource, tales como EC2Resource y EmrCluster, al principio del intervalo, independientemente deltipo de programación de canalización y las establece en el estado WAITING_ON_DEPENDENCIES. Lasinstancias de los recursos subyacentes reales no se crean hasta que se programa una actividad asociada.

Tareas de reposiciónCuando se define una canalización con una hora de inicio programada para el pasado, AWS Data Pipelinerepone las tareas en la canalización. En esta situación, AWS Data Pipeline ejecuta inmediatamentemuchas instancias de las tareas en la canalización para alcanzar el número de veces que esas tareastendrían que haberse ejecutado entre la hora de comienzo programada y la hora actual. Cuando estosucede, verá que la ejecución de instancias de componentes de la canalización tiene lugar de forma

Versión de API 2012-10-2924

Page 32: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEficiencia máximo de recursos

mediante el uso de programaciones

consecutiva con una frecuencia mayor que el valor del período especificado al crear la canalización. AWSData Pipeline no devuelve la canalización al período definido hasta que alcanza el número de ejecucionespasadas.

Para minimizar las reposiciones en las fases de desarrollo y de pruebas, utilice un intervalo relativamentecorto para startDateTime..endDateTime.

AWS Data Pipeline intenta evitar reposiciones accidentales mediante el bloqueo de la activación de lacanalización si la antigüedad del componente de canalización scheduledStartTime es superior a un día.

Para que la canalización se lance de forma inmediata, establezca Start Date Time (Fecha y hora deinicio) en la fecha del día anterior. AWS Data Pipeline comenzará a lanzar las ejecuciones "atrasadas"inmediatamente, en un intento de solucionar lo que percibe como trabajo pendiente. Esta reposiciónsignifica que no es necesario esperar una hora para ver cómo AWS Data Pipeline lanza su primer clúster.

Eficiencia máximo de recursos mediante el uso deprogramacionesAWS Data Pipeline admite el uso de diferentes períodos de programación para un recurso y una actividadasociada con objeto de maximizar la eficacia de los recursos.

Por ejemplo, considere una actividad con un período de programación de 20 minutos. Si el recurso dela actividad también se hubiera configurado para un período de programación de 20 minutos, AWS DataPipeline crearía tres instancias del recurso en una hora y consumiría el triple de los recursos necesariospara la tarea.

En su lugar, AWS Data Pipeline permite configurar el recurso con una programación diferente; porejemplo, una programación de una hora. Cuando se empareja con una actividad en una programación de20 minutos, AWS Data Pipeline crea solamente un recurso para prestar servicio a las tres instancias de laactividad en una hora, lo que maximiza el uso del recurso.

Protección contra la sobrescritura de datosConsidere un trabajo de importación recurrente con AWS Data Pipeline que se ejecuta varias veces al díay dirige la salida a la misma ubicación de Amazon S3 en cada ejecución.

Podría sobrescribir accidentalmente los datos de salida, a menos que utilizara una expresión basada enla fecha. Una expresión basada en la fecha, tal como s3://myBucket/#{@scheduledStartTime}para su S3Output.DirectoryPath, puede especificar una ruta de directorio independiente para cadaperíodo. Para obtener más información, consulte Programación (p. 297).

Creación de una canalizaciónAWS Data Pipeline ofrece varias maneras de crear canalizaciones:

• Utilice la consola con una plantilla proporcionada para su comodidad. Para obtener más información,consulte Creación de canalizaciones con plantillas de consola (p. 26).

• Utilice la consola para agregar objetos de canalización individuales manualmente. Para obtener másinformación, consulte Creación de canalizaciones utilizando manualmente la consola (p. 39).

• Utilice la AWS Command Line Interface (CLI) con un archivo de definición de canalización en formatoJSON.

• Utilice un SDK de AWS con una API específica del idioma. Para obtener más información, consulte Usode la API (p. 69).

Versión de API 2012-10-2925

Page 33: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Creación de canalizaciones con plantillas de consolaLa consola de AWS Data Pipeline proporciona varias definiciones de canalización preconfiguradas,conocidas como plantillas. Puede utilizar plantillas para comenzar a utilizar AWS Data Pipeline conrapidez. También puede crear plantillas con valores parametrizados. Esto permite especificar objetos decanalización con parámetros y atributos predefinidos. A continuación, utilice una herramienta para crearvalores para una finalidad específica dentro de la canalización. Esto permite reutilizar definiciones decanalización con diferentes valores. Para obtener más información, consulte Creación de una canalizaciónmediante plantillas parametrizadas (p. 36).

Inicializar, crear y programar una canalizaciónLa página Create Pipeline (Crear Canalización) de la consola de AWS Data Pipeline permite crear yprogramar una canalización fácilmente.

Para crear y programar una canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. Haga clic en Get started now o Create Pipeline.3. Introduzca un nombre de canalización y una descripción opcional para la canalización.4. Elija Build using Architect para crear y editar nodos de manera interactiva en una definición de la

canalización o Build using a template para seleccionar una plantilla. Para obtener más informaciónacerca de las plantillas, consulte Elija una plantilla (p. 26).

Si decide utilizar una plantilla, la consola mostrará un formulario específico de esa plantilla bajoParameters. Complete el formulario de la manera adecuada.

5. Elija si desea ejecutar la canalización una vez en la activación o según una programación.

Si decide ejecutar la canalización según una programación:

a. Para Run every, elija un período para la canalización. Las horas de inicio y finalización debendefinir un intervalo suficientemente largo como para acomodar este período.

b. Elija una hora para Starting. Si elige on pipeline activation, la canalización utilizará la hora deactivación actual.

c. Elija una hora para Ending. Si elige never, la canalización se ejecutará indefinidamente.6. Seleccione una opción en IAM Roles. Si selecciona Default (Predeterminados), AWS Data Pipeline

asignará sus propios roles predeterminados. Si lo desea, puede seleccionar Custom para elegir otrosroles disponibles para su cuenta.

7. Haga clic en Edit in Architect o Activate.

Elija una plantillaAl elegir una plantilla, la página de creación de la canalización se rellena con los parámetros especificadosen la definición de la canalización, tales como rutas personalizadas de directorios de Amazon S3, nombresde pares de claves de Amazon EC2, cadenas de conexión a base de datos, etc. Puede proporcionar estainformación al crear y al activar la canalización. Las siguientes plantillas disponibles en la consola tambiénse encuentran disponibles para su descarga desde el bucket de Amazon S3: s3://datapipeline-us-east-1/templates/.

Plantillas

• Introducción al uso de ShellCommandActivity (p. 27)• Run AWS CLI Command (p. 27)• Exportación de tabla de DynamoDB a S3 (p. 27)

Versión de API 2012-10-2926

Page 34: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

• Importación de datos de copia de seguridad de DynamoDB desde S3 (p. 27)• Ejecución de trabajos en un clúster de Amazon EMR (p. 28)• Copia completa de una tabla de MySQL de Amazon RDS a Amazon S3 (p. 28)• Copia incremental de una tabla de MySQL de Amazon RDS en Amazon S3 (p. 28)• Carga de datos de S3 en una tabla de MySQL de Amazon RDS (p. 29)• Copia completa de una tabla de MySQL de Amazon RDS a Amazon Redshift (p. 34)• Copia incremental de una tabla de MySQL de Amazon RDS en Amazon Redshift (p. 35)• Carga de datos de Amazon S3 en Amazon Redshift (p. 35)

Introducción al uso de ShellCommandActivityLa plantilla Getting Started using ShellCommandActivity ejecuta un script de plantilla de comandos paracontar el número de solicitudes GET en un archivo de registro. La salida se escribe en una ubicación deAmazon S3 con marca de tiempo en cada ejecución programada de la canalización.

La plantilla usa los siguientes objetos de canalización:

• ShellCommandActivity• S3InputNode• S3OutputNode• Ec2Resource

Run AWS CLI CommandEsta plantilla ejecuta un comando de la AWS CLI especificado por el usuario a intervalos programados.

Exportación de tabla de DynamoDB a S3La plantilla Export DynamoDB table to S3 programa un clúster de Amazon EMR para exportar datos deuna tabla de DynamoDB a un bucket de Amazon S3. Esta plantilla utiliza un clúster de Amazon EMRde tamaño proporcional al valor del rendimiento disponible para la tabla de DynamoDB. Aunque puedeampliar el número de IOP en una tabla, puede incurrir en costos adicionales durante la importación y laexportación. Anteriormente, la exportación utilizaba una HiveActivity, pero ahora utiliza MapReduce nativo.

La plantilla usa los siguientes objetos de canalización:

• EmrActivity (p. 180)• EmrCluster (p. 242)• DynamoDBDataNode (p. 149)• S3DataNode (p. 164)

Para ver un tutorial, consulte Importar y exportar datos de DynamoDB mediante AWS DataPipeline (p. 92).

Importación de datos de copia de seguridad de DynamoDBdesde S3La plantilla Import DynamoDB backup data from S3 programa un clúster de Amazon EMR para cargaruna copia de seguridad de DynamoDB previamente creada en Amazon S3 en una tabla de DynamoDB.Los elementos existentes en la tabla de DynamoDB se actualizan con los datos de la copia de seguridady se añaden elementos nuevos a la tabla. Esta plantilla utiliza un clúster de Amazon EMR de tamaño

Versión de API 2012-10-2927

Page 35: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

proporcional al valor del rendimiento disponible para la tabla de DynamoDB. Aunque puede ampliar elnúmero de IOP en una tabla, puede incurrir en costos adicionales durante la importación y la exportación.Anteriormente, la importación utilizaba una HiveActivity, pero ahora utiliza MapReduce nativo.

La plantilla usa los siguientes objetos de canalización:

• EmrActivity (p. 180)• EmrCluster (p. 242)• DynamoDBDataNode (p. 149)• S3DataNode (p. 164)• S3PrefixNotEmpty (p. 274)

Para ver un tutorial, consulte Importar y exportar datos de DynamoDB mediante AWS DataPipeline (p. 92).

Ejecución de trabajos en un clúster de Amazon EMRLa plantilla Run Job on an Elastic MapReduce Cluster lanza un clúster de Amazon EMR en función de losparámetros proporcionados y comienza a ejecutar pasos en función de la programación especificada. Unavez que el trabajo se completa, el clúster de EMR termina. Se puede especificar acciones de arranqueopcionales para instalar software adicional y para cambiar la configuración de la aplicación en el clúster.

La plantilla usa los siguientes objetos de canalización:

• EmrActivity (p. 180)• EmrCluster (p. 242)

Copia completa de una tabla de MySQL de Amazon RDS aAmazon S3La plantilla Full Copy of RDS MySQL Table to S3 copia una tabla de MySQL de Amazon RDS completa yalmacena la salida en una ubicación de Amazon S3. La salida se almacena como un archivo CSV en unasubcarpeta con marca de tiempo bajo la ubicación de Amazon S3 especificada.

La plantilla usa los siguientes objetos de canalización:

• CopyActivity (p. 174)• Ec2Resource (p. 235)• SqlDataNode (p. 169)• S3DataNode (p. 164)

Copia incremental de una tabla de MySQL de Amazon RDS enAmazon S3La plantilla Incremental Copy of RDS MySQL Table to S3 realiza una copia incremental de los datos desdeuna tabla de MySQL de Amazon RDS y almacena la salida en una ubicación de Amazon S3. La tabla deMySQL de Amazon RDS debe tener una columna Last Modified.

Esta plantilla copia los cambios que se realicen en la tabla entre intervalos programados a partir de la horade comienzo programada. El tipo de programación es series temporales (p. 24), de modo que si seha programado una copia para una hora determinada, AWS Data Pipeline copia las filas que tengan unamarca temporal Last Modified dentro de la misma hora. Las eliminaciones físicas realizadas en la tabla no

Versión de API 2012-10-2928

Page 36: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

se copian. La salida se escribe en una subcarpeta con marca de tiempo bajo la ubicación de Amazon S3en cada ejecución programada.

La plantilla usa los siguientes objetos de canalización:

• CopyActivity (p. 174)• Ec2Resource (p. 235)• SqlDataNode (p. 169)• S3DataNode (p. 164)

Carga de datos de S3 en una tabla de MySQL de Amazon RDSLa plantilla Load S3 Data into RDS MySQL Table programa una instancia de Amazon EC2 para copiarel archivo CSV desde la ruta de archivo de Amazon S3 que se especifica a continuación en una tabla deMySQL de Amazon RDS. El archivo CSV no debe tener un encabezado de fila. La plantilla actualiza lasentradas existentes en la tabla de MySQL de Amazon RDS con las de los datos de Amazon S3 y agreganuevas entradas a partir de los datos de Amazon S3 a la tabla de MySQL de Amazon RDS. Puede cargarlos datos en una tabla existente o proporcionar una consulta SQL para crear una nueva tabla.

La plantilla usa los siguientes objetos de canalización:

• CopyActivity (p. 174)• Ec2Resource (p. 235)• SqlDataNode (p. 169)• S3DataNode (p. 164)

Plantillas de Amazon RDS a Amazon RedshiftLas dos plantillas siguientes copian tablas de MySQL de Amazon RDS en Amazon Redshift con un scriptde traducción, que crea una tabla de Amazon Redshift utilizando el esquema de tabla de origen, con lassiguientes salvedades:

• Si no se especifica una clave de distribución, la primera clave principal de la tabla de Amazon RDS seestablece como clave de distribución.

• No puede omitir una columna que esté presente en MySQL de Amazon RDS cuando esté haciendo unacopia en Amazon Redshift.

• (Opcional) Puede proporcionar un mapeo de tipo de datos de columna MySQL de Amazon RDS aAmazon Redshift como uno de los parámetros de la plantilla. Si se especifica esto, el script lo utiliza paracrear la tabla de Amazon Redshift.

Si se está utilizando el modo de inserción Overwrite_Existing de Amazon Redshift:

• Si no se proporciona una clave de distribución, se utilizará una clave principal de la tabla de MySQL deAmazon RDS.

• Si hay claves principales compuestas en la tabla, la primera se utiliza como clave de distribución si nose ha proporcionado la clave de distribución. Solo la primera clave compuesta se establece como claveprincipal en la tabla de Amazon Redshift.

• Si no se proporciona una clave de distribución y no hay ninguna clave principal en la tabla de MySQL deAmazon RDS, la operación de copia producirá un error.

Para obtener más información acerca de Amazon Redshift, consulte los siguientes temas:

• Clúster de Amazon Redshift

Versión de API 2012-10-2929

Page 37: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

• COPY de Amazon Redshift• Estilos de distribución y ejemplos de DISTKEY• Claves de ordenación

En la tabla siguiente se describe cómo el script traduce los tipos de datos:

Traducciones de tipos de datos entre MySQL y Amazon Redshift

Tipo de datos de MySQL Tipo de datos de AmazonRedshift

Notas

TINYINT,

TINYINT (tamaño)

SMALLINT MySQL: -128 a 127. Se puedeespecificar el número máximo dedígitos entre paréntesis.

Amazon Redshift: INT2. Enterode dos bytes con signo

TINYINT UNSIGNED,

TINYINT (tamaño) UNSIGNED

SMALLINT MySQL: 0 a 255 UNSIGNED.Se puede especificar el númeromáximo de dígitos entreparéntesis.

Amazon Redshift: INT2. Enterode dos bytes con signo

SMALLINT,

SMALLINT(tamaño)

SMALLINT MySQL: -32768 a 32767normal. Se puede especificar elnúmero máximo de dígitos entreparéntesis.

Amazon Redshift: INT2. Enterode dos bytes con signo

SMALLINT UNSIGNED,

SMALLINT(tamaño) UNSIGNED,

INTEGER MySQL: 0 a 65535 UNSIGNED*.Se puede especificar el númeromáximo de dígitos entreparéntesis

Amazon Redshift: INT4. Enterode cuatro bytes con signo

MEDIUMINT,

MEDIUMINT(tamaño)

INTEGER MySQL: 388608 a 8388607. Sepuede especificar el númeromáximo de dígitos entreparéntesis

Amazon Redshift: INT4. Enterode cuatro bytes con signo

MEDIUMINT UNSIGNED,

MEDIUMINT(tamaño)

UNSIGNED

INTEGER MySQL: 0 a 16777215. Se puedeespecificar el número máximo dedígitos entre paréntesis

Amazon Redshift: INT4. Enterode cuatro bytes con signo

INT, INTEGER MySQL: 147483648 a2147483647

Versión de API 2012-10-2930

Page 38: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Tipo de datos de MySQL Tipo de datos de AmazonRedshift

Notas

INT(tamaño) Amazon Redshift: INT4. Enterode cuatro bytes con signo

INT UNSIGNED,

INT(tamaño) UNSIGNED

BIGINT MySQL: 0 a 4294967295

Amazon Redshift: INT8. Enterode ocho bytes con signo

BIGINT

BIGINT(tamaño)

BIGINT Amazon Redshift: INT8. Enterode ocho bytes con signo

BIGINT UNSIGNED

BIGINT(tamaño) UNSIGNED

VARCHAR(20*4) MySQL: 0 a18446744073709551615

Amazon Redshift: sin equivalentenativo, se utiliza una matriz dechar.

FLOAT

FLOAT(tamaño,d)

FLOAT(tamaño,d) UNSIGNED

REAL Se puede especificar el númeromáximo de dígitos en elparámetro de tamaño. El númeromáximo de dígitos a la derechadel punto decimal se especificaen el parámetro d.

Amazon Redshift: FLOAT4

DOUBLE(tamaño,d) DOUBLE PRECISION Se puede especificar el númeromáximo de dígitos en elparámetro de tamaño. El númeromáximo de dígitos a la derechadel punto decimal se especificaen el parámetro d.

Amazon Redshift: FLOAT8

DECIMAL(tamaño,d) DECIMAL(tamaño,d) Un valor DOUBLE almacenadocomo una cadena, que permiteun separador decimal fijo. Sepuede especificar el númeromáximo de dígitos en elparámetro de tamaño. El númeromáximo de dígitos a la derechadel punto decimal se especificaen el parámetro d.

Amazon Redshift: sin equivalentenativo.

Versión de API 2012-10-2931

Page 39: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Tipo de datos de MySQL Tipo de datos de AmazonRedshift

Notas

CHAR(tamaño) VARCHAR(tamaño*4) Contiene una cadena de longitudfija, que puede contener letras,números y caracteres especiales.El tamaño fijo se especifica comoel parámetro entre paréntesis.Puede almacenar hasta 255caracteres.

Se rellena por la derecha conespacios.

Amazon Redshift: el tipo de datosCHAR no admite caracteresmultibyte, así que se utilizaVARCHAR.

El número máximo de bytespor carácter es de 4, segúnRFC3629, lo que limita la tablade caracteres para U+10FFFF.

VARCHAR(tamaño) VARCHAR(tamaño*4) Puede almacenar hasta 255caracteres.

VARCHAR no admite lossiguientes puntos de códigoUTF-8 no válidos: 0xD800 -0xDFFF, (secuencias de bytes:ED A0 80 - ED BF BF), 0xFDD0- 0xFDEF, 0xFFFE y 0xFFFF,(secuencias de bytes: EF B7 90- EF B7 AF, EF BF BE y EF BFBF)

TINYTEXT VARCHAR(255*4) Contiene una cadena conuna longitud máxima de 255caracteres

TEXT VARCHAR (máx.) Contiene una cadena con unalongitud máxima de 65 535caracteres.

MEDIUMTEXT VARCHAR (máx.) De 0 a 16 777 215 caracteres

LONGTEXT VARCHAR (máx.) De 0 a 4 294 967 295 caracteres

BOOLEAN

BOOL

TINYINT(1)

BOOLEAN MySQL: estos tipos sonsinónimos de TINYINT (1). Unvalor de cero se considera falso.Los valores distintos de cero seconsideran verdadero.

BINARY[(M)] varchar (255) M es de 0 a 255 bytes, FIXED

VARBINARY(M) VARCHAR (máx.) De 0 a 65 535 bytes

Versión de API 2012-10-2932

Page 40: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Tipo de datos de MySQL Tipo de datos de AmazonRedshift

Notas

TINYBLOB VARCHAR (255) De 0 a 255 bytes

BLOB VARCHAR (máx.) De 0 a 65 535 bytes

MEDIUMBLOB VARCHAR (máx.) De 0 a 16 777 215 bytes

LONGBLOB VARCHAR (máx.) De 0 a 4 294 967 295 bytes

ENUM VARCHAR(255*2) El límite no se aplica a la longitudde la cadena enum literal, sino adefinición de la tabla del númerode valores enum.

SET VARCHAR(255*2) Igual que enum.

FECHA FECHA (AAAA-MM-DD)

"1000-01-01" a "9999-12-31"

TIME VARCHAR(10*4) (hh:mm:ss)

"-838:59:59" a "838:59:59"

DATETIME TIMESTAMP (AAAA-MM-DD hh:mm:ss)

1000-01-01 00:00:00" a"9999-12-31 23:59:59"

TIMESTAMP TIMESTAMP (AAAAMMDDhhmmss)

19700101000000 a 2037+

YEAR VARCHAR(4*4) (YYYY)

De 1900 a 2155

column SERIAL Generación de ID/Este atributono es necesario para un datawarehouse OLAP, puesto queesta columna se copia.

La palabra clave SERIAL no seagrega al traducir.

SERIAL es en realidaduna entidad denominadaSEQUENCE. Existe de formaindependiente del resto de latabla.

column GENERATED BYDEFAULT

equivalente a:

CREATE SEQUENCE name;CREATE TABLE table ( columnINTEGER NOT NULL DEFAULTnextval(name) );

Versión de API 2012-10-2933

Page 41: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Tipo de datos de MySQL Tipo de datos de AmazonRedshift

Notas

column BIGINT UNSIGNEDNOT NULL AUTO_INCREMENTUNIQUE

Generación de ID/Este atributono es necesario para un datawarehouse OLAP, puesto queesta columna se copia.

Por lo tanto, la palabra claveSERIAL no se agrega al traducir.

SERIAL es en realidaduna entidad denominadaSEQUENCE. Existe de formaindependiente del resto de latabla.

column GENERATED BYDEFAULT

equivalente a:

CREATE SEQUENCE name;CREATE TABLE table ( columnINTEGER NOT NULL DEFAULTnextval(name) );

ZEROFILL La palabra clave ZEROFILL nose agrega al traducir.

INT UNSIGNED ZEROFILL NOTNULL

ZEROFILL rellena el valorque se muestra del campocon ceros hasta el ancho devisualización especificado enla definición de columna. Losvalores cuya longitud supera lade la visualización no se truncan.Tenga en cuenta que el usode ZEROFILL también implicaUNSIGNED.

Copia completa de una tabla de MySQL de Amazon RDS aAmazon RedshiftLa plantilla Full copy of Amazon RDS MySQL table to Amazon Redshift copia toda la tabla de MySQL deAmazon RDS en una tabla de Amazon Redshift almacenando los datos transitorios en una carpeta deAmazon S3. La carpeta transitoria de Amazon S3 debe estar en la misma región que el clúster de AmazonRedshift. Se creará una tabla de Amazon Redshift con el mismo esquema que la tabla de MySQL deAmazon RDS de origen si todavía no existe. Proporcione cualquier anulación de tipo de datos de columnaMySQL de Amazon RDS a Amazon Redshift que desee aplicar durante la creación de la tabla de AmazonRedshift.

La plantilla usa los siguientes objetos de canalización:

• CopyActivity (p. 174)• RedshiftCopyActivity (p. 215)• S3DataNode (p. 164)• SqlDataNode (p. 169)• RedshiftDataNode (p. 159)• RedshiftDatabase (p. 284)

Versión de API 2012-10-2934

Page 42: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Copia incremental de una tabla de MySQL de Amazon RDS enAmazon RedshiftLa plantilla Incremental copy of Amazon RDS MySQL table to Amazon Redshift copia datos de una tablade MySQL de Amazon RDS en una tabla de Amazon Redshift almacenando los datos transitorios en unacarpeta de Amazon S3.

La carpeta transitoria de Amazon S3 debe estar en la misma región que el clúster de Amazon Redshift.

AWS Data Pipeline utiliza un script de traducción para crear una tabla de Amazon Redshift con el mismoesquema que la tabla de MySQL de Amazon RDS de origen si todavía no existe. Debe proporcionarcualquier anulación de tipo de datos de columna MySQL de Amazon RDS a Amazon Redshift que deseeaplicar durante la creación de la tabla de Amazon Redshift.

Esta plantilla copia los cambios que se realicen en la tabla de MySQL de Amazon RDS entre intervalosprogramados a partir de la hora de comienzo programada. Las eliminaciones físicas realizadas en la tablade MySQL de Amazon RDS no se copian. Debe proporcionar el nombre de la columna que almacena elvalor de hora de la última modificación.

Al utilizar la plantilla predeterminada para crear canalizaciones para copia de Amazon RDS incremental, secrea una actividad con el nombre predeterminado RDSToS3CopyActivity. Puede cambiar el nombre.

La plantilla usa los siguientes objetos de canalización:

• CopyActivity (p. 174)• RedshiftCopyActivity (p. 215)• S3DataNode (p. 164)• SqlDataNode (p. 169)• RedshiftDataNode (p. 159)• RedshiftDatabase (p. 284)

Carga de datos de Amazon S3 en Amazon RedshiftLa plantilla Load data from S3 into Redshift copia datos de una carpeta de Amazon S3 en una tabla deAmazon Redshift. Puede cargar los datos en una tabla existente o proporcionar una consulta SQL paracrear la tabla.

Los datos se copian en función de las opciones COPY de Amazon Redshift. La tabla de Amazon Redshiftdebe tener el mismo esquema que los datos de Amazon S3. Para conocer las opciones de COPY, consulteCOPY en la Guía de desarrollador de base de datos de Amazon Redshift.

La plantilla usa los siguientes objetos de canalización:

• CopyActivity (p. 174)• RedshiftCopyActivity (p. 215)• S3DataNode (p. 164)• SqlDataNode (p. 169)• RedshiftDataNode (p. 159)• RedshiftDatabase (p. 284)• Ec2Resource (p. 235)

Versión de API 2012-10-2935

Page 43: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Creación de una canalización mediante plantillas parametrizadasPuede utilizar una plantilla parametrizada para personalizar una definición de canalización. Esto permitecrear una definición de canalización común pero proporcionar diferentes parámetros cuando se agregue ladefinición de canalización a una nueva canalización.

Contenido• Añadir myVariables a la definición de la canalización (p. 36)• Definir objetos de parámetro (p. 37)• Definir valores de parámetros (p. 38)• Envío de la definición de canalización (p. 38)

Añadir myVariables a la definición de la canalización

Al crear el archivo de definición de canalización, especifique las variables utilizando la siguiente sintaxis:#{myVariable}. Es necesario que la variable lleve el prefijo my. Por ejemplo, el siguiente archivo dedefinición de canalización, pipeline-definition.json, incluye las siguientes variables: myShellCmd,myS3InputLoc y myS3OutputLoc.

Note

Una definición de canalización tiene un límite superior de 50 parámetros.

{ "objects": [ { "id": "ShellCommandActivityObj", "input": { "ref": "S3InputLocation" }, "name": "ShellCommandActivityObj", "runsOn": { "ref": "EC2ResourceObj" }, "command": "#{myShellCmd}", "output": { "ref": "S3OutputLocation" }, "type": "ShellCommandActivity", "stage": "true" }, { "id": "Default", "scheduleType": "CRON", "failureAndRerunMode": "CASCADE", "schedule": { "ref": "Schedule_15mins" }, "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "S3InputLocation", "name": "S3InputLocation", "directoryPath": "#{myS3InputLoc}", "type": "S3DataNode" }, {

Versión de API 2012-10-2936

Page 44: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

"id": "S3OutputLocation", "name": "S3OutputLocation", "directoryPath": "#{myS3OutputLoc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "type": "S3DataNode" }, { "id": "Schedule_15mins", "occurrences": "4", "name": "Every 15 minutes", "startAt": "FIRST_ACTIVATION_DATE_TIME", "type": "Schedule", "period": "15 Minutes" }, { "terminateAfter": "20 Minutes", "id": "EC2ResourceObj", "name": "EC2ResourceObj", "instanceType":"t1.micro", "type": "Ec2Resource" } ]}

Definir objetos de parámetro

Puede crear un archivo independiente con objetos de parámetro que definen las variables de la definiciónde canalización. Por ejemplo, el siguiente archivo JSON parameters.json, contiene objetos deparámetro para las variables myShellCmd, myS3InputLoc y myS3OutputLoc del ejemplo anterior dedefinición de canalización.

{ "parameters": [ { "id": "myShellCmd", "description": "Shell command to run", "type": "String", "default": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt" }, { "id": "myS3InputLoc", "description": "S3 input location", "type": "AWS::S3::ObjectKey", "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data" }, { "id": "myS3OutputLoc", "description": "S3 output location", "type": "AWS::S3::ObjectKey" } ]}

Note

Podría agregar estos objetos directamente al archivo de definición de canalización en lugar deutilizar un archivo independiente.

En la siguiente tabla se describen los atributos para objetos de parámetro.

Versión de API 2012-10-2937

Page 45: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones con plantillas de consola

Atributos de parámetro

Atributo Tipo Descripción

id Cadena El identificador único delparámetro. Para enmascarar elvalor mientras se escribe o semuestra, agregue un asterisco("*") como prefijo. Por ejemplo,*myVariable—. Tenga encuenta que esto cifra el valorantes de que AWS Data Pipelinelo almacene.

description Cadena Una descripción del parámetro.

type String, Integer, Double oAWS::S3::ObjectKey

El tipo de parámetro que definela gama permitida de valores deentrada y reglas de validación. Eltipo predeterminado es String.

optional Booleano Indica si el parámetro esopcional u obligatorio. El valorpredeterminado es false.

allowedValues Lista de cadenas Enumera todos los valorespermitidos para el parámetro.

default Cadena El valor predeterminado para elparámetro. Si especifica un valorpara este parámetro utilizandovalores de parámetro, anula elvalor predeterminado.

isArray Booleano Indica si el parámetro es unamatriz.

Definir valores de parámetrosPuede crear un archivo independiente para definir las variables a través de valores de parámetros.Por ejemplo, el siguiente archivo JSON, file://values.json, contiene el valor de la variablemyS3OutputLoc del ejemplo de definición de canalización anterior.

{ "values": { "myS3OutputLoc": "myOutputLocation" }}

Envío de la definición de canalizaciónAl enviar la definición de la canalización, puede especificar parámetros, objetos de parámetro y valores deparámetro. Por ejemplo, puede utilizar el comando de put-pipeline-definition de la AWS CLI como se indicaa continuación:

$ aws datapipeline put-pipeline-definition --pipeline-id id --pipeline-definition file://pipeline-definition.json \

Versión de API 2012-10-2938

Page 46: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones

utilizando manualmente la consola

--parameter-objects file://parameters.json --parameter-values-uri file://values.json

Note

Una definición de canalización tiene un límite superior de 50 parámetros. El tamaño del archivopara parameter-values-uri tiene un límite superior de 15 kB.

Creación de canalizaciones utilizando manualmente laconsolaPuede crear una canalización utilizando el arquitecto de AWS Data Pipeline en lugar de comenzar conuna plantilla. En la canalización de ejemplo que crea en esta sección se muestra cómo utilizar el arquitectopara crear una canalización que copie los archivos de un bucket de Amazon S3 en otro en un programaque especifique.

Requisitos previos

Debe tener una ubicación de Amazon S3 donde se encuentre el archivo que copia y una ubicación deAmazon S3 de destino para copiar el archivo. Para obtener más información, consulte Crear un bucket enla Guía de introducción a Amazon Simple Storage Service.

Tareas• Crear la definición de canalización (p. 39)• Definición de una actividad mediante el arquitecto de AWS Data Pipeline (p. 40)• Validar y guardar la canalización (p. 44)• Activar la canalización (p. 44)

Crear la definición de canalizaciónComplete la pantalla de creación de canalización inicial para crear la definición de canalización.

Para crear la definición de la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. Haga clic en Get started now (si esta es su primera canalización) o Create new pipeline.3. En Name, introduzca un nombre para la canalización (por ejemplo, CopyMyS3Data).4. En Description, introduzca una descripción.5. Elija un Source (Origen) para la definición de canalización. Para esta explicación, elija Build using

architect (Compilar con el arquitecto) para usar el arquitecto de AWS Data Pipeline para diseñar lacanalización. Para obtener más información sobre la opción Build using a template (Compilar con unaplantilla), consulte Creación de canalizaciones con plantillas de consola (p. 26). Para obtener másinformación sobre la opción Import a definition (Importar una definición) para especificar un archivo dedefinición de canalización en Amazon S3 o localmente, consulte Sintaxis de los archivos de definiciónde la canalización (p. 67).

Versión de API 2012-10-2939

Page 47: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones

utilizando manualmente la consola

6. En Schedule (Programación), deje las selecciones predeterminadas.7. En Pipeline Configuration (Configuración de la canalización), deje activado Logging (Registro) e

introduzca una ubicación en Amazon S3 donde se guardan los archivos de registro.8. En Security/Access (Seguridad/acceso), deje Default (Predeterminado) seleccionado para IAM roles

(Roles de IAM).

O bien, si ha creado sus propios roles de IAM, seleccione Custom (Personalizado) y, a continuación,seleccione sus roles para Pipeline role (Rol de canalización) y EC2 instance role (Rol de instanciaEC2).

9. Si lo desea, en Tags (Etiquetas), escriba las claves y los valores de etiqueta como ayuda paraidentificar y categorizar la canalización.

10. Elija Edit in Architect (Editar en arquitecto).

Definición de una actividad mediante el arquitecto de AWS DataPipelineEl arquitecto de AWS Data Pipeline permite seleccionar actividades predefinidas para añadirlas a unacanalización. El arquitecto crea una representación gráfica del flujo de canalización a medida quese definen las actividades y los recursos asociados a una actividad, como los nodos de datos, lasprogramaciones, los recursos, etc. Una canalización de datos puede incluir varias actividades.

En el siguiente procedimiento, se añade y configura una CopyActivity que copia datos entre dosubicaciones de Amazon S3. Especifique una ubicación de Amazon S3 como el DataNode de origen desdeel que se va a copiar y otra ubicación de Amazon S3 como el DataNode de destino. Configure también laprogramación de la actividad que se ejecutará y el recurso de AWS que la actividad utiliza para ejecutarse.

Para definir una actividad de copia

1. Seleccione Add (Añadir), CopyActivity.

Versión de API 2012-10-2940

Page 48: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones

utilizando manualmente la consola

En Activities (Actividades), aparecen campos para configurar las propiedades y recursos de laactividad de copia.

2. En Activities (Actividades), configure el paso de acuerdo con las directrices siguientes:

Para este parámetro... Haga lo siguiente...

Nombre Escriba un nombre que le ayude a identificar laactividad, por ejemplo, copy-myS3-data.

Tipo De forma predeterminada, se configura comoCopyActivity en función de la selección anteriorpara añadir una CopyActivity. Deje el valorpredeterminado.

Entrada Seleccione Create new: DataNode (Crearnuevo: DataNode) de la lista. Se crea un nuevonodo de datos con el nombre predeterminadoDefaultDataNode1. Es el nodo de datos deorigen del que se copian los datos. Puedeconfigurar los detalles de este nodo de datosmás adelante. Si tiene un nodo de datosexistente, puede seleccionarlo.

Salida Seleccione Create new: DataNode (Crearnuevo: DataNode) de la lista. Se crea un nuevonodo de datos con el nombre predeterminadoDefaultDataNode2. Es el nodo de datos dedestino en el que se copian los datos. Puedeconfigurar los detalles de este nodo de datosmás adelante. Si tiene un nodo de datosexistente, puede seleccionarlo.

Programación Seleccione Create new: Schedule (Crear nuevo:Programación) de la lista. Se crea una nuevaprogramación con el nombre predeterminadoDefaultSchedule1. Esta programación determinacuándo se ejecuta la canalización. Puedeconfigurar los detalles de esta programación másadelante. Si tiene una programación existente,puede seleccionarla.

Add an optional field... (Añadir un campoopcional)

Seleccione RunsOn de la lista.

Versión de API 2012-10-2941

Page 49: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones

utilizando manualmente la consola

Para este parámetro... Haga lo siguiente...Aparecerá una lista vacía para una nuevaselección de Runs On (Se ejecuta en).

En la lista en blanco, seleccione Create new:Resource (Crear nuevo: recurso). Se creaun recurso con el nombre predeterminadoDefaultResource1. Este es el recurso de AWSque utiliza la canalización para ejecutar laactividad. Puede configurar los detalles delrecurso más adelante. Si tiene un recursoexistente, puede seleccionarlo.

El panel izquierdo representa gráficamente la actividad que ha configurado. Puede elegir cualquierade los componentes de canalización en este panel o expandir cada sección en el panel derecho paraver los detalles y realizar las siguientes tareas de configuración.

Configurar la programación

Configure la fecha y la hora en que se ejecutará la canalización. AWS Data Pipeline admite la fecha y lahora expresadas en el formato "AAAA-MM-DDTHH:MM:SS" en UTC/GMT únicamente.

Para configurar la fecha y la hora en que se ejecutará la canalización

1. En la página de canalización, en el panel derecho, elija Schedules (Planificaciones).2. Introduzca un nombre de programación para esta actividad, por ejemplo, copy-myS3-data-

schedule.3. En Start Date Time, seleccione la fecha del calendario y, a continuación, introduzca la hora para iniciar

la actividad.4. En Period, introduzca la duración de la actividad (por ejemplo, 1) y, a continuación, seleccione la

categoría del período (por ejemplo, Days).5. (Opcional) Para especificar la fecha y la hora de finalización de la actividad, en Add an optional field,

seleccione End Date Time e introduzca la fecha y la hora.

Para que la canalización se lance de forma inmediata, establezca Start Date Time (Fecha y hora deinicio) en la fecha del día anterior. AWS Data Pipeline comenzará entonces a lanzar las ejecuciones"atrasadas" inmediatamente, en un intento de solucionar lo que percibe como trabajo pendiente. Estareposición significa que no es necesario esperar una hora para ver cómo AWS Data Pipeline lanza suprimer clúster.

Configurar nodos de datos

En este paso, configure los nodos de datos que ha creado y especificado como Input (Entrada) y Output(Salida) cuando configuró la actividad de copia. Después de crear los nodos de datos, otras actividadesque pueda añadir a la canalización también pueden usarlos.

Para configurar los nodos de datos de entrada y salida

1. En la página de canalización, en el panel derecho, elija DataNodes o elija el nodo de datos individualdel flujo de trabajo en el panel izquierdo.

2. Configure cada nodo de datos de acuerdo con las siguientes directrices.

Versión de API 2012-10-2942

Page 50: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones

utilizando manualmente la consola

Para este parámetro... Haga lo siguiente...

Nombre Escriba un nombre que le ayude a identificarel propósito de este nodo. Por ejemplo,reemplace DefaultDataNode1 porS3LocationForCopyActivityInputy DefaultDataNode2 porS3LocationForCopyActivityOutput.

Tipo Seleccione S3DataNode.

Programación Seleccione la programación que ha configuradoen el paso anterior.

Add an optional field... (Añadir un campoopcional)

Seleccione File Path (Ruta de archivo) de la lista.

Aparecerá una lista vacía para una nuevaselección de File Path (Ruta de archivo).

Introduzca una ruta de archivo existente enAmazon S3 adecuada para el nodo de datosque está configurando. Por ejemplo, si estáconfigurando el nodo de datos especificadocomo nodo de datos Input (Entrada) parala actividad de copia, puede escribir s3://mybucket/myinputdata; si está configurandoel nodo de datos Output (Salida) puede escribirs3://mybucket/mycopy.

Configurar recursos

En este paso, configure el recurso que AWS Data Pipeline utiliza para realizar la actividad de copia, queha especificado como el recurso Runs On (Se ejecuta en) al configurar la actividad. La actividad de copiautiliza una instancia Amazon EC2.

Para configurar una instancia EC2 como el recurso para la actividad de copia de canalización

1. En la página de canalización, en el panel derecho, haga clic en Resources (Recursos).2. Configure el recurso de acuerdo con las directrices siguientes.

Para este parámetro... Haga lo siguiente...

Nombre Escriba un nombre para el recurso quele ayude a identificarlo, por ejemplo,Ec2InstanceForCopyActivity.

Tipo Seleccione Ec2Resource.

Rol de recurso Deje seleccionado el valor predeterminadoDataPipelineDefaultResource o seleccione unrol de IAM personalizado. Para obtener másinformación, consulte Roles de IAM para AWSData Pipeline (p. 80) y Funciones de IAM enla Guía del usuario de IAM.

Versión de API 2012-10-2943

Page 51: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCreación de canalizaciones

utilizando manualmente la consola

Para este parámetro... Haga lo siguiente...

Programación Asegúrese de que la programación que hacreado anteriormente esté seleccionada.

Rol Deje seleccionado el valor predeterminadoDataPipelineDefaultRole o seleccione un rolde IAM personalizado. Para obtener másinformación, consulte Roles de IAM para AWSData Pipeline (p. 80) y Funciones de IAM enla Guía del usuario de IAM.

Add an optional field... (Añadir un campoopcional)

Elija Subnet ID (ID de subred) de la lista.

Aparece un nuevo campo vacío, Subnet ID (IDde subred).

Escriba el ID de una subred en la VPC que estáutilizando, por ejemplo, subnet-1a2bcd34.

Validar y guardar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generaráerrores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWS

Versión de API 2012-10-2944

Page 52: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVisualización de las canalizaciones

Data Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Visualización de las canalizacionesPuede ver las canalizaciones con la consola o la interfaz de línea de comandos (CLI).

Para ver las canalizaciones mediante la consola

1. Abra la consola de AWS Data Pipeline. Si ha creado alguna canalización en esa región, la consola lamostrará en una lista. De lo contrario, verá una pantalla de bienvenida.

2. Para ver información sobre una canalización, haga clic en la flecha. La consola muestra informaciónsobre el programa, las actividades y las etiquetas de la canalización. Para obtener más informaciónsobre el estado de salud, consulte Interpretación del estado de salud de canalizaciones ycomponentes (p. 47).

Para ver las canalizaciones mediante la AWS CLI

• Utilice el siguiente comando list-pipelines para mostrar las canalizaciones:

aws datapipeline list-pipelines

Versión de API 2012-10-2945

Page 53: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInterpretación de los códigos de estado de la canalización

Interpretación de los códigos de estado de lacanalizaciónLos niveles de estado que se muestran en la CLI y la consola de AWS Data Pipeline indican el estado deuna canalización y de sus componentes. El estado de la canalización es simplemente una visión generalde una canalización; para ver más información, consulte el estado de los componentes de canalizaciónindividuales.

Una canalización tiene un estado SCHEDULED si está lista (la definición de canalización ha superado lavalidación), en funcionamiento o ha terminado la realización de un trabajo. Una canalización tiene unestado PENDING si no está activada o no puede realizar trabajo (por ejemplo, la definición de canalizaciónno ha superado la validación).

Una canalización se considera inactiva si su estado es PENDING INACTIVE o FINISHED. Lascanalizaciones inactivas incurren en cargos (para obtener más información, consulte Precios).

Códigos de estado

ACTIVATING

El componente o el recurso se está iniciando, por ejemplo, una instancia EC2.CANCELED

Un usuario o AWS Data Pipeline cancelaron el componente antes de que se pudiera ejecutar. Estopuede suceder automáticamente cuando se produce un error en otro componente o recurso del quedepende este.

CASCADE_FAILED

El componente o recurso se canceló como consecuencia de un error en cascada de una de susdependencias, pero probablemente el componente no fue el origen inicial del error.

DEACTIVATING

La canalización se está desactivando.FAILED

Se ha producido un error en el componente o recurso y ha dejado de funcionar. Cuando se produceun error en un componente o recurso, puede provocar cancelaciones y errores en cascada en otroscomponentes que dependen de él.

FINISHED

El componente completó el trabajo que tenía asignado.INACTIVE

La canalización se ha desactivado.PAUSED

El componente se ha puesto en pausa y en este momento no está realizando su trabajo.PENDING

La canalización está preparada para activarla por primera vez.RUNNING

El recurso está en ejecución y preparado para recibir trabajo.

Versión de API 2012-10-2946

Page 54: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInterpretación del estado de saludde canalizaciones y componentes

SCHEDULED

El recurso está programado para ejecutarse.SHUTTING_DOWN

El recurso se está cerrando después de haber finalizado correctamente su trabajo.SKIPPED

El componente ha omitido intervalos de ejecución después de activar la canalización con una marcatemporal posterior a la programación actual.

TIMEDOUT

El recurso superó el umbral de terminateAfter y AWS Data Pipeline lo ha detenido.Cuando el recurso adquiere este estado, AWS Data Pipeline hace caso omiso de los valoresactionOnResourceFailure, retryDelay y retryTimeout de ese recurso. Este estado solo seaplica a los recursos.

VALIDATING

AWS Data Pipeline está validando la definición de la canalización.WAITING_FOR_RUNNER

El componente está esperando a que su cliente de proceso de trabajo recupere un elemento detrabajo. La relación entre el componente y el cliente de proceso de trabajo se controla mediante loscampos runsOn o workerGroup definidos por ese componente.

WAITING_ON_DEPENDENCIES

El componente está comprobando que se cumplan sus condiciones previas predeterminadas ydefinidas por el usuario antes de llevar a cabo su trabajo.

Interpretación del estado de salud de canalizaciones ycomponentesCada canalización y cada componente dentro de dicha canalización devuelve un estado de salud deHEALTHY, ERROR, "-", No Completed Executions o No Health Information Available.Una canalización solo tiene un estado de salud después de que un componente de la canalización hayacompletado su primera ejecución o las condiciones previas del componente hayan producido un error.El estado de salud de los componentes se agrega en un estado salud de la canalización en el que losestados de error son visibles primero cuando se ven los detalles de la ejecución de la canalización.

Estados de salud de canalización

HEALTHY

El estado de salud agregado de todos los componentes es HEALTHY. Esto significa que al menos uncomponente debe haberse completado con éxito. Puede hacer clic en el estado HEALTHY para verla instancia de componente de canalización completada más recientemente en la página ExecutionDetails.

ERROR

Al menos un componente de la canalización tiene un estado de salud de ERROR. Puede hacer clic enel estado ERROR para ver la instancia de componente de canalización que haya producido un errormás recientemente en la página Execution Details.

No Completed Executions o bien No Health Information Available.

No se notificó ningún estado de salud para esta canalización.

Versión de API 2012-10-2947

Page 55: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVisualización de las definiciones de canalización

Note

Aunque los componentes actualizan su estado de salud casi de inmediato, el estado de salud deuna canalización puede tardar hasta cinco minutos en actualizarse.

Estados de salud de componentes

HEALTHY

Un componente (Activity o DataNode) tiene un estado de salud de HEALTHY si ha completadouna ejecución que se haya marcado con el estado FINISHED o MARK_FINISHED. Puede hacer clicen el nombre del componente o en el estado HEALTHY para ver las instancias de componentes decanalización completadas más recientemente en la página Execution Details.

ERROR

Se ha producido un error en el nivel de componente o una de las condiciones previas ha producido unerror. Los estados FAILED, TIMEOUT y CANCELED disparan este error. Puede hacer clic en el nombredel componente o en el estado ERROR para ver la instancia de componente de canalización que hayaproducido un error más recientemente en la página Execution Details.

No Completed Executions o bien No Health Information Available

No se notificó ningún estado de salud para este componente.

Visualización de las definiciones de canalizaciónUtilice la consola de AWS Data Pipeline o la interfaz de línea de comandos (CLI) para ver la definiciónde la canalización. La consola muestra una representación gráfica, mientras que la CLI imprime unarchivo de definición de canalización en formato JSON. Para obtener información acerca de la sintaxis yel uso de los archivos de definición de canalización, consulte Sintaxis de los archivos de definición de lacanalización (p. 67).

Para ver una definición de canalización mediante la consola

1. En la página List Pipelines, haga clic en Pipeline ID de la canalización que desee y se mostrará lapágina Architect.

2. En la página Architect, haga clic en los iconos de objeto del panel de diseño para ampliar la seccióncorrespondiente en el panel derecho.

También puede ampliar una de las secciones en el panel derecho para ver sus objetos y los camposasociados a los mismos.

3. Si el gráfico de definición de canalización no encaja en el panel de diseño, utilice los botones dedesplazamiento del lado derecho del panel de diseño para desplazar el lienzo.

4. También puede ver el texto completo de la definición de canalización haciendo clic en Export. Apareceun diálogo con la definición de canalización JSON.

Si utiliza la CLI, es buena idea recuperar la definición de la canalización antes de enviar modificaciones,ya que es posible que otro usuario o proceso haya cambiado la definición de la canalización después de la

Versión de API 2012-10-2948

Page 56: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVisualización de detalles de instancias de canalización

última vez que usted trabajara en ella. Puede descargar una copia de la definición actual y utilizarla comobase para sus modificaciones. Así, se asegurará de trabajar con la definición de canalización más reciente.También es buena idea volver a recuperar la definición de la canalización después de modificarla, paraasegurarse de que la actualización se haya realizado correctamente.

Si utiliza la CLI, puede obtener dos versiones diferentes de la canalización. La versión active es lacanalización que se está ejecutando en este momento. La versión latest es una copia que crea aleditar una canalización en funcionamiento. Cuando se carga la canalización editada, pasa a ser la versiónactive y la versión active anterior deja de estar disponible.

Para obtener una definición de canalización mediante la AWS CLI

Para obtener la definición completa de la canalización, utilice el siguiente comando get-pipeline-definition.La definición de la canalización se imprime en la salida estándar (stdout).

En el ejemplo siguiente se obtiene la definición de canalización para la canalización especificada.

aws datapipeline get-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE

Para recuperar una versión específica de una canalización, utilice la opción --version. En el siguienteejemplo se recupera la versión active de la canalización especificada.

aws datapipeline get-pipeline-definition --version active --id df-00627471SOVYZEXAMPLE

Visualización de detalles de instancias de canalizaciónPuede monitorizar el progreso de la canalización. Para obtener más información acerca del estado de lainstancia, consulte Interpretación de los detalles de estado de la canalización (p. 319). Para obtener másinformación sobre cómo solucionar problemas de ejecuciones de instancias de la canalización, consulteResolución de problemas comunes (p. 321).

Para monitorizar el progreso de una canalización mediante la consola

1. En la página List Pipelines, en la columna Pipeline ID, haga clic en la flecha de la canalización y hagaclic en View execution details.

2. La página Execution details muestra el nombre, tipo, estado e información de programación de cadacomponente.

A continuación, puede hacer clic en la flecha de cada nombre de componente para ver la informaciónde dependencia de ese componente.

En el resumen en línea, puede ver los detalles de la instancia, volver a ejecutar una actividad,marcarla como FINISHED o explorar la cadena de dependencia.

Versión de API 2012-10-2949

Page 57: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVisualización de detalles de instancias de canalización

Note

Si no ve las ejecuciones, compruebe cuándo se programó la canalización. Cambie End (inUTC) a una fecha posterior o cambie Start (in UTC) a una fecha anterior y, a continuación,haga clic en Update.

3. Si la columna Status de todos los componentes de la canalización es FINISHED, la canalización hacompletado la actividad con éxito. Debería recibir un correo electrónico informándole de la realizacióncorrecta de esta tarea en la cuenta que haya especificado para recibir notificaciones de Amazon SNS.

También puede examinar el contenido del nodo de datos de salida.4. Si el valor de la columna Status de cualquier componente de la canalización no es FINISHED,

la canalización está a la espera de una dependencia o ha producido un error. Para solucionarlas ejecuciones de instancias incompletas o que hayan producido un error, utilice el siguienteprocedimiento.

5. Haga clic en el triángulo junto a un componente o actividad.

Si el estado de la instancia es FAILED, el cuadro Attempts muestra en Error message un mensaje queindica el motivo del error en el último intento. Por ejemplo, Status Code: 403, AWS Service:Amazon S3, AWS Request ID: 1A3456789ABCD, AWS Error Code: null, AWS ErrorMessage: Forbidden. También puede hacer clic en More... en la columna Details para ver losdetalles de la instancia de este intento.

6. Para realizar una acción en respuesta al componente incompleto o que produjo un error, seleccioneRerun, Mark Finished o Cancel.

Para monitorizar el progreso de una canalización mediante la AWS CLI

Para recuperar detalles de la instancia de la canalización, tal como un historial de las veces que se haejecutado una canalización, utilice el comando list-runs. Este comando permite filtrar la lista de ejecucionesdevueltas en función de su estado actual o del intervalo de fechas en que se lanzaron. Filtrar los resultadoses útil porque, dependiendo de la edad y la programación de la canalización, el historial de ejecucionespuede ser grande.

El siguiente ejemplo recupera información de todas las ejecuciones.

aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE

El siguiente ejemplo recupera información de todas las ejecuciones completadas.

aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE --status finished

El siguiente ejemplo recupera información de todas las ejecuciones lanzadas en el período especificado.

aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE --start-interval "2013-09-02","2013-09-11"

Versión de API 2012-10-2950

Page 58: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVisualización de registros de canalización

Visualización de registros de canalizaciónEl registro de nivel de canalización se admite en el momento de crear la canalización si se especificauna ubicación de Amazon S3 en la consola o mediante un valor de pipelineLogUri en el objetopredeterminado en el SDK o la CLI. La estructura de directorios para cada canalización dentro de dichoURI es como la siguiente:

pipelineId -componentName -instanceId -attemptId

Para la canalización, df-00123456ABC7DEF8HIJK, la estructura del directorio tiene este aspecto:

df-00123456ABC7DEF8HIJK -ActivityId_fXNzc -@ActivityId_fXNzc_2014-05-01T00:00:00 -@ActivityId_fXNzc_2014-05-01T00:00:00_Attempt=1

En el caso de ShellCommandActivity, en cada intento se almacenan en el directorio los registrosstderr y stdout asociados a estas actividades.

Para los recursos como EmrCluster, donde se establece un valor de emrLogUri, ese valor tieneprecedencia. De lo contrario, los recursos (incluidos los registros de TaskRunner de esos recursos) siguenla estructura de registro de la canalización anterior. Puede ver estos registros para cada componente en lapágina Execution Details de la canalización; para ello, visualice los detalles de un componente y haga clicen el enlace para obtener los registros:

También puede ver registros para cada intento. Por ejemplo, para ver registros para HadoopActivity,puede hacer clic en la pestaña Attempts de la canalización para su actividad. Hadoop Logs proporciona losregistros creados por trabajos de Hadoop.

Versión de API 2012-10-2951

Page 59: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEdición de la canalización

Edición de la canalizaciónPara cambiar algún aspecto de una de las canalizaciones, puede actualizar su definición de canalización.Después de modificar una canalización que se esté ejecutando, debe reactivar la canalización para que seapliquen los cambios. Además, puede volver a ejecutar uno o varios componentes de la canalización.

Contenido• Limitaciones (p. 52)• Edición de una canalización mediante la consola (p. 52)• Edición de una canalización mediante la AWS CLI (p. 53)

LimitacionesMientras la canalización se encuentre en el estado PENDING y no esté activada, podrá hacer cambios enella. Después de activar una canalización, puede editarla con las siguientes restricciones. Los cambios querealice se aplicarán a las nuevas ejecuciones de los objetos de la canalización después de guardarlos y, acontinuación, volver a activar la canalización.

• No se puede eliminar un objeto• No se puede cambiar el período de programación de un objeto existente• No se pueden agregar, eliminar o modificar campos de referencia de un objeto existente• No se puede hacer referencia a un objeto existente en un campo de salida de un objeto nuevo• No se puede cambiar la fecha de inicio programada de un objeto (en su lugar, active la canalización con

una fecha y hora determinadas)

Edición de una canalización mediante la consolaPuede editar una canalización mediante la Consola de administración de AWS.

Para editar una canalización mediante la consola

1. En la página List Pipelines, compruebe las columnas Pipeline ID y Name de la canalización y, acontinuación, haga clic en el ID de la canalización.

2. Para completar o modificar la definición de la canalización:

a. En la página de la canalización (Architect), haga clic en los paneles de objeto del panel derechoy termine de definir los objetos y los campos de la definición de canalización. Si está modificandouna canalización activa, algunos campos estarán en gris y no se podrán modificar. Quizá sea másfácil clonar la canalización y editar la copia, en función de los cambios que necesite hacer. Paraobtener más información, consulte Clonación de la canalización (p. 53).

b. Haga clic en Save pipeline. Si hay errores de validación, corríjalos y guarde la canalización otravez.

3. Una vez que haya guardado la definición de la canalización sin errores de validación, haga clic enActivate.

4. En la página List Pipelines, compruebe si aparece la canalización recién creada y si la columnaSchedule State muestra SCHEDULED.

5. Después de editar una canalización activa, es posible que decida volver a ejecutar uno o varioscomponentes de la canalización.

En la página List Pipelines, en la lista desplegable de detalles de la canalización, haga clic en Viewexecution details.

Versión de API 2012-10-2952

Page 60: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEdición de una canalización mediante la AWS CLI

a. En la página Execution details, elija un componente de canalización de la lista para ver losdetalles del componente.

b. Haga clic en Rerun.c. En la pregunta de confirmación, haga clic en Continue.

El componente de la canalización modificado y las dependencias cambian de estado. Porejemplo, los recursos cambian al estado CREATING y las actividades cambian al estadoWAITING_FOR_RUNNER.

Edición de una canalización mediante la AWS CLIPuede editar una canalización mediante las herramientas de la línea de comandos.

En primer lugar, descargue una copia de la definición de la canalización actual mediante el comando get-pipeline-definition. Al hacerlo, puede asegurarse de estar modificando la definición de canalización másreciente. El siguiente ejemplo imprime la definición de la canalización en la salida estándar (stdout).

aws datapipeline get-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE

Guarde la definición de la canalización en un archivo y edítela como sea necesario. Actualice la definiciónde la canalización con el comando put-pipeline-definition. En el siguiente ejemplo se carga el archivo dedefinición de canalización actualizado.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Puede recuperar la definición de la canalización de nuevo con el comando get-pipeline-definitionpara asegurarse de que la actualización se ha realizado correctamente. Para activar la canalización, utiliceel siguiente comando activate-pipeline:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Si lo prefiere, puede activar la canalización a partir de una fecha y hora determinadas, utilizando la opción--start-timestamp de la siguiente manera:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --start-timestamp YYYY-MM-DDTHH:MM:SSZ

Para volver a ejecutar uno o más componentes de la canalización, utilice el comando set-status.

Clonación de la canalizaciónLa clonación crea una copia de una canalización y permite especificar un nombre para la nuevacanalización. Puede clonar una canalización que se encuentre en cualquier estado, incluso si tiene errores;sin embargo, la nueva canalización permanecerá en el estado PENDING hasta que la active manualmente.Para la nueva canalización, la operación de clonación utiliza la versión más reciente de la definición decanalización original, en lugar de la versión activa. En la operación de clonación, no se copia en la nuevacanalización el programa completo de la canalización original, sino solo el ajuste de período.

Note

No se puede clonar una canalización mediante la interfaz de línea de comandos (CLI).

Versión de API 2012-10-2953

Page 61: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEtiquetado de la canalización

Para clonar una canalización mediante la consola

1. En la página List Pipelines, seleccione la canalización que va a clonar.2. Haga clic en Actions y, a continuación, haga clic en Clone.3. En el cuadro de diálogo Clone a Pipeline, introduzca un nombre para la nueva canalización y haga clic

en Clone.4. En el panel Schedule, especifique una programación para la nueva canalización.5. Para activar la nueva canalización, haga clic en Actions y, a continuación, haga clic en Activate.

Etiquetado de la canalizaciónLas etiquetas son pares de clave/valor que distinguen entre mayúsculas y minúsculas y constan de unaclave y un valor opcional, ambos definidos por el usuario. Puede aplicar hasta diez etiquetas a cadacanalización. Las claves de las etiquetas deben ser únicas para cada canalización. Si agrega una etiquetacon una clave que ya está asociada a la canalización, se actualizará el valor de esa etiqueta.

La aplicación de una etiqueta a una canalización también propaga las etiquetas a sus recursossubyacentes (por ejemplo, clústeres de Amazon EMR e instancias Amazon EC2). Sin embargo, no aplicaestas etiquetas a los recursos que se encuentren en estado FINISHED u otro estado terminado. Puedeutilizar la CLI para aplicar etiquetas a estos recursos, si es necesario.

Cuando haya terminado de utilizar una etiqueta, puede eliminarla de la canalización.

Para etiquetar la canalización mediante la consola

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. En la página List Pipelines, en la columna Pipeline ID, haga clic en la flecha de ampliación junto a la

canalización y, a continuación, haga clic en View all/Edit bajo Tags.3. En el cuadro de diálogo View all / Edit, haga lo siguiente:

a. Especifique una clave y un valor para cada etiqueta que desee agregar.b. Haga clic en el icono de eliminación de cualquier etiqueta que desee eliminar.c. Haga clic en Guardar.

Para etiquetar la canalización mediante la CLI de AWS

Para agregar etiquetas a una nueva canalización, agregue la opción --tags al comando create-pipeline.Por ejemplo, la siguiente opción crea una canalización con dos etiquetas, una etiqueta environment conun valor de production y una etiqueta owner con un valor de sales.

--tags key=environment,value=production key=owner,value=sales

Para agregar etiquetas a una canalización existente, utilice el comando add-tags como se indica acontinuación:

aws datapipeline add-tags --pipeline-id df-00627471SOVYZEXAMPLE --tags key=environment,value=production key=owner,value=sales

Para quitar etiquetas de una canalización existente, utilice el comando remove-tags como se indica acontinuación:

aws datapipeline remove-tags --pipeline-id df-00627471SOVYZEXAMPLE --tag-keys environment owner

Versión de API 2012-10-2954

Page 62: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDesactivación de la canalización

Desactivación de la canalizaciónLa desactivación de una canalización en ejecución detiene la ejecución de la canalización. Para reanudarla ejecución de la canalización, puede activar la canalización. Esto le permitirá hacer cambios. Por ejemplo,si está escribiendo datos en una base de datos programada para someterse a mantenimiento, puededesactivar la canalización, esperar a que se complete el mantenimiento y, a continuación, activar lacanalización.

Cuando desactive una canalización, puede especificar lo que ocurre con las actividades en ejecución. Deforma predeterminada, estas actividades se cancelarán inmediatamente. También puede hacer que AWSData Pipeline espere hasta que las actividades finalicen antes de desactivar la canalización.

Cuando active una canalización desactivada, puede especificar cuándo se reanudará. Por ejemplo, puedeutilizar la Consola de administración de AWS para reanudarla a partir de la última ejecución completada,desde la hora actual o desde una fecha y hora especificadas. Con la AWS CLI o la API, la canalizaciónse reanuda de manera predeterminada a partir de la última ejecución completada. También es posibleespecificar la fecha y la hora en la que se debe reanudar.

Contenido• Desactive la canalización mediante la consola (p. 55)• Desactivación de la canalización mediante la AWS CLI (p. 55)

Desactive la canalización mediante la consolaUtilice el siguiente procedimiento para desactivar una canalización en funcionamiento.

Para desactivar una canalización

1. En la página List Pipelines, seleccione la canalización que va a desactivar.2. Haga clic en Actions y, a continuación, haga clic en Deactivate.3. En el cuadro de diálogo Deactivate a Pipeline, seleccione una opción y, a continuación, haga clic en

Deactivate.4. Cuando se le pida confirmación, haga clic en Deactivate.

Cuando esté listo para reanudar las ejecuciones de la canalización, utilice el siguiente procedimiento paraactivar la canalización desactivada.

Para activar una canalización

1. En la página List Pipelines, seleccione la canalización que va a activar.2. Haga clic en Actions y, a continuación, haga clic en Activate.3. En el cuadro de diálogo Activate a Pipeline, seleccione una opción y, a continuación, elija Activate.

Desactivación de la canalización mediante la AWS CLIUtilice el siguiente comando deactivate-pipeline para desactivar una canalización:

aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Para desactivar la canalización después de que hayan finalizado todas las actividades de ejecución,agregue la opción --no-cancel-active, como se indica a continuación:

Versión de API 2012-10-2955

Page 63: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEliminación de la canalización

aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --no-cancel-active

Cuando esté listo, puede reanudar la ejecución de la canalización donde se haya quedado mediante elsiguiente comando activate-pipeline:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Para iniciar la canalización a partir de una fecha y una hora determinadas, agregue la opción --start-timestamp, como se indica a continuación:

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --start-timestamp YYYY-MM-DDTHH:MM:SSZ

Eliminación de la canalizaciónSi ya no necesita una canalización, tal como una canalización creada durante las pruebas de unaaplicación, es recomendable que la elimine del uso activo. La eliminación de una canalización la colocaen un estado de eliminación. Cuando la canalización está en el estado eliminado, su definición decanalización y su historial de ejecuciones desaparecen. Por lo tanto, ya no es posible realizar operacionesen la canalización, incluida su descripción.

Important

No se puede restaurar una canalización después de eliminarla, así que antes de eliminar unacanalización debe asegurarse de que no la necesitará en el futuro.

Para eliminar una canalización con la consola

1. En la página List Pipelines, seleccione la canalización.2. Haga clic en Actions y, a continuación, haga clic en Eliminar.3. Cuando se le pida confirmación, haga clic en Delete.

Para eliminar una canalización mediante la AWS CLI

Para eliminar una canalización, utilice el comando delete-pipeline. El siguiente comando elimina lacanalización especificada.

aws datapipeline delete-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Datos y tablas transitorios con actividades decanalización

AWS Data Pipeline puede utilizar datos transitorios de entrada y salida en las canalizaciones para facilitarel uso de determinadas actividades, tales como ShellCommandActivity y HiveActivity.

El uso transitorio de datos le permite copiar datos del nodo de datos de entrada en el recurso donde seejecuta la actividad y, de manera similar, desde el recurso en el nodo de datos de salida.

Versión de API 2012-10-2956

Page 64: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresUso transitorio de datos con ShellCommandActivity

Los datos transitorios del recurso de Amazon EMR o Amazon EC2 están disponibles mediante el uso devariables especiales en los comandos de shell o scripts de Hive de la actividad.

El uso de tablas transitorias es similar al de datos transitorios, excepto en que los datos almacenadosadoptan la forma de tablas almacenadas, específicamente.

AWS Data Pipeline admite los escenarios siguientes:

• Uso transitorio de datos con ShellCommandActivity• Tablas transitorias con nodos de datos compatibles con el uso de datos transitorios y Hive• Tablas transitorias con nodos de datos no compatibles con el uso de datos transitorios y Hive

Note

Funciones solo transitorias cuando el campo stage esté establecido en true en unaactividad, como ShellCommandActivity. Para obtener más información, consulteShellCommandActivity (p. 224).

Además, las actividades y los nodos de datos se pueden relacionar de cuatro maneras:

Almacenamiento local de los datos en un recurso

Los datos de entrada se copian automáticamente en el sistema de archivos local del recurso. Losdatos de salida se copian automáticamente del sistema de archivos local del recurso en el nodo dedatos de salida. Por ejemplo, cuando se configuran entradas y salidas ShellCommandActivity constaging = true, los datos de entrada están disponibles como INPUTx_STAGING_DIR y los datos desalida están disponibles como OUTPUT_STAGING_DIR, donde x es el número de entrada o salida.

Almacenamiento transitorio de definiciones de entrada y salida para una actividad

El formato de datos de entrada (nombres de columna y nombres de tabla) se copia automáticamenteen el recurso de la actividad. Por ejemplo, cuando se configura HiveActivity con staging = true.El formato de datos especificado en la entrada S3DataNode se utiliza para el uso transitorio de ladefinición de tabla de la tabla Hive.

Uso transitorio no habilitado

Los objetos de entrada y salida y sus campos están disponibles para la actividad, pero no los propiosdatos. Por ejemplo, EmrActivity de forma predeterminada o al configurar otras actividades constaging = false. En esta configuración, los campos de datos están disponibles para que la actividadpueda hacer referencia a ellos mediante la sintaxis de expresión de AWS Data Pipeline, pero estosolo ocurre cuando se satisface la dependencia. Esto sirve solamente como comprobación dedependencias. El código de la actividad es responsable de copiar los datos de la entrada en el recursoque ejecuta la actividad.

Relación de dependencia entre objetos

Existe una relación de dependencia entre dos objetos, que produce como resultado una situaciónsimilar a cuando no se ha habilitado el uso transitorio. Esto provoca que un nodo de datos o unaactividad actúen como una condición previa para la ejecución de otra actividad.

Uso transitorio de datos con ShellCommandActivityConsidere un escenario en que se utilice ShellCommandActivity con objetos S3DataNode comoentrada y salida de datos. AWS Data Pipeline almacena automáticamente los nodos de datos de maneratransitoria para ponerlos a disposición del comando de shell como si fueran carpetas de archivoslocales mediante las variables de entorno ${INPUT1_STAGING_DIR} y ${OUTPUT1_STAGING_DIR},tal y como se muestra en el siguiente ejemplo. La parte numérica de las variables denominadas

Versión de API 2012-10-2957

Page 65: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresTablas transitorias con nodos de datos

compatibles con el uso de datos transitorios y Hive

INPUT1_STAGING_DIR y OUTPUT1_STAGING_DIR se incrementa en función del número de nodos dedatos a los que hace referencia la actividad.

Note

Esta situación solo funciona como se describe si las entradas y salidas de datos son objetosS3DataNode. Además, el uso transitorio de datos de salida solamente se permite cuandodirectoryPath se establece en el objeto S3DataNode de salida.

{ "id": "AggregateFiles", "type": "ShellCommandActivity", "stage": "true", "command": "cat ${INPUT1_STAGING_DIR}/part* > ${OUTPUT1_STAGING_DIR}/aggregated.csv", "input": { "ref": "MyInputData" }, "output": { "ref": "MyOutputData" }},{ "id": "MyInputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://my_bucket/source/#{format(@scheduledStartTime,'YYYY-MM-dd_HHmmss')}/items" }}, { "id": "MyOutputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://my_bucket/destination/#{format(@scheduledStartTime,'YYYY-MM-dd_HHmmss')}" }},...

Tablas transitorias con nodos de datos compatiblescon el uso de datos transitorios y HiveConsidere un escenario en que se utilice HiveActivity con objetos S3DataNode como entrada ysalida de datos. AWS Data Pipeline almacena automáticamente los nodos de datos de manera transitoriapara ponerlos a disposición del script de Hive como si fueran tablas de Hive mediante las variables de${input1} y ${output1}, tal y como se muestra en el siguiente ejemplo para HiveActivity. La partenumérica de las variables denominadas input y output se incrementa en función del número de nodosde datos a los que hace referencia la actividad.

Note

Esta situación solo funciona como se describe si las entradas y salidas de datos sonobjetos S3DataNode o MySqlDataNode. El uso transitorio de tablas no se admite paraDynamoDBDataNode.

{

Versión de API 2012-10-2958

Page 66: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresTablas transitorias con nodos de datos no

compatibles con el uso de datos transitorios y Hive

"id": "MyHiveActivity", "type": "HiveActivity", "schedule": { "ref": "MySchedule" }, "runsOn": { "ref": "MyEmrResource" }, "input": { "ref": "MyInputData" }, "output": { "ref": "MyOutputData" }, "hiveScript": "INSERT OVERWRITE TABLE ${output1} select * from ${input1};"},{ "id": "MyInputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://test-hive/input" }}, { "id": "MyOutputData", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://test-hive/output" }},...

Tablas transitorias con nodos de datos no compatiblescon el uso de datos transitorios y HiveConsidere un escenario en que se utilice HiveActivity con objetos DynamoDBDataNode como entraday un objeto S3DataNode como salida de datos. No está disponible ningún uso transitorio de datos paraDynamoDBDataNode, por lo que primero debe crear manualmente la tabla dentro del script de Hiveutilizando el nombre de variable #{input.tableName} para hacer referencia a la tabla de DynamoDB.Se aplica una nomenclatura similar si la tabla de DynamoDB es la salida, excepto si se usa la variable#{output.tableName}. El uso transitorio está disponible para el objeto S3DataNode en este ejemplo,así que se puede hacer referencia al nodo de datos de salida como ${output1}.

Note

En este ejemplo, la variable del nombre de la tabla tiene como prefijo el carácter # (hash) porqueAWS Data Pipeline utiliza expresiones para obtener acceso a tableName o directoryPath.Para obtener más información acerca de cómo funciona la evaluación de expresiones en AWSData Pipeline, consulte Evaluación de expresiones (p. 140).

{ "id": "MyHiveActivity", "type": "HiveActivity", "schedule": { "ref": "MySchedule" }, "runsOn": {

Versión de API 2012-10-2959

Page 67: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresLanzamiento de recursos en una VPC

"ref": "MyEmrResource" }, "input": { "ref": "MyDynamoData" }, "output": { "ref": "MyS3Data" }, "hiveScript": "-- Map DynamoDB TableSET dynamodb.endpoint=dynamodb.us-east-1.amazonaws.com;SET dynamodb.throughput.read.percent = 0.5;CREATE EXTERNAL TABLE dynamodb_table (item map<string,string>)STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'TBLPROPERTIES ("dynamodb.table.name" = "#{input.tableName}"); INSERT OVERWRITE TABLE ${output1} SELECT * FROM dynamodb_table;"},{ "id": "MyDynamoData", "type": "DynamoDBDataNode", "schedule": { "ref": "MySchedule" }, "tableName": "MyDDBTable"}, { "id": "MyS3Data", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "directoryPath": "s3://test-hive/output" }},...

Lanzamiento de recursos para su canalización enuna VPC

Las canalizaciones pueden lanzar instancias Amazon EC2 y clústeres de Amazon EMR en una nube virtualprivada (VPC).

• En primer lugar, cree una VPC y las subredes utilizando Amazon VPC. Configure la VPC a fin de que lasinstancias de la VPC puedan obtener acceso al punto de enlace de AWS Data Pipeline y a Amazon S3.

• A continuación, configure un grupo de seguridad que conceda a Task Runner acceso a los orígenes dedatos.

• Por último, especifique una subred desde la VPC cuando configure las instancias y clústeres y al crearlos orígenes de datos.

Tenga en cuenta que si dispone de una VPC predeterminada en una región, ya está configurada paraobtener acceso a otros servicios de AWS. Cuando lance un recurso, lo lanzaremos automáticamente en suVPC predeterminada.

Para obtener más información sobre las VPC, consulte la Guía del usuario de Amazon VPC.

Contenido• Crear y configurar una VPC (p. 61)• Configuración de la conectividad entre recursos (p. 61)

Versión de API 2012-10-2960

Page 68: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCrear y configurar una VPC

• Configurar el recurso (p. 63)

Crear y configurar una VPCLa VPC que cree debe tener una subred, una gateway de Internet y una tabla de ruteo para la subred conuna ruta a la gateway de Internet de forma que las instancias de la VPC puedan obtener acceso a AmazonS3. (Si tiene una VPC predeterminada, ya está configurada de esta manera). La forma más sencilla decrear y configurar la VPC es utilizar el asistente para VPC, como se muestra en el siguiente procedimiento.

Para crear y configurar la VPC con el asistente para VPC

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En la barra de navegación, utilice el selector de región para seleccionar la región para la VPC. Lanzará

todas las instancias y los clústeres en esta VPC, así que debe seleccionar la región adecuada para lacanalización.

3. Haga clic en VPC Dashboard en el panel de navegación.4. Busque el área Your Virtual Private Cloud del panel y haga clic en Get started creating a VPC, si no

tiene recursos VPC, o haga clic en Start VPC Wizard.5. Seleccione la primera opción, VPC with a Single Public Subnet Only y, a continuación, haga clic en

Continue.6. La página de confirmación muestra los rangos de CIDR y los ajustes elegidos. Verifique que Enable

DNS hostnames sea Yes. Haga los demás cambios que necesite y, a continuación, haga clic enCreate VPC para crear la VPC, la subred, la gateway de Internet y la tabla de ruteo.

7. Después de haber creado la VPC, haga clic en Your VPCs en el panel de navegación y seleccione laVPC en la lista.

• En la pestaña Summary, asegúrese de que tanto DNS resolution como DNS hostnames sean yes.• Haga clic en el identificador del conjunto de opciones de DHCP establecido. Asegúrese de que

domain-name-servers sea AmazonProvidedDNS y domain-name sea ec2.internal para laregión US East (N. Virginia) y region-name.compute.internal para todas las demás regiones.De lo contrario, cree un nuevo conjunto de opciones con estos ajustes y asócielo con la VPC. Paraobtener más información, consulte Utilización de conjuntos de opciones de DHCP en la Guía delusuario de Amazon VPC.

Si prefiere crear la VPC, la subred, la gateway de Internet y la tabla de ruteo manualmente, consulte lassecciones relacionadas con la creación de una VPC y la adición de una gateway de Internet a la VPC en laGuía del usuario de Amazon VPC.

Configuración de la conectividad entre recursosLos grupos de seguridad funcionan como un firewall virtual para que las instancias controlen el tráficoentrante y saliente. Debe conceder a Task Runner acceso a los orígenes de datos.

Para obtener más información acerca de los grupos de seguridad, consulte Grupos de seguridad de suVPC en la Guía del usuario de Amazon VPC.

En primer lugar, identifique el grupo de seguridad o la dirección IP que utilice el recurso que ejecuta TaskRunner.

• Si el recurso es del tipo EmrCluster (p. 242), Task Runner se ejecuta en el clúster de formapredeterminada. Cuando lance el clúster, crearemos grupos de seguridad denominadosElasticMapReduce-master y ElasticMapReduce-slave. Necesita los ID de estos grupos deseguridad más adelante.

Versión de API 2012-10-2961

Page 69: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresConfiguración de la conectividad entre recursos

Para obtener los ID de los grupos de seguridad para un clúster en una VPC

1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.2. En el panel de navegación, haga clic en Security Groups.3. Si tiene una larga lista de grupos de seguridad, puede hacer clic en la columna Name para ordenar

los grupos de seguridad por nombre. Si no ve una columna Name, haga clic en el icono Show/HideColumns y, a continuación, haga clic en Name.

4. Anote los ID de los grupos de seguridad ElasticMapReduce-master y ElasticMapReduce-slave.

• Si el recurso es del tipo Ec2Resource (p. 235), Task Runner se ejecuta en la instancia EC2 de formapredeterminada. Cree un grupo de seguridad para la VPC y especifíquelo cuando lance la instancia EC2.Necesita el ID de este grupo de seguridad más adelante.

Para crear un grupo de seguridad para una instancia EC2 en una VPC

1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.2. En el panel de navegación, haga clic en Security Groups.3. Haga clic en Create Security Group.4. Especifique un nombre y una descripción para el grupo de seguridad.5. Seleccione la VPC en la lista y, a continuación, haga clic en Create.6. Anote el ID del nuevo grupo de seguridad.

• Si va a ejecutar Task Runner en su propio equipo, anote su dirección IP pública en notación CIDR. Siel equipo está detrás de un cortafuegos, anote el intervalo de direcciones completo de su red. Necesitaesta dirección más adelante.

A continuación, cree reglas en los grupos de seguridad de recursos que permitan el tráfico entrante paralos orígenes de datos a los que debe obtener acceso Task Runner. Por ejemplo, si Task Runner debeobtener acceso a un clúster de Amazon Redshift, el grupo de seguridad para el clúster de Amazon Redshiftdebe permitir el tráfico entrante del recurso.

Para agregar una regla al grupo de seguridad para una base de datos de Amazon RDS

1. Abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.2. En el panel de navegación, haga clic en Instances.3. Haga clic en el icono de detalles de la instancia de base de datos. En Security and Network

(Seguridad y redes), haga clic en el enlace al grupo de seguridad que lleva a la consola de AmazonEC2. Si está utilizando el diseño de consola anterior para los grupos de seguridad, haga clic en elicono que se muestra en la parte superior de la página de la consola para cambiar al nuevo diseño deconsola.

4. En la pestaña Inbound, haga clic en Edit y, a continuación, haga clic en Add Rule. Especifique elpuerto de la base de datos que utilizó al lanzar la instancia de base de datos. En Source (Origen),comience a escribir el ID del grupo de seguridad o la dirección IP que utilice el recurso que ejecutaTask Runner.

5. Haga clic en Guardar.

Para agregar una regla al grupo de seguridad para un clúster de Amazon Redshift

1. Abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshift/.2. En el panel de navegación, haga clic en Clusters.3. Haga clic en el icono de detalles del clúster. En Cluster Properties (Propiedades del clúster), anote

el nombre o el ID del grupo de seguridad y, a continuación, haga clic en View VPC Security Groups

Versión de API 2012-10-2962

Page 70: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresConfigurar el recurso

(Ver grupos de seguridad de VPC), lo que le llevará a la consola de Amazon EC2. Si está utilizando eldiseño de consola anterior para los grupos de seguridad, haga clic en el icono que se muestra en laparte superior de la página de la consola para cambiar al nuevo diseño de consola.

4. Seleccione el grupo de seguridad para el clúster.5. En la pestaña Inbound, haga clic en Edit y, a continuación, haga clic en Add Rule. Especifique el

tipo, el protocolo y el rango de puertos. En Source (Origen), comience a escribir el ID del grupo deseguridad o la dirección IP que utilice el recurso que ejecuta Task Runner.

6. Haga clic en Guardar.

Configurar el recursoPara lanzar un recurso en una subred de una VPC no predeterminada o una subred no predeterminadade una VPC predeterminada, debe especificar la subred mediante el campo subnetId al configurar elrecurso. Si tiene una VPC predeterminada y no especifica subnetId, lanzamos el recurso en la subredpredeterminada de la VPC predeterminada.

Ejemplo de EmrClusterEl siguiente objeto de ejemplo lanza un clúster de Amazon EMR en una VPC no predeterminada.

{ "id" : "MyEmrCluster", "type" : "EmrCluster", "keyPair" : "my-key-pair", "masterInstanceType" : "m1.xlarge", "coreInstanceType" : "m1.small", "coreInstanceCount" : "10", "taskInstanceType" : "m1.small", "taskInstanceCount": "10", "subnetId": "subnet-12345678"}

Para obtener más información, consulte EmrCluster (p. 242).

Ejemplo de Ec2ResourceEl siguiente objeto de ejemplo lanza una instancia EC2 en una VPC no predeterminada. Tenga en cuentaque la especificación de los grupos de seguridad para una instancia en una VPC no predeterminada sedebe hacer mediante sus ID, no sus nombres.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "role" : "test-role", "resourceRole" : "test-role", "instanceType" : "m1.medium", "securityGroupIds" : "sg-12345678", "subnetId": "subnet-1a2b3c4d", "associatePublicIpAddress": "true", "keyPair" : "my-key-pair"}

Para obtener más información, consulte Ec2Resource (p. 235).

Versión de API 2012-10-2963

Page 71: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresUso de instancias de spot en una canalización

Uso de instancias de spot de Amazon EC2 en unacanalización

Las canalizaciones pueden utilizar instancias de spot de Amazon EC2 para los nodos de tareas en susrecursos del clúster de Amazon EMR. De forma predeterminada, las canalizaciones utilizan instanciasAmazon EC2 bajo demanda. Además, puede utilizar las instancias de spot. Las instancias de spotle permiten usar instancias Amazon EC2 libres y ejecutarlas. El modelo de precios de instancias despot complementa los modelos de precios de instancias reservadas y bajo demanda, proporcionandoposiblemente la opción más rentable para obtener capacidad de cómputo, dependiendo de su aplicación.Para obtener más información, consulte Instancias de spot de Amazon EC2 en la página del productoAmazon EC2.

Para utilizar instancias de spot en la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. Abra la canalización en Architect.3. En el panel Resources, vaya al clúster de EMR. En Add an optional field, seleccione Task Instance Bid

Price. Establezca Task Instance Bid Price en el precio máximo para una instancia de spot por hora.Esta es la máxima cantidad en dólares que pagará y es un valor decimal entre 0 y 20,00 (no incluidos).

Para obtener más información, consulte EmrCluster (p. 242).

Uso de una canalización con recursos en variasregiones

De forma predeterminada, los recursos Ec2Resource y EmrCluster se ejecutan en la misma región queAWS Data Pipeline, pero AWS Data Pipeline dispone de la capacidad de organizar flujos de datos entrevarias regiones, tales como la ejecución de recursos de una región que consolide datos de entrada de otraregión. Al permitir que los recursos se ejecuten una región determinada, también dispone de flexibilidadpara coubicar los recursos con sus conjuntos de datos dependientes y maximizar el rendimiento,reduciendo las latencias y evitando cargos por transferencia de datos entre regiones. Puede configurarrecursos para ejecutarlos en una región diferente de AWS Data Pipeline mediante el campo region deEc2Resource y EmrCluster.

El siguiente archivo JSON de canalización de ejemplo muestra cómo ejecutar un recurso EmrCluster enla región Europa (Irlanda), suponiendo que exista en la misma región una gran cantidad de datos para elclúster en el que se va a trabajar. En este ejemplo, la única diferencia con una canalización típica es que elvalor del campo region de EmrCluster está establecido en eu-west-1.

{ "objects": [ { "id": "Hourly", "type": "Schedule", "startDateTime": "2014-11-19T07:48:00", "endDateTime": "2014-11-21T07:48:00", "period": "1 hours" }, { "id": "MyCluster", "type": "EmrCluster",

Versión de API 2012-10-2964

Page 72: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresUso de recursos en varias regiones

"masterInstanceType": "m3.medium", "region": "eu-west-1", "schedule": { "ref": "Hourly" } }, { "id": "MyEmrActivity", "type": "EmrActivity", "schedule": { "ref": "Hourly" }, "runsOn": { "ref": "MyCluster" }, "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output,s3://eu-west-1-bucket/wordcount/output/#{@scheduledStartTime},-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate" } ]}

En la tabla siguiente se muestran las regiones que puede elegir y los códigos de región asociados quedebe utilizar en el campo region.

Note

La siguiente lista incluye regiones en las que AWS Data Pipeline puede organizar flujos de trabajoy lanzar recursos de Amazon EMR o Amazon EC2. Es posible que AWS Data Pipeline no seacompatible en estas regiones. Para obtener más información sobre las regiones en las que seadmite AWS Data Pipeline, consulte Regiones y puntos de enlace de AWS.

Nombre de la región Código de región

US East (N. Virginia) us-east-1

EE.UU. Este (Ohio) us-east-2

EE.UU. Oeste (Norte de California) us-west-1

EE.UU. Oeste (Oregón) us-west-2

Canadá (Central) ca-central-1

Europa (Irlanda) eu-west-1

Europa (Londres) eu-west-2

Europa (Fráncfort) eu-central-1

Asia Pacífico (Singapur) ap-southeast-1

Asia Pacífico (Sídney) ap-southeast-2

Asia Pacífico (Mumbai) ap-south-1

Asia Pacífico (Tokio) ap-northeast-1

Asia Pacífico (Seúl) ap-northeast-2

América del Sur (São Paulo) sa-east-1

Versión de API 2012-10-2965

Page 73: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresErrores en cascada y repeticiones de ejecuciones

Errores en cascada y repeticiones de ejecucionesAWS Data Pipeline permite configurar la manera en la que se comportan los objetos de canalizacióncuando una dependencia produce un error o un usuario la cancela. Puede asegurarse de que loserrores se propaguen en cascada a otros objetos de canalización (consumidores), para evitar esperasindefinidas. Todas las actividades, nodos de datos y condiciones previas tiene un campo llamadofailureAndRerunMode con un valor predeterminado de none. Para habilitar los errores en cascada,establezca el campo failureAndRerunMode en cascade.

Cuando este campo está habilitado, se producen errores en cascada si un objeto de canalización estábloqueado en el estado WAITING_ON_DEPENDENCIES y las dependencias han producido un error sinningún comando pendiente. Durante un error en cascada, se producen los eventos siguientes:

• Cuando un objeto produce un error, sus consumidores se establecen en CASCADE_FAILED y lascondiciones previas del objeto original y de sus consumidores se establecen en CANCELED.

• Los objetos cuyo estado sea ya FINISHED, FAILED o CANCELED no se tienen en cuenta.

El error en cascada no funciona en dependencias de objetos con errores (ascendentes) excepto paracondiciones previas asociadas con el objeto con errores original. Los objetos de canalización afectados porun error en cascada pueden disparar reintentos o acciones posteriores tales como onFail.

Los efectos detallados de un error en cascada dependen del tipo de objeto.

ActividadesUna actividad cambia a CASCADE_FAILED si cualquiera de sus dependencias produce un error y,posteriormente, desencadena un error en cascada en los consumidores de la actividad. Si se produce unerror en un recurso del que depende una actividad, la actividad adopta el estado CANCELED y todos susconsumidores cambian a CASCADE_FAILED.

Nodos de datos y condiciones previasSi se configura un nodo de datos como salida de una actividad que produce un error, el nodo de datoscambia al estado CASCADE_FAILED. El error de un nodo de datos se propaga a las condiciones previasasociadas, que cambian al estado CANCELED.

RecursosSi los objetos que dependen de un recurso se encuentran en el estado FAILED y el propio recurso está enel estado WAITING_ON_DEPENDENCIES, el recurso cambia al estado FINISHED.

Volver a ejecutar objetos con errores en cascadaDe forma predeterminada, volver a ejecutar cualquier actividad o nodo de datos solo vuelve a ejecutar elrecurso asociado. Sin embargo, ajustar el campo failureAndRerunMode en cascade en un objeto decanalización permite volver a ejecutar un comando en un objeto de destino para propagarlo a todos losconsumidores, en las siguientes condiciones:

• Los consumidores del objeto de destino están en el estado CASCADE_FAILED.• Las dependencias del objeto de destino no tienen comandos pendientes de volver a ejecutarse.• Las dependencias del objeto de destino no están en el estado FAILED, CASCADE_FAILED niCANCELED.

Versión de API 2012-10-2966

Page 74: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresError en cascada y reposiciones

Si trata de volver a ejecutar un objeto CASCADE_FAILED y cualquiera de sus dependencias está en estadoFAILED, CASCADE_FAILED o CANCELED, la nueva ejecución producirá un error y devolverá el objeto alestado CASCADE_FAILED. Para volver a ejecutar correctamente el objeto que ha producido un error, debeseguir el error en sentido ascendente a lo largo de la cadena de dependencia para encontrar el origen delerror y volver a ejecutar ese objeto en su lugar. Cuando se emite un comando de nueva ejecución en unrecurso, también se intenta volver a ejecutar los objetos que dependen de él.

Error en cascada y reposicionesSi habilita el error en cascada y tiene una canalización que provoca muchas reposiciones, los errores detiempo de ejecución de canalización pueden provocar la creación y eliminación de recursos en rápidasucesión sin realizar ningún trabajo útil. AWS Data Pipeline trata de alertarle sobre esta situación conel siguiente mensaje de advertencia cuando se guarda una canalización: Pipeline_object_namehas 'failureAndRerunMode' field set to 'cascade' and you are about to create abackfill with scheduleStartTime start_time. This can result in rapid creationof pipeline objects in case of failures. Esto se debe a que un error en cascada puedeestablecer rápidamente las actividades en sentido descendente como CASCADE_FAILED y cerrar clústeresde EMR y recursos de EC2 que ya no se necesitan. Le recomendamos que pruebe las canalizaciones conintervalos de tiempo cortos para limitar los efectos de esta situación.

Sintaxis de los archivos de definición de lacanalización

Las instrucciones de esta sección son para trabajar manualmente con archivos de definición decanalización mediante la interfaz de línea de comandos (CLI) de AWS Data Pipeline. Se trata de unaalternativa al diseño interactivo de una canalización mediante la consola de AWS Data Pipeline.

Puede crear manualmente archivos de definición de canalización con cualquier editor de texto que permitaguardar archivos con el formato de archivo UTF-8 y enviarlos a través de la interfaz de línea de comandosde AWS Data Pipeline.

AWS Data Pipeline también es compatible con diversas funciones y expresiones complejas de lasdefiniciones de canalización. Para obtener más información, consulte Expresiones y funciones decanalizaciones (p. 136).

Estructura de archivosEl primer paso en la creación de canalizaciones es componer objetos de definición de canalización en unarchivo de definición de canalización. El siguiente ejemplo ilustra la estructura general de un archivo dedefinición de canalización. Este archivo define dos objetos, delimitados por "{" y "}" y separados por unacoma.

En el siguiente ejemplo, el primer objeto define dos pares de nombre-valor, conocidos como campos. Elsegundo objeto define tres campos.

{ "objects" : [ { "name1" : "value1", "name2" : "value2" }, { "name1" : "value3", "name3" : "value4",

Versión de API 2012-10-2967

Page 75: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCampos de canalización

"name4" : "value5" } ]}

Al crear un archivo de definición de canalización, debe seleccionar los tipos de objetos de canalizaciónque necesite, agregarlos al archivo de definición de canalización y, a continuación, agregar los camposcorrespondientes. Para obtener más información acerca de los objetos de canalización, consulteReferencia de objeto de canalización (p. 148).

Por ejemplo, podría crear un objeto de definición de canalización para un nodo de datos de entrada y otropara el nodo de datos de salida. A continuación, cree otro objeto de definición de canalización para unaactividad, como procesar los datos de entrada con Amazon EMR.

Campos de canalizaciónCuando sepa qué tipos de objetos incluir en el archivo de definición de canalización, agregue camposa la definición de cada objeto de canalización. Los nombres de campo se encierran entre comillas yestán separados de los valores de campo por un espacio, un signo de dos puntos y un espacio, como semuestra en el siguiente ejemplo.

"name" : "value"

El valor del campo puede ser una cadena de texto, una referencia a otro objeto, una llamada de función,una expresión o una lista ordenada de cualquiera de los tipos anteriores. Para obtener más informaciónsobre los tipos de datos que se pueden utilizar para los valores de campo, consulte Tipos de datossimples (p. 136). Para obtener más información acerca de las funciones que puede utilizar para evaluarlos valores de campo, consulte Evaluación de expresiones (p. 140).

Los campos están limitados a 2048 caracteres. Los objetos pueden tener un tamaño de 20 KB, lo quesignifica que no se puede agregar muchos campos grandes a un objeto.

Cada objeto de canalización debe contener los siguientes campos: id y type, tal y como se muestraen el siguiente ejemplo. También es posible que se necesiten otros campos, en función del tipo deobjeto. Seleccione un valor para id que tenga sentido para usted y que sea único dentro de la definiciónde la canalización. El valor de type especifica el tipo de objeto. Especifique uno de los tipos deobjeto de definición de canalización compatibles, que aparecen en el tema Referencia de objeto decanalización (p. 148).

{ "id": "MyCopyToS3", "type": "CopyActivity"}

Para obtener más información acerca de los campos obligatorios y opcionales para cada objeto, consultela documentación del objeto.

Para incluir campos de un objeto en otro objeto, utilice el campo parent con una referencia al objeto. Porejemplo, el objeto "B" incluye sus campos, "B1" y "B2", además de los campos de objeto "A", "A1" y "A2".

{ "id" : "A", "A1" : "value", "A2" : "value"},{ "id" : "B",

Versión de API 2012-10-2968

Page 76: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCampos definidos por el usuario

"parent" : {"ref" : "A"}, "B1" : "value", "B2" : "value"}

Puede definir campos comunes en un objeto con el ID "Default". Estos campos se incluyenautomáticamente en todos los objetos del archivo de definición de canalización que no establezcan deforma explícita su campo parent para hacer referencia a otro objeto.

{ "id" : "Default", "onFail" : {"ref" : "FailureNotification"}, "maximumRetries" : "3", "workerGroup" : "myWorkerGroup"}

Campos definidos por el usuarioPuede crear campos personalizados o definidos por el usuario en los componentes de la canalizacióny hacer referencia a los mismos con expresiones. En el siguiente ejemplo se muestra un campopersonalizado denominado myCustomField y my_customFieldReference agregado a un objetoS3DataNode:

{ "id": "S3DataInput", "type": "S3DataNode", "schedule": {"ref": "TheSchedule"}, "filePath": "s3://bucket_name", "myCustomField": "This is a custom value in a custom field.", "my_customFieldReference": {"ref":"AnotherPipelineComponent"} },

Un campo definido por el usuario debe tener un nombre precedido por la palabra "my" en minúsculas,seguida de una letra mayúscula o un guion bajo. Además, un campo definido por el usuario puede ser unvalor de cadena como en el ejemplo myCustomField anterior o una referencia a otro componente comoen el ejemplo my_customFieldReference anterior.

Note

En los campos definidos por el usuario, AWS Data Pipeline solo comprueba si hay referenciasválidas a otros componentes de la canalización, pero no los valores de cadena de los campospersonalizados que usted agregue.

Uso de la APINote

Si no escribe programas que interactúan con AWS Data Pipeline, no es necesario que instaleninguno de los SDK de AWS. Puede crear y ejecutar canalizaciones con la interfaz de línea decomandos o con la consola. Para obtener más información, consulte Configuración de AWS DataPipeline (p. 15)

La forma más sencilla de escribir aplicaciones que interactúen con AWS Data Pipeline o de implementarun Task Runner personalizado es usar uno de los SDK de AWS. Los SDK de AWS proporcionanfuncionalidad que simplifica la llamada a las API del servicio web desde su entorno de programaciónpreferido. Para obtener más información, consulte Instalar el SDK de AWS (p. 70).

Versión de API 2012-10-2969

Page 77: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInstalar el SDK de AWS

Instalar el SDK de AWSLos SDK de AWS ofrecen funciones que encapsulan la API y se encargan de muchos de los detalles de laconexión, tales como el cálculo de firmas, el control de reintentos de solicitud y el control de errores. LosSDK también contienen código de ejemplo, tutoriales y otros recursos para ayudarle a empezar a escribiraplicaciones que llaman a AWS. Llamar a las funciones contenedoras en un SDK puede simplificar engran medida el proceso de escribir una aplicación de AWS. Para obtener más información sobre cómodescargar y usar los SDK de AWS, vaya a Código de muestra y bibliotecas.

La compatibilidad con AWS Data Pipeline está disponible en los SDK para las siguientes plataformas:

• AWS SDK para Java• AWS SDK para Node.js• AWS SDK para PHP• AWS SDK para Python (Boto)• AWS SDK para Ruby• AWS SDK para .NET

Realización de una solicitud HTTP a AWS DataPipelinePara obtener una descripción completa de los objetos de programación de AWS Data Pipeline, consulte laReferencia de la API de AWS Data Pipeline.

Si no usa ninguno de los SDK de AWS, puede realizar operaciones de AWS Data Pipeline sobre HTTPmediante el método de solicitud POST. El método POST requiere que especifique la operación en elencabezado de la solicitud y proporcione los datos para la operación en formato JSON en el cuerpo de lasolicitud.

Contenido de los encabezados HTTPAWS Data Pipeline requiere que figure la siguiente información en el encabezado de una solicitud HTTP:

• host El punto de enlace de AWS Data Pipeline.

Para obtener información sobre los puntos de enlace, consulte Regiones y puntos de conexión.• x-amz-date Debe proporcionar la marca temporal que figura en el encabezado Date de HTTP o en

el encabezado x-amz-date de AWS. (Algunas bibliotecas de cliente HTTP no permiten configurar elencabezado Date). Cuando hay un encabezado x-amz-date presente, el sistema hace caso omiso decualquier encabezado Date durante la autenticación de la solicitud.

La fecha debe especificarse en uno de los tres formatos siguientes, como se especifica en HTTP/1.1RFC:• Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, actualizado por RFC 1123)• Sunday, 06-Nov-94 08:49:37 GMT (RFC 850, obsoleto en RFC 1036)• Sun Nov 6 08:49:37 1994 (formato asctime() de ANSI C)

• Authorization El conjunto de parámetros de autorización que AWS usa para garantizar la validez yautenticidad de la solicitud. Para obtener más información acerca de la creación de este encabezado,vaya a Proceso de firma Signature Version 4.

• x-amz-target El servicio de destino de la solicitud y la operación de los datos, en el formato:<<serviceName>>_<<API version>>.<<operationName>>

Versión de API 2012-10-2970

Page 78: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRealización de una solicitud HTTP a AWS Data Pipeline

Por ejemplo, DataPipeline_20121129.ActivatePipeline• content-type Especifica JSON y la versión. Por ejemplo, Content-Type: application/x-amz-json-1.0

A continuación se muestra un ejemplo de un encabezado en una solicitud HTTP para activar unacanalización.

POST / HTTP/1.1host: https://datapipeline.us-east-1.amazonaws.comx-amz-date: Mon, 12 Nov 2012 17:49:52 GMTx-amz-target: DataPipeline_20121129.ActivatePipelineAuthorization: AuthParamsContent-Type: application/x-amz-json-1.1Content-Length: 39Connection: Keep-Alive

Contenido de cuerpo HTTPEl cuerpo de una solicitud HTTP contiene los datos de la operación especificada en el encabezado dela solicitud HTTP. Los datos deben formatearse de acuerdo con el esquema de datos JSON para cadaAPI de AWS Data Pipeline. El esquema de datos JSON de AWS Data Pipeline define los tipos de datosy parámetros (como operadores de comparación y constantes de enumeración) disponibles para cadaoperación.

Formatear el cuerpo de una solicitud HTTPUse el formato de datos JSON para transmitir los valores de los datos y la estructura de datos, de formasimultánea. Los elementos se pueden anidar en otros elementos mediante la notación de corchete. En elsiguiente ejemplo se muestra una solicitud para poner una definición de la canalización compuesta de tresobjetos y sus slots correspondientes.

{ "pipelineId": "df-00627471SOVYZEXAMPLE", "pipelineObjects": [ {"id": "Default", "name": "Default", "slots": [ {"key": "workerGroup", "stringValue": "MyWorkerGroup"} ] }, {"id": "Schedule", "name": "Schedule", "slots": [ {"key": "startDateTime", "stringValue": "2012-09-25T17:00:00"}, {"key": "type", "stringValue": "Schedule"}, {"key": "period", "stringValue": "1 hour"}, {"key": "endDateTime", "stringValue": "2012-09-25T18:00:00"} ] },

Versión de API 2012-10-2971

Page 79: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRealización de una solicitud HTTP a AWS Data Pipeline

{"id": "SayHello", "name": "SayHello", "slots": [ {"key": "type", "stringValue": "ShellCommandActivity"}, {"key": "command", "stringValue": "echo hello"}, {"key": "parent", "refValue": "Default"}, {"key": "schedule", "refValue": "Schedule"} ] } ]}

Gestionar la respuesta HTTP

Estos son algunos encabezados importantes en la respuesta HTTP y cómo debe gestionarlos en suaplicación:

• HTTP/1.1: este encabezado va seguido de un código de estado. Un valor de código de 200 indica eléxito de la operación. Cualquier otro valor indica un error.

• x-amzn-RequestId: este encabezado contiene un ID de solicitud que puede usar si tiene quesolucionar los problemas de una solicitud con AWS Data Pipeline. Un ejemplo de un ID de solicitud esK2QH8DNOU907N97FNA2GDLL8OBVV4KQNSO5AEMVJF66Q9ASUAAJG.

• x-amz-crc32: AWS Data Pipeline calcula una suma de comprobación CRC32 de la carga de HTTP ydevuelve esta suma de comprobación en el encabezado x-amz-crc32. Recomendamos que calcule supropia suma de comprobación CRC32 en el lado del cliente y la compare con el encabezado x-amz-crc32; si las sumas de comprobación no coinciden, podría indicar que los datos sufrieron daños entránsito. Si esto ocurre, debería volver a realizar la solicitud.

No es necesario que los usuarios de SDK de AWS realicen manualmente esta verificación, ya que losSDK calculan la suma de comprobación de cada respuesta desde Amazon DynamoDB y reintentanautomáticamente si se detecta una discordancia.

Ejemplo de solicitud y respuesta JSON de AWS Data Pipeline

En los siguientes ejemplos se muestra una solicitud para crear una nueva canalización. A continuación,se muestra la respuesta de AWS Data Pipeline, incluido el identificador de canalización de la canalizaciónrecién creada.

Solicitud HTTP POST

POST / HTTP/1.1host: https://datapipeline.us-east-1.amazonaws.comx-amz-date: Mon, 12 Nov 2012 17:49:52 GMTx-amz-target: DataPipeline_20121129.CreatePipelineAuthorization: AuthParamsContent-Type: application/x-amz-json-1.1Content-Length: 50Connection: Keep-Alive

{"name": "MyPipeline", "uniqueId": "12345ABCDEFG"}

Versión de API 2012-10-2972

Page 80: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRealización de una solicitud HTTP a AWS Data Pipeline

Respuesta de AWS Data Pipeline

HTTP/1.1 200 x-amzn-RequestId: b16911ce-0774-11e2-af6f-6bc7a6be60d9x-amz-crc32: 2215946753Content-Type: application/x-amz-json-1.0Content-Length: 2Date: Mon, 16 Jan 2012 17:50:53 GMT

{"pipelineId": "df-00627471SOVYZEXAMPLE"}

Versión de API 2012-10-2973

Page 81: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPolíticas de IAM para AWS Data Pipeline

Control del acceso a canalizaciones yrecursos

Las credenciales de seguridad le identifican en los servicios de AWS y le conceden el uso ilimitado desus recursos de AWS, como sus canalizaciones. Puede utilizar características de AWS Data Pipeline yAWS Identity and Access Management (IAM) para permitir que AWS Data Pipeline y otros usuarios tenganacceso a sus recursos de AWS Data Pipeline sin necesidad de compartir sus credenciales de seguridad.

Las organizaciones pueden compartir el acceso a canalizaciones, de modo que las personas de esaorganización puedan desarrollarlas y mantenerlas en equipo. Sin embargo, sería necesario hacer losiguiente, por ejemplo:

• Controlar qué usuarios de IAM pueden acceder a canalizaciones específicas.• Proteger una canalización de producción para que no se modifique por error.• Permitir que un auditor tenga acceso de solo lectura a las canalizaciones, pero impedirle realizar

cambios.

AWS Data Pipeline se integra con AWS Identity and Access Management (IAM), que ofrece una ampliavariedad de características:

• Crear usuarios y grupos en su cuenta de AWS.• Compartir fácilmente sus recursos de AWS entre los usuarios de su cuenta de AWS.• Asignar credenciales de seguridad exclusivas a los usuarios.• Controlar el acceso de cada usuario a los servicios y recursos.• Obtener una sola factura para todos los usuarios de la cuenta de AWS.

Al utilizar IAM con AWS Data Pipeline, puede controlar si los usuarios de su organización pueden realizaruna tarea usando acciones específicas de la API y si pueden utilizar recursos específicos de AWS. Puedeutilizar políticas de IAM basadas en las etiquetas de las canalizaciones y los grupos de procesos de trabajopara compartir sus canalizaciones con otros usuarios y controlar el nivel de acceso que tienen.

Contenido• Políticas de IAM para AWS Data Pipeline (p. 74)• Ejemplos de políticas para AWS Data Pipeline (p. 78)• Roles de IAM para AWS Data Pipeline (p. 80)

Políticas de IAM para AWS Data PipelineDe forma predeterminada, los usuarios de IAM no tienen permiso para crear ni modificar recursos deAWS. Para permitir a los usuarios de IAM crear o modificar recursos y realizar tareas, debe crear políticasde IAM que les concedan permisos para usar los recursos y las acciones de la API que necesitarán y, acontinuación, asociar las políticas a los usuarios o grupos de IAM que requieran dichos permisos.

Cuando asocia una política a un usuario o grupo de usuarios, les concede o deniega el permiso pararealizar las tareas especificadas en los recursos indicados. Para obtener más información general sobrelas políticas de IAM, consulte el tema sobre permisos y políticas en la Guía del usuario de IAM. Paraobtener más información sobre cómo crear y administrar políticas personalizadas de IAM, consulteAdministración de políticas de IAM.

Versión de API 2012-10-2974

Page 82: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSintaxis de la política

Contenido• Sintaxis de la política (p. 75)• Control del acceso a canalizaciones mediante etiquetas (p. 75)• Control del acceso a canalizaciones mediante grupos de procesos de trabajo (p. 77)

Sintaxis de la políticaUna política de IAM es un documento JSON que contiene una o varias instrucciones. Cada instruccióntiene la estructura siguiente:

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"*", "Condition":{ "condition":{ "key":"value" } } } ]}

Una instrucción de política se compone de los siguientes elementos:

• Effect: el valor de effect puede ser Allow o Deny. De forma predeterminada, los usuarios de IAM notienen permiso para utilizar los recursos y las acciones de la API, por lo que se deniegan todas lassolicitudes. Si se concede un permiso explícito se anula el valor predeterminado. Una denegaciónexplícita invalida cualquier permiso concedido.

• Action: el valor de action es la acción de la API para la que concede o deniega permisos. Para obteneruna lista de acciones de AWS Data Pipeline, consulte el tema sobre acciones en la AWS Data PipelineAPI Reference.

• Resource: el recurso al que afecta la acción. El único valor válido aquí es "*".• Condition: las condiciones son opcionales. Se pueden usar para controlar cuándo entrará en vigor la

política.

AWS Data Pipeline implementa las claves de contexto generales de AWS (consulte las clavesdisponibles para las condiciones), además de las siguientes claves específicas del servicio.• datapipeline:PipelineCreator: para conceder el acceso al usuario que ha creado la

canalización. Por ejemplo, consulte Grant the pipeline owner full access (p. 79).• datapipeline:Tag: para conceder acceso basado en el etiquetado de la canalización. Para obtener

más información, consulte Control del acceso a canalizaciones mediante etiquetas (p. 75).• datapipeline:workerGroup: para conceder acceso basado en el nombre del grupo de procesos

de trabajo. Para obtener más información, consulte Control del acceso a canalizaciones mediantegrupos de procesos de trabajo (p. 77).

Control del acceso a canalizaciones medianteetiquetasPuede crear políticas de IAM que hagan referencia a las etiquetas de la canalización. Esto le permiteutilizar el etiquetado de canalización para hacer lo siguiente:

Versión de API 2012-10-2975

Page 83: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresControl del acceso a canalizaciones mediante etiquetas

• Conceder acceso de solo lectura a una canalización.• Conceder acceso de lectura/escritura a una canalización.• Bloquear el acceso a una canalización.

Por ejemplo, suponga que un administrador tiene dos entornos de canalización, producción y desarrollo,además de un grupo de IAM para cada entorno. Para las canalizaciones del entorno de producción,el administrador concede acceso de lectura/escritura a los usuarios del grupo de IAM de producción,pero acceso de solo lectura a los usuarios del grupo de IAM de desarrolladores. Para las canalizacionesdel entorno de desarrollo, el administrador concede acceso de lectura/escritura a los grupos de IAM deproducción y desarrolladores.

Para conseguir este escenario, el administrador etiqueta las canalizaciones de producción con la etiqueta"environment=production" y asocia la siguiente política al grupo de IAM de desarrolladores. La primerainstrucción concede acceso de solo lectura a todas las canalizaciones. La segunda instrucción concedeacceso de lectura/escritura a las canalizaciones que no tienen la etiqueta "environment=production".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:ListPipelines", "datapipeline:GetPipelineDefinition", "datapipeline:QueryObjects" ], "Resource": "*" }, { "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*", "Condition": { "StringNotEquals": {"datapipeline:Tag/environment": "production"} } } ]}

Además, el administrador asocia la siguiente política al grupo de IAM de producción. Esta instrucciónconcede acceso completo a todas las canalizaciones.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*" } ]}

Para ver más ejemplos, consulte Grant users read-only access based on a tag (p. 78) y Grant users fullaccess based on a tag (p. 79).

Versión de API 2012-10-2976

Page 84: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresControl del acceso a canalizaciones

mediante grupos de procesos de trabajo

Control del acceso a canalizaciones mediante gruposde procesos de trabajoPuede crear políticas de IAM que hagan referencia a los nombres de los grupos de procesos de trabajo.

Por ejemplo, suponga que un administrador tiene dos entornos de canalización, producción y desarrollo,además de un grupo de IAM para cada entorno. El administrador tiene tres servidores de bases de datoscon aplicaciones de ejecución de tareas configuradas para los entornos de producción, preproducción ydesarrollo, respectivamente. El administrador quiere asegurarse de que los usuarios del grupo de IAMde producción pueden crear canalizaciones que envíen tareas a los recursos de producción y que losusuarios del grupo de IAM de desarrollo pueden crear canalizaciones que envíen tareas a los recursos depreproducción y desarrollo.

Para conseguir este escenario, el administrador instala la aplicación de ejecución de tareas en losrecursos de producción con credenciales de producción y establece workerGroup en "prodresource".Además, el administrador instala la aplicación de ejecución de tareas en los recursos de desarrollocon credenciales de desarrollo y establece workerGroup en "pre-production" y "development". Eladministrador asocia la siguiente política al grupo de IAM de desarrolladores para bloquear el acceso a losrecursos "prodresource". La primera instrucción concede acceso de solo lectura a todas las canalizaciones.La segunda instrucción concede acceso de lectura/escritura a las canalizaciones cuando el nombre delgrupo de procesos de trabajo tiene el prefijo "dev" o "pre-prod".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:ListPipelines", "datapipeline:GetPipelineDefinition", "datapipeline:QueryObjects" ], "Resource": "*" }, { "Action": "datapipeline:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "datapipeline:workerGroup": ["dev*","pre-prod*"] } } } ]}

Asimismo, el administrador asocia la siguiente política al grupo de IAM de producción para concederacceso a los recursos "prodresource". La primera instrucción concede acceso de solo lectura a todas lascanalizaciones. La segunda instrucción concede acceso de lectura/escritura cuando el nombre del grupode procesos de trabajo tiene el prefijo "prod".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow",

Versión de API 2012-10-2977

Page 85: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjemplos de políticas para AWS Data Pipeline

"Action": [ "datapipeline:Describe*", "datapipeline:ListPipelines", "datapipeline:GetPipelineDefinition", "datapipeline:QueryObjects" ], "Resource": "*" }, { "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*", "Condition": { "StringLike": {"datapipeline:workerGroup": "prodresource*"} } } ]}

Ejemplos de políticas para AWS Data PipelineLos siguientes ejemplos muestran cómo conceder a los usuarios acceso completo o restringido acanalizaciones.

Contenido• Ejemplo 1: Otorgar a los usuarios acceso de solo lectura basado en una etiqueta (p. 78)• Ejemplo 2: Otorgar a los usuarios acceso completo basado en una etiqueta (p. 79)• Ejemplo 3: Otorgar acceso completo al propietario de la canalización (p. 79)• Ejemplo 4: Otorgar acceso a los usuarios a la consola de AWS Data Pipeline (p. 80)

Ejemplo 1: Otorgar a los usuarios acceso de sololectura basado en una etiquetaLa siguiente política permite a los usuarios utilizar las acciones de la API de AWS Data Pipeline de sololectura, pero solo con las canalizaciones que tengan la etiqueta "environment=production".

La acción de la API ListPipelines no es compatible con la autorización basada en etiquetas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:Describe*", "datapipeline:GetPipelineDefinition", "datapipeline:ValidatePipelineDefinition", "datapipeline:QueryObjects" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "datapipeline:Tag/environment": "production"

Versión de API 2012-10-2978

Page 86: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjemplo 2: Otorgar a los usuarios

acceso completo basado en una etiqueta

} } } ]}

Ejemplo 2: Otorgar a los usuarios acceso completobasado en una etiquetaLa siguiente política permite a los usuarios utilizar todas las acciones de la API de AWS Data Pipeline, aexcepción de ListPipelines, pero solo con canalizaciones que tengan la etiqueta "environment=test".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "datapipeline:Tag/environment": "test" } } } ]}

Ejemplo 3: Otorgar acceso completo al propietario dela canalizaciónLa siguiente política permite a los usuarios utilizar todas las acciones de la API de AWS Data Pipeline, perosolo con sus propias canalizaciones.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "datapipeline:*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "datapipeline:PipelineCreator": "${aws:userid}" } } } ]}

Versión de API 2012-10-2979

Page 87: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjemplo 4: Otorgar acceso a los usuarios

a la consola de AWS Data Pipeline

Ejemplo 4: Otorgar acceso a los usuarios a la consolade AWS Data PipelineLa siguiente política permite a los usuarios crear y administrar una canalización mediante la consola deAWS Data Pipeline.

Esta política incluye la acción para los permisos PassRole para recursos específicos vinculados alroleARN que necesita AWS Data Pipeline. Para obtener más información sobre el permiso PassRolebasado en identidad (IAM), consulte la entrada de blog Granting Permission to Launch EC2 Instances withIAM Roles (PassRole Permission).

{"Version": "2012-10-17","Statement": [{"Action": ["cloudwatch:*","datapipeline:*","dynamodb:DescribeTable","elasticmapreduce:AddJobFlowSteps","elasticmapreduce:ListInstance*","iam:AddRoleToInstanceProfile","iam:CreateInstanceProfile","iam:GetInstanceProfile","iam:GetRole","iam:GetRolePolicy","iam:ListInstanceProfiles","iam:ListInstanceProfilesForRole","iam:ListRoles","rds:DescribeDBInstances","rds:DescribeDBSecurityGroups","redshift:DescribeClusters","redshift:DescribeClusterSecurityGroups","s3:List*","sns:ListTopics"],"Effect": "Allow","Resource": ["*"]},{"Action": "iam:PassRole","Effect": "Allow","Resource": ["arn:aws:iam::*:role/DataPipelineDefaultResourceRole","arn:aws:iam::*:role/DataPipelineDefaultRole"]}]}

Roles de IAM para AWS Data PipelineAWS Data Pipeline requiere roles de IAM para determinar las acciones que pueden realizar lascanalizaciones y los recursos a los que pueden tener acceso. Además, cuando una canalización crea unrecurso, como una instancia EC2 o un clúster de EMR, los roles de IAM determinan qué acciones puedenrealizar las aplicaciones y a qué recursos pueden tener acceso.

Versión de API 2012-10-2980

Page 88: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresActualización de roles de IAM

existentes para AWS Data Pipeline

La consola de AWS Data Pipeline crea los siguientes roles automáticamente:

• DataPipelineDefaultRole concede a AWS Data Pipeline acceso a los recursos de AWS• DataPipelineDefaultResourceRole: concede acceso a sus aplicaciones a los recursos de AWS.

Si utiliza una CLI o una API y no ha utilizado la consola de AWS Data Pipeline para crear una canalizacióncon anterioridad, debe crear estos roles manualmente utilizando AWS Identity and Access Management(IAM). Para obtener más información, consulte Creación de los roles de IAM necesarios (solo para CLI oAPI) (p. 15).

De forma alternativa, puede crear roles personalizados. Si desea ver un ejemplo de cómo especificar estosroles para un objeto EmrCluster, consulte Specify custom IAM roles (p. 245).

Actualización de roles de IAM existentes para AWSData PipelineSi los roles DataPipelineDefaultRole y DataPipelineDefaultResourceRole se han creado utilizandolas políticas en línea en lugar de políticas administradas, el propietario de la cuenta de AWS puedeactualizarlas para usar políticas administradas. Después de actualizar los roles para utilizar una políticaadministrada de AWS, recibirán automáticamente las actualizaciones futuras.

Utilice el siguiente procedimiento para actualizar los roles DataPipelineDefaultRole yDataPipelineDefaultResourceRole.

Para actualizar sus roles de IAM mediante políticas administradas

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Actualice el rol DataPipelineDefaultRole de la siguiente forma:

a. En el panel de navegación, haga clic en Roles y, luego, haga clic en la fila del rolDataPipelineDefaultRole.

b. En Permissions, haga clic en Remove Policy para la política en línea. Cuando se le soliciteconfirmación, haga clic en Remove.

c. En Permissions, haga clic en Attach Policy.d. En la página Attach Policy, haga clic en la casilla situada junto a la política AWSDataPipelineRole

y después haga clic en Attach Policy.3. Actualice el rol DataPipelineDefaultResourceRole de la siguiente forma:

a. En el panel de navegación, haga clic en Roles y, luego, haga clic en la fila del rolDataPipelineDefaultResourceRole.

b. En Permissions, haga clic en Remove Policy para la política en línea. Cuando se le soliciteconfirmación, haga clic en Remove.

c. En Permissions, haga clic en Attach Policy.d. En la página Attach Policy, haga clic en la casilla situada junto a la política

AmazonEC2RoleforDataPipelineRole y después haga clic en Attach Policy.

Si prefiere mantener la política en línea usted mismo, puede hacerlo como se indica a continuación.

Para actualizar sus roles de IAM mediante políticas en línea

1. Actualice DataPipelineDefaultRole para usar la siguiente política:

{

Versión de API 2012-10-2981

Page 89: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresActualización de roles de IAM

existentes para AWS Data Pipeline

"Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:DescribeObjects", "datapipeline:EvaluateExpression", "dynamodb:BatchGetItem", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateTable", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteTags", "ec2:Describe*", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:AuthorizeSecurityGroupEgress", "ec2:DeleteSecurityGroup", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DetachNetworkInterface", "elasticmapreduce:*", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListInstanceProfiles", "iam:PassRole", "rds:DescribeDBInstances", "rds:DescribeDBSecurityGroups", "redshift:DescribeClusters", "redshift:DescribeClusterSecurityGroups", "s3:CreateBucket", "s3:DeleteObject", "s3:Get*", "s3:List*", "s3:Put*", "sdb:BatchPutAttributes", "sdb:Select*", "sns:GetTopicAttributes", "sns:ListTopics", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:Delete*", "sqs:GetQueue*", "sqs:PurgeQueue", "sqs:ReceiveMessage" ], "Resource": ["*"] }, {

Versión de API 2012-10-2982

Page 90: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresActualización de roles de IAM

existentes para AWS Data Pipeline

"Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": ["elasticmapreduce.amazonaws.com","spot.amazonaws.com"] } } }] }

2. Actualice DataPipelineDefaultRole para usar la siguiente lista de entidades de confianza:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "elasticmapreduce.amazonaws.com", "datapipeline.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

3. Actualice DataPipelineDefaultResourceRole para usar la siguiente política:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:Describe*", "elasticmapreduce:ListInstance*", "rds:Describe*", "redshift:DescribeClusters", "redshift:DescribeClusterSecurityGroups", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": ["*"] }]}

4. Actualice DataPipelineDefaultResourceRole para usar la siguiente lista de entidades deconfianza:

{ "Version": "2012-10-17", "Statement": [ {

Versión de API 2012-10-2983

Page 91: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCambio de roles en canalizaciones existentes

"Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

Cambio de roles en canalizaciones existentesSi tiene un rol personalizado y desea cambiar los roles de las canalizaciones existentes editando lacanalización en la consola de AWS Data Pipeline:

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. Seleccione la canalización que desea editar haciendo clic en el ID de canalización.3. Elija Edit Pipeline.4. Elija el menú desplegable Others y rellene los campos Role y Resource Role de la manera

correspondiente.

Versión de API 2012-10-2984

Page 92: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresProcesar datos utilizando Amazon

EMR con Hadoop Streaming

TutorialesLos siguientes tutoriales le guiarán paso a paso por el proceso de creación y uso de canalizaciones conAWS Data Pipeline.

Tutoriales• Procesar datos utilizando Amazon EMR con Hadoop Streaming (p. 85)• Importar y exportar datos de DynamoDB mediante AWS Data Pipeline (p. 92)• Copiar datos CSV entre buckets de Amazon S3 mediante AWS Data Pipeline (p. 102)• Exportar datos de MySQL a Amazon S3 utilizando AWS Data Pipeline (p. 113)• Copiar datos en Amazon Redshift con AWS Data Pipeline (p. 124)

Procesar datos utilizando Amazon EMR conHadoop Streaming

Puede utilizar AWS Data Pipeline para administrar clústeres de Amazon EMR. Con AWS Data Pipeline,puede especificar las condiciones previas que se deben cumplir antes de lanzar el clúster (por ejemplo,garantizar que los datos de hoy se hayan cargado en Amazon S3), una programación para ejecutarrepetidamente el clúster y la configuración de clúster que se debe utilizar. En el siguiente tutorial sedescriben los pasos que ha de seguir para lanzar un clúster sencillo.

En este tutorial, creará una canalización para que un clúster sencillo de Amazon EMR ejecute un trabajode Hadoop Streaming preexistente proporcionado por Amazon EMR y envíe una notificación de AmazonSNS una vez que la tarea se complete correctamente. Para esta tarea, puede utilizar el recurso del clústerde Amazon EMR proporcionado por AWS Data Pipeline. La aplicación de ejemplo se denomina WordCounty también se puede ejecutar manualmente desde la consola de Amazon EMR. Tenga en cuenta que losclústeres generados por AWS Data Pipeline en su nombre se muestran en la consola de Amazon EMR yse facturan a su cuenta de AWS.

Objetos de canalización

La canalización usa los siguientes objetos:

EmrActivity (p. 180)

Define el trabajo que se debe realizar en la canalización (ejecutar un trabajo de Hadoop Streamingpreexistente proporcionado por Amazon EMR).

EmrCluster (p. 242)

Recurso que AWS Data Pipeline utiliza para llevar a cabo esta actividad.

Un clúster es un conjunto de instancias Amazon EC2. AWS Data Pipeline inicia el clúster y, acontinuación, lo termina una vez finalizada la tarea.

Programación (p. 297)

Fecha de inicio, hora y duración de esta actividad. De forma opcional, puede especificar la fecha yhora de finalización.

SnsAlarm (p. 294)

Envía una notificación de Amazon SNS al tema especificado una vez que la tarea finalizacorrectamente.

Versión de API 2012-10-2985

Page 93: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAntes de comenzar

Contenido• Antes de comenzar (p. 86)• Lanzar un clúster con la consola de AWS Data Pipeline (p. 86)• Lanzar un clúster mediante la línea de comando (p. 89)

Antes de comenzarAsegúrese de haber completado los pasos siguientes.

• Completar las tareas en Configuración de AWS Data Pipeline (p. 15).• (Opcional) Configurar una VPC para el clúster y un grupo de seguridad para la VPC. Para obtener más

información, consulte Lanzamiento de recursos para su canalización en una VPC (p. 60).• Crear un tema para enviar notificaciones por correo electrónico y anotar el nombre de recurso de

Amazon (ARN) del tema. Para obtener más información, consulte Creación de un tema en Guía deintroducción de Amazon Simple Notification Service.

Lanzar un clúster con la consola de AWS DataPipelinePuede crear una canalización para lanzar un clúster que analice registros web o realice análisis de datoscientíficos.

Tareas• Crear la canalización (p. 86)• Guardar y validar la canalización (p. 88)• Activar la canalización (p. 89)• Supervisar las ejecuciones de la canalización (p. 89)• (Opcional) Eliminar la canalización (p. 89)

Crear la canalizaciónEn primer lugar, cree la canalización.

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

3. En Name (Nombre), escriba el nombre de la canalización.4. (Opcional) En Description (Descripción), escriba la descripción de la canalización.5. Para Source, seleccione Build using Architect.6. En Schedule (Programación), elija on pipeline activation (activación en la canalización).7. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Versión de API 2012-10-2986

Page 94: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

Si lo prefiere, puede deshabilitar el registro.8. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).9. Haga clic en Edit in Architect.

A continuación, añada una actividad a la definición de canalización. Esto también define el resto de losobjetos que AWS Data Pipeline debe utilizar para realizar esta actividad.

Para configurar la actividad

1. Haga clic en Add activity.2. En el panel Activities:

a. En el campo Name, escriba el nombre de la actividad (por ejemplo, MyEMRActivity).b. En Type, seleccione EmrActivity.c. En Step, escriba:

/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output,s3://example-bucket/wordcount/output/#{@scheduledStartTime},-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate

d. En Add an optional field, seleccione Runs On. Establezca el valor en Create new: EmrCluster.e. En Add an optional field, seleccione On Success. Establezca el valor en Create new: Action.

A continuación, configure el recurso que AWS Data Pipeline utiliza para realizar el trabajo de AmazonEMR.

Para configurar el recurso

1. En el panel derecho, elija Resources.2. En el campo Name (Nombre), escriba el nombre del clúster de Amazon EMR (por ejemplo,

MyEMRCluster).3. Deje Type establecido en EmrCluster.4. [EC2-VPC] (Opcional) En Add an optional field, seleccione Subnet Id. Establezca el valor en el ID de la

subred.5. (Opcional) En Add an optional field, seleccione Enable Debugging. Establezca el valor en true.

Versión de API 2012-10-2987

Page 95: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

Note

Esta opción puede incurrir en costos adicionales debido al almacenamiento de los datosde registro. Utilice esta opción de forma selectiva, como por ejemplo para la creación deprototipos y la resolución de problemas.

6. (Opcional) En el panel derecho, elija Others. Bajo Default, en Add an optional field, seleccionePipeline Log Uri. Establezca el valor en un bucket de Amazon S3 para los registros de Amazon EMR.Por ejemplo, s3://examples-bucket/emrlogs.

Note

Esta opción puede incurrir en costos adicionales debido al almacenamiento de archivosde registro. Utilice esta opción de forma selectiva, como por ejemplo para la creación deprototipos y la resolución de problemas.

A continuación, configure la acción de notificación de Amazon SNS que AWS Data Pipeline realiza una vezque el trabajo de Amazon EMR finaliza correctamente.

Para configurar la acción de notificación

1. En el panel derecho, haga clic en Others.2. En DefaultAction1, haga lo siguiente:

a. Escriba el nombre de la notificación (por ejemplo, MyEMRJobNotice).b. En Type, seleccione SnsAlarm.c. En el campo Subject, escriba la línea de asunto para la notificación.d. En el campo Topic Arn escriba el ARN del tema (consulte Creación de un tema).e. En Message, escriba el contenido del mensaje.f. Deje Role establecido en el valor predeterminado.

Guardar y validar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generaráerrores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Versión de API 2012-10-2988

Page 96: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWSData Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Supervisar las ejecuciones de la canalizaciónDespués de activar la canalización, se abrirá la página Execution details (Detalles de ejecución), dondepuede monitorizar el progreso de la canalización.

Para monitorizar el proceso de las ejecuciones de la canalización

1. Elija Update (Actualizar) o pulse F5 para actualizar el estado mostrado.Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) (Inicio [en UTC])y End (in UTC) (Fin [en UTC]) abarquen el principio y el final de la canalización y, acontinuación, elija Update (Actualizar).

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas. Si ha creado una notificación de SNS, recibirá un mensaje decorreo electrónico para informarle de que esta tarea ha finalizado correctamente.

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

(Opcional) Eliminar la canalizaciónPara que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Lanzar un clúster mediante la línea de comandoSi ejecuta periódicamente un clúster de Amazon EMR para analizar registros de web o realizar análisis dedatos científicos, puede utilizar AWS Data Pipeline para administrar los clústeres de Amazon EMR. ConAWS Data Pipeline, puede especificar las condiciones previas que se deben cumplir antes de que se lance

Versión de API 2012-10-2989

Page 97: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

el clúster (por ejemplo, garantizar que los datos de hoy se hayan cargado en Amazon S3). Este tutorialle mostrará cómo lanzar un clúster, que puede ser un modelo para una canalización sencilla basada enAmazon EMR o como parte de una canalización más compleja.

Requisitos previos

Antes de poder utilizar la CLI; debe llevar a cabo los pasos siguientes:

1. Instale y configure una interfaz de línea de comandos (CLI, Command Line Interface). Para obtenermás información, consulte Acceso a AWS Data Pipeline (p. 3).

2. Asegúrese de que existan los roles de IAM denominados DataPipelineDefaultRole yDataPipelineDefaultResourceRole. La consola de AWS Data Pipeline crea estos rolesautomáticamente. Si no ha usado la consola de AWS Data Pipeline al menos una vez, deberá crearestos roles manualmente. Para obtener más información, consulte Roles de IAM para AWS DataPipeline (p. 80).

Tareas• Creación del archivo de definición de canalización (p. 90)• Actualización y activación de la definición de la canalización (p. 91)• Supervisar las ejecuciones de la canalización (p. 92)

Creación del archivo de definición de canalizaciónEl código siguiente es el archivo de definición de canalización para un clúster sencillo de Amazon EMR queejecuta un trabajo de Hadoop Streaming existente proporcionado por Amazon EMR. Esta aplicación deejemplo se denomina WordCount y también puede ejecutarla desde la consola de Amazon EMR.

Copie este código en un archivo de texto y guárdelo como MyEmrPipelineDefinition.json.Debe sustituir la ubicación del bucket de Amazon S3 por el nombre de un bucket de Amazon S3 de supropiedad. También debe sustituir las fechas de inicio y final. Para lanzar clústeres de forma inmediata,establezca startDateTime en la fecha de un día del pasado y endDateTime en un día del futuro. AWSData Pipeline comenzará entonces a lanzar los clústeres "vencidos" inmediatamente, en un intento desolucionar lo que percibe como un atasco de trabajo. Esta reposición significa que no es necesario esperaruna hora para ver cómo AWS Data Pipeline lanza su primer clúster.

{ "objects": [ { "id": "Hourly", "type": "Schedule", "startDateTime": "2012-11-19T07:48:00", "endDateTime": "2012-11-21T07:48:00", "period": "1 hours" }, { "id": "MyCluster", "type": "EmrCluster", "masterInstanceType": "m1.small", "schedule": { "ref": "Hourly" } }, { "id": "MyEmrActivity", "type": "EmrActivity", "schedule": { "ref": "Hourly" },

Versión de API 2012-10-2990

Page 98: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

"runsOn": { "ref": "MyCluster" }, "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output,s3://myawsbucket/wordcount/output/#{@scheduledStartTime},-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate" } ]}

Esta canalización tiene tres objetos:

• Hourly, que representa el programa del trabajo. Puede establecer un programa como uno de loscampos de una actividad. Cuando lo haga, la actividad se ejecutará de acuerdo con dicho programa o,en este caso, cada hora.

• MyCluster, que representa el conjunto de instancias Amazon EC2 utilizadas para ejecutar el clúster.Puede especificar el tamaño y el número de instancias EC2 que se ejecutarán como el clúster. Si noespecifica el número de instancias, el clúster se lanzará con dos, un nodo principal y un nodo de tarea.Puede especificar una subred en la que lanzar el clúster. Puede añadir configuraciones adicionales alclúster, tales como acciones de arranque para cargar software adicional en la AMI proporcionada porAmazon EMR.

• MyEmrActivity, que representa el cálculo que se procesará con el clúster. Amazon EMR admitevarios tipos de clústeres, entre los que se incluyen Streaming, Cascading y Scripted Hive. El camporunsOn vuelve a hacer referencia a MyCluster y lo utiliza como especificación para sustentar el clúster.

Actualización y activación de la definición de la canalizaciónDebe cargar la definición de la canalización y activar esta última. En los ejemplos de comandos siguientes,sustituya pipeline_name por la etiqueta de su canalización y pipeline_file por la ruta completa delarchivo .json de definición de la canalización.

AWS CLI

Para crear la definición de la canalización y activar esta última, utilice el siguiente comando create-pipeline.Anote el ID de la canalización, pues utilizará este valor con la mayoría de los comandos de la CLI.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Para cargar la definición de la canalización, utilice el siguiente comando put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Si la canalización se valida correctamente, el campo validationErrors estará vacío. Es importanterevisar todas las advertencias.

Para activar la canalización, utilice el siguiente comando activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Puede comprobar si la canalización aparece en la lista de canalizaciones mediante el siguiente comandolist-pipelines.

Versión de API 2012-10-2991

Page 99: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresImportar y exportar datos de DynamoDB

aws datapipeline list-pipelines

Supervisar las ejecuciones de la canalizaciónPuede ver los clústeres que lanza AWS Data Pipeline utilizando la consola de Amazon EMR y puede ver lacarpeta de salida mediante la consola de Amazon S3.

Para comprobar el progreso de los clústeres que lanza AWS Data Pipeline

1. Abra la consola de Amazon EMR.2. El nombre de los clústeres generados por AWS Data Pipeline tiene el formato siguiente: <pipeline-

identifier>_@<emr-cluster-name>_<launch-time>.

3. Cuando finalice una de las ejecuciones, abra la consola de Amazon S3 y compruebe que la carpeta desalida con marca temporal existe y contiene los resultados esperados del clúster.

Importar y exportar datos de DynamoDB medianteAWS Data Pipeline

Estos tutoriales demuestran cómo introducir y extraer datos sin esquema de Amazon DynamoDB con AWSData Pipeline. Complete la primera parte antes de pasar a la segunda parte.

Tutoriales

Versión de API 2012-10-2992

Page 100: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPrimera parte: importar datos en DynamoDB

• Primera parte: importar datos en DynamoDB (p. 93)• Segunda parte: exportar datos desde DynamoDB (p. 97)

Primera parte: importar datos en DynamoDBEn la primera parte de este tutorial, se explica cómo definir un AWS Data Pipeline para recuperar datos deun archivo delimitado por tabulaciones en Amazon S3 y rellenar una tabla de DynamoDB, definir los pasosde transformación y crear un clúster de Amazon EMR para realizar el trabajo.

Tareas• Antes de comenzar (p. 93)• Paso 1: crear la canalización (p. 94)• Paso 2: guardar y validar la canalización (p. 95)• Paso 3: activar la canalización (p. 96)• Paso 4: supervisar las ejecuciones de la canalización (p. 96)• Paso 5: verificar la importación de datos (p. 97)• Paso 6: eliminar la canalización (opcional) (p. 97)

Antes de comenzarSiga los pasos que se describen a continuación:

• Completar las tareas en Configuración de AWS Data Pipeline (p. 15).• (Opcional) Configurar una VPC para el clúster y un grupo de seguridad para la VPC. Para obtener más

información, consulte Lanzamiento de recursos para su canalización en una VPC (p. 60).• Crear un tema y suscribirse para recibir notificaciones de AWS Data Pipeline en relación con el estado

de los componentes de la canalización. Para obtener más información, consulte Creación de un tema enla Guía de introducción a Amazon Simple Notification Service.

• Crear una tabla de DynamoDB para almacenar datos. Para obtener más información, consulte Creaciónde una tabla de DynamoDB (p. 94).

Tenga en cuenta lo siguiente:

• Las importaciones podrían sobrescribir los datos de la tabla DynamoDB. Al importar datos de AmazonS3, estos pueden sobrescribir los elementos de la tabla DynamoDB. Asegúrese de importar losdatos correctos en la tabla apropiada. Tenga cuidado de no configurar por error una canalización deimportación recurrente que podría importar los mismos datos varias veces.

• Las exportaciones podrían sobrescribir los datos del bucket de Amazon S3. Al exportar datos aAmazon S3, puede sobrescribir exportaciones anteriores si escribe en la misma ruta del bucket. Elcomportamiento predeterminado de la plantilla Export DynamoDB to S3 (Exportar DynamoDB a S3)adjunta la hora programada para el trabajo a la ruta del bucket de Amazon S3 para ayudar a evitar esteproblema.

• Los trabajos de importación y exportación consumen parte de la capacidad de desempeñoprovisionada de la tabla DynamoDB. En esta sección se explica cómo programar un trabajode importación o exportación mediante Amazon EMR. El clúster de Amazon EMR consumirácapacidad de lectura durante las exportaciones y de escritura durante las importaciones.Puede controlar el porcentaje de capacidad provisionada que consumen los trabajos deimportación y exportación ajustando MyImportJob.myDynamoDBWriteThroughputRatio yMyExportJob.myDynamoDBReadThroughputRatio. Tenga en cuenta que estos ajustes determinancuánta capacidad se consumirá al principio del proceso de importación o exportación, pero no seadaptarán en tiempo real si se cambia la capacidad provisionada de la tabla en mitad del proceso.

Versión de API 2012-10-2993

Page 101: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPrimera parte: importar datos en DynamoDB

• Tenga en cuenta los costos. AWS Data Pipeline administra automáticamente el proceso de importacióno exportación, pero usted tendrá que pagar por los servicios de AWS subyacentes que se utilicen. Lascanalizaciones de importación y exportación crean clústeres de Amazon EMR para leer y escribir losdatos. Además, se aplican cargos por instancia por cada nodo del clúster. Encontrará más información alrespecto en Amazon EMR Pricing (Precios de EMR). La configuración de clúster predeterminada constade un nodo maestro de instancia m1.small y un nodo de tarea de instancia m1.xlarge, si bien puedemodificar esta configuración en la definición de la canalización. También se aplican cargos a AWS DataPipeline. Para obtener más información, consulte AWS Data Pipeline Pricing (Precios de AWSDP) yAmazon S3 Pricing (Precios de S3).

• Las tablas de DynamoDB configuradas para la capacidad bajo demanda solo son compatibles cuandose utiliza la versión de lanzamiento de Amazon EMR 5.24.0 o posterior. Si utiliza una plantilla paracrear una canalización para DynamoDB, elija Edit in Architect (Editar en arquitecto) y luego seleccioneResources (Recursos) para configurar el clúster de Amazon EMR que AWS Data Pipeline aprovisiona.En Release label (Etiqueta de la versión), elija emr-5.24.0 o posterior.

Creación de una tabla de DynamoDB

Puede crear la tabla de DynamoDB que es necesaria para este tutorial. Si ya tiene una tabla deDynamoDB, puede omitir este procedimiento de creación.

Para obtener más información, consulte Uso de tablas en DynamoDB en la Guía para desarrolladores deAmazon DynamoDB.

Para crear una tabla de DynamoDB

1. Abra la consola de DynamoDB en https://console.aws.amazon.com/dynamodb/.2. Haga clic en Create Table.3. Escriba un nombre único para la tabla en Table Name.4. En el campo Primary Key: Partition Key, escriba la cadena Id.5. Haga clic en Continue para omitir la página opcional Add Indexes.6. En la página Provisioned Throughput Capacity, haga lo siguiente. Tenga en cuenta que estos valores

son pequeños porque los datos de muestra son pequeños. Para obtener información sobre el cálculodel tamaño necesario para sus propios datos, consulte Capacidad de desempeño de AmazonDynamoDB en la Guía para desarrolladores de Amazon DynamoDB.

a. En Read Capacity Units, escriba 5.b. En Write Capacity Units, escriba 5.c. Haga clic en Continue.

7. En la página Throughput Alarms, en Send notification to, escriba su dirección de correo electrónico y,a continuación, haga clic en Continue.

8. En la página Review, haga clic en Create.

Paso 1: crear la canalizaciónEn primer lugar, cree la canalización.

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

Versión de API 2012-10-2994

Page 102: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPrimera parte: importar datos en DynamoDB

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

3. En Name (Nombre), escriba el nombre de la canalización.4. (Opcional) En Description (Descripción), escriba la descripción de la canalización.5. Para Source, seleccione Build using a template y, a continuación, seleccione la siguiente plantilla:

Import DynamoDB backup data from S3.6. En Parameters (Parámetros), establezca la Input S3 folder (Carpeta de S3 de entrada) en s3://

elasticmapreduce/samples/Store/ProductCatalog, que es un directorio que contiene elorigen de datos de muestra, ProductCatalog.txt y establezca DynamoDB table name (Nombre detabla de DynamoDB) en el nombre de su tabla.

7. En Schedule (Programación), elija on pipeline activation (activación en la canalización).8. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Si lo prefiere, puede deshabilitar el registro.9. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).10. Haga clic en Edit in Architect.

A continuación, configure las acciones de notificación de Amazon SNS que AWS Data Pipeline realiza enfunción del resultado de la actividad.

Para configurar las acciones de éxito y error

1. En el panel derecho, haga clic en Activities.2. En Add an optional field, seleccione On Success.3. En el campo recién añadido On Success, seleccione Create new: Action.4. En Add an optional field, seleccione On Fail.5. En el campo recién añadido On Fail, seleccione Create new: Action.6. En el panel derecho, haga clic en Others.7. En DefaultAction1, haga lo siguiente:

a. Cambie el nombre a SuccessSnsAlarm.b. En Type, seleccione SnsAlarm.c. En el campo Topic Arn (ARN del tema) escriba el ARN del tema que ha creado (consulte

Nombres de recursos de Amazon (ARN) para Amazon SNS).d. Escriba un asunto y un mensaje.

8. En DefaultAction2, haga lo siguiente:

a. Cambie el nombre a FailureSnsAlarm.b. En Type, seleccione SnsAlarm.c. En el campo Topic Arn (ARN del tema) escriba el ARN del tema que ha creado (consulte

Nombres de recursos de Amazon (ARN) para Amazon SNS).d. Escriba un asunto y un mensaje.

Paso 2: guardar y validar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generará

Versión de API 2012-10-2995

Page 103: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPrimera parte: importar datos en DynamoDB

errores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Paso 3: activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWSData Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Paso 4: supervisar las ejecuciones de la canalizaciónDespués de activar la canalización, se abrirá la página Execution details (Detalles de ejecución), dondepuede monitorizar el progreso de la canalización.

Para monitorizar el proceso de las ejecuciones de la canalización

1. Elija Update (Actualizar) o pulse F5 para actualizar el estado mostrado.Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) (Inicio [en UTC])y End (in UTC) (Fin [en UTC]) abarquen el principio y el final de la canalización y, acontinuación, elija Update (Actualizar).

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas. Si ha creado una notificación de SNS, recibirá un mensaje decorreo electrónico para informarle de que esta tarea ha finalizado correctamente.

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

Versión de API 2012-10-2996

Page 104: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSegunda parte: exportar datos desde DynamoDB

Paso 5: verificar la importación de datosA continuación, verifique que la importación de datos se realizó correctamente utilizando la consola deDynamoDB para inspeccionar los datos de la tabla.

Para verificar la tabla de DynamoDB

1. Abra la consola de DynamoDB.2. En la pantalla Tables (Tablas), haga clic en la tabla de DynamoDB y haga clic en Explore Table

(Explorar tabla).3. En la pestaña Browse Items, deben mostrarse las columnas que corresponden al archivo de entrada

de datos como, por ejemplo, Id, Price y ProductCategory, como se muestra en la siguiente pantalla.Esto indica que la operación de importación desde el archivo a la tabla de DynamoDB se produjocorrectamente.

Paso 6: eliminar la canalización (opcional)Para que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Segunda parte: exportar datos desde DynamoDBEsta es la segunda de las dos partes de un tutorial que demuestra cómo utilizar varias característicasde AWS para resolver problemas reales de una manera escalable a través de un escenario común: laintroducción y extracción de datos sin esquema en DynamoDB con AWS Data Pipeline.

Tareas• Antes de comenzar (p. 98)• Paso 1: crear la canalización (p. 99)

Versión de API 2012-10-2997

Page 105: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSegunda parte: exportar datos desde DynamoDB

• Paso 2: guardar y validar la canalización (p. 101)• Paso 3: activar la canalización (p. 101)• Paso 4: supervisar las ejecuciones de la canalización (p. 101)• Paso 5: verificar el archivo de exportación de datos (p. 102)• Paso 6: eliminar la canalización (opcional) (p. 102)

Antes de comenzarDebe completar la primera parte de este tutorial para garantizar que la tabla de DynamoDB contiene losdatos necesarios para realizar los pasos que se indican en esta sección. Para obtener más información,consulte Primera parte: importar datos en DynamoDB (p. 93).

Además, asegúrese de haber completado los pasos siguientes:

• Completar las tareas en Configuración de AWS Data Pipeline (p. 15).• Crear un tema y suscribirse para recibir notificaciones de AWS Data Pipeline relacionadas con el estado

de los componentes de la canalización. Para obtener más información, consulte Creación de un tema enla Guía de introducción de Amazon SNS.

• Asegurarse de que dispone de la tabla de DynamoDB que se creó y se llenó con datos en la primeraparte de este tutorial. Esta tabla será el origen de datos para la segunda parte del tutorial. Para obtenermás información, consulte Primera parte: importar datos en DynamoDB (p. 93).

Tenga en cuenta lo siguiente:

• Las importaciones podrían sobrescribir los datos de la tabla DynamoDB. Al importar datos de AmazonS3, estos pueden sobrescribir los elementos de la tabla DynamoDB. Asegúrese de importar losdatos correctos en la tabla apropiada. Tenga cuidado de no configurar por error una canalización deimportación recurrente que podría importar los mismos datos varias veces.

• Las exportaciones podrían sobrescribir los datos del bucket de Amazon S3. Al exportar datos aAmazon S3, puede sobrescribir exportaciones anteriores si escribe en la misma ruta del bucket. Elcomportamiento predeterminado de la plantilla Export DynamoDB to S3 (Exportar DynamoDB a S3)adjunta la hora programada para el trabajo a la ruta del bucket de Amazon S3 para ayudar a evitar esteproblema.

• Los trabajos de importación y exportación consumen parte de la capacidad de desempeñoprovisionada de la tabla DynamoDB. En esta sección se explica cómo programar un trabajode importación o exportación mediante Amazon EMR. El clúster de Amazon EMR consumirácapacidad de lectura durante las exportaciones y de escritura durante las importaciones.Puede controlar el porcentaje de capacidad provisionada que consumen los trabajos deimportación y exportación ajustando MyImportJob.myDynamoDBWriteThroughputRatio yMyExportJob.myDynamoDBReadThroughputRatio. Tenga en cuenta que estos ajustes determinancuánta capacidad se consumirá al principio del proceso de importación o exportación, pero no seadaptarán en tiempo real si se cambia la capacidad provisionada de la tabla en mitad del proceso.

• Tenga en cuenta los costos. AWS Data Pipeline administra automáticamente el proceso de importacióno exportación, pero usted tendrá que pagar por los servicios de AWS subyacentes que se utilicen. Lascanalizaciones de importación y exportación crean clústeres de Amazon EMR para leer y escribir losdatos. Además, se aplican cargos por instancia por cada nodo del clúster. Encontrará más información alrespecto en Amazon EMR Pricing (Precios de EMR). La configuración de clúster predeterminada constade un nodo maestro de instancia m1.small y un nodo de tarea de instancia m1.xlarge, si bien puedemodificar esta configuración en la definición de la canalización. También se aplican cargos a AWS DataPipeline. Para obtener más información, consulte AWS Data Pipeline Pricing (Precios de AWSDP) yAmazon S3 Pricing (Precios de S3).

• Las tablas de DynamoDB configuradas para la capacidad bajo demanda solo son compatibles cuandose utiliza la versión de lanzamiento de Amazon EMR 5.24.0 o posterior. Si utiliza una plantilla para

Versión de API 2012-10-2998

Page 106: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSegunda parte: exportar datos desde DynamoDB

crear una canalización para DynamoDB, elija Edit in Architect (Editar en arquitecto) y luego seleccioneResources (Recursos) para configurar el clúster de Amazon EMR que AWS Data Pipeline aprovisiona.En Release label (Etiqueta de la versión), elija emr-5.24.0 o posterior.

Paso 1: crear la canalizaciónEn primer lugar, cree la canalización.

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

3. En Name (Nombre), escriba el nombre de la canalización.4. (Opcional) En Description (Descripción), escriba la descripción de la canalización.5. Para Source, seleccione Build using a template y, a continuación, seleccione la siguiente plantilla:

Export DynamoDB table to S3.6. Bajo Parameters, establezca DynamoDB table name en el nombre de la tabla. Haga clic en el icono de

carpeta situado junto a Output S3 folder (Carpeta de salida en S3), seleccione uno de los buckets deAmazon S3 y, a continuación, haga clic en Select (Seleccionar).

7. En Schedule (Programación), elija on pipeline activation (activación en la canalización).8. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Si lo prefiere, puede deshabilitar el registro.9. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).10. Haga clic en Edit in Architect.

Versión de API 2012-10-2999

Page 107: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSegunda parte: exportar datos desde DynamoDB

A continuación, configure las acciones de notificación de Amazon SNS que AWS Data Pipeline realiza enfunción del resultado de la actividad.

Para configurar las acciones de éxito, error y notificación tardía

1. En el panel derecho, haga clic en Activities.2. En Add an optional field, seleccione On Success.3. En el campo recién añadido On Success, seleccione Create new: Action.4. En Add an optional field, seleccione On Fail.5. En el campo recién añadido On Fail, seleccione Create new: Action.6. En Add an optional field, seleccione On Late Action.7. En el campo recién añadido On Late Action, seleccione Create new: Action.8. En el panel derecho, haga clic en Others.9. En DefaultAction1, haga lo siguiente:

a. Cambie el nombre a SuccessSnsAlarm.b. En Type, seleccione SnsAlarm.c. En el campo Topic Arn (ARN del tema), escriba el ARN del tema que ha creado. Consulte

Nombres de recursos de Amazon (ARN) para Amazon SNS.d. Escriba un asunto y un mensaje.

10. En DefaultAction2, haga lo siguiente:

a. Cambie el nombre a FailureSnsAlarm.b. En Type, seleccione SnsAlarm.c. En el campo Topic Arn (ARN del tema) escriba el ARN del tema que ha creado (consulte

Nombres de recursos de Amazon (ARN) para Amazon SNS).d. Escriba un asunto y un mensaje.

11. En DefaultAction3, haga lo siguiente:

Versión de API 2012-10-29100

Page 108: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSegunda parte: exportar datos desde DynamoDB

a. Cambie el nombre a LateSnsAlarm.b. En Type, seleccione SnsAlarm.c. En el campo Topic Arn (ARN del tema) escriba el ARN del tema que ha creado (consulte

Nombres de recursos de Amazon (ARN) para Amazon SNS).d. Escriba un asunto y un mensaje.

Paso 2: guardar y validar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generaráerrores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Paso 3: activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWSData Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Paso 4: supervisar las ejecuciones de la canalizaciónDespués de activar la canalización, se abrirá la página Execution details (Detalles de ejecución), dondepuede monitorizar el progreso de la canalización.

Versión de API 2012-10-29101

Page 109: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopiar datos CSV de Amazon S3 a Amazon S3

Para monitorizar el proceso de las ejecuciones de la canalización

1. Elija Update (Actualizar) o pulse F5 para actualizar el estado mostrado.

Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) (Inicio [en UTC])y End (in UTC) (Fin [en UTC]) abarquen el principio y el final de la canalización y, acontinuación, elija Update (Actualizar).

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas. Si ha creado una notificación de SNS, recibirá un mensaje decorreo electrónico para informarle de que esta tarea ha finalizado correctamente.

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

Paso 5: verificar el archivo de exportación de datosA continuación, examine el contenido del archivo de salida para verificar que la exportación de datos se harealizado correctamente.

Para ver el contenido del archivo de exportación

1. Abra la consola de Amazon S3.2. En el panel Buckets, haga clic en el bucket de Amazon S3 que contiene la salida de archivo

(la canalización de ejemplo utiliza la ruta de salida s3://mybucket/output/MyTable) yabra el archivo de salida con el editor de texto que desee. El nombre del archivo de salida esun valor de identificador sin extensión, como en este ejemplo: ae10f955-fb2f-4790-9b11-fbfea01a871e_000000.

3. Utilice el editor de texto que desee para ver el contenido del archivo de salida y asegurarse de que hayun archivo de datos que corresponde a la tabla de origen de DynamoDB. La presencia de este archivode texto indica que la operación de exportación desde DynamoDB al archivo de salida se produjocorrectamente.

Paso 6: eliminar la canalización (opcional)Para que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Copiar datos CSV entre buckets de Amazon S3mediante AWS Data Pipeline

Después de leer ¿Qué es AWS Data Pipeline? (p. 1) y decidir que desea usar AWS Data Pipeline paraautomatizar el movimiento y transformación de sus datos, es el momento de comenzar a trabajar en la

Versión de API 2012-10-29102

Page 110: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAntes de comenzar

creación de canalizaciones de datos. Para ayudarle a entender el funcionamiento de AWS Data Pipeline,vamos a seguir una tarea sencilla paso a paso.

En este tutorial se le guía a través del proceso de creación de una canalización de datos para copiardatos de un bucket de Amazon S3 en otro y, a continuación, enviar una notificación de Amazon SNS trascompletarse correctamente la actividad de copia. Use una instancia EC2 administrada por AWS DataPipeline para esta actividad de copia.

Objetos de canalización

La canalización usa los siguientes objetos:

CopyActivity (p. 174)

La actividad que realiza AWS Data Pipeline para esta canalización (copiar datos CSV de un bucket deAmazon S3 en otro).

Important

Existen limitaciones al usar el formato de archivo CSV con CopyActivity y S3DataNode.Para obtener más información, consulte CopyActivity (p. 174).

Programación (p. 297)

La fecha de inicio, la hora y la periodicidad de esta actividad. De forma opcional, puede especificar lafecha y hora de finalización.

Ec2Resource (p. 235)

El recurso (una instancia EC2) que usa AWS Data Pipeline para realizar esta actividad.S3DataNode (p. 164)

Los nodos de entrada y salida (buckets de Amazon S3) para esta canalización.SnsAlarm (p. 294)

La acción que AWS Data Pipeline debe ejecutar al cumplirse las condiciones especificadas (enviarnotificaciones de Amazon SNS a un tema una vez finalizada correctamente la tarea).

Contenido• Antes de comenzar (p. 103)• Copiar datos CSV mediante la consola de AWS Data Pipeline (p. 104)• Copiar datos CSV mediante la línea de comandos (p. 108)

Antes de comenzarAsegúrese de haber completado los pasos siguientes.

• Complete las tareas de Configuración de AWS Data Pipeline (p. 15).• (Opcional) Configure una VPC para la instancia y un grupo de seguridad para la VPC. Para obtener más

información, consulte Lanzamiento de recursos para su canalización en una VPC (p. 60).• Crear un bucket de Amazon S3 como origen de datos.

Para obtener más información, consulte Crear un bucket en la Guía de introducción a Amazon SimpleStorage Service.

• Cargar los datos en el bucket de Amazon S3.

Para obtener más información, consulte Añadir un objeto a un bucket en la Guía de introducción aAmazon Simple Storage Service.

Versión de API 2012-10-29103

Page 111: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

• Crear otro bucket de Amazon S3 como destino de los datos.• Crear un tema para enviar notificaciones por correo electrónico y anotar el nombre de recurso de

Amazon (ARN) del tema. Para obtener más información, consulte Creación de un tema en la Guía deintroducción a Amazon Simple Notification Service.

• (Opcional) En este tutorial, se usan las políticas de roles de IAM predeterminadas creadas por AWSData Pipeline. Si prefiere crear y configurar sus propias políticas de roles de IAM y relaciones deconfianza, siga las instrucciones descritas en Roles de IAM para AWS Data Pipeline (p. 80).

Copiar datos CSV mediante la consola de AWS DataPipelinePuede crear y usar canalizaciones para copiar datos de un bucket de Amazon S3 en otro.

Tareas• Crear la canalización (p. 104)• Guardar y validar la canalización (p. 106)• Activar la canalización (p. 107)• Supervisar las ejecuciones de la canalización (p. 107)• (Opcional) Eliminar la canalización (p. 108)

Crear la canalizaciónEn primer lugar, cree la canalización.

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

3. En Name (Nombre), escriba el nombre de la canalización.4. (Opcional) En Description (Descripción), escriba la descripción de la canalización.5. Para Source, seleccione Build using Architect.6. En Schedule (Programación), elija on pipeline activation (activación en la canalización).7. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Si lo prefiere, puede deshabilitar el registro.8. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).9. Haga clic en Edit in Architect.

A continuación, defina el objeto Activity en la definición de la canalización. Al definir el objetoActivity, también definirá los objetos que AWS Data Pipeline debe usar para realizar esta actividad.

Versión de API 2012-10-29104

Page 112: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

Para configurar la actividad para la canalización

1. Haga clic en Add activity.2. En el panel Activities:

a. En el campo Name, escriba un nombre de la actividad, por ejemplo, copy-myS3-data.b. En Type, seleccione CopyActivity.c. En Output, seleccione Create new: DataNode.d. En Schedule, seleccione Create new: Schedule.e. En Input, seleccione Create new: DataNode.f. En Add an optional field, seleccione Runs On.g. En el campo recién añadido Runs On, seleccione Create new: Resource.h. En Add an optional field, seleccione On Success.i. En el campo recién añadido On Success, seleccione Create new: Action.

3. En el panel izquierdo, separe los iconos arrastrándolos. Se trata de una representación gráfica de lacanalización. Las flechas indican las conexiones entre los objetos.

A continuación, configure los nodos de datos de entrada y salida para su canalización.

Para configurar los nodos de datos de entrada y salida para su canalización

1. En el panel derecho, haga clic en DataNodes.Versión de API 2012-10-29

105

Page 113: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

2. Para DefaultDataNode1, que representa su origen de datos, realice lo siguiente:

a. Escriba el nombre del nodo de entrada (por ejemplo, MyS3Input).b. En Type, seleccione S3DataNode.c. En Schedule, seleccione su calendario (por ejemplo, copy-S3data-schedule).d. En Add an optional field, seleccione File Path.e. En el campo File Path (Ruta de archivo), escriba la ruta de Amazon S3 para el origen de datos.

3. Para DefaultDataNode2, que representa su destino de datos, realice lo siguiente:

a. Escriba el nombre del nodo de salida (por ejemplo, MyS3Output).b. En Type, seleccione S3DataNode.c. En Schedule, seleccione su calendario (por ejemplo, copy-S3data-schedule).d. En Add an optional field, seleccione File Path.e. En el campo File Path (Ruta de archivo), escriba la ruta de Amazon S3 para el destino de datos.

A continuación, configure el recurso que AWS Data Pipeline debe usar para realizar la actividad de copia.

Para configurar el recurso

1. En el panel derecho, haga clic en Resources.2. Escriba el nombre del recurso (por ejemplo, CopyDataInstance).3. En Type, seleccione Ec2Resource.4. En Schedule, seleccione su calendario (por ejemplo, copy-S3data-schedule).5. Deje establecidos Resource Role y Role en sus valores predeterminados.

Si ha creado sus propios roles de IAM, puede seleccionarlos si lo prefiere.

A continuación, configure la acción de notificación de Amazon SNS que AWS Data Pipeline realiza una vezque la actividad de copia finaliza correctamente.

Para configurar la acción de notificación

1. En el panel derecho, haga clic en Others.2. En DefaultAction1, haga lo siguiente:

a. Escriba un nombre de la notificación (por ejemplo, CopyDataNotice).b. En Type, seleccione SnsAlarm.c. En el campo Subject, escriba la línea de asunto para la notificación.d. En el campo Topic Arn, escriba el ARN del tema.e. En el campo Message, escriba el contenido del mensaje.f. Deje el campo Role establecido en el valor predeterminado.

Guardar y validar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generaráerrores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Versión de API 2012-10-29106

Page 114: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWSData Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Supervisar las ejecuciones de la canalizaciónDespués de activar la canalización, se abrirá la página Execution details (Detalles de ejecución), dondepuede monitorizar el progreso de la canalización.

Para monitorizar el proceso de las ejecuciones de la canalización

1. Elija Update (Actualizar) o pulse F5 para actualizar el estado mostrado.

Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) (Inicio [en UTC])y End (in UTC) (Fin [en UTC]) abarquen el principio y el final de la canalización y, acontinuación, elija Update (Actualizar).

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas. Si ha creado una notificación de SNS, recibirá un mensaje decorreo electrónico para informarle de que esta tarea ha finalizado correctamente.

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

Versión de API 2012-10-29107

Page 115: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

(Opcional) Eliminar la canalizaciónPara que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Copiar datos CSV mediante la línea de comandosPuede crear y usar canalizaciones para copiar datos de un bucket de Amazon S3 en otro.

Requisitos previos

Debe seguir estos pasos antes de comenzar:

1. Instale y configure una interfaz de línea de comandos (CLI, Command Line Interface). Para obtenermás información, consulte Acceso a AWS Data Pipeline (p. 3).

2. Asegúrese de que existan los roles de IAM denominados DataPipelineDefaultRole yDataPipelineDefaultResourceRole. La consola de AWS Data Pipeline crea estos rolesautomáticamente. Si no ha usado la consola de AWS Data Pipeline al menos una vez, deberá crearestos roles manualmente. Para obtener más información, consulte Roles de IAM para AWS DataPipeline (p. 80).

Tareas• Definir una canalización en formato JSON (p. 108)• Cargar y activar la definición de canalización (p. 112)

Definir una canalización en formato JSONEn este escenario de ejemplo, se muestra cómo usar definiciones de canalización JSON y la CLI de AWSData Pipeline para programar la copia de datos entre dos buckets de Amazon S3 en un intervalo de tiempoespecífico. Este es el archivo JSON de definición de la canalización completo seguido de una explicaciónde cada una de sus secciones.

Note

Le recomendamos que use un editor de texto que pueda ayudarle a comprobar la sintaxis de losarchivos con formato JSON y que asigne un nombre al archivo con la extensión .json.

En este ejemplo, para mayor claridad, omitimos los campos opcionales y mostramos únicamente loscampos obligatorios. El archivo JSON de la canalización completo en este ejemplo es:

{ "objects": [ { "id": "MySchedule", "type": "Schedule", "startDateTime": "2013-08-18T00:00:00", "endDateTime": "2013-08-19T00:00:00", "period": "1 day" },

Versión de API 2012-10-29108

Page 116: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

{ "id": "S3Input", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/source/inputfile.csv" }, { "id": "S3Output", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/destination/outputfile.csv" }, { "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": { "ref": "MySchedule" }, "instanceType": "m1.medium", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "MyCopyActivity", "type": "CopyActivity", "runsOn": { "ref": "MyEC2Resource" }, "input": { "ref": "S3Input" }, "output": { "ref": "S3Output" }, "schedule": { "ref": "MySchedule" } } ]}

ProgramaciónLa canalización define un programa con una fecha de inicio y finalización, junto con un período paradeterminar con qué frecuencia se ejecuta la actividad en esta canalización.

{ "id": "MySchedule", "type": "Schedule", "startDateTime": "2013-08-18T00:00:00", "endDateTime": "2013-08-19T00:00:00", "period": "1 day"},

Nodos de datos de Amazon S3A continuación, el componente de canalización S3DataNode de entrada define una ubicación para losarchivos de entrada; en este caso, una ubicación de bucket de Amazon S3. El componente S3DataNodede entrada se define por los siguientes campos:

Versión de API 2012-10-29109

Page 117: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

{ "id": "S3Input", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/source/inputfile.csv"},

Id

El nombre definido por el usuario para la ubicación de entrada (una etiqueta solo con fines dereferencia).

Type

El tipo de componente de canalización, que es "S3DataNode" para que coincida con la ubicacióndonde residen los datos, en un bucket de Amazon S3.

Schedule

Una referencia al componente de programación que creamos en las líneas anteriores del archivoJSON etiquetado "MySchedule".

Ruta

La ruta a los datos asociados al nodo de datos. La sintaxis de un nodo de datos viene determinada porsu tipo. Por ejemplo, la sintaxis de una ruta de Amazon S3 es distinta y es la adecuada para una tablade la base de datos.

A continuación, el componente S3DataNode de salida define la ubicación de destino de salida paralos datos. Sigue el mismo formato que el componente S3DataNode de entrada, excepto el nombre delcomponente y una ruta diferente para indicar el archivo de destino.

{ "id": "S3Output", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/destination/outputfile.csv"},

Recurso

Esta es una definición del recurso informático que realiza la operación de copia. En este ejemplo, AWSData Pipeline debe crear automáticamente una instancia EC2 para realizar la tarea de copia y terminar elrecurso tras completarse la tarea. Los campos definidos aquí controlan la creación y función de la instanciaEC2 que realiza el trabajo. El componente Resource se define por los siguientes campos:

{ "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": { "ref": "MySchedule" }, "instanceType": "m1.medium", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole"

Versión de API 2012-10-29110

Page 118: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

},

Id

El nombre definido por el usuario para el programa de canalización, que es una etiqueta solo con finesde referencia.

Type

El tipo de recurso informático para realizar el trabajo; en este caso, una instancia EC2. Hay otros tiposde recursos disponibles, como un tipo EmrCluster.

Schedule

El programa en el que desea crear este recurso informático.instanceType

El tamaño de la instancia EC2 que se creará. Asegúrese de que establece el tamaño adecuado de lainstancia EC2 que mejor se adapte a la carga del trabajo que desea realizar con AWS Data Pipeline.En este caso, establecemos una instancia EC2 m1.medium. Para obtener más información acerca delos diferentes tipos de instancia y cuándo usar cada uno, consulte Tipos de instancias de Amazon EC2en http://aws.amazon.com/ec2/instance-types/.

Role

El rol de IAM de la cuenta que tiene acceso a los recursos, como el acceso a un bucket de Amazon S3para recuperar datos.

resourceRole

El rol de IAM de la cuenta que crea los recursos, por ejemplo, la creación y configuración de unainstancia EC2 en su nombre. resourceRole

Actividad

La última sección del archivo JSON es la definición de la actividad que representa el trabajo que serealizará. En este ejemplo, se usa CopyActivity para copiar datos de un archivo CSV en un buckethttp://aws.amazon.com/ec2/instance-types/ en otro. El componente CopyActivity se define por lossiguientes campos:

{ "id": "MyCopyActivity", "type": "CopyActivity", "runsOn": { "ref": "MyEC2Resource" }, "input": { "ref": "S3Input" }, "output": { "ref": "S3Output" }, "schedule": { "ref": "MySchedule" }}

Id

El nombre definido por el usuario para la actividad, que es una etiqueta solo con fines de referencia.

Versión de API 2012-10-29111

Page 119: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Type

El tipo de actividad que se realizará, como MyCopyActivity.runsOn

El recurso informático que realiza el trabajo que define esta actividad. En este ejemplo,proporcionamos una referencia a la instancia de EC2 definidos anteriormente. El uso del camporunsOn conlleva que AWS Data Pipeline cree la instancia EC2 automáticamente. El campo runsOnindica que el recurso existe en la infraestructura de AWS, mientras que el valor de workerGroupindica que desea usar sus propios recursos locales para realizar el trabajo.

Input

La ubicación de los datos que copiar.Output

Los datos de la ubicación de destino.Schedule

La programación en la que ejecutar esta actividad.

Cargar y activar la definición de canalizaciónDebe cargar la definición de la canalización y activar esta última. En los ejemplos de comandos siguientes,sustituya pipeline_name por la etiqueta de su canalización y pipeline_file por la ruta completa delarchivo .json de definición de la canalización.

AWS CLI

Para crear la definición de la canalización y activar esta última, utilice el siguiente comando create-pipeline.Anote el ID de la canalización, pues utilizará este valor con la mayoría de los comandos de la CLI.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Para cargar la definición de la canalización, utilice el siguiente comando put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Si la canalización se valida correctamente, el campo validationErrors estará vacío. Es importanterevisar todas las advertencias.

Para activar la canalización, utilice el siguiente comando activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Puede comprobar si la canalización aparece en la lista de canalizaciones mediante el siguiente comandolist-pipelines.

aws datapipeline list-pipelines

Versión de API 2012-10-29112

Page 120: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresExportar datos de MySQL a Amazon S3

Exportar datos de MySQL a Amazon S3 utilizandoAWS Data Pipeline

Este tutorial le guiará a lo largo del proceso de creación de una canalización de datos para copiar datos(filas) de una tabla de una base de datos de MySQL en un archivo CSV (valores separados por comas)en un bucket de Amazon S3 y, a continuación, enviar una notificación de Amazon SNS después de quela actividad de copia se realice correctamente. Usará una instancia EC2 proporcionada por AWS DataPipeline para realizar esta actividad de copia.

Objetos de canalización

La canalización usa los siguientes objetos:

• CopyActivity (p. 174)• Ec2Resource (p. 235)• MySqlDataNode (p. 154)• S3DataNode (p. 164)• SnsAlarm (p. 294)

Contenido• Antes de comenzar (p. 113)• Copiar datos de MySQL utilizando la consola de AWS Data Pipeline (p. 114)• Copia de datos de MySQL mediante la línea de comandos (p. 117)

Antes de comenzarAsegúrese de haber completado los pasos siguientes.

• Complete las tareas de Configuración de AWS Data Pipeline (p. 15).• (Opcional) Configure una VPC para la instancia y un grupo de seguridad para la VPC. Para obtener más

información, consulte Lanzamiento de recursos para su canalización en una VPC (p. 60).• Cree un bucket de Amazon S3 como salida de datos.

Para obtener más información, consulte Crear un bucket en la Guía de introducción a Amazon SimpleStorage Service.

• Cree y lance una instancia de base de datos de MySQL como origen de datos.

Para obtener más información, consulte Lanzamiento de una instancia de base de datos en la AmazonRDS Getting Started Guide. Cuando ya tenga una instancia de Amazon RDS, consulte el tema sobrecómo crear una tabla en la documentación de MySQL.

Note

Anote el nombre de usuario y la contraseña que utilizó para crear la instancia de MySQL. Unavez lanzada la instancia de base de datos de MySQL, anote el punto de enlace de la instancia.Necesitará esta información más tarde.

• Conéctese a su instancia de base de datos de MySQL, cree una tabla y, a continuación, añada valoresde datos de prueba a la tabla recién creada.

Para fines de ilustración, hemos creado este tutorial utilizando una tabla de MySQL con la siguienteconfiguración y datos de ejemplo. La siguiente captura de pantalla pertenece a MySQL Workbench 5.2CE:

Versión de API 2012-10-29113

Page 121: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

Para obtener más información, consulte Crear una tabla en la documentación de MySQL y la página delproducto de MySQL Workbench.

• Crear un tema para enviar notificaciones por correo electrónico y anotar el nombre de recurso deAmazon (ARN) del tema. Para obtener más información, consulte Creación de un tema en la Guía deintroducción a Amazon Simple Notification Service.

• (Opcional) En este tutorial, se usan las políticas de roles de IAM predeterminadas creadas por AWSData Pipeline. Si prefiere crear y configurar sus propias relaciones de confianza y políticas de roles deIAM, siga las instrucciones descritas en Roles de IAM para AWS Data Pipeline (p. 80).

Copiar datos de MySQL utilizando la consola de AWSData PipelineCree una canalización para copiar datos de una tabla de MySQL en un archivo en un bucket de AmazonS3.

Tareas• Crear la canalización (p. 114)• Guardar y validar la canalización (p. 116)• Comprobación de la definición de la canalización (p. 116)• Activar la canalización (p. 117)• Supervisar las ejecuciones de la canalización (p. 117)• (Opcional) Eliminar la canalización (p. 117)

Crear la canalizaciónEn primer lugar, cree la canalización. La canalización debe crearse en la misma región que la instanciaRDS de destino.

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

Versión de API 2012-10-29114

Page 122: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

3. En Name (Nombre), escriba el nombre de la canalización.4. (Opcional) En Description (Descripción), escriba la descripción de la canalización.5. Para Source, seleccione Build using a template y, a continuación, seleccione la siguiente plantilla: Full

copy of RDS MySQL table to S3.6. En la sección Parameters, que se abrió al seleccionar la plantilla, haga lo siguiente:

a. Para DBInstance ID, introduzca el nombre de la instancia de base de datos de Aurora que deseeutilizar para copiar los datos del clúster de Aurora.

Para localizar los detalles del punto de enlace de su instancia de base de datos, consulteConexión a una instancia de base de datos que ejecuta el motor de base de datos de MySQL enla Guía del usuario de Amazon RDS.

b. Para RDS MySQL username, introduzca el nombre de usuario que utilizó al crear la instancia debase de datos de MySQL.

c. En el campo RDS MySQL password, introduzca la contraseña que utilizó al crear la instancia debase de datos.

d. En el campo EC2 instance type, introduzca el tipo de instancia de la instancia EC2.e. Haga clic en el icono de la carpeta junto a Output S3 folder, seleccione uno de los buckets o

carpetas y, a continuación, haga clic en Select.7. En Schedule (Programación), elija on pipeline activation (activación en la canalización).8. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Si lo prefiere, puede deshabilitar el registro.9. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).10. Haga clic en Edit in Architect.11. En el panel izquierdo, separe los iconos arrastrándolos. Se trata de una representación gráfica de la

canalización. Las flechas indican las conexiones entre los objetos.

A continuación, configure el nombre de la base de datos, que actualmente no está presente en la plantilladisponible.

1. En el panel izquierdo, haga clic en RDSDatabase.2. En el panel derecho, en la sección rds_mysql, en Add an optional field..., elija Database Name.3. Rellene el campo Database Name de la base de datos de destino y añada campos opcionales.

Puede configurar la acción de notificación de Amazon SNS que AWS Data Pipeline realiza una vez que laactividad de copia finaliza correctamente.

Para configurar la acción de notificación de Amazon SNS

1. En el panel derecho, haga clic en Activities.2. En Add an optional field, seleccione On Success.

Versión de API 2012-10-29115

Page 123: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

3. En el campo recién añadido On Success, seleccione Create new: Action.4. En el panel derecho, haga clic en Others.5. En DefaultAction1, haga lo siguiente:

a. Escriba un nombre de la notificación (por ejemplo, CopyDataNotice).b. En Type, seleccione SnsAlarm.c. En el campo Message, escriba el contenido del mensaje.d. En el campo Subject, escriba la línea de asunto para la notificación.e. En el campo Topic Arn, escriba el ARN del tema.f. Deje el campo Role establecido en el valor predeterminado.

Guardar y validar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generaráerrores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Comprobación de la definición de la canalizaciónEs importante comprobar que la canalización se haya inicializado correctamente a partir de las definicionesantes de activarla.

Para comprobar la definición de la canalización

1. En la página List Pipelines (Enumerar canalizaciones), busque la canalización que ha creado.

AWS Data Pipeline ha creado un Pipeline ID (ID de canalización) exclusivo para la definición de lacanalización.

En la columna Schedule State (Estado de programación) del listado de filas, debe aparecer PENDINGpara la canalización.

2. Elija el icono del triángulo que aparece junto a la canalización. Aparece un resumen de la canalizaciónen la parte inferior, con los detalles de las ejecuciones de la canalización. Dado que la canalizacióntodavía no se ha activado, es probable que no aparezcan detalles de ejecución. Sin embargo, síaparecerá la configuración de la definición de la canalización.

Versión de API 2012-10-29116

Page 124: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWSData Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Supervisar las ejecuciones de la canalizaciónDespués de activar la canalización, se abrirá la página Execution details (Detalles de ejecución), dondepuede monitorizar el progreso de la canalización.

Para monitorizar el proceso de las ejecuciones de la canalización

1. Elija Update (Actualizar) o pulse F5 para actualizar el estado mostrado.Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) (Inicio [en UTC])y End (in UTC) (Fin [en UTC]) abarquen el principio y el final de la canalización y, acontinuación, elija Update (Actualizar).

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas. Si ha creado una notificación de SNS, recibirá un mensaje decorreo electrónico para informarle de que esta tarea ha finalizado correctamente.

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

(Opcional) Eliminar la canalizaciónPara que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Copia de datos de MySQL mediante la línea decomandosCree una canalización para copiar datos de una tabla de MySQL en un archivo en un bucket de AmazonS3.

Versión de API 2012-10-29117

Page 125: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Requisitos previos

Debe seguir estos pasos antes de comenzar:

1. Instale y configure una interfaz de línea de comandos (CLI, Command Line Interface). Para obtenermás información, consulte Acceso a AWS Data Pipeline (p. 3).

2. Asegúrese de que existan los roles de IAM denominados DataPipelineDefaultRole yDataPipelineDefaultResourceRole. La consola de AWS Data Pipeline crea estos rolesautomáticamente. Si no ha usado la consola de AWS Data Pipeline al menos una vez, deberá crearestos roles manualmente. Para obtener más información, consulte Roles de IAM para AWS DataPipeline (p. 80).

3. Configure un bucket de Amazon S3 y una instancia de Amazon RDS. Para obtener más información,consulte Antes de comenzar (p. 113).

Tareas• Definir una canalización en formato JSON (p. 118)• Cargar y activar la definición de canalización (p. 123)

Definir una canalización en formato JSONEste escenario de ejemplo muestra cómo utilizar definiciones de la canalización de JSON y la CLI deAWS Data Pipeline para copiar datos (filas) de una tabla en una base de datos MySQL en un archivo CSV(valores separados por comas) en un bucket de Amazon S3 en un intervalo de tiempo especificado.

Este es el archivo JSON de definición de la canalización completo seguido de una explicación de cada unade sus secciones.

Note

Le recomendamos que use un editor de texto que pueda ayudarle a comprobar la sintaxis de losarchivos con formato JSON y que asigne un nombre al archivo con la extensión .json.

{ "objects": [ { "id": "ScheduleId113", "startDateTime": "2013-08-26T00:00:00", "name": "My Copy Schedule", "type": "Schedule", "period": "1 Days" }, { "id": "CopyActivityId112", "input": { "ref": "MySqlDataNodeId115" }, "schedule": { "ref": "ScheduleId113" }, "name": "My Copy", "runsOn": { "ref": "Ec2ResourceId116" }, "onSuccess": { "ref": "ActionId1" }, "onFail": { "ref": "SnsAlarmId117"

Versión de API 2012-10-29118

Page 126: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

}, "output": { "ref": "S3DataNodeId114" }, "type": "CopyActivity" }, { "id": "S3DataNodeId114", "schedule": { "ref": "ScheduleId113" }, "filePath": "s3://example-bucket/rds-output/output.csv", "name": "My S3 Data", "type": "S3DataNode" }, { "id": "MySqlDataNodeId115", "username": "my-username", "schedule": { "ref": "ScheduleId113" }, "name": "My RDS Data", "*password": "my-password", "table": "table-name", "connectionString": "jdbc:mysql://your-sql-instance-name.id.region-name.rds.amazonaws.com:3306/database-name", "selectQuery": "select * from #{table}", "type": "SqlDataNode" }, { "id": "Ec2ResourceId116", "schedule": { "ref": "ScheduleId113" }, "name": "My EC2 Resource", "role": "DataPipelineDefaultRole", "type": "Ec2Resource", "resourceRole": "DataPipelineDefaultResourceRole" }, { "message": "This is a success message.", "id": "ActionId1", "subject": "RDS to S3 copy succeeded!", "name": "My Success Alarm", "role": "DataPipelineDefaultRole", "topicArn": "arn:aws:sns:us-east-1:123456789012:example-topic", "type": "SnsAlarm" }, { "id": "Default", "scheduleType": "timeseries", "failureAndRerunMode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "message": "There was a problem executing #{node.name} at for period #{node.@scheduledStartTime} to #{node.@scheduledEndTime}", "id": "SnsAlarmId117", "subject": "RDS to S3 copy failed", "name": "My Failure Alarm", "role": "DataPipelineDefaultRole", "topicArn": "arn:aws:sns:us-east-1:123456789012:example-topic", "type": "SnsAlarm" }

Versión de API 2012-10-29119

Page 127: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

]}

Nodo de datos MySQL

El componente de entrada MySqlDataNode de la canalización define una ubicación para los datos deentrada; en este caso, una instancia de Amazon RDS. El componente MySqlDataNode de la entrada sedefine por medio de los siguientes campos:

{ "id": "MySqlDataNodeId115", "username": "my-username", "schedule": { "ref": "ScheduleId113" }, "name": "My RDS Data", "*password": "my-password", "table": "table-name", "connectionString": "jdbc:mysql://your-sql-instance-name.id.region-name.rds.amazonaws.com:3306/database-name", "selectQuery": "select * from #{table}", "type": "SqlDataNode"},

Id

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.Username

El nombre de usuario de la cuenta de la base de datos que tiene permisos suficientes para recuperarlos datos de la tabla de base de datos. Sustituya my-username por el nombre de su cuenta deusuario.

Schedule

Una referencia al componente de programación que creamos en las líneas anteriores del archivoJSON.

Name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.*Password

La contraseña de la cuenta de la base de datos con el asterisco como prefijo para indicar que AWSData Pipeline debe cifrar el valor de la contraseña. Sustituya my-password por la contraseña correctapara su cuenta de usuario. El campo de la contraseña está precedido por el carácter especial delasterisco. Para obtener más información, consulte Caracteres especiales (p. 146).

Table

El nombre de la tabla de base datos que contiene los datos que se van a copiar. Sustituya table-name por el nombre de la tabla de base de datos.

connectionString

La cadena de conexión JDBC para el objeto CopyActivity que se va a conectar a la base de datos.selectQuery

Una consulta SQL SELECT válida que especifica qué datos se van a copiar de la tabla de basede datos. Tenga en cuenta que #{table} es una expresión que reutiliza el nombre de la tablaproporcionado por la variable "table" en las líneas anteriores del archivo JSON.

Versión de API 2012-10-29120

Page 128: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Type

El tipo SqlDataNode, que es una instancia de Amazon RDS que utiliza MySQL en este ejemplo.

Note

El tipo MySqlDataNode está obsoleto. Aunque puede seguir usando MySqlDataNode, lerecomendamos que utilice SqlDataNode.

Nodo de datos de Amazon S3

A continuación, el componente de canalización S3Output define una ubicación para el archivo de salida;en este caso, un archivo CSV en una ubicación de bucket de Amazon S3. El componente S3DataNode desalida se define por los siguientes campos:

{ "id": "S3DataNodeId114", "schedule": { "ref": "ScheduleId113" }, "filePath": "s3://example-bucket/rds-output/output.csv", "name": "My S3 Data", "type": "S3DataNode"},

Id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.Schedule

Una referencia al componente de programación que creamos en las líneas anteriores del archivoJSON.

filePath

La ruta a los datos asociados al nodo de datos, que es un archivo de salida CSV en este ejemplo.Name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.Type

El tipo de objeto de canalización, que es S3DataNode para que coincida con la ubicación donderesiden los datos, en un bucket de Amazon S3.

Recurso

Esta es una definición del recurso informático que realiza la operación de copia. En este ejemplo, AWSData Pipeline debe crear automáticamente una instancia EC2 para realizar la tarea de copia y terminar elrecurso tras completarse la tarea. Los campos definidos aquí controlan la creación y función de la instanciaEC2 que realiza el trabajo. El componente Resource se define por los siguientes campos:

{ "id": "Ec2ResourceId116", "schedule": { "ref": "ScheduleId113" }, "name": "My EC2 Resource", "role": "DataPipelineDefaultRole",

Versión de API 2012-10-29121

Page 129: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

"type": "Ec2Resource", "resourceRole": "DataPipelineDefaultResourceRole"},

Id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.Schedule

El programa en el que desea crear este recurso informático.Name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.Role

El rol de IAM de la cuenta que tiene acceso a los recursos, como el acceso a un bucket de Amazon S3para recuperar datos.

Type

El tipo de recurso informático para realizar el trabajo; en este caso, una instancia EC2. Hay otros tiposde recursos disponibles, como un tipo EmrCluster.

resourceRole

El rol de IAM de la cuenta que crea los recursos, por ejemplo, la creación y configuración de unainstancia EC2 en su nombre. resourceRole

ActividadLa última sección del archivo JSON es la definición de la actividad que representa el trabajo que serealizará. En este caso, utilizamos un componente CopyActivity para copiar datos de un archivo en unbucket de Amazon S3 en otro archivo. El componente CopyActivity se define por los siguientes campos:

{ "id": "CopyActivityId112", "input": { "ref": "MySqlDataNodeId115" }, "schedule": { "ref": "ScheduleId113" }, "name": "My Copy", "runsOn": { "ref": "Ec2ResourceId116" }, "onSuccess": { "ref": "ActionId1" }, "onFail": { "ref": "SnsAlarmId117" }, "output": { "ref": "S3DataNodeId114" }, "type": "CopyActivity"},

Id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.

Versión de API 2012-10-29122

Page 130: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Input

La ubicación de los datos de MySQL que se van a copiar.Schedule

La programación en la que ejecutar esta actividad.Name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.runsOn

El recurso informático que realiza el trabajo que define esta actividad. En este ejemplo,proporcionamos una referencia a la instancia de EC2 definidos anteriormente. El uso del camporunsOn conlleva que AWS Data Pipeline cree la instancia EC2 automáticamente. El campo runsOnindica que el recurso existe en la infraestructura de AWS, mientras que el valor de workerGroup indicaque desea usar sus propios recursos locales para realizar el trabajo.

onSuccess

La SnsAlarm (p. 294) que se va a enviar si la actividad se realiza de forma correcta.onFail

La SnsAlarm (p. 294) que se va a enviar si la actividad no se realiza de forma correcta.Output

La ubicación en Amazon S3 del archivo de salida CSV.Type

El tipo de actividad que se va a realizar.

Cargar y activar la definición de canalizaciónDebe cargar la definición de la canalización y activar esta última. En los ejemplos de comandos siguientes,sustituya pipeline_name por la etiqueta de su canalización y pipeline_file por la ruta completa delarchivo .json de definición de la canalización.

AWS CLI

Para crear la definición de la canalización y activar esta última, utilice el siguiente comando create-pipeline.Anote el ID de la canalización, pues utilizará este valor con la mayoría de los comandos de la CLI.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Para cargar la definición de la canalización, utilice el siguiente comando put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Si la canalización se valida correctamente, el campo validationErrors estará vacío. Es importanterevisar todas las advertencias.

Para activar la canalización, utilice el siguiente comando activate-pipeline.

Versión de API 2012-10-29123

Page 131: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopiar datos en Amazon Redshift

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Puede comprobar si la canalización aparece en la lista de canalizaciones mediante el siguiente comandolist-pipelines.

aws datapipeline list-pipelines

Copiar datos en Amazon Redshift con AWS DataPipeline

En este tutorial, se le enseña el proceso de creación de una canalización que transfiere datos de AmazonS3 a Amazon Redshift periódicamente mediante la plantilla Copy to Redshift de la consola de AWS DataPipeline, o mediante un archivo de definición de canalización con la CLI de AWS Data Pipeline.

Amazon S3 es un servicio web que le permite almacenar datos en la nube. Para obtener más información,consulte Guía del usuario de la consola de Amazon Simple Storage Service.

Amazon Redshift es un servicio de almacén de datos en la nube. Para obtener más información, consulteAmazon Redshift Cluster Management Guide.

Este tutorial tiene varios requisitos previos. Tras completar los siguientes pasos, puede continuar el tutorialmediante la consola o la CLI.

Contenido• Antes de comenzar: configurar las opciones de COPY y cargar datos (p. 124)• Configurar la canalización, crear un grupo de seguridad y crear un clúster de Amazon

Redshift (p. 125)• Copiar datos en Amazon Redshift mediante la consola de AWS Data Pipeline (p. 126)• Copiar datos en Amazon Redshift mediante la línea de comandos (p. 129)

Antes de comenzar: configurar las opciones de COPYy cargar datosAntes de copiar datos en Amazon Redshift dentro de AWS Data Pipeline, asegúrese de:

• Cargar datos desde Amazon S3.• Configurar la actividad de COPY en Amazon Redshift.

Una vez que tenga estas opciones en funcionamiento y que haya completado correctamente una carga dedatos, transfiera estas opciones a AWS Data Pipeline para realizar la copia en este servicio.

Para conocer las opciones de COPY, consulte COPY en la Guía de desarrollador de base de datos deAmazon Redshift.

Para obtener información sobre los pasos para cargar los datos desde Amazon S3, consulte Carga dedatos desde Amazon S3 en la Guía de desarrollador de base de datos de Amazon Redshift.

Por ejemplo, el siguiente comando SQL en Amazon Redshift crea una nueva tabla denominada LISTING ycopia datos de muestra de un bucket disponible públicamente en Amazon S3.

Versión de API 2012-10-29124

Page 132: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAntes de comenzar: configurar la

canalización, la seguridad y el clúster

Reemplace el <iam-role-arn> y la región por la suya propia.

Para obtener más información acerca de este ejemplo, consulte Carga de datos de ejemplo desde AmazonS3 en la Guía de introducción de Amazon Redshift.

create table listing( listid integer not null distkey, sellerid integer not null, eventid integer not null, dateid smallint not null sortkey, numtickets smallint not null, priceperticket decimal(8,2), totalprice decimal(8,2), listtime timestamp);

copy listing from 's3://awssampledbuswest2/tickit/listings_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region 'us-west-2';

Configurar la canalización, crear un grupo deseguridad y crear un clúster de Amazon RedshiftPara configurar el tutorial

1. Completar las tareas en Configuración de AWS Data Pipeline (p. 15).2. Crear un grupo de seguridad.

a. Abra la consola de Amazon EC2.b. En el panel de navegación, haga clic en Security Groups.c. Haga clic en Create Security Group.d. Especifique un nombre y una descripción para el grupo de seguridad.e. [EC2-Classic] Seleccione No VPC para VPC.f. [EC2-VPC] Seleccione el ID de su VPC para VPC.g. Haga clic en Create.

3. [EC2-Classic] Cree un grupo de seguridad de clúster de Amazon Redshift y especifique el grupo deseguridad de Amazon EC2.

a. Abra la consola de Amazon Redshift.b. En el panel de navegación, haga clic en Security Groups.c. Haga clic en Create Cluster Security Group.d. En el cuadro de diálogo Create Cluster Security Group, especifique un nombre y una descripción

de grupo de seguridad de clúster.e. Haga clic en el nombre del nuevo grupo de seguridad de clúster.f. Haga clic en Add Connection Type.g. En el cuadro de diálogo Add Connection Type, seleccione EC2 Security Group en Connection

Type, seleccione el grupo de seguridad que creó en EC2 Security Group Name y, a continuación,haga clic en Authorize.

4. [EC2-VPC] Cree un grupo de seguridad de clúster de Amazon Redshift y especifique el grupo deseguridad de VPC.

a. Abra la consola de Amazon EC2.b. En el panel de navegación, haga clic en Security Groups.c. Haga clic en Create Security Group.

Versión de API 2012-10-29125

Page 133: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

d. En el cuadro de diálogo Create Security Group, especifique un nombre y una descripción delgrupo de seguridad y seleccione el ID de su VPC para VPC.

e. Haga clic en Add Rule. Especifique el tipo, el protocolo y el rango de puertos, y comience aescribir el ID del grupo de seguridad en Source. Seleccione el grupo de seguridad que creó en elsegundo paso.

f. Haga clic en Create.5. El siguiente es un resumen de los pasos.

Si dispone de un clúster de Amazon Redshift existente, anote el ID del clúster.

Para crear un nuevo clúster y cargar datos de muestra, siga los pasos de Introducción a AmazonRedshift. Para obtener más información sobre la creación de clústeres, consulte Creación de unclúster en la Amazon Redshift Cluster Management Guide.

a. Abra la consola de Amazon Redshift.b. Haga clic en Launch Cluster.c. Proporcione los detalles obligatorios para su clúster y, a continuación, haga clic en Continue.d. Proporcione la configuración de nodos y, a continuación, haga clic en Continue.e. En la página de información de configuración adicional, seleccione el grupo de seguridad de

clúster que creó y, a continuación, haga clic en Continue.f. Revise las especificaciones para su clúster y, a continuación, haga clic en Launch Cluster.

Copiar datos en Amazon Redshift mediante la consolade AWS Data PipelinePuede crear una canalización para copiar datos de Amazon S3 en Amazon Redshift. Creará una nuevatabla en Amazon Redshift y, a continuación, usará AWS Data Pipeline para transferir datos a esta tabladesde un bucket de Amazon S3 público, el cual contiene datos de entrada de ejemplo en formato CSV. Losregistros se guardan en un bucket de Amazon S3 de su propiedad.

Amazon S3 es un servicio web que le permite almacenar datos en la nube. Para obtener más información,consulte Guía del usuario de la consola de Amazon Simple Storage Service.

Amazon Redshift es un servicio de almacén de datos en la nube. Para obtener más información, consulteAmazon Redshift Cluster Management Guide.

Requisitos previos

Antes de comenzar este tutorial, complete los requisitos previos descritos en Antes de comenzar:configurar las opciones de COPY y cargar datos (p. 124) y Configurar la canalización, crear un grupo deseguridad y crear un clúster de Amazon Redshift (p. 125).

Tareas• Crear la canalización (p. 126)• Guardar y validar la canalización (p. 127)• Activar la canalización (p. 128)• Supervisar las ejecuciones de la canalización (p. 128)• (Opcional) Eliminar la canalización (p. 128)

Crear la canalizaciónEn primer lugar, cree la canalización.

Versión de API 2012-10-29126

Page 134: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

Esta canalización se basa en las opciones de Sintaxis (p. 217).

Utiliza la plantilla Copy to Redshift en la consola de AWS Data Pipeline. Para obtener información acercade esta plantilla, consulte Carga de datos de Amazon S3 en Amazon Redshift (p. 35).

Para crear la canalización

1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.2. La primera pantalla que aparece depende de si se ha creado una canalización en la región actual.

a. Si no ha creado una canalización en esta región, la consola muestra una pantalla de introducción.Seleccione Get started now (Comenzar ahora).

b. Si ya ha creado una canalización en esta región, la consola muestra una página con un listado decanalizaciones de la región. Elija Create new pipeline (Crear nueva canalización).

3. En Name (Nombre), escriba el nombre de la canalización.4. (Opcional) En Description (Descripción), escriba la descripción de la canalización.5. Para Source, seleccione Build using a template y, a continuación, seleccione la siguiente plantilla:

Load data from S3 into Redshift.6. En Parameters (Parámetros), proporcione información sobre la carpeta de entrada en Amazon S3 y la

base de datos de Amazon Redshift que creó.7. En Schedule (Programación), elija on pipeline activation (activación en la canalización).8. En Pipeline Configuration (Configuración de canalización), deje activado el registro. Elija el icono de

carpeta que se muestra debajo de S3 location for logs (Ubicación de S3 para los registros), seleccioneuno de los buckets o carpetas y, a continuación, elija Select (Seleccionar).

Si lo prefiere, puede deshabilitar el registro.9. En Security/Access (Seguridad/Acceso), deje la opción IAM roles (Roles de IAM) establecida en

Default (Predeterminado).10. Haga clic en Activate (Activar).

Si lo prefiere, puede elegir Edit in Architect (Editar en Architect) para modificar esta canalización. Porejemplo, puede agregar condiciones previas.

Guardar y validar la canalizaciónPuede guardar la definición de la canalización en cualquier punto del proceso de creación. Tan prontocomo guarde la definición de la canalización, AWS Data Pipeline buscará los errores de sintaxis y sifalta algún valor en ella. Si la canalización está incompleta o es incorrecta, AWS Data Pipeline generaráerrores y advertencias de validación. Los mensajes de advertencia son meramente informativos, pero esimprescindible corregir todos los errores notificados en los mensajes antes de activar la canalización.

Para guardar y validar la canalización

1. Elija Save pipeline (Guardar canalización).2. AWS Data Pipeline valida la definición de la canalización y devuelve mensajes de error, advertencia

o validación correcta. Si recibe un mensaje de error, elija Close (Cerrar), vaya al panel derecho y elijaErrors/Warnings (Errores/Advertencias).

3. En el panel Errors/Warnings (Errores/Advertencias), se muestra una lista de objetos que no hansuperado la validación. Elija el signo más (+) situado junto a los nombres de los objetos y busque losmensajes de error en rojo.

4. Cuando observe un mensaje de error, vaya al panel del objeto específico donde aparece y corríjalo.Por ejemplo, si aparece un mensaje de error en el objeto DataNodes, vaya al panel DataNodes paracorregirlo.

Versión de API 2012-10-29127

Page 135: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la consola

5. Después de corregir los errores enumerados en el panel Errors/Warnings (Errores/Advertencias), elijaSave Pipeline (Guardar canalización).

6. Repita el proceso hasta que la canalización se valide correctamente.

Activar la canalizaciónActive la canalización para comenzar a crear y procesar ejecuciones. La canalización comienza según elcalendario y el periodo que consten en su definición.

Important

Si la activación se lleva a cabo correctamente, la canalización se encontrará en ejecución ypodrían devengarse cargos por uso. Para obtener más información, consulte Precios de AWSData Pipeline. Para que dejen de devengarse cargos por uso de AWS Data Pipeline, elimine lacanalización.

Para activar la canalización

1. Elija Activate.2. En el cuadro de diálogo de confirmación, elija Close (Cerrar).

Supervisar las ejecuciones de la canalizaciónDespués de activar la canalización, se abrirá la página Execution details (Detalles de ejecución), dondepuede monitorizar el progreso de la canalización.

Para monitorizar el proceso de las ejecuciones de la canalización

1. Elija Update (Actualizar) o pulse F5 para actualizar el estado mostrado.

Tip

Si no hay ninguna ejecución en la lista, asegúrese de que Start (in UTC) (Inicio [en UTC])y End (in UTC) (Fin [en UTC]) abarquen el principio y el final de la canalización y, acontinuación, elija Update (Actualizar).

2. Cuando el estado de todos los objetos en la canalización es FINISHED, la canalización ha completadocorrectamente las tareas programadas. Si ha creado una notificación de SNS, recibirá un mensaje decorreo electrónico para informarle de que esta tarea ha finalizado correctamente.

3. Si la canalización no se completa correctamente, compruebe su configuración para ver si existealgún problema. Para obtener más información sobre cómo solucionar problemas de ejecuciones deinstancias de la canalización, consulte Resolución de problemas comunes (p. 321).

(Opcional) Eliminar la canalizaciónPara que dejen de devengarse cargos, elimine la canalización. Al eliminar la canalización también seeliminan su definición y todos los objetos asociados.

Para eliminar la canalización

1. En la página List Pipelines (Enumerar canalizaciones), seleccione la canalización.2. Haga clic en Actions (Acciones) y, a continuación, elija Delete (Eliminar).3. Cuando se le pida confirmación, seleccione Delete (Eliminar).

Versión de API 2012-10-29128

Page 136: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Copiar datos en Amazon Redshift mediante la línea decomandosEn este tutorial, se muestra cómo copiar datos de Amazon S3 en Amazon Redshift. Creará una nuevatabla en Amazon Redshift y, a continuación, usará AWS Data Pipeline para transferir datos a esta tabladesde un bucket de Amazon S3 público, el cual contiene datos de entrada de ejemplo en formato CSV. Losregistros se guardan en un bucket de Amazon S3 de su propiedad.

Amazon S3 es un servicio web que le permite almacenar datos en la nube. Para obtener más información,consulte la Guía del usuario de la consola de Amazon Simple Storage Service. Amazon Redshift es unservicio de almacén de datos en la nube. Para obtener más información, consulte Amazon Redshift ClusterManagement Guide.

Requisitos previos

Debe seguir estos pasos antes de comenzar:

1. Instale y configure una interfaz de línea de comandos (CLI, Command Line Interface). Para obtenermás información, consulte Acceso a AWS Data Pipeline (p. 3).

2. Asegúrese de que existan los roles de IAM denominados DataPipelineDefaultRole yDataPipelineDefaultResourceRole. La consola de AWS Data Pipeline crea estos rolesautomáticamente. Si no ha usado la consola de AWS Data Pipeline al menos una vez, deberá crearestos roles manualmente. Para obtener más información, consulte Roles de IAM para AWS DataPipeline (p. 80).

3. Configure el comando COPY en Amazon Redshift, ya que tendrá que disponer de estas mismasopciones en funcionamiento al realizar la copia en AWS Data Pipeline. Para obtener información,consulte Antes de comenzar: configurar las opciones de COPY y cargar datos (p. 124).

4. Configure una base de datos de Amazon Redshift. Para obtener más información, consulte Configurarla canalización, crear un grupo de seguridad y crear un clúster de Amazon Redshift (p. 125).

Tareas• Definir una canalización en formato JSON (p. 129)• Cargar y activar la definición de canalización (p. 135)

Definir una canalización en formato JSONEn este escenario de ejemplo, se muestra cómo copiar datos de un bucket de Amazon S3 en AmazonRedshift.

Este es el archivo JSON de definición de la canalización completo seguido de una explicación de cadauna de sus secciones. Le recomendamos que use un editor de texto que pueda ayudarle a comprobar lasintaxis de los archivos con formato JSON y asigne un nombre al archivo mediante la extensión de archivo.json.

{ "objects": [ { "id": "CSVId1", "name": "DefaultCSV1", "type": "CSV" }, { "id": "RedshiftDatabaseId1", "databaseName": "dbname",

Versión de API 2012-10-29129

Page 137: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

"username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterId": "redshiftclusterId" }, { "id": "Default", "scheduleType": "timeseries", "failureAndRerunMode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "RedshiftDataNodeId1", "schedule": { "ref": "ScheduleId1" }, "tableName": "orders", "name": "DefaultRedshiftDataNode1", "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));", "type": "RedshiftDataNode", "database": { "ref": "RedshiftDatabaseId1" } }, { "id": "Ec2ResourceId1", "schedule": { "ref": "ScheduleId1" }, "securityGroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "logUri": "s3://myLogs", "resourceRole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" }, { "id": "ScheduleId1", "startDateTime": "yyyy-mm-ddT00:00:00", "name": "DefaultSchedule1", "type": "Schedule", "period": "period", "endDateTime": "yyyy-mm-ddT00:00:00" }, { "id": "S3DataNodeId1", "schedule": { "ref": "ScheduleId1" }, "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataFormat": { "ref": "CSVId1" }, "type": "S3DataNode" }, { "id": "RedshiftCopyActivityId1", "input": { "ref": "S3DataNodeId1" }, "schedule": {

Versión de API 2012-10-29130

Page 138: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

"ref": "ScheduleId1" }, "insertMode": "KEEP_EXISTING", "name": "DefaultRedshiftCopyActivity1", "runsOn": { "ref": "Ec2ResourceId1" }, "type": "RedshiftCopyActivity", "output": { "ref": "RedshiftDataNodeId1" } } ]}

Para obtener más información acerca de estos objetos, consulte la siguiente documentación.

Objetos• Nodos de datos (p. 131)• Recurso (p. 133)• Actividad (p. 134)

Nodos de datosEn este ejemplo se usan un nodo de datos de entrada, un nodo de datos de salida y una base de datos.

Nodo de datos de entrada

El componente de canalización S3DataNode de entrada define la ubicación de los datos de entradaen Amazon S3 y el formato de datos de los datos de entrada. Para obtener más información, consulteS3DataNode (p. 164).

Este componente de entrada se define por los siguientes campos:

{ "id": "S3DataNodeId1", "schedule": { "ref": "ScheduleId1" }, "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataFormat": { "ref": "CSVId1" }, "type": "S3DataNode"},

id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.schedule

Una referencia al componente de programación.filePath

La ruta a los datos asociados al nodo de datos, que es un archivo de entrada CSV en este ejemplo.name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.

Versión de API 2012-10-29131

Page 139: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

dataFormat

Una referencia al formato de los datos para la actividad que se procesará.

Nodo de datos de salida

El componente de canalización RedshiftDataNode de salida define una ubicación para los datos desalida; en este caso, una tabla de una base de datos de Amazon Redshift. Para obtener más información,consulte RedshiftDataNode (p. 159). Este componente de salida se define por los siguientes campos:

{ "id": "RedshiftDataNodeId1", "schedule": { "ref": "ScheduleId1" }, "tableName": "orders", "name": "DefaultRedshiftDataNode1", "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));", "type": "RedshiftDataNode", "database": { "ref": "RedshiftDatabaseId1" }},

id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.schedule

Una referencia al componente de programación.tableName

Nombre de la tabla de Amazon Redshift.name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.createTableSql

Una expresión SQL para crear la tabla en la base de datos.database

Una referencia a la base de datos de Amazon Redshift.

Base de datos

El componente RedshiftDatabase se define por los siguientes campos. Para obtener más información,consulte RedshiftDatabase (p. 284).

{ "id": "RedshiftDatabaseId1", "databaseName": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterId": "redshiftclusterId"},

Versión de API 2012-10-29132

Page 140: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.databaseName

El nombre de la base de datos lógica.username

El nombre de usuario para conectarse a la base de datos.name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.password

La contraseña para conectarse a la base de datos.clusterId

El ID del clúster de Redshift.

Recurso

Esta es una definición del recurso informático que realiza la operación de copia. En este ejemplo, AWSData Pipeline debe crear automáticamente una instancia EC2 para realizar la tarea de copia y terminarla instancia tras completarse la tarea. Los campos definidos aquí controlan la creación y función de lainstancia que realiza el trabajo. Para obtener más información, consulte Ec2Resource (p. 235).

Ec2Resource se define por los siguientes campos:

{ "id": "Ec2ResourceId1", "schedule": { "ref": "ScheduleId1" }, "securityGroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "logUri": "s3://myLogs", "resourceRole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource"},

id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.schedule

El programa en el que desea crear este recurso informático.securityGroups

El grupo de seguridad que se va a utilizar para las instancias del grupo de recursos.name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.role

El rol de IAM de la cuenta que tiene acceso a recursos, como el acceso a un bucket de Amazon S3para recuperar datos.

Versión de API 2012-10-29133

Page 141: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

logUri

La ruta de destino de Amazon S3 para realizar copias de seguridad de registros de Task Runnerdesde Ec2Resource.

resourceRole

El rol de IAM de la cuenta que crea recursos, como la creación y configuración de una instancia EC2en su nombre. Role y ResourceRole pueden ser el mismo rol, pero por separado proporcionan mayordetalle en su configuración de seguridad.

Actividad

La última sección del archivo JSON es la definición de la actividad que representa el trabajo que serealizará. En este caso, usamos un componente RedshiftCopyActivity para copiar los datos deAmazon S3 en Amazon Redshift. Para obtener más información, consulte RedshiftCopyActivity (p. 215).

El componente RedshiftCopyActivity se define por los siguientes campos:

{ "id": "RedshiftCopyActivityId1", "input": { "ref": "S3DataNodeId1" }, "schedule": { "ref": "ScheduleId1" }, "insertMode": "KEEP_EXISTING", "name": "DefaultRedshiftCopyActivity1", "runsOn": { "ref": "Ec2ResourceId1" }, "type": "RedshiftCopyActivity", "output": { "ref": "RedshiftDataNodeId1" }},

id

El ID definido por el usuario, que es una etiqueta solo con fines de referencia.input

Una referencia al archivo de origen de Amazon S3.schedule

La programación en la que ejecutar esta actividad.insertMode

El tipo de inserción (KEEP_EXISTING, OVERWRITE_EXISTING o TRUNCATE).name

El nombre definido por el usuario, que es una etiqueta solo con fines de referencia.runsOn

El recurso informático que realiza el trabajo que define esta actividad.output

Una referencia a la tabla de destino de Amazon Redshift.

Versión de API 2012-10-29134

Page 142: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMediante la CLI

Cargar y activar la definición de canalizaciónDebe cargar la definición de la canalización y activar esta última. En los ejemplos de comandos siguientes,sustituya pipeline_name por la etiqueta de su canalización y pipeline_file por la ruta completa delarchivo .json de definición de la canalización.

AWS CLI

Para crear la definición de la canalización y activar esta última, utilice el siguiente comando create-pipeline.Anote el ID de la canalización, pues utilizará este valor con la mayoría de los comandos de la CLI.

aws datapipeline create-pipeline --name pipeline_name --unique-id token{ "pipelineId": "df-00627471SOVYZEXAMPLE"}

Para cargar la definición de la canalización, utilice el siguiente comando put-pipeline-definition.

aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json

Si la canalización se valida correctamente, el campo validationErrors estará vacío. Es importanterevisar todas las advertencias.

Para activar la canalización, utilice el siguiente comando activate-pipeline.

aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

Puede comprobar si la canalización aparece en la lista de canalizaciones mediante el siguiente comandolist-pipelines.

aws datapipeline list-pipelines

Versión de API 2012-10-29135

Page 143: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresTipos de datos simples

Expresiones y funciones decanalizaciones

En esta sección, se explica la sintaxis para utilizar expresiones y funciones en canalizaciones, incluidos lostipos de datos asociados.

Tipos de datos simplesLos siguientes tipos de datos se pueden establecer como valores de campo.

Tipos• DateTime (p. 136)• Numérico (p. 136)• Referencias de objetos (p. 136)• Período (p. 136)• Cadena (p. 137)

DateTimeAWS Data Pipeline admite la fecha y la hora expresadas en el formato "AAAA-MM-DDTHH:MM:SS" enUTC/GMT únicamente. En el siguiente ejemplo, se establece el campo startDateTime de un objetoSchedule en 1/15/2012, 11:59 p.m., en la zona horaria UTC/GMT.

"startDateTime" : "2012-01-15T23:59:00"

NuméricoAWS Data Pipeline admite valores enteros y valores de coma flotante.

Referencias de objetosUn objeto en la definición de la canalización. Puede ser el objeto actual, el nombre de un objeto definidoen cualquier parte de la canalización o un objeto que muestra el objeto actual en un campo, al que sehace referencia con la palabra clave node. Para obtener más información acerca de node, consulteObjetos y campos de referencia (p. 137). Para obtener más información acerca de los tipos de objetos decanalización, consulte Referencia de objeto de canalización (p. 148).

PeríodoIndica la frecuencia con la que debe ejecutarse un evento programado. Se expresa en el formato "N[years|months|weeks|days|hours|minutes]", donde N es un valor positivo entero.

El período mínimo de 15 minutos y la duración máxima es de 3 años.

En el siguiente ejemplo, se establece el campo period del objeto Schedule en 3 horas. Esto crea unaprogramación que se ejecuta cada tres horas.

Versión de API 2012-10-29136

Page 144: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCadena

"period" : "3 hours"

CadenaValores de cadena estándar. Las cadenas deben ir entre comillas dobles ("). Puede utilizar la barra oblicuainversa (\) para escapar caracteres en una cadena. No se admiten cadenas de varias líneas.

A continuación, se muestran ejemplos de valores de cadenas válidos para el campo id.

"id" : "My Data Object"

"id" : "My \"Data\" Object"

Las cadenas también pueden contener expresiones que se evalúan en valores de cadena. Se insertan enla cadena y están delimitados con: "#{" y "}". En el siguiente ejemplo, se utiliza una expresión para insertarel nombre del objeto actual en una ruta.

"filePath" : "s3://myBucket/#{name}.csv"

Para obtener más información acerca del uso de expresiones, consulte Objetos y campos dereferencia (p. 137) y Evaluación de expresiones (p. 140).

ExpresionesLas expresiones le permiten compartir un valor entre objetos relacionados. El servicio web AWS DataPipeline procesa las expresiones en tiempo de ejecución, lo que garantiza que todas las expresiones sesustituyan por el valor de la expresión.

Las expresiones están delimitadas por: "#{" y "}". Puede utilizar una expresión en cualquier objeto dedefinición de canalización donde una cadena sea legal. Si un slot es una referencia o de tipo ID, NAME,TYPE o SPHERE, su valor no se evalúa y se utiliza literalmente.

La siguiente expresión llama a una de las funciones de AWS Data Pipeline. Para obtener más información,consulte Evaluación de expresiones (p. 140).

#{format(myDateTime,'YYYY-MM-dd hh:mm:ss')}

Objetos y campos de referenciaLas expresiones pueden utilizar campos del objeto actual en el que existe la expresión o los campos deotro objeto que está vinculado mediante una referencia.

Un formato de slot consta de una hora de creación, seguida de la hora de creación del objeto, como@S3BackupLocation_2018-01-31T11:05:33.

También puede hacer referencia al ID de slot exacto especificado en la definición de la canalización; porejemplo, el ID de slot de la ubicación de copia de seguridad de Amazon S3. Para hacer referencia al ID deslot, utilice #{parent.@id}.

En el siguiente ejemplo, el campo filePath hace referencia al campo id en el mismo objetopara formar un nombre de archivo. El valor de filePath se evalúa como "s3://mybucket/ExampleDataNode.csv".

{

Versión de API 2012-10-29137

Page 145: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresExpresiones anidadas

"id" : "ExampleDataNode", "type" : "S3DataNode", "schedule" : {"ref" : "ExampleSchedule"}, "filePath" : "s3://mybucket/#{parent.@id}.csv", "precondition" : {"ref" : "ExampleCondition"}, "onFail" : {"ref" : "FailureNotify"}}

Para utilizar un campo que existe en otro objeto vinculado mediante una referencia, utilice la palabra clavenode. Esta palabra clave solo está disponible con objetos de alarma y condición previa.

Continuando con el ejemplo anterior, una expresión de una SnsAlarm puede hacer referencia al rango defecha y hora de una Schedule, porque S3DataNode hace referencia a ambas.

En concreto, el campo message de FailureNotify puede utilizar los campos en tiempo de ejecución@scheduledStartTime y @scheduledEndTime desde ExampleSchedule, porque el campo onFailde ExampleDataNode hace referencia a FailureNotify y su campo schedule hace referencia aExampleSchedule.

{ "id" : "FailureNotify", "type" : "SnsAlarm", "subject" : "Failed to run pipeline component", "message": "Error for interval #{node.@scheduledStartTime}..#{node.@scheduledEndTime}.", "topicArn":"arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic"},

Note

Puede crear canalizaciones que tengan dependencias, como las tareas de la canalización quedependen del trabajo de otros sistemas o tareas. Si la canalización necesita determinadosrecursos, añada esas dependencias a la canalización con condiciones previas que se asociarán alos nodos de datos y las tareas. Esto hace que las canalizaciones sean más fáciles de depurar ymás resistentes. Además, mantenga las dependencias dentro de una única canalización cuandosea posible, ya que es difícil solucionar problemas entre canalizaciones.

Expresiones anidadasAWS Data Pipeline le permite anidar valores para crear expresiones más complejas. Por ejemplo, pararealizar un cálculo de tiempo (restar 30 minutos de scheduledStartTime) y formatear el resultado parautilizarlo en una definición de canalización, puede utilizar la siguiente expresión en una actividad:

#{format(minusMinutes(@scheduledStartTime,30),'YYYY-MM-dd hh:mm:ss')}

y utilizando el prefijo node si la expresión forma parte de una SnsAlarm o Precondition:

#{format(minusMinutes(node.@scheduledStartTime,30),'YYYY-MM-dd hh:mm:ss')}

ListasLas expresiones pueden evaluarse en listas y funciones en listas. Por ejemplo, supongamos que unalista se define de la siguiente forma: "myList":["one","two"]. Si esta lista se utiliza en la expresión#{'this is ' + myList}, se evaluará en ["this is one", "this is two"]. Si tiene doslistas, Data Pipeline al final las nivela en su evaluación. Por ejemplo, si myList1 se define como [1,2] ymyList2 se define como [3,4], la expresión [#{myList1}, #{myList2}] se evalúa en [1,2,3,4].

Versión de API 2012-10-29138

Page 146: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresExpresión de nodo

Expresión de nodoAWS Data Pipeline utiliza la expresión #{node.*} en SnsAlarm o PreCondition como referenciaal objeto principal de un componente de la canalización. Dado que se hace referencia a SnsAlarmy PreCondition desde una actividad o recurso sin ninguna referencia de vuelta desde ellos, nodeproporciona la manera de hacer referencia al remitente. Por ejemplo, la siguiente definición de canalizacióndemuestra cómo una notificación de error puede utilizar node para hacer referencia a su principal, en estecaso ShellCommandActivity, e incluye las horas de inicio y finalización programadas del principal enel mensaje SnsAlarm. La referencia scheduledStartTime de ShellCommandActivity no necesita el prefijonode porque scheduledStartTime hace referencia a sí mismo.

Note

Los campos precedidos por el signo AT (@) indican que esos campos son campos de tiempo deejecución.

{ "id" : "ShellOut", "type" : "ShellCommandActivity", "input" : {"ref" : "HourlyData"}, "command" : "/home/userName/xxx.sh #{@scheduledStartTime} #{@scheduledEndTime}", "schedule" : {"ref" : "HourlyPeriod"}, "stderr" : "/tmp/stderr:#{@scheduledStartTime}", "stdout" : "/tmp/stdout:#{@scheduledStartTime}", "onFail" : {"ref" : "FailureNotify"},},{ "id" : "FailureNotify", "type" : "SnsAlarm", "subject" : "Failed to run pipeline component", "message": "Error for interval #{node.@scheduledStartTime}..#{node.@scheduledEndTime}.", "topicArn":"arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic"},

AWS Data Pipeline admite referencias transitivas para los campos definidos por el usuario, pero no paralos campos de tiempo de ejecución. Una referencia transitiva es una referencia entre dos componentesde la canalización que dependen de otro componente de la canalización como intermediario. El siguienteejemplo muestra una referencia a un campo definido por el usuario transitivo y una referencia a un campoen tiempo de ejecución no transitivo, ambos válidos. Para obtener más información, consulte Camposdefinidos por el usuario (p. 69).

{ "name": "DefaultActivity1", "type": "CopyActivity", "schedule": {"ref": "Once"}, "input": {"ref": "s3nodeOne"}, "onSuccess": {"ref": "action"}, "workerGroup": "test", "output": {"ref": "s3nodeTwo"}},{ "name": "action", "type": "SnsAlarm", "message": "S3 bucket '#{node.output.directoryPath}' succeeded at #{node.@actualEndTime}.", "subject": "Testing", "topicArn": "arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic", "role": "DataPipelineDefaultRole"}

Versión de API 2012-10-29139

Page 147: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEvaluación de expresiones

Evaluación de expresionesAWS Data Pipeline proporciona un conjunto de funciones que se pueden utilizar para calcular elvalor de un campo. En el siguiente ejemplo, se utiliza la función makeDate para establecer el campostartDateTime de un objeto Schedule en "2011-05-24T0:00:00" GMT/UTC.

"startDateTime" : "makeDate(2011,5,24)"

Funciones matemáticasLas funciones siguientes están disponibles para trabajar con valores numéricos.

Función Descripción

+ Suma.

Ejemplo: #{1 + 2}

Resultado: 3

- Resta.

Ejemplo: #{1 - 2}

Resultado: -1

* Multiplicación.

Ejemplo: #{1 * 2}

Resultado: 2

/ División. Si dividimos dos valores enteros, elresultado se trunca.

Ejemplo: #{1 / 2}, Resultado: 0

Ejemplo: #{1.0 / 2}, Resultado: .5

^ Exponente.

Ejemplo: #{2 ^ 2}

Resultado: 4.0

Funciones de cadenaLas funciones siguientes sirven para trabajar con valores de cadena.

Función Descripción

+ Concatenación. Los valores queno son de cadena se conviertenprimero en cadenas.

Versión de API 2012-10-29140

Page 148: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFunciones de fecha y hora

Función DescripciónEjemplo: #{"hel" + "lo"}

Resultado: "hello"

Funciones de fecha y horaLas funciones siguientes sirven para trabajar con valores DateTime. Para los ejemplos, el valor demyDateTime es May 24, 2011 @ 5:10 pm GMT.

Note

El formato de fecha y hora para AWS Data Pipeline es Joda Time, que sustituye a lasclases de fecha y hora de Java. Para obtener más información, consulte Joda Time - ClassDateTimeFormat.

Función Descripción

int day(DateTime myDateTime) Obtiene el día del valor deDateTime como un entero.

Ejemplo: #{day(myDateTime)}

Resultado: 24

int dayOfYear(DateTime myDateTime) Obtiene el día del año del valorde DateTime como un entero.

Ejemplo:#{dayOfYear(myDateTime)}

Resultado: 144

DateTime firstOfMonth(DateTime myDateTime) Crea un objeto DateTime parael inicio del mes en el DateTimeespecificado.

Ejemplo:#{firstOfMonth(myDateTime)}

Resultado:"2011-05-01T17:10:00z"

String format(DateTime myDateTime,String format) Crea un objeto String que esel resultado de convertir elvalor de DateTime especificadoutilizando la cadena de formatoespecificada.

Ejemplo:#{format(myDateTime,'YYYY-MM-dd HH:mm:ss z')}

Resultado:"2011-05-24T17:10:00UTC"

Versión de API 2012-10-29141

Page 149: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFunciones de fecha y hora

Función Descripción

int hour(DateTime myDateTime) Obtiene la hora del valor deDateTime como un entero.

Ejemplo:#{hour(myDateTime)}

Resultado: 17

DateTime makeDate(int year,int month,int day) Crea un objeto DateTime, enUTC, con el año, mes y díaespecificados, a medianoche.

Ejemplo:#{makeDate(2011,5,24)}

Resultado:"2011-05-24T0:00:00z"

DateTime makeDateTime(int year,int month,intday,int hour,int minute)

Crea un objeto DateTime, enUTC, con el año, mes, día, hora yminuto especificados.

Ejemplo:#{makeDateTime(2011,5,24,14,21)}

Resultado:"2011-05-24T14:21:00z"

DateTime midnight(DateTime myDateTime) Crea un objeto DateTimepara la medianoche actual,en relación con el valor deDateTime especificado. Porejemplo, si MyDateTime es2011-05-25T17:10:00z, elresultado es el siguiente.

Ejemplo:#{midnight(myDateTime)}

Resultado:"2011-05-25T0:00:00z"

DateTime minusDays(DateTime myDateTime,intdaysToSub)

Crea un objeto DateTime quees el resultado de la resta delnúmero especificado de días delvalor de DateTime especificado.

Ejemplo:#{minusDays(myDateTime,1)}

Resultado:"2011-05-23T17:10:00z"

Versión de API 2012-10-29142

Page 150: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFunciones de fecha y hora

Función Descripción

DateTime minusHours(DateTime myDateTime,inthoursToSub)

Crea un objeto DateTimeque es el resultado de laresta del número de horasespecificado del valor deDateTime especificado.

Ejemplo:#{minusHours(myDateTime,1)}

Resultado:"2011-05-24T16:10:00z"

DateTime minusMinutes(DateTime myDateTime,intminutesToSub)

Crea un objeto DateTimeque es el resultado de laresta del número de minutosespecificado del valor deDateTime especificado.

Ejemplo:#{minusMinutes(myDateTime,1)}

Resultado:"2011-05-24T17:09:00z"

DateTime minusMonths(DateTime myDateTime,intmonthsToSub)

Crea un objeto DateTimeque es el resultado de laresta del número de mesesespecificado del valor deDateTime especificado.

Ejemplo:#{minusMonths(myDateTime,1)}

Resultado:"2011-04-24T17:10:00z"

DateTime minusWeeks(DateTime myDateTime,intweeksToSub)

Crea un objeto DateTimeque es el resultado de laresta del número de semanasespecificado del valor deDateTime especificado.

Ejemplo:#{minusWeeks(myDateTime,1)}

Resultado:"2011-05-17T17:10:00z"

Versión de API 2012-10-29143

Page 151: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFunciones de fecha y hora

Función Descripción

DateTime minusYears(DateTime myDateTime,intyearsToSub)

Crea un objeto DateTime quees el resultado de la resta delnúmero de años especificado delvalor de DateTime especificado.

Ejemplo:#{minusYears(myDateTime,1)}

Resultado:"2010-05-24T17:10:00z"

int minute(DateTime myDateTime) Obtiene el minuto del valor deDateTime como un entero.

Ejemplo:#{minute(myDateTime)}

Resultado: 10

int month(DateTime myDateTime) Obtiene el mes del valor deDateTime como un entero.

Ejemplo:#{month(myDateTime)}

Resultado: 5

DateTime plusDays(DateTime myDateTime,intdaysToAdd)

Crea un objeto DateTime quees el resultado de la suma delnúmero de días especificado alvalor de DateTime especificado.

Ejemplo:#{plusDays(myDateTime,1)}

Resultado:"2011-05-25T17:10:00z"

DateTime plusHours(DateTime myDateTime,inthoursToAdd)

Crea un objeto DateTime quees el resultado de la suma delnúmero de horas especificado alvalor de DateTime especificado.

Ejemplo:#{plusHours(myDateTime,1)}

Resultado:"2011-05-24T18:10:00z"

Versión de API 2012-10-29144

Page 152: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFunciones de fecha y hora

Función Descripción

DateTime plusMinutes(DateTime myDateTime,intminutesToAdd)

Crea un objeto DateTimeque es el resultado de lasuma del número de minutosespecificado al valor deDateTime especificado.

Ejemplo:#{plusMinutes(myDateTime,1)}

Resultado: "2011-05-2417:11:00z"

DateTime plusMonths(DateTime myDateTime,intmonthsToAdd)

Crea un objeto DateTime quees el resultado de la suma delnúmero de meses especificado alvalor de DateTime especificado.

Ejemplo:#{plusMonths(myDateTime,1)}

Resultado:"2011-06-24T17:10:00z"

DateTime plusWeeks(DateTime myDateTime,intweeksToAdd)

Crea un objeto DateTime quees el resultado de la sumadel número de semanasespecificado al valor deDateTime especificado.

Ejemplo:#{plusWeeks(myDateTime,1)}

Resultado:"2011-05-31T17:10:00z"

DateTime plusYears(DateTime myDateTime,intyearsToAdd)

Crea un objeto DateTime quees el resultado de la suma delnúmero de años especificado alvalor de DateTime especificado.

Ejemplo:#{plusYears(myDateTime,1)}

Resultado:"2012-05-24T17:10:00z"

Versión de API 2012-10-29145

Page 153: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCaracteres especiales

Función Descripción

DateTime sunday(DateTime myDateTime) Crea un objeto DateTimepara el domingo anterior, enrelación con el valor de DateTimeespecificado. Si el valor deDateTime especificado es undomingo, el resultado es el valorde DateTime especificado.

Ejemplo:#{sunday(myDateTime)}

Resultado: "2011-05-2217:10:00 UTC"

int year(DateTime myDateTime) Obtiene el año del valor deDateTime como un entero.

Ejemplo:#{year(myDateTime)}

Resultado: 2011

DateTime yesterday(DateTime myDateTime) Crea un objeto DateTime para eldía anterior, en relación con elvalor de DateTime especificado.El resultado es el mismo queminusDays(1).

Ejemplo:#{yesterday(myDateTime)}

Resultado:"2011-05-23T17:10:00z"

Caracteres especialesAWS Data Pipeline utiliza determinados caracteres que tienen un significado especial en las definicionesde canalizaciones, tal y como se muestra en la siguiente tabla.

Carácter especial Descripción Ejemplos

@ Campo de tiempo de ejecución.Este carácter es un prefijo delnombre de campo que solo estádisponible cuando se ejecuta unacanalización.

@actualStartTime

@failureReason

@resourceStatus

# Expresión. Las expresionesestán delimitadas por: "#{" y"}", y el contenido de las llaveslo evalúa AWS Data Pipeline.Para obtener más información,consulte Expresiones (p. 137).

#{format(myDateTime,'YYYY-MM-dd hh:mm:ss')}

s3://mybucket/#{id}.csv

Versión de API 2012-10-29146

Page 154: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCaracteres especiales

Carácter especial Descripción Ejemplos

* Campo cifrado. Este carácteres un prefijo del nombre decampo que indica que AWSData Pipeline debería cifrar elcontenido de este campo entránsito entre la consola o la CLIy el servicio AWS Data Pipeline.

*password

Versión de API 2012-10-29147

Page 155: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Referencia de objeto de canalizaciónPuede usar los siguientes componentes y objetos de canalización en su definición de la canalización.

Contenido• Nodos de datos (p. 149)• Actividades (p. 174)• Recursos (p. 235)• Condiciones previas (p. 262)• Bases de datos (p. 280)• Formatos de los datos (p. 285)• Actions (p. 294)• Programación (p. 297)• Utilidades (p. 302)

Note

Para ver una aplicación de ejemplo que usa el SDK de Java de AWS Data Pipeline, consulte DataPipeline DynamoDB Export Java Sample en GitHub.

A continuación, se muestra la jerarquía de objetos para AWS Data Pipeline.

Versión de API 2012-10-29148

Page 156: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresNodos de datos

Nodos de datosEstos son los objetos del nodo de datos de AWS Data Pipeline:

Objetos• DynamoDBDataNode (p. 149)• MySqlDataNode (p. 154)• RedshiftDataNode (p. 159)• S3DataNode (p. 164)• SqlDataNode (p. 169)

DynamoDBDataNodeDefine un nodo de datos utilizando DynamoDB, que se especifica como una entrada a un objetoHiveActivity o EMRActivity.

Note

El objeto DynamoDBDataNode no admite la condición previa Exists.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Este objeto hace referencia a otros dosobjetos que se definirían en el mismo archivo de definición de canalización. CopyPeriod es un objetoSchedule y Ready es un objeto de condición previa.

{ "id" : "MyDynamoDBTable", "type" : "DynamoDBDataNode", "schedule" : { "ref" : "CopyPeriod" }, "tableName" : "adEvents", "precondition" : { "ref" : "Ready" }}

Sintaxis

Campos obligatorios Descripción Tipo de slot

tableName La tabla de DynamoDB. Cadena

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos,

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29149

Page 157: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataNode

Campos de invocaciónde objetos

Descripción Tipo de slot

es mejor poner la referencia de programaciónen el objeto de la canalización predeterminadode modo que todos los objetos hereden eseprograma. O bien, si la canalización tiene unárbol de programas (programas dentro delprograma maestro), los usuarios pueden crearun objeto principal que tenga una referencia deprogramación. Para obtener más informaciónacerca de las configuraciones de programaciónopcionales de ejemplo, consulte Programación.

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece este campo, se puedereintentar una actividad remota que no se completedentro del tiempo de inicio establecido.

Período

dataFormat Valor de DataFormat para los datos que sedescriben en este nodo de datos. Actualmentecompatible con HiveActivity y HiveCopyActivity.

Objeto de referencia,por ejemplo,"dataFormat":{"ref":"myDynamoDBDataFormatId"}

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,

Versión de API 2012-10-29150

Page 158: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataNode

Campos opcionales Descripción Tipo de slot"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

readThroughputPercent Define la velocidad de las operaciones delectura para mantener la tasa de rendimientoaprovisionada de DynamoDB en el rango asignadopara la tabla. El valor es un doble entre 0,1 y 1,0,inclusive.

Double

region El código para la región en la que se encuentrala tabla de DynamoDB. Por ejemplo, us-east-1.Lo utiliza HiveActivity cuando realiza la faseprovisional para tablas de DynamoDB en Hive.

Enumeración

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia de AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

Versión de API 2012-10-29151

Page 159: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataNode

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

writeThroughputPercent Establece la velocidad de las operaciones deescritura para mantener la tasa de rendimientoaprovisionada de DynamoDB en el rango asignadopara la tabla. El valor es un doble entre 0,1 y 1,0,inclusive.

Double

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

Versión de API 2012-10-29152

Page 160: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataNode

Campos de tiempo deejecución

Descripción Tipo de slot

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Versión de API 2012-10-29153

Page 161: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMySqlDataNode

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

MySqlDataNodeDefine un nodo de datos utilizando MySQL.

Note

El tipo MySqlDataNode está obsoleto. Le recomendamos que utilice SqlDataNode (p. 169) ensu lugar.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Este objeto hace referencia a otros dosobjetos que se definirían en el mismo archivo de definición de canalización. CopyPeriod es un objetoSchedule y Ready es un objeto de condición previa.

{ "id" : "Sql Table", "type" : "MySqlDataNode", "schedule" : { "ref" : "CopyPeriod" }, "table" : "adEvents", "username": "user_name", "*password": "my_password", "connectionString": "jdbc:mysql://mysqlinstance-rds.example.us-east-1.rds.amazonaws.com:3306/database_name", "selectQuery" : "select * from #{table} where eventTime >= '#{@scheduledStartTime.format('YYYY-MM-dd HH:mm:ss')}' and eventTime < '#{@scheduledEndTime.format('YYYY-MM-dd HH:mm:ss')}'", "precondition" : { "ref" : "Ready" }}

Sintaxis

Campos obligatorios Descripción Tipo de slot

tabla Nombre de la tabla donde está la base de datosMySQL.

Cadena

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación a

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29154

Page 162: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMySqlDataNode

Campos de invocaciónde objetos

Descripción Tipo de slot

otro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

createTableSql Una expresión SQL CREATE TABLE que crea latabla.

Cadena

base de datos El nombre de la base de datos. Objeto de referencia,por ejemplo, "database":{"ref":"myDatabaseId"}

dependsOn Especifica la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

insertQuery Una instrucción SQL para insertar datos en latabla.

Cadena

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevas

Entero

Versión de API 2012-10-29155

Page 163: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMySqlDataNode

Campos opcionales Descripción Tipo de slotejecuciones no cuentan para el número deinstancias activas.

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia de AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

Versión de API 2012-10-29156

Page 164: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMySqlDataNode

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

schemaName El nombre del esquema que tiene la tabla. Cadena

selectQuery Una instrucción SQL para recuperar datos de latabla.

Cadena

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

Versión de API 2012-10-29157

Page 165: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresMySqlDataNode

Campos de tiempo deejecución

Descripción Tipo de slot

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Versión de API 2012-10-29158

Page 166: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftDataNode

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• S3DataNode (p. 164)

RedshiftDataNodeDefine un nodo de datos utilizando Amazon Redshift. RedshiftDataNode representa las propiedades delos datos de una base de datos como, por ejemplo, una tabla de datos, que utiliza la canalización.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyRedshiftDataNode", "type" : "RedshiftDataNode", "database": { "ref": "MyRedshiftDatabase" }, "tableName": "adEvents", "schedule": { "ref": "Hour" }}

Sintaxis

Campos obligatorios Descripción Tipo de slot

base de datos La base de datos en la que se encuentra la tabla. Objeto de referencia,por ejemplo, "database":{"ref":"myRedshiftDatabaseId"}

tableName Nombre de la tabla de Amazon Redshift. Latabla se crea si no existe ya y ha proporcionadocreateTableSql.

Cadena

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecución

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29159

Page 167: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftDataNode

Campos de invocaciónde objetos

Descripción Tipo de slot

de dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

createTableSql Una expresión SQL para crear la tabla en la basede datos. Le recomendamos que especifique elesquema donde debe crearse la tabla, por ejemplo:CREATE TABLE mySchema.myTable (bestColumnvarchar(25) primary key distkey, numberOfWinsinteger sortKey). AWS Data Pipeline ejecutael script en el campo createTableSql si latabla, especificada por tableName, no existeen el esquema, especificado por el camposchemaName. Por ejemplo, si especificaschemaName como mySchema pero no incluyemySchema en el campo createTableSql, la tabla secreará en el esquema incorrecto (por defecto, secrearía en PUBLIC). Esto ocurre porque AWS DataPipeline no analiza sus instrucciones CREATETABLE.

Cadena

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

Versión de API 2012-10-29160

Page 168: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftDataNode

Campos opcionales Descripción Tipo de slot

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

primaryKeys Si no especifica primaryKeys para una tabla dedestino en RedShiftCopyActivity, puedeespecificar una lista de columnas utilizandoprimaryKeys, que actuará como mergeKey. Sinembargo, si dispone de un valor de primaryKeydefinido en una tabla de Amazon Redshift, esteajuste anulará la clave existente.

Cadena

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Versión de API 2012-10-29161

Page 169: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftDataNode

Campos opcionales Descripción Tipo de slot

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia de AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

schemaName Este campo opcional especifica el nombre delesquema para la tabla de Amazon Redshift. Si nose especifica, el nombre del esquema es PUBLIC,que es el esquema predeterminado en AmazonRedshift. Para obtener más información, consultela Guía de desarrollador de base de datos deAmazon Redshift.

Cadena

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

Versión de API 2012-10-29162

Page 170: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftDataNode

Campos de tiempo deejecución

Descripción Tipo de slot

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Versión de API 2012-10-29163

Page 171: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3DataNode

Campos de tiempo deejecución

Descripción Tipo de slot

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

S3DataNodeDefine un nodo de datos utilizando Amazon S3. De forma predeterminada, S3DataNode usa cifrado dellado del servidor. Si desea deshabilitar esto, establezca s3EncryptionType en NONE.

Note

Al usar S3DataNode como entrada a CopyActivity, solo se admiten los formatos de datosCSV y TSV.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Este objeto hace referencia a otro objeto quese definiría en el mismo archivo de definición de canalización. CopyPeriod es un objeto Schedule.

{ "id" : "OutputData", "type" : "S3DataNode", "schedule" : { "ref" : "CopyPeriod" }, "filePath" : "s3://myBucket/#{@scheduledStartTime}.csv"}

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendo

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29164

Page 172: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3DataNode

Campos de invocaciónde objetos

Descripción Tipo de slot

de forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

compression El tipo de compresión de los datos descritos porS3DataNode. "none" es sin comprimir y "gzip" escomprimidos con el algoritmo gzip. Este camposolo es compatible con Amazon Redshift y al usarS3DataNode con CopyActivity.

Enumeración

dataFormat Valor de DataFormat para los datos que sedescriben en S3DataNode.

Objeto de referencia,por ejemplo,"dataFormat":{"ref":"myDataFormatId"}

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

directoryPath Ruta del directorio de Amazon S3 como URI: s3://my-bucket/my-key-for-directory. Debe proporcionarun valor filePath o directoryPath.

Cadena

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

filePath La ruta al objeto en Amazon S3 como URI, porejemplo: s3://my-bucket/my-key-for-file. Debeproporcionar un valor filePath o directoryPath.Estos valores representan una carpeta y un

Cadena

Versión de API 2012-10-29165

Page 173: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3DataNode

Campos opcionales Descripción Tipo de slotnombre de archivo. Use el valor directoryPath paraacomodar varios archivos en un directorio.

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

manifestFilePath La ruta de Amazon S3 a un archivo de manifiestoen el formato admitido por Amazon Redshift.AWS Data Pipeline usa el archivo de manifiestopara copiar los archivos de Amazon S3especificados en la tabla. El campo es válido solocuando RedShiftCopyActivity hace referencia aS3DataNode.

Cadena

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

Versión de API 2012-10-29166

Page 174: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3DataNode

Campos opcionales Descripción Tipo de slot

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia de AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

s3EncryptionType Sobrescribe el tipo de cifrado de Amazon S3. Losvalores son SERVER_SIDE_ENCRYPTION oNONE. El cifrado en el servidor está habilitado deforma predeterminada.

Enumeración

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

Versión de API 2012-10-29167

Page 175: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3DataNode

Campos de tiempo deejecución

Descripción Tipo de slot

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Versión de API 2012-10-29168

Page 176: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlDataNode

Campos de tiempo deejecución

Descripción Tipo de slot

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• MySqlDataNode (p. 154)

SqlDataNodeDefine un nodo de datos utilizando SQL.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Este objeto hace referencia a otros dosobjetos que se definirían en el mismo archivo de definición de canalización. CopyPeriod es un objetoSchedule y Ready es un objeto de condición previa.

{ "id" : "Sql Table", "type" : "SqlDataNode", "schedule" : { "ref" : "CopyPeriod" }, "table" : "adEvents", "database":"myDataBaseName", "selectQuery" : "select * from #{table} where eventTime >= '#{@scheduledStartTime.format('YYYY-MM-dd HH:mm:ss')}' and eventTime < '#{@scheduledEndTime.format('YYYY-MM-dd HH:mm:ss')}'", "precondition" : { "ref" : "Ready" }}

Sintaxis

Campos obligatorios Descripción Tipo de slot

tabla Nombre de la tabla donde está la base de datosSQL.

Cadena

Versión de API 2012-10-29169

Page 177: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlDataNode

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

createTableSql Una expresión SQL CREATE TABLE que crea latabla.

Cadena

base de datos El nombre de la base de datos. Objeto de referencia,por ejemplo, "database":{"ref":"myDatabaseId"}

dependsOn Especifica la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

insertQuery Una instrucción SQL para insertar datos en latabla.

Cadena

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

Versión de API 2012-10-29170

Page 178: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlDataNode

Campos opcionales Descripción Tipo de slot

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia de AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

Versión de API 2012-10-29171

Page 179: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlDataNode

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

schemaName El nombre del esquema que tiene la tabla. Cadena

selectQuery Una instrucción SQL para recuperar datos de latabla.

Cadena

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

Versión de API 2012-10-29172

Page 180: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlDataNode

Campos de tiempo deejecución

Descripción Tipo de slot

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Versión de API 2012-10-29173

Page 181: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresActividades

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• S3DataNode (p. 164)

ActividadesEstos son los objetos de actividad de AWS Data Pipeline:

Objetos• CopyActivity (p. 174)• EmrActivity (p. 180)• HadoopActivity (p. 186)• HiveActivity (p. 193)• HiveCopyActivity (p. 199)• PigActivity (p. 205)• RedshiftCopyActivity (p. 215)• ShellCommandActivity (p. 224)• SqlActivity (p. 230)

CopyActivityCopia datos de una ubicación en otra. CopyActivity admite S3DataNode (p. 164) ySqlDataNode (p. 169) como entrada y salida y la operación de copia suele realizarse registro a registro.Sin embargo, CopyActivity proporciona copia de Amazon S3 en Amazon S3 de alto rendimientocuando se cumplen todas las condiciones siguientes:

• La entrada y la salida son S3DataNodes• El campo dataFormat es el mismo para la entrada y la salida

Si proporciona archivos de datos comprimidos como entrada y no lo indica mediante el campocompression en los nodos de datos de S3, es posible que CopyActivity produzca un error. En estecaso, CopyActivity no detecta correctamente el carácter de fin de registro y la operación produce unerror. Asimismo, CopyActivity admite la copia de un directorio en otro directorio y la copia de un archivoen un directorio, pero la copia registro a registro se produce al copiar un directorio en un archivo. Porúltimo, CopyActivity no admite la copia de archivos multiparte de Amazon S3.

Versión de API 2012-10-29174

Page 182: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopyActivity

CopyActivity tiene limitaciones específicas en cuanto a su compatibilidad con CSV. Cuando se utilizaS3DataNode como entrada para CopyActivity, solo se puede utilizar una variante de Unix/Linux delformato de archivo de datos CSV para los campos de entrada y salida de Amazon S3. La variante de Unix/Linux requiere lo siguiente:

• El separador debe ser el carácter "," (coma).• Los registros no se indican entre comillas.• El carácter de escape predeterminado es el valor ASCII 92 (barra diagonal invertida).• El identificador de fin de registro es el valor ASCII 10 (o "\n").

Los sistemas basados en Windows suelen usar una secuencia de caracteres de fin de registro diferente:un retorno de carro y un salto de línea juntos (valores ASCII 13 y 10). Debe adaptarse a esta diferencia conun mecanismo adicional como, por ejemplo, un script previo a la copia para modificar los datos de entrada,a fin de garantizar que CopyActivity pueda detectar correctamente el fin de un registro; de lo contrario,CopyActivity devuelve error repetidamente.

Al usar CopyActivity para exportar desde un objeto RDS de PostgreSQL a un formato de datos TSV, elcarácter NULL predeterminado es \n.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Este objeto hace referencia a otros tresobjetos que se definirían en el mismo archivo de definición de canalización. CopyPeriod es un objetoSchedule, y InputData y OutputData son objetos del nodo de datos.

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

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principal

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29175

Page 183: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopyActivity

Campos de invocaciónde objetos

Descripción Tipo de slot

que tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia de AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

input El origen de datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

Versión de API 2012-10-29176

Page 184: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopyActivity

Campos opcionales Descripción Tipo de slot

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output El origen de datos de salida. Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Versión de API 2012-10-29177

Page 185: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopyActivity

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

Versión de API 2012-10-29178

Page 186: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCopyActivity

Campos de tiempo deejecución

Descripción Tipo de slot

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugar

Cadena

Versión de API 2012-10-29179

Page 187: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrActivity

Campos del sistema Descripción Tipo de slota objetos de instancia que ejecutan objetos deintento.

Véase también• ShellCommandActivity (p. 224)• EmrActivity (p. 180)• Exportar datos de MySQL a Amazon S3 utilizando AWS Data Pipeline (p. 113)

EmrActivityEjecuta un clúster de EMR.

AWS Data Pipeline utiliza un formato para los pasos que es diferente del de Amazon EMR; por ejemplo,AWS Data Pipeline utiliza argumentos separados por comas después del nombre JAR en el campo delpaso EmrActivity. En el siguiente ejemplo, se muestra un paso formateado para Amazon EMR, seguidode su equivalente para AWS Data Pipeline:

s3://example-bucket/MyWork.jar arg1 arg2 arg3

"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"

EjemplosA continuación se muestra un ejemplo de este tipo de objeto. En este ejemplo, se utilizan las versionesanteriores de Amazon EMR. Verifique que este ejemplo es adecuado para la versión del clúster deAmazon EMR que está utilizando.

Este objeto hace referencia a otros tres objetos que se definirían en el mismo archivo de definición decanalización. MyEmrCluster es un objeto EmrCluster, y MyS3Input y MyS3Output son objetosS3DataNode.

Note

En este ejemplo, puede reemplazar el campo step por su cadena de clúster deseada, que podríaser un script de Pig, un clúster de Hadoop Streaming, su propio JAR personalizado (incluidos susparámetros), etc.

Hadoop 2.x (AMI 3.x)

{ "id" : "MyEmrActivity", "type" : "EmrActivity", "runsOn" : { "ref" : "MyEmrCluster" }, "preStepCommand" : "scp remoteFiles localFiles", "step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."], "postStepCommand" : "scp localFiles remoteFiles", "input" : { "ref" : "MyS3Input" }, "output" : { "ref" : "MyS3Output" }}

Versión de API 2012-10-29180

Page 188: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrActivity

Note

Para pasar argumentos a una aplicación en un paso, es necesario especificar la región en la rutadel script, como en el siguiente ejemplo. Además, es posible que necesite aplicar escape a losargumentos que transfiere. Por ejemplo, si usa script-runner.jar para ejecutar un script deshell y desea transferir argumentos al script, debe aplicar escape a las comas que los separan. Enel siguiente slot del paso se ilustra cómo hacerlo:

"step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"

Este paso usa script-runner.jar para ejecutar el script de shell echo.sh y transfiere a, b yc como argumento único al script. El primer carácter de escape se quita del argumento obtenido,por lo que es posible que sea necesario aplicar escape de nuevo. Por ejemplo, si tuviera File\.gz como argumento en JSON, podría aplicarle escape mediante File\\\\.gz. Sin embargo,debido que el primer escape se ha descartado, debe usar File\\\\\\\\.gz .

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Especifique unareferencia de programación a otro objeto paraestablecer el orden de ejecución de dependenciapara este objeto. Puede cumplir este requisitoestableciendo de forma explícita un programa en elobjeto, por ejemplo, especificando "schedule":{"ref": "DefaultSchedule"}. En la mayoríade los casos, es mejor poner la referencia deprogramación en el objeto de la canalizaciónpredeterminado de modo que todos los objetoshereden ese programa. O bien, si la canalizacióntiene un árbol de programas (programas dentro delprograma maestro), puede crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn El clúster de Amazon EMR en el que se ejecutaráeste trabajo.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myEmrClusterId"}

workerGroup El grupo de procesos de trabajo. Este se usa paradirigir tareas. Si proporciona un valor runsOn yexiste workerGroup, workerGroup se ignora.

Cadena

Versión de API 2012-10-29181

Page 189: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrActivity

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

input La ubicación de los datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output La ubicación de los datos de salida. Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent El elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de Amazon S3, por ejemplo, 's3://BucketName/Prefix/', para cargar registros para lacanalización.

Cadena

Versión de API 2012-10-29182

Page 190: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrActivity

Campos opcionales Descripción Tipo de slot

postStepCommand Scripts de shell que se van a ejecutar despuésde terminar todos los pasos. Para especificarvarios scripts, hasta 255, añada varios campospostStepCommand.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

preStepCommand Scripts de shell que se van a ejecutar antes deque se ejecute algún paso. Para especificarvarios scripts, hasta 255, añada varios campospreStepCommand.

Cadena

reportProgressTimeout El tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Sise establece, las actividades remotas que noinformen de su progreso durante el períodoespecificado pueden considerarse estancadas y,en consecuencia, reintentarse.

Período

resizeClusterBeforeRunningCambiar el tamaño del clúster antes de realizaresta actividad para adaptarse a las tablas deDynamoDB especificadas como entradas o salidas.

Note

Si su EmrActivity usa unDynamoDBDataNode como nodo dedatos de entrada o salida y si estableceresizeClusterBeforeRunning enTRUE, AWS Data Pipeline comienza ausar los tipos de instancia m3.xlarge.Se sobrescriben las opciones de tipo deinstancia con m3.xlarge, lo que podríaaumentar los costos mensuales.

Booleano

resizeClusterMaxInstancesUn límite del número máximo de instancias que elalgoritmo de cambio de tamaño puede solicitar.

Entero

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Versión de API 2012-10-29183

Page 191: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrActivity

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio o al final del intervalo. Losvalores son: cron, ondemand y timeseries.La programación timeseries significa que lasinstancias se programan al final de cada intervalo.La programación cron significa que las instanciasse programan al principio de cada intervalo. Unprograma ondemand le permite ejecutar unacanalización una vez por activación. No tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa ondemand, debeespecificarse en el objeto predeterminado ydebe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones ondemand, solo tiene que llamara la operación ActivatePipeline para cadaejecución posterior.

Enumeración

paso Uno o varios pasos para que se ejecute elclúster. Para especificar varios pasos, hasta 255,añada varios campos step. Utilice argumentosseparados por comas después del nombre deJAR; por ejemplo, "s3://example-bucket/MyWork.jar,arg1,arg2,arg3".

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos de Amazon EMR estándisponibles únicamente sobre intentos de actividadde EMR.

Cadena

errorId El errorId si este objeto ha fallado. Cadena

errorMessage El errorMessage si este objeto ha fallado. Cadena

Versión de API 2012-10-29184

Page 192: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrActivity

Campos de tiempo deejecución

Descripción Tipo de slot

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

Versión de API 2012-10-29185

Page 193: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

Campos del sistema Descripción Tipo de slot

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandActivity (p. 224)• CopyActivity (p. 174)• EmrCluster (p. 242)

HadoopActivityEjecuta un trabajo de MapReduce en un clúster. El clúster puede ser un clúster de EMR administrado porAWS Data Pipeline u otro recurso si usa TaskRunner. Use HadoopActivity cuando desee ejecutar el trabajoen paralelo. Esto permite usar los recursos de programación del marco YARN o el negociador de recursosMapReduce en Hadoop 1. Si desea ejecutar el trabajo de forma secuencial mediante la acción de paso deAmazon EMR, puede usar EmrActivity (p. 180).

EjemplosHadoopActivity utilizando un clúster de EMR administrado por AWS Data Pipeline

El siguiente objeto HadoopActivity usa un recurso EmrCluster para ejecutar un programa:

{ "name": "MyHadoopActivity", "schedule": {"ref": "ResourcePeriod"}, "runsOn": {"ref": “MyEmrCluster”}, "type": "HadoopActivity", "preActivityTaskConfig":{"ref":"preTaskScriptConfig”}, "jarUri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar", "argument": [ "-files", “s3://elasticmapreduce/samples/wordcount/wordSplitter.py“, "-mapper", "wordSplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input/", "-output", “s3://test-bucket/MyHadoopActivity/#{@pipelineId}/#{format(@scheduledStartTime,'YYYY-MM-dd')}" ], "maximumRetries": "0", "postActivityTaskConfig":{"ref":"postTaskScriptConfig”}, "hadoopQueue" : “high” }

Este es el MyEmrCluster correspondiente, que configura FairScheduler y las colas en YARN para AMIbasadas en Hadoop 2:

{

Versión de API 2012-10-29186

Page 194: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

"id" : "MyEmrCluster", "type" : "EmrCluster", "hadoopSchedulerType" : "PARALLEL_FAIR_SCHEDULING", “amiVersion” : “3.7.0”, "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low\,high\,default,-z,yarn.scheduler.capacity.root.high.capacity=50,-z,yarn.scheduler.capacity.root.low.capacity=10,-z,yarn.scheduler.capacity.root.default.capacity=30”]}

Este es el EmrCluster que usa para configurar FairScheduler en Hadoop 1:

{ "id": "MyEmrCluster", "type": "EmrCluster", "hadoopSchedulerType": "PARALLEL_FAIR_SCHEDULING", "amiVersion": "2.4.8", "bootstrapAction": "s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-m,mapred.queue.names=low\\\\,high\\\\,default,-m,mapred.fairscheduler.poolnameproperty=mapred.job.queue.name" }

El siguiente EmrCluster configura CapacityScheduler para AMI basadas en Hadoop 2:

{ "id": "MyEmrCluster", "type": "EmrCluster", "hadoopSchedulerType": "PARALLEL_CAPACITY_SCHEDULING", "amiVersion": "3.7.0", "bootstrapAction": "s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low\\\\,high,-z,yarn.scheduler.capacity.root.high.capacity=40,-z,yarn.scheduler.capacity.root.low.capacity=60" }

HadoopActivity utilizando un clúster de EMR existente

En este ejemplo, usa grupos de procesos de trabajo y una TaskRunner para ejecutar un programa en unclúster de EMR existente. La siguiente definición de canalización usa HadoopActivity para:

• Ejecutar un programa de MapReduce solo en los recursos myWorkerGroup. Para obtener másinformación acerca de los grupos de procesos de trabajo, consulte Ejecución de trabajo en recursosexistentes mediante Task Runner (p. 311).

• Ejecutar preActivityTaskConfig y postActivityTaskConfig

{ "objects": [ { "argument": [ "-files", "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "-mapper", "wordSplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input/", "-output",

Versión de API 2012-10-29187

Page 195: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

"s3://test-bucket/MyHadoopActivity/#{@pipelineId}/#{format(@scheduledStartTime,'YYYY-MM-dd')}" ], "id": "MyHadoopActivity", "jarUri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar", "name": "MyHadoopActivity", "type": "HadoopActivity" }, { "id": "SchedulePeriod", "startDateTime": "start_datetime", "name": "SchedulePeriod", "period": "1 day", "type": "Schedule", "endDateTime": "end_datetime" }, { "id": "ShellScriptConfig", "scriptUri": "s3://test-bucket/scripts/preTaskScript.sh", "name": "preTaskScriptConfig", "scriptArgument": [ "test", "argument" ], "type": "ShellScriptConfig" }, { "id": "ShellScriptConfig", "scriptUri": "s3://test-bucket/scripts/postTaskScript.sh", "name": "postTaskScriptConfig", "scriptArgument": [ "test", "argument" ], "type": "ShellScriptConfig" }, { "id": "Default", "scheduleType": "cron", "schedule": { "ref": "SchedulePeriod" }, "name": "Default", "pipelineLogUri": "s3://test-bucket/logs/2015-05-22T18:02:00.343Z642f3fe415", "maximumRetries": "0", "workerGroup": "myWorkerGroup", "preActivityTaskConfig": { "ref": "preTaskScriptConfig" }, "postActivityTaskConfig": { "ref": "postTaskScriptConfig" } } ] }

Sintaxis

Campos obligatorios Descripción Tipo de slot

jarUri Ubicación de un archivo JAR en Amazon S3 o elsistema de archivos local del clúster que ejecutarcon HadoopActivity.

Cadena

Versión de API 2012-10-29188

Page 196: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn Clúster de EMR en el que se ejecutará estetrabajo.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myEmrClusterId"}

workerGroup El grupo de procesos de trabajo. Este se usapara dirigir tareas. Si proporciona un valor runsOny workerGroup existe, se hace caso omiso deworkerGroup.

Cadena

Campos opcionales Descripción Tipo de slot

argument Argumentos que se pasan al archivo JAR. Cadena

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

Versión de API 2012-10-29189

Page 197: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

Campos opcionales Descripción Tipo de slot

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

hadoopQueue El nombre de cola de programador Hadoop en elque se enviará la actividad.

Cadena

input Ubicación de los datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

mainClass La clase principal del archivo JAR que ejecuta conHadoopActivity.

Cadena

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output Ubicación de los datos de salida. Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

postActivityTaskConfig Script de configuración después de la actividad quese va a ejecutar. Este consta de un URI del scriptde shell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"postActivityTaskConfig":{"ref":"myShellScriptConfigId"}

Versión de API 2012-10-29190

Page 198: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

Campos opcionales Descripción Tipo de slot

preActivityTaskConfig Script de configuración antes de la actividad que seva a ejecutar. Este consta de un URI del script deshell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"preActivityTaskConfig":{"ref":"myShellScriptConfigId"}

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

Versión de API 2012-10-29191

Page 199: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHadoopActivity

Campos de tiempo deejecución

Descripción Tipo de slot

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

Versión de API 2012-10-29192

Page 200: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveActivity

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandActivity (p. 224)• CopyActivity (p. 174)• EmrCluster (p. 242)

HiveActivityEjecuta una consulta de Hive en un clúster de EMR. HiveActivity facilita la configuración de unaactividad de Amazon EMR y crea automáticamente tablas de Hive basadas en datos de entradaprocedentes de Amazon S3 o Amazon RDS. Lo único que necesita especificar es la HiveQL que se debeejecutar en los datos de origen. AWS Data Pipeline crea automáticamente tablas de Hive con ${input1},${input2}, etc. en función de los campos de entrada del objeto HiveActivity.

En las entradas de Amazon S3, el campo dataFormat se usa para crear los nombres de las columnas deHive.

En las entradas de MySQL (Amazon RDS), los nombres de las columnas para la consulta SQL se utilizanpara crear los nombres de las columnas de Hive.

Note

Esta actividad usa CSV Serde de Hive.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Este objeto hace referencia a otros tresobjetos que se definen en el mismo archivo de definición de canalización. MySchedule es un objetoSchedule, y MyS3Input y MyS3Output son objetos del nodo de datos.

Versión de API 2012-10-29193

Page 201: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveActivity

{ "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" }}

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Especifique unareferencia de programación a otro objeto paraestablecer el orden de ejecución de dependenciapara este objeto. Puede cumplir este requisitoestableciendo de forma explícita un programa enel objeto, por ejemplo, especificando "schedule":{"ref": "DefaultSchedule"}. En la mayoría delos casos, es mejor poner la referencia deprogramación en el objeto de la canalizaciónpredeterminado de modo que todos los objetoshereden ese programa. O bien, si la canalizacióntiene un árbol de programas (programas dentro delprograma maestro), puede crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

hiveScript El script de Hive que se ejecutará. Cadena

scriptUri La ubicación del script de Hive que se ejecutará(por ejemplo, s3://scriptLocation).

Cadena

Grupo obligatorio Descripción Tipo de slot

runsOn El clúster de EMR en el que se ejecutaHiveActivity.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myEmrClusterId"}

Versión de API 2012-10-29194

Page 202: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveActivity

Grupo obligatorio Descripción Tipo de slot

workerGroup El grupo de procesos de trabajo. Este se usa paradirigir tareas. Si proporciona un valor runsOn yexiste workerGroup, workerGroup se ignora.

Cadena

input El origen de datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

output El origen de datos de salida. Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

hadoopQueue El nombre de cola de programador Hadoop en elque se enviará el trabajo.

Cadena

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,

Versión de API 2012-10-29195

Page 203: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveActivity

Campos opcionales Descripción Tipo de slot"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

postActivityTaskConfig Script de configuración después de la actividad quese va a ejecutar. Este consta de un URI del scriptde shell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"postActivityTaskConfig":{"ref":"myShellScriptConfigId"}

preActivityTaskConfig Script de configuración antes de la actividad que seva a ejecutar. Este consta de un URI del script deshell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"preActivityTaskConfig":{"ref":"myShellScriptConfigId"}

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout Tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Sise establece, las actividades remotas que noinformen de su progreso durante el períodoespecificado pueden considerarse estancadas y,en consecuencia, reintentarse.

Período

resizeClusterBeforeRunningCambiar el tamaño del clúster antes de realizaresta actividad para adaptarse a los nodos de datosde DynamoDB especificados como entradas osalidas.

Note

Si una actividad usa unDynamoDBDataNode como nodo dedatos de entrada o salida y se estableceresizeClusterBeforeRunning enTRUE, AWS Data Pipeline comienza ausar los tipos de instancia m3.xlarge.Se sobrescriben las opciones de tipo deinstancia con m3.xlarge, lo que podríaaumentar los costos mensuales.

Booleano

resizeClusterMaxInstancesUn límite del número máximo de instancias que elalgoritmo de cambio de tamaño puede solicitar.

Entero

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Versión de API 2012-10-29196

Page 204: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveActivity

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

scriptVariable Especifica variables de script para que AmazonEMR las pase a Hive al ejecutar un script.Por ejemplo, las siguientes variables de scriptde ejemplo pasarían una variable SAMPLEy FILTER_DATE a Hive: SAMPLE=s3://elasticmapreduce/samples/hive-ads y FILTER_DATE=#{format(@scheduledStartTime,'YYYY-MM-dd')}%. Este campo acepta variosvalores y funciona con los campos script yscriptUri. Además, scriptVariable funcionaindependientemente de si stage se establece entrue o false. Este campo es especialmente útilpara enviar valores dinámicos a Hive medianteexpresiones y funciones de AWS Data Pipeline.

Cadena

stage Determina si el uso transitorio se habilita antes odespués de la ejecución del script. No se permitecon Hive 11, de modo que use la versión 3.2.0 osuperior de la AMI de Amazon EMR.

Booleano

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

Versión de API 2012-10-29197

Page 205: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveActivity

Campos de tiempo deejecución

Descripción Tipo de slot

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos de Amazon EMR estándisponibles únicamente sobre intentos de actividadde EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada de un objeto. DateTime

@scheduledStartTime Hora de comienzo programada de un objeto. DateTime

@status El estado de este objeto. Cadena

Versión de API 2012-10-29198

Page 206: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveCopyActivity

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandActivity (p. 224)• EmrActivity (p. 180)

HiveCopyActivityEjecuta una consulta de Hive en un clúster de EMR. HiveCopyActivity facilita la copia de datos entrelas tablas de DynamoDB. HiveCopyActivity acepta una instrucción de HiveQL para filtrar datos deentrada desde DynamoDB en el nivel de columna y de fila.

EjemploEn el siguiente ejemplo se muestra cómo usar HiveCopyActivity y DynamoDBExportDataFormatpara copiar datos de un nodo DynamoDBDataNode a otro, mientras se filtran datos, en función de unamarca temporal.

{ "objects": [ { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timeStamp BIGINT" }, { "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" }, { "id" : "DynamoDBDataNode.1",

Versión de API 2012-10-29199

Page 207: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveCopyActivity

"name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tableName" : "item_mapped_table_restore_temp", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "restore_table", "region" : "us_west_1", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.2" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.xlarge", "coreInstanceCount" : "4" }, { "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" :{ "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startDateTime" : "2013-06-04T00:00:00", "endDateTime" : "2013-06-04T01:00:00" } ]}

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. O

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29200

Page 208: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveCopyActivity

Campos de invocaciónde objetos

Descripción Tipo de slot

bien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn Especifique el clúster en el que ejecutar. Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

workerGroup El grupo de procesos de trabajo. Este se usa paradirigir tareas. Si proporciona un valor runsOn yexiste workerGroup, workerGroup se ignora.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus El estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout El tiempo de espera para que se completeel trabajo remoto. Si se establece, se puedereintentar una actividad remota que no se completedentro del tiempo de inicio establecido.

Período

dependsOn Especifica la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

filterSql Un fragmento de instrucción SQL de Hive quefiltra un subconjunto de datos de DynamoDBo Amazon S3 para copiarlo. El filtro solo debecontener predicados y no debe comenzar por unacláusula WHERE, ya que AWS Data Pipeline laañade automáticamente.

Cadena

input El origen de datos de entrada. Debe serS3DataNode o DynamoDBDataNode.Si usa DynamoDBNode, especifiqueDynamoDBExportDataFormat.

Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarse

Período

Versión de API 2012-10-29201

Page 209: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveCopyActivity

Campos opcionales Descripción Tipo de slotel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output El origen de datos de salida. Si la entrada esS3DataNode, este debe ser DynamoDBDataNode.De lo contrario, este puede ser S3DataNode oDynamoDBDataNode. Si usa DynamoDBNode,especifique DynamoDBExportDataFormat.

Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent El elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de Amazon S3, como 's3://BucketName/Key/', para cargar registros para lacanalización.

Cadena

postActivityTaskConfig El script de configuración después de la actividadque se va a ejecutar. Este consta de un URIdel script de shell en Amazon S3 y una lista deargumentos.

Objeto de referencia,por ejemplo,"postActivityTaskConfig":{"ref":"myShellScriptConfigId"}

preActivityTaskConfig El script de configuración antes de la actividad quese va a ejecutar. Este consta de un URI del scriptde shell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"preActivityTaskConfig":{"ref":"myShellScriptConfigId"}

precondition Opcionalmente define una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

Versión de API 2012-10-29202

Page 210: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveCopyActivity

Campos opcionales Descripción Tipo de slot

reportProgressTimeout El tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Sise establece, las actividades remotas que noinformen de su progreso durante el períodoespecificado pueden considerarse estancadas y,en consecuencia, reintentarse.

Período

resizeClusterBeforeRunningCambiar el tamaño del clúster antes de realizaresta actividad para adaptarse a los nodos de datosde DynamoDB especificados como entradas osalidas.

Note

Si una actividad usa unDynamoDBDataNode como nodo dedatos de entrada o salida y se estableceresizeClusterBeforeRunning enTRUE, AWS Data Pipeline comienza ausar los tipos de instancia m3.xlarge.Se sobrescriben las opciones de tipo deinstancia con m3.xlarge, lo que podríaaumentar los costos mensuales.

Booleano

resizeClusterMaxInstancesUn límite del número máximo de instancias que elalgoritmo de cambio de tamaño puede solicitar.

Entero

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,

Versión de API 2012-10-29203

Page 211: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHiveCopyActivity

Campos de tiempo deejecución

Descripción Tipo de slot

"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos de Amazon EMR estándisponibles únicamente sobre intentos de actividadde EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

Versión de API 2012-10-29204

Page 212: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

Campos de tiempo deejecución

Descripción Tipo de slot

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugar aobjetos de instancia que ejecutan un objeto deintento.

Cadena

Véase también• ShellCommandActivity (p. 224)• EmrActivity (p. 180)

PigActivityPigActivity proporciona compatibilidad nativa para scripts de Pig en AWS Data Pipeline sin necesidad deutilizar ShellCommandActivity o EmrActivity. Además, PigActivity admite el uso transitorio de datos.Cuando el campo de uso transitorio se establece en true, AWS Data Pipeline almacena de modo transitoriolos datos de entrada como un esquema en Pig sin código adicional del usuario.

EjemploEn la siguiente canalización de ejemplo se muestra cómo utilizar PigActivity. En la canalización deejemplo se ejecutan los siguientes pasos:

• MyPigActivity1 carga datos desde Amazon S3 y ejecuta un script de Pig que selecciona algunascolumnas de datos y los carga en Amazon S3.

• MyPigActivity2 carga la primera salida, selecciona algunas columnas y tres filas de datos y los carga enAmazon S3 como una segunda salida.

Versión de API 2012-10-29205

Page 213: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

• MyPigActivity3 carga los datos de la segunda salida, inserta dos filas de datos y solo la columnadenominada "fifth" en Amazon RDS.

• MyPigActivity4 carga datos de Amazon RDS, selecciona la primera fila de datos y los carga en AmazonS3.

{ "objects": [ { "id": "MyInputData1", "schedule": { "ref": "MyEmrResourcePeriod" }, "directoryPath": "s3://example-bucket/pigTestInput", "name": "MyInputData1", "dataFormat": { "ref": "MyInputDataType1" }, "type": "S3DataNode" }, { "id": "MyPigActivity4", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyOutputData3" }, "pipelineLogUri": "s3://example-bucket/path/", "name": "MyPigActivity4", "runsOn": { "ref": "MyEmrResource" }, "type": "PigActivity", "dependsOn": { "ref": "MyPigActivity3" }, "output": { "ref": "MyOutputData4" }, "script": "B = LIMIT ${input1} 1; ${output1} = FOREACH B GENERATE one;", "stage": "true" }, { "id": "MyPigActivity3", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyOutputData2" }, "pipelineLogUri": "s3://example-bucket/path", "name": "MyPigActivity3", "runsOn": { "ref": "MyEmrResource" }, "script": "B = LIMIT ${input1} 2; ${output1} = FOREACH B GENERATE Fifth;", "type": "PigActivity", "dependsOn": { "ref": "MyPigActivity2" }, "output": {

Versión de API 2012-10-29206

Page 214: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

"ref": "MyOutputData3" }, "stage": "true" }, { "id": "MyOutputData2", "schedule": { "ref": "MyEmrResourcePeriod" }, "name": "MyOutputData2", "directoryPath": "s3://example-bucket/PigActivityOutput2", "dataFormat": { "ref": "MyOutputDataType2" }, "type": "S3DataNode" }, { "id": "MyOutputData1", "schedule": { "ref": "MyEmrResourcePeriod" }, "name": "MyOutputData1", "directoryPath": "s3://example-bucket/PigActivityOutput1", "dataFormat": { "ref": "MyOutputDataType1" }, "type": "S3DataNode" }, { "id": "MyInputDataType1", "name": "MyInputDataType1", "column": [ "First STRING", "Second STRING", "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING", "Ninth STRING", "Tenth STRING" ], "inputRegEx": "^(\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+)", "type": "RegEx" }, { "id": "MyEmrResource", "region": "us-east-1", "schedule": { "ref": "MyEmrResourcePeriod" }, "keyPair": "example-keypair", "masterInstanceType": "m1.small", "enableDebugging": "true", "name": "MyEmrResource", "actionOnTaskFailure": "continue", "type": "EmrCluster" }, { "id": "MyOutputDataType4", "name": "MyOutputDataType4", "column": "one STRING", "type": "CSV" },

Versión de API 2012-10-29207

Page 215: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

{ "id": "MyOutputData4", "schedule": { "ref": "MyEmrResourcePeriod" }, "directoryPath": "s3://example-bucket/PigActivityOutput3", "name": "MyOutputData4", "dataFormat": { "ref": "MyOutputDataType4" }, "type": "S3DataNode" }, { "id": "MyOutputDataType1", "name": "MyOutputDataType1", "column": [ "First STRING", "Second STRING", "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING" ], "columnSeparator": "*", "type": "Custom" }, { "id": "MyOutputData3", "username": "___", "schedule": { "ref": "MyEmrResourcePeriod" }, "insertQuery": "insert into #{table} (one) values (?)", "name": "MyOutputData3", "*password": "___", "runsOn": { "ref": "MyEmrResource" }, "connectionString": "jdbc:mysql://example-database-instance:3306/example-database", "selectQuery": "select * from #{table}", "table": "example-table-name", "type": "MySqlDataNode" }, { "id": "MyOutputDataType2", "name": "MyOutputDataType2", "column": [ "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING" ], "type": "TSV" }, { "id": "MyPigActivity2", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyOutputData1"

Versión de API 2012-10-29208

Page 216: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

}, "pipelineLogUri": "s3://example-bucket/path", "name": "MyPigActivity2", "runsOn": { "ref": "MyEmrResource" }, "dependsOn": { "ref": "MyPigActivity1" }, "type": "PigActivity", "script": "B = LIMIT ${input1} 3; ${output1} = FOREACH B GENERATE Third, Fourth, Fifth, Sixth, Seventh, Eighth;", "output": { "ref": "MyOutputData2" }, "stage": "true" }, { "id": "MyEmrResourcePeriod", "startDateTime": "2013-05-20T00:00:00", "name": "MyEmrResourcePeriod", "period": "1 day", "type": "Schedule", "endDateTime": "2013-05-21T00:00:00" }, { "id": "MyPigActivity1", "scheduleType": "CRON", "schedule": { "ref": "MyEmrResourcePeriod" }, "input": { "ref": "MyInputData1" }, "pipelineLogUri": "s3://example-bucket/path", "scriptUri": "s3://example-bucket/script/pigTestScipt.q", "name": "MyPigActivity1", "runsOn": { "ref": "MyEmrResource" }, "scriptVariable": [ "column1=First", "column2=Second", "three=3" ], "type": "PigActivity", "output": { "ref": "MyOutputData1" }, "stage": "true" } ]}

El contenido de pigTestScript.q es el siguiente.

B = LIMIT ${input1} $three; ${output1} = FOREACH B GENERATE $column1, $column2, Third, Fourth, Fifth, Sixth, Seventh, Eighth;

Versión de API 2012-10-29209

Page 217: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Los usuarios debenespecificar una referencia de programación aotro objeto para establecer el orden de ejecuciónde dependencia para este objeto. Los usuariospueden satisfacer este requisito estableciendode forma explícita un programa en el objeto,por ejemplo, especificando "schedule": {"ref":"DefaultSchedule"}. En la mayoría de los casos, esmejor poner la referencia de programación en elobjeto de la canalización predeterminado de modoque todos los objetos hereden ese programa. Obien, si la canalización tiene un árbol de programas(programas dentro del programa maestro),los usuarios pueden crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

script El script de Pig que se ejecutará. Cadena

scriptUri La ubicación del script de Pig que se ejecutará (porejemplo, s3://scriptLocation).

Cadena

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn Clúster de EMR en el que se ejecuta PigActivity. Objeto de referencia,por ejemplo, "runsOn":{"ref":"myEmrClusterId"}

workerGroup El grupo de procesos de trabajo. Este se usa paradirigir tareas. Si proporciona un valor runsOn yexiste workerGroup, workerGroup se ignora.

Cadena

Versión de API 2012-10-29210

Page 218: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

Campos opcionales Descripción Tipo de slot

attemptStatus El estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout El tiempo de espera para que se completeel trabajo remoto. Si se establece, se puedereintentar una actividad remota que no se completedentro del tiempo de inicio establecido.

Período

dependsOn Especifica la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

input El origen de datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output El origen de datos de salida. Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de Amazon S3 (como 's3://BucketName/Key/') para cargar registros para la canalización.

Cadena

Versión de API 2012-10-29211

Page 219: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

Campos opcionales Descripción Tipo de slot

postActivityTaskConfig Script de configuración después de la actividad quese va a ejecutar. Este consta de un URI del scriptde shell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"postActivityTaskConfig":{"ref":"myShellScriptConfigId"}

preActivityTaskConfig Script de configuración antes de la actividad que seva a ejecutar. Este consta de un URI del script deshell en Amazon S3 y una lista de argumentos.

Objeto de referencia,por ejemplo,"preActivityTaskConfig":{"ref":"myShellScriptConfigId"}

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

reportProgressTimeout El tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Sise establece, las actividades remotas que noinformen de su progreso durante el períodoespecificado pueden considerarse estancadas y,en consecuencia, reintentarse.

Período

resizeClusterBeforeRunningCambiar el tamaño del clúster antes de realizaresta actividad para adaptarse a los nodos de datosde DynamoDB especificados como entradas osalidas.

Note

Si una actividad usa unDynamoDBDataNode como nodo dedatos de entrada o salida y se estableceresizeClusterBeforeRunning enTRUE, AWS Data Pipeline comienza ausar los tipos de instancia m3.xlarge.Se sobrescriben las opciones de tipo deinstancia con m3.xlarge, lo que podríaaumentar los costos mensuales.

Booleano

resizeClusterMaxInstancesUn límite del número máximo de instancias que elalgoritmo de cambio de tamaño puede solicitar.

Entero

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Versión de API 2012-10-29212

Page 220: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

Campos opcionales Descripción Tipo de slot

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al final deeste. La programación de estilo de serie temporalsignifica que las instancias se programan al finalde cada intervalo y la programación de estilocron significa que las instancias se programanal principio de cada intervalo. Un programa bajodemanda le permite ejecutar una canalización unavez por activación. Esto significa que no tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa bajo demanda,debe especificarse en el objeto predeterminadoy debe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior. Los valores son: cron,ondemand y timeseries.

Enumeración

scriptVariable Los argumentos que se pasan al script de Pig.Puede usar scriptVariable con script o scriptUri.

Cadena

stage Determina si está habilitado el espacio transitorioy permite que el script de Pig tenga acceso a lastablas de datos provisionales, como ${INPUT1} y${OUTPUT1}.

Booleano

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos de Amazon EMR estándisponibles únicamente sobre intentos de actividadde EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

Versión de API 2012-10-29213

Page 221: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPigActivity

Campos de tiempo deejecución

Descripción Tipo de slot

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

Versión de API 2012-10-29214

Page 222: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Campos del sistema Descripción Tipo de slot

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandActivity (p. 224)• EmrActivity (p. 180)

RedshiftCopyActivityCopia datos de DynamoDB o Amazon S3 en Amazon Redshift. Puede cargar datos en una nueva tabla ocombinar datos fácilmente en una tabla existente.

A continuación, se muestra información general de un caso de uso en el que utilizarRedshiftCopyActivity:

1. Empiece por utilizar AWS Data Pipeline para almacenar sus datos en Amazon S3.2. Utilice RedshiftCopyActivity para mover los datos desde Amazon RDS y Amazon EMR a Amazon

Redshift.

Esto le permite cargar sus datos en Amazon Redshift para poder analizarlos.3. Utilice SqlActivity (p. 230) para realizar consultas SQL en los datos que ha cargado en Amazon

Redshift.

Además, RedshiftCopyActivity le permite trabajar con un S3DataNode, dado que admite un archivode manifiesto. Para obtener más información, consulte S3DataNode (p. 164).

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

Para garantizar la conversión de formatos, este ejemplo utiliza los parámetros de conversión especialesEMPTYASNULL e IGNOREBLANKLINES en commandOptions. Para obtener más información, consulteParámetros de conversión de datos en la Guía de desarrollador de base de datos de Amazon Redshift.

{ "id" : "S3ToRedshiftCopyActivity", "type" : "RedshiftCopyActivity", "input" : { "ref": "MyS3DataNode" }, "output" : { "ref": "MyRedshiftDataNode" }, "insertMode" : "KEEP_EXISTING", "schedule" : { "ref": "Hour" }, "runsOn" : { "ref": "MyEc2Resource" }, "commandOptions": ["EMPTYASNULL", "IGNOREBLANKLINES"]}

En la siguiente definición de canalización de ejemplo se muestra una actividad que usa el modo deinserción APPEND:

Versión de API 2012-10-29215

Page 223: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

{ "objects": [ { "id": "CSVId1", "name": "DefaultCSV1", "type": "CSV" }, { "id": "RedshiftDatabaseId1", "databaseName": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterId": "redshiftclusterId" }, { "id": "Default", "scheduleType": "timeseries", "failureAndRerunMode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "RedshiftDataNodeId1", "schedule": { "ref": "ScheduleId1" }, "tableName": "orders", "name": "DefaultRedshiftDataNode1", "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));", "type": "RedshiftDataNode", "database": { "ref": "RedshiftDatabaseId1" } }, { "id": "Ec2ResourceId1", "schedule": { "ref": "ScheduleId1" }, "securityGroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "logUri": "s3://myLogs", "resourceRole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" }, { "id": "ScheduleId1", "startDateTime": "yyyy-mm-ddT00:00:00", "name": "DefaultSchedule1", "type": "Schedule", "period": "period", "endDateTime": "yyyy-mm-ddT00:00:00" }, { "id": "S3DataNodeId1", "schedule": { "ref": "ScheduleId1" }, "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1",

Versión de API 2012-10-29216

Page 224: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

"dataFormat": { "ref": "CSVId1" }, "type": "S3DataNode" }, { "id": "RedshiftCopyActivityId1", "input": { "ref": "S3DataNodeId1" }, "schedule": { "ref": "ScheduleId1" }, "insertMode": "APPEND", "name": "DefaultRedshiftCopyActivity1", "runsOn": { "ref": "Ec2ResourceId1" }, "type": "RedshiftCopyActivity", "output": { "ref": "RedshiftDataNodeId1" } } ]}

La operación APPEND añade elementos a una tabla independientemente de las claves principales o deordenación. Por ejemplo, si tiene la tabla siguiente, puede incluir un registro con el mismo valor de usuarioe ID.

ID(PK) USER1 aaa2 bbb

Puede incluir un registro con el mismo valor de usuario e ID:

ID(PK) USER1 aaa2 bbb1 aaa

Note

Si una operación APPEND se interrumpe y reintenta, la nueva ejecución de la canalizaciónresultante podría iniciar la operación desde el principio. Esto puede ocasionar una duplicaciónadicional, por lo que debe ser consciente de este comportamiento, especialmente si tienecualquier lógica que cuente el número de filas.

Para ver un tutorial, consulte Copiar datos en Amazon Redshift con AWS Data Pipeline (p. 124).

Sintaxis

Campos obligatorios Descripción Tipo de slot

insertMode Determina qué hace AWS Data Pipeline con losdatos preexistentes en la tabla de destino quese superpone con las filas de datos que se van acargar.

Enumeración

Versión de API 2012-10-29217

Page 225: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Campos obligatorios Descripción Tipo de slotLos valores válidos son: KEEP_EXISTING,OVERWRITE_EXISTING, TRUNCATE y APPEND.

KEEP_EXISTING añade nuevas filas a la tabla ydeja sin modificar las filas existentes.

KEEP_EXISTING y OVERWRITE_EXISTINGutilizan la clave principal, de ordenación y lasclaves de distribución para identificar qué filasentrantes se corresponden con filas existentes.Consulte Actualización e inserción de datos nuevosen la Guía de desarrollador de base de datos deAmazon Redshift.

TRUNCATE elimina todos los datos de la tabla dedestino antes de escribir los nuevos datos.

APPEND añade todos los registros al final de latabla de Redshift. APPEND no requiere una claveprincipal, de distribución o de ordenación, por loque se podrían agregar elementos que pueden serduplicados.

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución de unintervalo de programación.

Especifique una referencia de programación a otroobjeto para establecer el orden de ejecución dedependencia para este objeto.

En la mayoría de los casos, recomendamos ponerla referencia de programación en el objeto de lacanalización predeterminado de modo que todoslos objetos hereden ese programa. Por ejemplo,puede establecer un programa en el objeto deforma explícita especificando "schedule":{"ref": "DefaultSchedule"}.

Si el programa maestro de la canalización contieneprogramas anidados, cree un objeto principal quetenga una referencia de programación.

Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte Programación.

Objeto de referencia,como por ejemplo:"schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29218

Page 226: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia Amazon EC2o clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

workerGroup El grupo de procesos de trabajo. Este se usa paradirigir tareas. Si proporciona un valor runsOn yexiste workerGroup, workerGroup se ignora.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

commandOptions Toma parámetros que pasa al nodo de datos deAmazon Redshift durante la operación COPY. Paraobtener información sobre los parámetros, consulteCOPY en la Guía de desarrollador de base dedatos de Amazon Redshift.

A medida que carga la tabla, COPY intentaconvertir de forma implícita las cadenas al tipode datos de la columna de destino. Además delas conversiones de datos predeterminadas queocurren automáticamente, si recibe errores otiene otras necesidades de conversión, puedeespecificar parámetros de conversión adicionales.Para obtener información, consulte Parámetros deconversión de datos en la Guía de desarrollador debase de datos de Amazon Redshift.

Si un formato de datos está asociado al nodode datos de entrada o salida, los parámetrosproporcionados se omiten.

Dado que la operación de copia utiliza primeroCOPY para insertar los datos en una tablaprovisional y, a continuación, utiliza un comandoINSERT para copiar los datos desde la tablaprovisional a la tabla de destino, algunosparámetros COPY no se aplican, como la capacidaddel comando COPY para permitir la compresiónautomática de la tabla. Si la compresión esnecesaria, añada los detalles de codificación decolumna a la instrucción CREATE TABLE.

Además, en algunos casos en que es necesariodescargar datos del clúster de Amazon

Cadena

Versión de API 2012-10-29219

Page 227: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Campos opcionales Descripción Tipo de slotRedshift y crear archivos en Amazon S3,RedshiftCopyActivity se basa en la operaciónUNLOAD de Amazon Redshift.

Para mejorar el rendimiento durante la copia y ladescarga, especifique el parámetro PARALLELOFF del comando UNLOAD. Para obtenerinformación sobre los parámetros, consulteUNLOAD en la Guía de desarrollador de base dedatos de Amazon Redshift.

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia:"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

input El nodo de datos de entrada. El origen de datospuede ser Amazon S3, DynamoDB o AmazonRedshift.

Objeto de referencia: "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia:"onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia: "onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia: "onSuccess":{"ref":"myActionId"}

output El nodo de datos de salida. La ubicación de salidapuede ser Amazon S3 o Amazon Redshift.

Objeto de referencia: "output":{"ref":"myDataNodeId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia:"parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

Versión de API 2012-10-29220

Page 228: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Campos opcionales Descripción Tipo de slot

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia:"precondition":{"ref":"myPreconditionId"}

cola Se corresponde a la configuración dequery_group en Amazon Redshift que lepermite asignar y priorizar actividades simultáneasen función de su ubicación en las colas.

Amazon Redshift limita el número de conexionessimultáneas a 15. Para obtener más información,consulte Asignación de consultas a las colas enla Guía de desarrollador de base de datos deAmazon RDS.

Cadena

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress.

Si se establece, las actividades remotas queno informen de su progreso durante el períodoespecificado pueden considerarse estancadas y,en consecuencia, reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

scheduleType Le permite especificar la programación de objetosen su canalización. Los valores son: cron,ondemand y timeseries.

La programación timeseries significa que lasinstancias se programan al final de cada intervalo.

La programación Cron significa que las instanciasse programan al principio de cada intervalo.

Un programa ondemand le permite ejecutar unacanalización una vez por activación. Esto significaque no tiene que clonar o recrear la canalizaciónpara ejecutarla de nuevo.

Para usar canalizaciones ondemand, solo tieneque llamar a la operación ActivatePipelinepara cada ejecución posterior.

Si usa un programa ondemand, debe especificarloen el objeto predeterminado y debe ser el únicoscheduleType especificado para los objetos de lacanalización.

Enumeración

Versión de API 2012-10-29221

Page 229: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Campos opcionales Descripción Tipo de slot

transformSql La expresión SQL SELECT que se utiliza paratransformar los datos de entrada.

Ejecute la expresión transformSql en la tabladenominada staging.

Cuando se copian datos desde DynamoDB oAmazon S3, AWS Data Pipeline crea una tabladenominada "staging" y carga los datos en ellainicialmente. Los datos de esta tabla se utilizanpara actualizar la tabla de destino.

El esquema de salida de transformSql debecoincidir con el esquema de la tabla de destinofinal.

Si especifica la opción transformSql, se creauna segunda tabla provisional a partir de lainstrucción SQL especificada. Los datos de estasegunda tabla staging se actualizan en la tabla dedestino final.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia:"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia: "cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

Versión de API 2012-10-29222

Page 230: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftCopyActivity

Campos de tiempo deejecución

Descripción Tipo de slot

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia: "waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto. Denota su lugar en el ciclode vida. Por ejemplo, los objetos de componentedan lugar a objetos de instancia, que ejecutanobjetos de intento.

Cadena

Versión de API 2012-10-29223

Page 231: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandActivity

ShellCommandActivityEjecuta un comando o script. Puede usar ShellCommandActivity para ejecutar tareas programadas deserie temporal o similar a Cron.

Cuando el campo stage se establece en true y se utiliza con un nodo S3DataNode,ShellCommandActivity admite el concepto de datos transitorios, lo que significa que puede moverdatos de Amazon S3 a una ubicación de uso transitorio, como Amazon EC2 o su entorno local, trabajar enlos datos mediante scripts y ShellCommandActivity, y volver a llevarlos a Amazon S3.

En este caso, cuando su comando de shell está conectado a un nodo S3DataNode de entrada,sus scripts de shell operan directamente en los datos mediante ${INPUT1_STAGING_DIR},${INPUT2_STAGING_DIR} y otros campos, que hacen referencia a los campos de entradaShellCommandActivity.

De forma similar, la salida del comando de shell se puede almacenar de modo transitorio en undirectorio de salida que se va a insertar automáticamente en Amazon S3, al que hacen referencia${OUTPUT1_STAGING_DIR}, ${OUTPUT2_STAGING_DIR}, etc.

Estas expresiones pueden pasar como argumentos de línea de comandos al comando de shell para suuso en la lógica de transformación de datos.

ShellCommandActivity devuelve cadenas y códigos de error estilo Linux. Si ShellCommandActivitygenera un error, el error devuelto es un valor distinto de cero.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "command" : "mkdir new-directory"}

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución de unintervalo de schedule.

Para establecer el orden de ejecución dedependencia de este objeto, especifique unareferencia schedule a otro objeto.

Para cumplir este requisito, establezca deforma explícita un schedule en el objeto, porejemplo, especificando "schedule": {"ref":"DefaultSchedule"}.

En la mayoría de los casos, es mejor ponerla referencia de schedule en el objeto de lacanalización predeterminado de modo quetodos los objetos hereden ese programa. Sila canalización consta un árbol de programas

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29224

Page 232: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandActivity

Campos de invocaciónde objetos

Descripción Tipo de slot

(programas dentro del programa maestro), creeun objeto principal que tenga una referencia deprograma.

Para distribuir la carga, AWS Data Pipeline crealos objetos físicos ligeramente antes del programa,pero los ejecuta en el programa.

Para obtener más información acerca de lasconfiguraciones de programación opcionales deejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

command El comando que se va a ejecutar. Utilice $ parahacer referencia a parámetros posicionales yscriptArgument para especificar los parámetrospara el comando. Este valor y cualquier parámetroasociado debe funcionar en el entorno desde elque se está ejecutando Task Runner.

Cadena

scriptUri Una ruta de URI de Amazon S3 para que sedescargue un archivo y se ejecute como comandode shell. Especifique solo un campo scriptUrio command. scriptUri no puede utilizarparámetros; utilice command en su lugar.

Cadena

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn Los recursos informáticos para ejecutar la actividado el comando, por ejemplo, una instancia AmazonEC2 o un clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

workerGroup Utilizado para dirigir tareas. Si proporciona un valorrunsOn y existe workerGroup, workerGroup seignora.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus El estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout El tiempo de espera para que se completeel trabajo remoto. Si se establece, se puede

Período

Versión de API 2012-10-29225

Page 233: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandActivity

Campos opcionales Descripción Tipo de slotreintentar una actividad remota que no se completedentro del tiempo de inicio especificado.

dependsOn Especifica una dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode failureAndRerunMode. Enumeración

input La ubicación de los datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto no se haprogramado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output La ubicación de los datos de salida. Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent El elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de Amazon S3, como 's3://BucketName/Key/', para cargar registros para lacanalización.

Cadena

precondition Opcionalmente define una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

Versión de API 2012-10-29226

Page 234: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandActivity

Campos opcionales Descripción Tipo de slot

reportProgressTimeout El tiempo de espera para llamadas sucesivasa reportProgress por parte de actividadesremotas. Si se establece, las actividades remotasque no informen de su progreso durante el períodoespecificado pueden considerarse estancadas yreintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

scheduleType Le permite especificar si los objetos de la definiciónde la canalización deben programarse al principiodel intervalo o al final de este.

Los valores posibles son: cron, ondemand ytimeseries.

Si se establece en timeseries, las instancias seprograman al final de cada intervalo.

Si se establece en Cron, las instancias seprograman al inicio de cada intervalo.

Si se establece en ondemand, puede ejecutaruna canalización una vez por activación. Estosignifica que no tiene que clonar o recrear lacanalización para ejecutarla de nuevo. Si usa unprograma ondemand, especifíquelo en el objetopredeterminado como scheduleType únicopara los objetos de la canalización. Para usarcanalizaciones ondemand, solo tiene que llamara la operación ActivatePipeline para cadaejecución posterior.

Enumeración

scriptArgument Una serie de cadenas con formato JSON que sepasan al comando especificado por el comando.Por ejemplo, si el comando es echo $1 $2,especifique scriptArgument como "param1","param2". Para varios argumentos y parámetros,pase el scriptArgument del siguiente modo:"scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2".El scriptArgument solo se puede utilizar concommand; si se utiliza con scriptUri produce unerror.

Cadena

stage Determina si está habilitado el espacio transitorioy permite que los comandos de shell tenganacceso a las variables de datos en el espaciotransitorio, como ${INPUT1_STAGING_DIR} y${OUTPUT1_STAGING_DIR}.

Booleano

Versión de API 2012-10-29227

Page 235: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandActivity

Campos opcionales Descripción Tipo de slot

stderr La ruta que recibe los mensajes de error delsistema redirigidos desde el comando. Si utilizael campo runsOn, debe ser una ruta de AmazonS3 debido a la naturaleza transitoria del recursoque ejecuta la actividad. No obstante, si especificael campo workerGroup, se permite una ruta dearchivo local.

Cadena

stdout La ruta de Amazon S3 que recibe la salidaredirigida desde el comando. Si utiliza el camporunsOn, debe ser una ruta de Amazon S3 debidoa la naturaleza transitoria del recurso que ejecutala actividad. No obstante, si especifica el campoworkerGroup, se permite una ruta de archivolocal.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances La lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El cancellationReason de este objeto se hacancelado.

Cadena

@cascadeFailedOn La descripción de la cadena de dependencias queprovocó el error del objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos de Amazon EMR estándisponibles únicamente sobre intentos de actividadde Amazon EMR.

Cadena

errorId El errorId si este objeto ha fallado. Cadena

errorMessage El errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que el objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop estándisponibles sobre intentos de actividades basadasen Amazon EMR.

Cadena

Versión de API 2012-10-29228

Page 236: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandActivity

Campos de tiempo deejecución

Descripción Tipo de slot

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdEl ID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeLa hora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeLa hora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime La hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime La hora de la ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime La hora de finalización programada para el objeto. DateTime

@scheduledStartTime La hora de comienzo programada para el objeto. DateTime

@status El estado del objeto. Cadena

@version La versión de AWS Data Pipeline utilizada paracrear el objeto.

Cadena

@waitingOn La descripción de la lista de dependencias para laque este objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error El error al describir el objeto mal estructurado. Cadena

@pipelineId El ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere El lugar de un objeto en el ciclo de vida. Losobjetos de componente dan lugar a objetos deinstancia, que ejecutan objetos de intento.

Cadena

Versión de API 2012-10-29229

Page 237: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlActivity

Véase también• CopyActivity (p. 174)• EmrActivity (p. 180)

SqlActivityEjecuta una consulta SQL (script) en una base de datos.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MySqlActivity", "type" : "SqlActivity", "database" : { "ref": "MyDatabaseID" }, "script" : "SQLQuery" | "scriptUri" : s3://scriptBucket/query.sql, "schedule" : { "ref": "MyScheduleID" },}

Sintaxis

Campos obligatorios Descripción Tipo de slot

base de datos La base de datos en la que se ejecuta el scriptSQL suministrado.

Objeto de referencia,por ejemplo, "database":{"ref":"myDatabaseId"}

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Debe especificaruna referencia de programación a otro objetopara establecer el orden de ejecución dedependencia para este objeto. Puede establecerun programa en el objeto de forma explícita, porejemplo, especificando "schedule": {"ref":"DefaultSchedule"}.

En la mayoría de los casos, es mejor poner lareferencia de programación en el objeto de lacanalización predeterminado de modo que todoslos objetos hereden ese programa.

Si la canalización tiene un árbol de programasanidados dentro del programa maestro, creeun objeto principal que tenga una referencia deprogramación. Para obtener más informaciónacerca de las configuraciones de programaciónopcionales de ejemplo, consulte https://

Objeto de referencia,por ejemplo, "schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29230

Page 238: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlActivity

Campos de invocaciónde objetos

Descripción Tipo de slot

docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

script El script SQL que se va a ejecutar. Debeespecificar script o scriptUri. Cuando el script sealmacena en Amazon S3, no se evalúa comoexpresión. Especificar múltiples valores parascriptArgument es útil cuando el script se almacenaen Amazon S3.

Cadena

scriptUri Un URI que especifica la ubicación de un script deSQL para ejecutar en esta actividad.

Cadena

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

runsOn El recurso informático para ejecutar la actividad ocomando. Por ejemplo, una instancia Amazon EC2o clúster de Amazon EMR.

Objeto de referencia,por ejemplo, "runsOn":{"ref":"myResourceId"}

workerGroup El grupo de procesos de trabajo. Este se usa paradirigir tareas. Si proporciona un valor runsOn yexiste workerGroup, workerGroup se ignora.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

dependsOn Especificar la dependencia de otro objetoejecutable.

Objeto de referencia,por ejemplo,"dependsOn":{"ref":"myActivityId"}

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

Versión de API 2012-10-29231

Page 239: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlActivity

Campos opcionales Descripción Tipo de slot

input Ubicación de los datos de entrada. Objeto de referencia,por ejemplo, "input":{"ref":"myDataNodeId"}

lateAfterTimeout El período de tiempo desde el principio delprograma de la canalización dentro del cual debecomenzar la ejecución del objeto.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben activarse si un objeto todavíano se ha programado o no se ha completado enel período de tiempo desde el inicio programadode la canalización, según lo especificado por"lateAfterTimeout".

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

output Ubicación de los datos de salida. Esto solo es útilpara hacer referencia desde un script (por ejemplo#{output.tablename}) y para crear la tabla desalida ajustando "createTableSql" en el nodo dedatos de salida. La salida de la consulta SQL no seescribe en el nodo de datos de salida.

Objeto de referencia,por ejemplo, "output":{"ref":"myDataNodeId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de S3 (como 's3://BucketName/Key/') paracargar registros para la canalización.

Cadena

precondition Opcionalmente, defina una condición previa. Unnodo de datos no se marca como "READY" hastaque se han cumplido todas las condiciones previas.

Objeto de referencia,por ejemplo,"precondition":{"ref":"myPreconditionId"}

Versión de API 2012-10-29232

Page 240: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlActivity

Campos opcionales Descripción Tipo de slot

cola [Amazon Redshift solamente] Corresponde a laconfiguración de query_group en Amazon Redshift,que le permite asignar y priorizar actividadessimultáneas en función de su ubicación en lascolas. Amazon Redshift limita el número deconexiones simultáneas a 15. Para obtener másinformación, consulte Asignación de consultas alas colas en la Guía de desarrollador de base dedatos de Amazon Redshift.

Cadena

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio del intervalo o al finalde este. Los valores son: cron, ondemand ytimeseries.

La programación timeseries significa que lasinstancias se programan al final de cada intervalo.

La programación cron significa que las instanciasse programan al principio de cada intervalo.

Un programa ondemand le permite ejecutaruna canalización una vez por activación. Estosignifica que no tiene que clonar o recrear lacanalización para ejecutarla de nuevo. Si usaun programa ondemand, debe especificarse enel objeto predeterminado y debe ser el únicoscheduleType especificado para los objetosde la canalización. Para usar canalizacionesondemand, solo tiene que llamar a la operaciónActivatePipeline para cada ejecuciónposterior.

Enumeración

scriptArgument Una lista de variables para el script. Tambiénpuede colocar expresiones directamenteen el campo del script. Especificar múltiplesvalores para scriptArgument es útil cuando elscript se almacena en Amazon S3. Ejemplo:#{format(@scheduledStartTime, "YY-MM-DDHH:MM:SS"}\n#{format(plusPeriod(@scheduledStartTime,"1 day"), "YY-MM-DD HH:MM:SS"}

Cadena

Versión de API 2012-10-29233

Page 241: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSqlActivity

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

Versión de API 2012-10-29234

Page 242: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRecursos

Campos de tiempo deejecución

Descripción Tipo de slot

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

RecursosEstos son los objetos de recursos de AWS Data Pipeline:

Objetos• Ec2Resource (p. 235)• EmrCluster (p. 242)• HttpProxy (p. 260)

Ec2ResourceUna instancia Amazon EC2 que realiza el trabajo definido por una actividad de canalización.

Para obtener información sobre las instancias Amazon EC2 predeterminadas que crea AWS Data Pipelinesi no se especifica ninguna instancia, consulte Instancias de Amazon EC2 predeterminadas de lasregiones de AWS (p. 4).

Versión de API 2012-10-29235

Page 243: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEc2Resource

EjemplosEC2-Classic

En el siguiente objeto de ejemplo se ejecuta una instancia EC2 en EC2-Classic o una VPCpredeterminada, con algunos campos opcionales establecidos.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m5.large", "securityGroups" : [ "test-group", "default" ], "keyPair" : "my-key-pair"}

EC2-VPC

En el siguiente objeto de ejemplo se ejecuta una instancia EC2 en una VPC no predeterminada, conalgunos campos opcionales establecidos.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m5.large", "securityGroupIds" : [ "sg-12345678", "sg-12345678" ], "subnetId": "subnet-12345678", "associatePublicIpAddress": "true", "keyPair" : "my-key-pair"}

Sintaxis

Campos obligatorios Descripción Tipo de slot

resourceRole El rol de IAM que controla los recursos a los quepuede tener acceso la instancia Amazon EC2.

Cadena

role El rol de IAM que utiliza AWS Data Pipeline paracrear la instancia EC2.

Cadena

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución de unintervalo de programación.

Objeto de referencia,por ejemplo,

Versión de API 2012-10-29236

Page 244: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEc2Resource

Campos de invocaciónde objetos

Descripción Tipo de slot

Para establecer el orden de ejecución dedependencia para este objeto, especifique unareferencia de programación a otro objeto. Puedehacerlo de una de las siguientes formas:

• Para garantizar que todos los objetos dela canalización heredan la programación,establezca una programación en el objetoexplícitamente: "schedule": {"ref":"DefaultSchedule"}. En la mayoría delos casos, resulta útil poner la referencia deprogramación en el objeto de la canalizaciónpredeterminado de modo que todos los objetoshereden esa programación.

• Si la canalización tiene programacionesanidadas en la programación maestra, puedecrear un objeto principal que tenga unareferencia de programación. Para obtener másinformación acerca de las configuraciones deprogramación opcionales de ejemplo, consultehttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

"schedule":{"ref":"myScheduleId"}

Campos opcionales Descripción Tipo de slot

actionOnResourceFailure La acción realizada después de un error de esterecurso. Los valores válidos son "retryall" y"retrynone".

Cadena

actionOnTaskFailure La acción realizada después de un error detarea de este recurso. Los valores válidos son"continue" o "terminate".

Cadena

associatePublicIpAddress Indica si se va a asignar una dirección IP públicaa la instancia. Si la instancia está en Amazon EC2o Amazon VPC, el valor predeterminado es true.De lo contrario, el valor predeterminado es false.

Booleano

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio especificado.

Período

availabilityZone La zona de disponibilidad en la que se va a lanzarla instancia Amazon EC2.

Cadena

failureAndRerunMode failureAndRerunMode. Enumeración

httpProxy El host proxy que usan los clientes para conectarsea los servicios de AWS.

Objeto de referencia,por ejemplo,

Versión de API 2012-10-29237

Page 245: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEc2Resource

Campos opcionales Descripción Tipo de slot"httpProxy":{"ref":"myHttpProxyId"}

imageId El ID de la AMI que se va a utilizar para lainstancia. De forma predeterminada, AWS DataPipeline utiliza el tipo de virtualización de AMIHVM. Los ID de AMI específicos utilizados sebasan en una región. Puede sobrescribir la AMIpredeterminada especificando la AMI HVM quedesee. Para obtener más información sobre lostipos de AMI, consulte Tipos de virtualización deAMI de Linux y Búsqueda de una AMI de Linuxen la Guía del usuario de Amazon EC2 parainstancias de Linux.

Cadena

initTimeout El tiempo que se debe esperar a que se inicie elrecurso.

Período

instanceCount Obsoleto. Entero

instanceType El tipo de instancia Amazon EC2 que se va ainiciar.

Cadena

keyPair El nombre del par de claves. Si lanza una instanciaAmazon EC2 sin especificar un par de claves, nopodrá conectarse a ella.

Cadena

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries El número máximo de intentos en caso de error. Entero

minInstanceCount Obsoleto. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto no se haprogramado o sigue ejecutándose.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

Versión de API 2012-10-29238

Page 246: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEc2Resource

Campos opcionales Descripción Tipo de slot

parent El elemento principal del objeto actual del que seheredan las ranuras.

Objeto de referencia,por ejemplo,"parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de Amazon S3 (como 's3://BucketName/Key/') para cargar registros para lacanalización.

Cadena

región El código de la región en la que debe ejecutarse lainstancia Amazon EC2. De forma predeterminada,la instancia se ejecuta en la misma región quela canalización. Puede ejecutar la instanciaen la misma región que un conjunto de datosdependiente.

Enumeración

reportProgressTimeout El tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Si seestablece, las actividades remotas que no informende su progreso durante el período especificadopueden considerarse estancadas y se reintentarán.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

runAsUser El usuario que va a ejecutar TaskRunner. Cadena

runsOn Este campo no está permitido en este objeto. Objeto de referencia,por ejemplo,"runsOn":{"ref":"myResourceId"}

scheduleType El tipo de programación le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio o al final del intervalo, obajo demanda.

Valores son los siguientes:

• timeseries. Las instancias se programan alfinal de cada intervalo.

• cron. Las instancias se programan al comienzode cada intervalo.

• ondemand. Le permite ejecutar una canalizaciónuna vez por activación. No tiene que clonaro recrear la canalización para ejecutarla denuevo. Si usa un programa bajo demanda, debeespecificarse en el objeto predeterminado ydebe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones bajo demanda, solo tiene quellamar a la operación ActivatePipeline paracada ejecución posterior.

Enumeración

Versión de API 2012-10-29239

Page 247: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEc2Resource

Campos opcionales Descripción Tipo de slot

securityGroupIds Los ID de uno o varios grupos de seguridadde Amazon EC2 que se van a utilizar para lasinstancias del grupo de recursos.

Cadena

securityGroups Uno o varios grupos de seguridad de Amazon EC2que se van a utilizar para las instancias del grupode recursos.

Cadena

spotBidPrice La cantidad máxima por hora para su instancia despot en dólares, que es un valor decimal entre 0 y20,00 (no incluidos).

Cadena

subnetId El ID de la subred de Amazon EC2 en la que se vaa iniciar la instancia.

Cadena

terminateAfter El número de horas después de las cuales se hade finalizar el recurso.

Período

useOnDemandOnLastAttemptEn el último intento de solicitar una instanciade spot, realice una solicitud de instancias bajodemanda en lugar de instancias de spot. Deeste modo, se garantiza que si todos los intentosanteriores han fallado, el último intento no se veráinterrumpido.

Booleano

workerGroup Este campo no está permitido en este objeto. Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El cancellationReason de este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencias en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos solo están disponibles enlos intentos de actividad de Amazon EMR.

Cadena

errorId El ID de error si este objeto ha fallado. Cadena

errorMessage El mensaje de error si este objeto ha fallado. Cadena

Versión de API 2012-10-29240

Page 248: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEc2Resource

Campos de tiempo deejecución

Descripción Tipo de slot

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@failureReason El motivo del error del recurso. Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop estándisponibles sobre intentos de actividades deAmazon EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime La hora de finalización programada para el objeto. DateTime

@scheduledStartTime La hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version La versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias para laque este objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

Versión de API 2012-10-29241

Page 249: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos del sistema Descripción Tipo de slot

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere El lugar de un objeto en el ciclo de vida. Losobjetos de componente dan lugar a objetos deinstancia, que ejecutan objetos de intento.

Cadena

EmrClusterRepresenta la configuración de un clúster de Amazon EMR. EmrActivity (p. 180) usa este objeto paralanzar un clúster.

Contenido• Ejemplos (p. 243)• Sintaxis (p. 252)• Véase también (p. 260)

Programadores

Los programadores ofrecen un modo de especificar la asignación de recursos y la priorización de trabajoen un clúster de Hadoop. Los administradores o usuarios pueden elegir un programador para diversasclases de usuarios y aplicaciones. Un programador podría usar colas para asignar recursos a usuarios yaplicaciones. Usted configura esas colas al crear el clúster. A continuación, puede configurar la prioridadde determinados tipos de trabajo y usuario sobre otros. Esto proporciona un uso eficaz de los recursosdel clúster, a la vez que se permite a más de un usuario enviar trabajo al clúster. Existen tres tipos deprogramador disponibles:

• FairScheduler: intenta programar recursos de forma uniforme durante un período de tiempo significativo.• CapacityScheduler: usa colas para permitir a los administradores del clúster asignar usuarios a colas de

prioridad y asignación de recursos variables.• Predeterminado: utilizado por el clúster, de cuya configuración podría encargarse su sitio.

Plataformas de Amazon EMR 2.x, 3.x frente a plataformas 4.x

AWS Data Pipeline admite clústeres de Amazon EMR basados en la etiqueta de versión emr-4.0.0 oposterior, que requiere el uso del campo releaseLabel para el objeto EmrCluster correspondiente.Para plataformas anteriores conocidas como versiones de AMI, use el campo amiVersion en su lugar.

Si usa un objeto EmrCluster autoadministrado con una etiqueta de versión, utilice la Task Runner másactual. Para obtener más información acerca de Task Runner, consulte Uso de Task Runner (p. 309).Puede configurar valores de propiedad para todas las clasificaciones de configuración de Amazon EMR.Para obtener más información, consulte Configuración de aplicaciones en la Guía de publicación deAmazon EMR y las referencias de objeto the section called “EmrConfiguration” (p. 303) y the sectioncalled “Propiedad” (p. 306).

Permisos de Amazon EMR

Al crear un rol de IAM personalizado, piense detenidamente en los permisos mínimos necesarios paraque el clúster realice su trabajo. Asegúrese de conceder acceso a los recursos necesarios, comoarchivos de Amazon S3 o datos de Amazon RDS, Amazon Redshift o DynamoDB. Si desea establecervisibleToAllUsers en False, su rol debe tener los permisos adecuados para hacerlo. Tenga en

Versión de API 2012-10-29242

Page 250: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

cuenta que DataPipelineDefaultRole no tiene estos permisos. Debe proporcionar una unión de losroles DefaultDataPipelineResourceRole y DataPipelineDefaultRole como el rol de objetoEmrCluster o crear su propio rol con este fin.

EjemplosA continuación se muestran ejemplos de este tipo de objeto.

Contenido• Lanzar un clúster de Amazon EMR con hadoopVersion (p. 243)• Lanzar un clúster de Amazon EMR con la etiqueta de versión emr-4.x o posterior (p. 243)• Instalar software adicional en el clúster de Amazon EMR (p. 244)• deshabilitar el cifrado en el servidor en las versiones 3.x (p. 244)• deshabilitar el cifrado en el servidor en las versiones 4.x (p. 245)• Configurar listas de control de acceso de Hadoop KMS y crear zonas de cifrado en HDFS (p. 245)• especificar roles de IAM personalizados (p. 246)• Usar el recurso EmrCluster en AWS SDK para Java (p. 247)• Configurar un clúster de Amazon EMR en una subred privada (p. 248)• Asociar volúmenes de EBS a los nodos del clúster (p. 250)

Lanzar un clúster de Amazon EMR con hadoopVersion

Example

En el siguiente ejemplo, se lanza un clúster de Amazon EMR mediante la versión de AMI 1.0 y Hadoop0.20.

{ "id" : "MyEmrCluster", "type" : "EmrCluster", "hadoopVersion" : "0.20", "keyPair" : "my-key-pair", "masterInstanceType" : "m3.xlarge", "coreInstanceType" : "m3.xlarge", "coreInstanceCount" : "10", "taskInstanceType" : "m3.xlarge", "taskInstanceCount": "10", "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,arg1,arg2,arg3","s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop/configure-other-stuff,arg1,arg2"]}

Lanzar un clúster de Amazon EMR con la etiqueta de versión emr-4.x o posterior

Example

En el siguiente ejemplo, se lanza un clúster de Amazon EMR mediante el campo releaseLabel másreciente:

{ "id" : "MyEmrCluster", "type" : "EmrCluster", "keyPair" : "my-key-pair", "masterInstanceType" : "m3.xlarge",

Versión de API 2012-10-29243

Page 251: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

"coreInstanceType" : "m3.xlarge", "coreInstanceCount" : "10", "taskInstanceType" : "m3.xlarge", "taskInstanceCount": "10", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "configuration": {"ref":"myConfiguration"} }

Instalar software adicional en el clúster de Amazon EMR

Example

EmrCluster proporciona el campo supportedProducts que instala software de terceros en un clústerde Amazon EMR; por ejemplo, permite instalar una distribución personalizada de Hadoop, como MapR.Acepta una lista de argumentos separada por comas para que el software de terceros la lea y actúe. Enel siguiente ejemplo se muestra cómo usar el campo supportedProducts de EmrCluster para crearun clúster de edición MapR M3 personalizada con Karmasphere Analytics instalado y ejecutar un objetoEmrActivity en él.

{ "id": "MyEmrActivity", "type": "EmrActivity", "schedule": {"ref": "ResourcePeriod"}, "runsOn": {"ref": "MyEmrCluster"}, "postStepCommand": "echo Ending job >> /mnt/var/log/stepCommand.txt", "preStepCommand": "echo Starting job > /mnt/var/log/stepCommand.txt", "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output, \ hdfs:///output32113/,-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate" }, { "id": "MyEmrCluster", "type": "EmrCluster", "schedule": {"ref": "ResourcePeriod"}, "supportedProducts": ["mapr,--edition,m3,--version,1.2,--key1,value1","karmasphere-enterprise-utility"], "masterInstanceType": "m3.xlarge", "taskInstanceType": "m3.xlarge"}

deshabilitar el cifrado en el servidor en las versiones 3.x

Example

Una actividad EmrCluster con Hadoop versión 2.x creada por AWS Data Pipeline habilita el cifrado dellado del servidor de forma predeterminada. Si desea deshabilitar el cifrado en el servidor, debe especificaruna acción de arranque en la definición de objeto de clúster.

En el siguiente ejemplo se crea una actividad EmrCluster con el cifrado en el servidor deshabilitado:

{ "id":"NoSSEEmrCluster", "type":"EmrCluster", "hadoopVersion":"2.x", "keyPair":"my-key-pair", "masterInstanceType":"m3.xlarge", "coreInstanceType":"m3.large", "coreInstanceCount":"10",

Versión de API 2012-10-29244

Page 252: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

"taskInstanceType":"m3.large", "taskInstanceCount":"10", "bootstrapAction":["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-e, fs.s3.enableServerSideEncryption=false"]}

deshabilitar el cifrado en el servidor en las versiones 4.x

Example

Debe deshabilitar el cifrado en el servidor mediante un objeto EmrConfiguration.

En el siguiente ejemplo se crea una actividad EmrCluster con el cifrado en el servidor deshabilitado:

{ "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "myResourceId", "type": "EmrCluster", "configuration": { "ref": "disableSSE" } }, { "name": "disableSSE", "id": "disableSSE", "type": "EmrConfiguration", "classification": "emrfs-site", "property": [{ "ref": "enableServerSideEncryption" } ] }, { "name": "enableServerSideEncryption", "id": "enableServerSideEncryption", "type": "Property", "key": "fs.s3.enableServerSideEncryption", "value": "false" }

Configurar listas de control de acceso de Hadoop KMS y crear zonas de cifradoen HDFS

Example

Los siguientes objetos crean ACL para Hadoop KMS y zonas de cifrado y las claves de cifradocorrespondientes en HDFS:

{ "name": "kmsAcls", "id": "kmsAcls", "type": "EmrConfiguration", "classification": "hadoop-kms-acls", "property": [ {"ref":"kmsBlacklist"}, {"ref":"kmsAcl"} ] }, {

Versión de API 2012-10-29245

Page 253: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

"name": "hdfsEncryptionZone", "id": "hdfsEncryptionZone", "type": "EmrConfiguration", "classification": "hdfs-encryption-zones", "property": [ {"ref":"hdfsPath1"}, {"ref":"hdfsPath2"} ] }, { "name": "kmsBlacklist", "id": "kmsBlacklist", "type": "Property", "key": "hadoop.kms.blacklist.CREATE", "value": "foo,myBannedUser" }, { "name": "kmsAcl", "id": "kmsAcl", "type": "Property", "key": "hadoop.kms.acl.ROLLOVER", "value": "myAllowedUser" }, { "name": "hdfsPath1", "id": "hdfsPath1", "type": "Property", "key": "/myHDFSPath1", "value": "path1_key" }, { "name": "hdfsPath2", "id": "hdfsPath2", "type": "Property", "key": "/myHDFSPath2", "value": "path2_key" }

especificar roles de IAM personalizados

Example

De forma predeterminada, AWS Data Pipeline pasa DataPipelineDefaultRole como rol de servicio deAmazon EMR y DataPipelineDefaultResourceRole como perfil de instancia de Amazon EC2 paracrear recursos en su nombre. Sin embargo, puede crear un rol de servicio de Amazon EMR y un perfil deinstancia personalizados y usarlos en su lugar. AWS Data Pipeline debe tener permisos suficientes paracrear clústeres mediante el rol personalizado y es necesario añadir AWS Data Pipeline como entidad deconfianza.

En el siguiente objeto de ejemplo, se especifican los roles personalizados del clúster de Amazon EMR:

{ "id":"MyEmrCluster", "type":"EmrCluster", "hadoopVersion":"2.x", "keyPair":"my-key-pair", "masterInstanceType":"m3.xlarge", "coreInstanceType":"m3.large", "coreInstanceCount":"10", "taskInstanceType":"m3.large", "taskInstanceCount":"10", "role":"emrServiceRole", "resourceRole":"emrInstanceProfile"

Versión de API 2012-10-29246

Page 254: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

}

Usar el recurso EmrCluster en AWS SDK para Java

Example

En el siguiente ejemplo, se muestra cómo utilizar EmrCluster y EmrActivity para crear un clúster deAmazon EMR 4.x a fin de ejecutar un paso de Spark mediante el SDK de Java:

public class dataPipelineEmr4 {

public static void main(String[] args) { AWSCredentials credentials = null; credentials = new ProfileCredentialsProvider("/path/to/AwsCredentials.properties","default").getCredentials(); DataPipelineClient dp = new DataPipelineClient(credentials); CreatePipelineRequest createPipeline = new CreatePipelineRequest().withName("EMR4SDK").withUniqueId("unique"); CreatePipelineResult createPipelineResult = dp.createPipeline(createPipeline); String pipelineId = createPipelineResult.getPipelineId(); PipelineObject emrCluster = new PipelineObject() .withName("EmrClusterObj") .withId("EmrClusterObj") .withFields( new Field().withKey("releaseLabel").withStringValue("emr-4.1.0"), new Field().withKey("coreInstanceCount").withStringValue("3"), new Field().withKey("applications").withStringValue("spark"), new Field().withKey("applications").withStringValue("Presto-Sandbox"), new Field().withKey("type").withStringValue("EmrCluster"), new Field().withKey("keyPair").withStringValue("myKeyName"), new Field().withKey("masterInstanceType").withStringValue("m3.xlarge"), new Field().withKey("coreInstanceType").withStringValue("m3.xlarge") ); PipelineObject emrActivity = new PipelineObject() .withName("EmrActivityObj") .withId("EmrActivityObj") .withFields( new Field().withKey("step").withStringValue("command-runner.jar,spark-submit,--executor-memory,1g,--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/lib/spark-examples.jar,10"), new Field().withKey("runsOn").withRefValue("EmrClusterObj"), new Field().withKey("type").withStringValue("EmrActivity") ); PipelineObject schedule = new PipelineObject() .withName("Every 15 Minutes") .withId("DefaultSchedule") .withFields( new Field().withKey("type").withStringValue("Schedule"), new Field().withKey("period").withStringValue("15 Minutes"), new Field().withKey("startAt").withStringValue("FIRST_ACTIVATION_DATE_TIME") ); PipelineObject defaultObject = new PipelineObject() .withName("Default") .withId("Default") .withFields( new Field().withKey("failureAndRerunMode").withStringValue("CASCADE"), new Field().withKey("schedule").withRefValue("DefaultSchedule"), new Field().withKey("resourceRole").withStringValue("DataPipelineDefaultResourceRole"), new Field().withKey("role").withStringValue("DataPipelineDefaultRole"),

Versión de API 2012-10-29247

Page 255: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

new Field().withKey("pipelineLogUri").withStringValue("s3://myLogUri"), new Field().withKey("scheduleType").withStringValue("cron") ); List<PipelineObject> pipelineObjects = new ArrayList<PipelineObject>(); pipelineObjects.add(emrActivity); pipelineObjects.add(emrCluster); pipelineObjects.add(defaultObject); pipelineObjects.add(schedule); PutPipelineDefinitionRequest putPipelineDefintion = new PutPipelineDefinitionRequest() .withPipelineId(pipelineId) .withPipelineObjects(pipelineObjects); PutPipelineDefinitionResult putPipelineResult = dp.putPipelineDefinition(putPipelineDefintion); System.out.println(putPipelineResult); ActivatePipelineRequest activatePipelineReq = new ActivatePipelineRequest() .withPipelineId(pipelineId); ActivatePipelineResult activatePipelineRes = dp.activatePipeline(activatePipelineReq); System.out.println(activatePipelineRes); System.out.println(pipelineId); }

}

Configurar un clúster de Amazon EMR en una subred privada

Example

Este ejemplo incluye una configuración que lanza el clúster en una subred privada en una VPC. Paraobtener más información, consulte Lanzar clústeres de Amazon EMR en una VPC en la Guía deadministración de Amazon EMR. Esta configuración es opcional. Puede utilizarla en cualquier canalizaciónque use un objeto EmrCluster.

Para lanzar un clúster de Amazon EMR en una subred privada, especifique SubnetId,emrManagedMasterSecurityGroupId, emrManagedSlaveSecurityGroupId yserviceAccessSecurityGroupId en la configuración de EmrCluster.

{ "objects": [ { "output": { "ref": "S3BackupLocation" }, "input": { "ref": "DDBSourceTable" }, "maximumRetries": "2", "name": "TableBackupActivity", "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}", "id": "TableBackupActivity", "runsOn": { "ref": "EmrClusterForBackup" }, "type": "EmrActivity", "resizeClusterBeforeRunning": "false" },

Versión de API 2012-10-29248

Page 256: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

{ "readThroughputPercent": "#{myDDBReadThroughputRatio}", "name": "DDBSourceTable", "id": "DDBSourceTable", "type": "DynamoDBDataNode", "tableName": "#{myDDBTableName}" }, { "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "name": "S3BackupLocation", "id": "S3BackupLocation", "type": "S3DataNode" }, { "name": "EmrClusterForBackup", "coreInstanceCount": "1", "taskInstanceCount": "1", "taskInstanceType": "m4.xlarge", "coreInstanceType": "m4.xlarge", "releaseLabel": "emr-4.7.0", "masterInstanceType": "m4.xlarge", "id": "EmrClusterForBackup", "subnetId": "#{mySubnetId}", "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}", "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}", "serviceAccessSecurityGroupId": "#{myServiceAccessSecurityGroup}", "region": "#{myDDBRegion}", "type": "EmrCluster", "keyPair": "user-key-pair" }, { "failureAndRerunMode": "CASCADE", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "#{myPipelineLogUri}", "scheduleType": "ONDEMAND", "name": "Default", "id": "Default" } ], "parameters": [ { "description": "Output S3 folder", "id": "myOutputS3Loc", "type": "AWS::S3::ObjectKey" }, { "description": "Source DynamoDB table name", "id": "myDDBTableName", "type": "String" }, { "default": "0.25", "watermark": "Enter value between 0.1-1.0", "description": "DynamoDB read throughput ratio", "id": "myDDBReadThroughputRatio", "type": "Double" }, { "default": "us-east-1", "watermark": "us-east-1", "description": "Region of the DynamoDB table", "id": "myDDBRegion", "type": "String" }

Versión de API 2012-10-29249

Page 257: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

], "values": { "myDDBRegion": "us-east-1", "myDDBTableName": "ddb_table", "myDDBReadThroughputRatio": "0.25", "myOutputS3Loc": "s3://s3_path", "mySubnetId": "subnet_id", "myServiceAccessSecurityGroup": "service access security group", "mySlaveSecurityGroup": "slave security group", "myMasterSecurityGroup": "master security group", "myPipelineLogUri": "s3://s3_path" }}

Asociar volúmenes de EBS a los nodos del clúster

Example

Puede asociar volúmenes de EBS a cualquier tipo de nodo en el clúster de EMR dentro de lacanalización. Para asociar volúmenes de EBS a los nodos, utilice coreEbsConfiguration,masterEbsConfiguration y TaskEbsConfiguration en su configuración EmrCluster.

Este ejemplo del clúster Amazon EMR utiliza volúmenes de Amazon EBS para sus nodos de tarea,maestro y principal. Para obtener más información, consulte Volúmenes de Amazon EBS en Amazon EMRen la Guía de administración de Amazon EMR.

Estas configuraciones son opcionales. Puede utilizarlas en cualquier canalización que use un objetoEmrCluster.

En la canalización, haga clic en la configuración del objeto EmrCluster, seleccione Master EBSConfiguration, (Configuración de EBS maestra) Core EBS Configuration, (Configuración de EBS principal)Task EBS Configuration (Configuración de EBS de tareas) y especifique los detalles de configuración demodo similar a como se muestra en el siguiente ejemplo.

{ "objects": [ { "output": { "ref": "S3BackupLocation" }, "input": { "ref": "DDBSourceTable" }, "maximumRetries": "2", "name": "TableBackupActivity", "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}", "id": "TableBackupActivity", "runsOn": { "ref": "EmrClusterForBackup" }, "type": "EmrActivity", "resizeClusterBeforeRunning": "false" }, { "readThroughputPercent": "#{myDDBReadThroughputRatio}", "name": "DDBSourceTable", "id": "DDBSourceTable", "type": "DynamoDBDataNode", "tableName": "#{myDDBTableName}" }, {

Versión de API 2012-10-29250

Page 258: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

"directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "name": "S3BackupLocation", "id": "S3BackupLocation", "type": "S3DataNode" }, { "name": "EmrClusterForBackup", "coreInstanceCount": "1", "taskInstanceCount": "1", "taskInstanceType": "m4.xlarge", "coreInstanceType": "m4.xlarge", "releaseLabel": "emr-4.7.0", "masterInstanceType": "m4.xlarge", "id": "EmrClusterForBackup", "subnetId": "#{mySubnetId}", "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}", "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}", "region": "#{myDDBRegion}", "type": "EmrCluster", "coreEbsConfiguration": { "ref": "EBSConfiguration" }, "masterEbsConfiguration": { "ref": "EBSConfiguration" }, "taskEbsConfiguration": { "ref": "EBSConfiguration" }, "keyPair": "user-key-pair" }, { "name": "EBSConfiguration", "id": "EBSConfiguration", "ebsOptimized": "true", "ebsBlockDeviceConfig" : [ { "ref": "EbsBlockDeviceConfig" } ], "type": "EbsConfiguration" }, { "name": "EbsBlockDeviceConfig", "id": "EbsBlockDeviceConfig", "type": "EbsBlockDeviceConfig", "volumesPerInstance" : "2", "volumeSpecification" : { "ref": "VolumeSpecification" } }, { "name": "VolumeSpecification", "id": "VolumeSpecification", "type": "VolumeSpecification", "sizeInGB": "500", "volumeType": "io1", "iops": "1000" }, { "failureAndRerunMode": "CASCADE", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "#{myPipelineLogUri}", "scheduleType": "ONDEMAND", "name": "Default", "id": "Default" }

Versión de API 2012-10-29251

Page 259: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

], "parameters": [ { "description": "Output S3 folder", "id": "myOutputS3Loc", "type": "AWS::S3::ObjectKey" }, { "description": "Source DynamoDB table name", "id": "myDDBTableName", "type": "String" }, { "default": "0.25", "watermark": "Enter value between 0.1-1.0", "description": "DynamoDB read throughput ratio", "id": "myDDBReadThroughputRatio", "type": "Double" }, { "default": "us-east-1", "watermark": "us-east-1", "description": "Region of the DynamoDB table", "id": "myDDBRegion", "type": "String" } ], "values": { "myDDBRegion": "us-east-1", "myDDBTableName": "ddb_table", "myDDBReadThroughputRatio": "0.25", "myOutputS3Loc": "s3://s3_path", "mySubnetId": "subnet_id", "mySlaveSecurityGroup": "slave security group", "myMasterSecurityGroup": "master security group", "myPipelineLogUri": "s3://s3_path" }}

Sintaxis

Campos de invocaciónde objetos

Descripción Tipo de slot

programación Este objeto se invoca dentro de la ejecución deun intervalo de programación. Especifique unareferencia de programación a otro objeto paraestablecer el orden de ejecución de dependenciapara este objeto. Puede cumplir este requisitoestableciendo de forma explícita un programa en elobjeto, por ejemplo, especificando "schedule":{"ref": "DefaultSchedule"}. En la mayoríade los casos, es mejor poner la referencia deprogramación en el objeto de la canalizaciónpredeterminado de modo que todos los objetoshereden ese programa. O bien, si la canalizacióntiene un árbol de programas (programas dentro delprograma maestro), puede crear un objeto principalque tenga una referencia de programación.Para obtener más información acerca de lasconfiguraciones de programación opcionales de

Objeto de referencia,por ejemplo,"schedule":{"ref":"myScheduleId"}

Versión de API 2012-10-29252

Page 260: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos de invocaciónde objetos

Descripción Tipo de slot

ejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Campos opcionales Descripción Tipo de slot

actionOnResourceFailure La acción realizada después de un error de esterecurso. Los valores válidos son "retryall", quereintenta todas las tareas en el clúster durante eltiempo especificado y "retrynone".

Cadena

actionOnTaskFailure La acción realizada después de un error de tareade este recurso. Los valores válidos son "continue",que significa que no debe terminarse el clúster, y"terminate".

Cadena

additionalMasterSecurityGroupIdsEl identificador de los grupos de seguridadprincipales adicionales del clúster de EMR, quesigue el formato sg-01XXXX6a. Para obtenermás información, consulte Grupos de seguridadadicionales de Amazon EMR en la Guía deadministración de Amazon EMR.

Cadena

additionalSlaveSecurityGroupIdsEl identificador de los grupos de seguridadsecundarios adicionales del clúster de EMR, quesigue el formato sg-01XXXX6a.

Cadena

amiVersion La versión de imagen de máquina de Amazon(AMI) que Amazon EMR utiliza para instalar losnodos del clúster. Para obtener más información,consulte Guía de administración de Amazon EMR.

Cadena

applications Aplicaciones para instalar en el clúster conargumentos separados por comas. De formapredeterminada, están instalados Hive y Pig. Esteparámetro se aplica solamente a la versión 4.0 yposteriores de Amazon EMR.

Cadena

attemptStatus El estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

availabilityZone La zona de disponibilidad en la que ejecutar elclúster.

Cadena

bootstrapAction Una acción que se ejecuta cuando comienza elclúster. Puede especificar argumentos separadospor comas. Para especificar varias acciones, hasta255, añada varios campos bootstrapAction.El comportamiento predeterminado consiste

Cadena

Versión de API 2012-10-29253

Page 261: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos opcionales Descripción Tipo de sloten comenzar el clúster sin ninguna acción dearranque.

configuration Configuración del clúster de Amazon EMR. Esteparámetro se aplica solamente a la versión 4.0 yposteriores de Amazon EMR.

Objeto de referencia,por ejemplo,"configuration":{"ref":"myEmrConfigurationId"}

coreInstanceBidPrice El precio de spot máximo que está dispuestoa pagar para instancias Amazon EC2. Si seespecifica un precio de puja, Amazon EMR utilizainstancias de spot para el grupo de instancias. Seespecifica en USD.

Cadena

coreInstanceCount El número de nodos principales que se van autilizar para el clúster.

Entero

coreInstanceType El tipo de instancia Amazon EC2 que se va autilizar para los nodos principales. ConsulteInstancias Amazon EC2 admitidas para clústeresde Amazon EMR (p. 5).

Cadena

coreGroupConfiguration La configuración del grupo de instancias principaldel clúster de Amazon EMR. Este parámetro seaplica solamente a la versión 4.0 y posteriores deAmazon EMR.

Objeto de referencia,por ejemplo,“configuration”:{“ref”:“myEmrConfigurationId”}

coreEbsConfiguration La configuración de los volúmenes de AmazonEBS que se asociarán a cada uno de los nodosprincipales del grupo principal en el clúster deAmazon EMR. Para obtener más información,consulte Tipos de instancias que admiten laoptimización para EBS en la Guía del usuario deAmazon EC2 para instancias de Linux.

Objeto de referencia,por ejemplo,“coreEbsConfiguration”:{“ref”:“myEbsConfiguration”}

EbsBlockDeviceConfig La configuración de un dispositivo debloques de Amazon EBS solicitadoasociado al grupo de instancias. Incluyeun determinado número de volúmenes quese asociará a cada instancia del grupo deinstancias. Incluye volumesPerInstance yvolumeSpecification, donde:

• volumesPerInstance es el número devolúmenes de EBS con una configuración devolumen específica que se asociarán a cadainstancia del grupo de instancias.

• volumeSpecification son lasespecificaciones del volumen de Amazon EBS,por ejemplo, el tipo de volumen, las IOPS y eltamaño en gigabytes (GiB) que se solicitará parael volumen de EBS asociado a una instanciaEC2 en el clúster de Amazon EMR.

Objeto de referencia,por ejemplo,“EbsBlockDeviceConfig”:{“ref”:“myEbsBlockDeviceConfig”}

Versión de API 2012-10-29254

Page 262: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos opcionales Descripción Tipo de slot

emrManagedMasterSecurityGroupIdEl identificador del grupo de seguridad principaldel clúster de Amazon EMR, que sigue el formatosg-01XXXX6a. Para obtener más información,consulte Configuración de grupos de seguridad enla Guía de administración de Amazon EMR.

Cadena

emrManagedSlaveSecurityGroupIdEl identificador del grupo de seguridad secundariodel clúster de Amazon EMR, que sigue el formatosg-01XXXX6a.

Cadena

enableDebugging Habilita la depuración en el clúster de AmazonEMR.

Cadena

failureAndRerunMode failureAndRerunMode. Enumeración

hadoopSchedulerType El tipo de programador del clúster. Los tiposválidos son: PARALLEL_FAIR_SCHEDULING,PARALLEL_CAPACITY_SCHEDULING y DEFAULT_SCHEDULER.

Enumeración

httpProxy El host proxy que usan los clientes para conectarsea los servicios de AWS.

Objeto de referencia,por ejemplo,"httpProxy":{"ref":"myHttpProxyId"}

initTimeout El tiempo que se debe esperar a que se inicie elrecurso.

Período

keyPair El par de claves de Amazon EC2 que se utilizarápara iniciar sesión en el nodo principal del clústerde Amazon EMR.

Cadena

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

masterInstanceBidPrice El precio de spot máximo que está dispuesto apagar para instancias Amazon EC2. Un valordecimal entre 0 y 20,00, exclusivo. Se especificaen USD. Si establece este valor, se habilitaninstancias de spot para el nodo maestro del clústerde Amazon EMR. Si se especifica un precio depuja, Amazon EMR utiliza instancias de spot parael grupo de instancias.

Cadena

masterInstanceType El tipo de instancia Amazon EC2 que se utilizarápara el nodo principal. Consulte Instancias AmazonEC2 admitidas para clústeres de Amazon EMR (p. 5).

Cadena

masterGroupConfigurationLa configuración del grupo de instancias maestrodel clúster de Amazon EMR. Este parámetro seaplica solamente a la versión 4.0 y posteriores deAmazon EMR.

Objeto de referencia,por ejemplo,“configuration”:{“ref”:“myEmrConfigurationId”}

Versión de API 2012-10-29255

Page 263: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos opcionales Descripción Tipo de slot

masterEbsConfiguration La configuración de volúmenes de AmazonEBS que se asociará a cada uno de los nodosprincipales del grupo maestro en el clúster deAmazon EMR. Para obtener más información,consulte Tipos de instancias que admiten laoptimización para EBS en la Guía del usuario deAmazon EC2 para instancias de Linux.

Objeto de referencia,por ejemplo,“masterEbsConfiguration”:{“ref”:“myEbsConfiguration”}

maxActiveInstances El número máximo de instancias activassimultáneas de un componente. Las nuevasejecuciones no cuentan para el número deinstancias activas.

Entero

maximumRetries maximumRetries. Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo,"onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredan los slots.

Objeto de referencia,por ejemplo,"parent":{"ref":"myBaseObjectId"}

pipelineLogUri El URI de Amazon S3 (como 's3://BucketName/Key/') para cargar registros para la canalización.

Cadena

region El código de la región en la que debeejecutarse el clúster de Amazon EMR. De formapredeterminada, el clúster se ejecuta en la mismaregión que la canalización. Puede ejecutar elclúster en la misma región que un conjunto dedatos dependiente.

Enumeración

releaseLabel Etiqueta de la versión del clúster de EMR. Cadena

reportProgressTimeout Tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Sise establece, las actividades remotas que noinformen de su progreso durante el períodoespecificado pueden considerarse estancadas y,en consecuencia, reintentarse.

Período

resourceRole El rol de IAM que utiliza AWS Data Pipelinepara crear el clúster de Amazon EMR. El rolpredeterminado es DataPipelineDefaultRole.

Cadena

Versión de API 2012-10-29256

Page 264: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos opcionales Descripción Tipo de slot

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

role El rol de IAM que se pasa a Amazon EMR paracrear nodos de EC2.

Cadena

runsOn Este campo no está permitido en este objeto. Objeto de referencia,por ejemplo,"runsOn":{"ref":"myResourceId"}

serviceAccessSecurityGroupIdEl identificador del grupo de seguridad de acceso alos servicios del clúster de Amazon EMR.

Cadena. Sigue elformato sg-01XXXX6a,por ejemplo,sg-1234abcd.

scheduleType El tipo de programa le permite especificar si losobjetos de la definición de la canalización debenprogramarse al principio o al final del intervalo. Losvalores son: cron, ondemand y timeseries.La programación timeseries significa que lasinstancias se programan al final de cada intervalo.La programación cron significa que las instanciasse programan al principio de cada intervalo. Unprograma ondemand le permite ejecutar unacanalización una vez por activación. No tiene queclonar o recrear la canalización para ejecutarlade nuevo. Si usa un programa ondemand, debeespecificarse en el objeto predeterminado ydebe ser el único scheduleType especificadopara los objetos de la canalización. Para usarcanalizaciones ondemand, solo tiene que llamara la operación ActivatePipeline para cadaejecución posterior.

Enumeración

subnetId El identificador de la subred en la que se lanza elclúster de Amazon EMR.

Cadena

supportedProducts Un parámetro que instala software de tercerosen un clúster de Amazon EMR, por ejemplo, unadistribución de terceros de Hadoop.

Cadena

taskInstanceBidPrice El precio de spot máximo que está dispuesto apagar para instancias EC2. Un valor decimal entre0 y 20,00, exclusivo. Se especifica en USD. Si seespecifica un precio de puja, Amazon EMR utilizainstancias de spot para el grupo de instancias.

Cadena

taskInstanceCount El número de nodos de tarea que se van a utilizarpara el clúster de Amazon EMR.

Entero

taskInstanceType El tipo de instancia Amazon EC2 que se va autilizar para los nodos de tarea.

Cadena

Versión de API 2012-10-29257

Page 265: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos opcionales Descripción Tipo de slot

taskGroupConfiguration La configuración del grupo de instancias de tareasdel clúster de Amazon EMR. Este parámetro seaplica solamente a la versión 4.0 y posteriores deAmazon EMR.

Objeto de referencia,por ejemplo,“configuration”:{“ref”:“myEmrConfigurationId”}

taskEbsConfiguration La configuración de los volúmenes de AmazonEBS que se asociarán a cada uno de los nodos detarea del grupo de tareas en el clúster de AmazonEMR. Para obtener más información, consulteTipos de instancias que admiten la optimizaciónpara EBS en la Guía del usuario de Amazon EC2para instancias de Linux.

Objeto de referencia,por ejemplo,“taskEbsConfiguration”:{“ref”:“myEbsConfiguration”}

terminateAfter Termina el recurso una vez transcurridas estashoras.

Entero

VolumeSpecification Las especificaciones de volumen de Amazon EBS,por ejemplo, el tipo de volumen, las IOPS y eltamaño en gigabytes (GiB) que se solicitará para elvolumen de Amazon EBS asociado a una instanciade Amazon EC2 en el clúster de Amazon EMR. Elnodo puede ser un nodo principal, maestro o detarea.

El VolumeSpecification incluye:

• iops() Entero. El número de operaciones de E/S por segundo (IOPS) que admite el volumen deAmazon EBS, por ejemplo, 1000. Para obtenermás información, consulte Características de E/Sde EBS en la Guía del usuario de Amazon EC2para instancias de Linux.

• sizeinGB(). Entero. El tamaño del volumen deAmazon EBS en gigabytes (GiB), por ejemplo500. Para obtener más información sobre lascombinaciones válidas de tipos de volumeny tamaños de disco duro, consulte Tipos devolumen de EBS en la Guía del usuario deAmazon EC2 para instancias de Linux.

• volumetType. Cadena. El tipo de volumen deAmazon EBS, por ejemplo, gp2. Entre los tiposde volumen admitidos se incluyen el estándar,gp2, io1, st1, sc1 y otros. Para obtener másinformación, consulte Tipos de volumen de EBSen la Guía del usuario de Amazon EC2 parainstancias de Linux.

Objeto de referencia,por ejemplo,“VolumeSpecification”:{“ref”:“myVolumeSpecification”}

useOnDemandOnLastAttemptEn el último intento de solicitar un recurso, hagauna solicitud de instancias bajo demanda en lugarde instancias de spot. De este modo, se garantizaque si todos los intentos anteriores han fallado, elúltimo intento no se verá interrumpido.

Booleano

workerGroup Campo no permitido en este objeto. Cadena

Versión de API 2012-10-29258

Page 266: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrCluster

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencias en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Los registros de pasos están disponiblesúnicamente sobre intentos de actividad de AmazonEMR.

Cadena

errorId El ID de error si este objeto ha fallado. Cadena

errorMessage El mensaje de error si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

@failureReason El motivo del error del recurso. Cadena

@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime

hadoopJobLog Los registros de trabajo de Hadoop estándisponibles sobre intentos de actividades deAmazon EMR.

Cadena

@healthStatus El estado de salud del objeto que refleja el éxitoo el fracaso de la última instancia de objeto quealcanzó un estado terminado.

Cadena

@healthStatusFromInstanceIdID del último objeto de instancia que alcanzó unestado terminado.

Cadena

@healthStatusUpdatedTimeHora a la que el estado de salud se actualizó laúltima vez.

DateTime

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

@lastDeactivatedTime La hora a la que este objeto se desactivó la últimavez.

DateTime

@latestCompletedRunTimeHora de la última ejecución para la que secompletó la ejecución.

DateTime

Versión de API 2012-10-29259

Page 267: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHttpProxy

Campos de tiempo deejecución

Descripción Tipo de slot

@latestRunTime Hora de la última ejecución para la que seprogramó la ejecución.

DateTime

@nextRunTime Hora de ejecución que se va a programar acontinuación.

DateTime

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias para laque este objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere El lugar de un objeto en el ciclo de vida. Losobjetos de componente dan lugar a objetos deinstancia, que ejecutan objetos de intento.

Cadena

Véase también• EmrActivity (p. 180)

HttpProxyHttpProxy le permite configurar su propio proxy y facilitar a Task Runner el acceso al servicio AWS DataPipeline a través de él. No es necesario configurar una Task Runner en ejecución con esta información.

Ejemplo de HttpProxy en TaskRunnerEn la siguiente definición de canalización se muestra un objeto HttpProxy:

{ "objects": [ { "schedule": { "ref": "Once"

Versión de API 2012-10-29260

Page 268: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresHttpProxy

}, "pipelineLogUri": "s3://myDPLogUri/path", "name": "Default", "id": "Default" }, { "name": "test_proxy", "hostname": "hostname", "port": "port", "username": "username", "*password": "password", "windowsDomain": "windowsDomain", "type": "HttpProxy", "id": "test_proxy", }, { "name": "ShellCommand", "id": "ShellCommand", "runsOn": { "ref": "Resource" }, "type": "ShellCommandActivity", "command": "echo 'hello world' " }, { "period": "1 day", "startDateTime": "2013-03-09T00:00:00", "name": "Once", "id": "Once", "endDateTime": "2013-03-10T00:00:00", "type": "Schedule" }, { "role": "dataPipelineRole", "httpProxy": { "ref": "test_proxy" }, "actionOnResourceFailure": "retrynone", "maximumRetries": "0", "type": "Ec2Resource", "terminateAfter": "10 minutes", "resourceRole": "resourceRole", "name": "Resource", "actionOnTaskFailure": "terminate", "securityGroups": "securityGroups", "keyPair": "keyPair", "id": "Resource", "region": "us-east-1" } ], "parameters": []}

Sintaxis

Campos obligatorios Descripción Tipo de slot

hostname El host proxy que usarán los clientes paraconectarse a los servicios de AWS.

Cadena

puerto El puerto del host proxy que usarán los clientespara conectarse a los servicios de AWS.

Cadena

Versión de API 2012-10-29261

Page 269: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCondiciones previas

Campos opcionales Descripción Tipo de slot

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

*password Contraseña de proxy. Cadena

s3NoProxy Deshabilite el proxy HTTP cuando se conecte aAmazon S3

Booleano

nombre de usuario Nombre de usuario de proxy. Cadena

windowsDomain windowsDomain Cadena

windowsWorkgroup El nombre de grupo de trabajo de Windows para elproxy NTLM.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Condiciones previasEstos son los objetos de condición previa de AWS Data Pipeline:

Objetos• DynamoDBDataExists (p. 263)• DynamoDBTableExists (p. 265)• Exists (p. 268)• S3KeyExists (p. 271)• S3PrefixNotEmpty (p. 274)• ShellCommandPrecondition (p. 277)

Versión de API 2012-10-29262

Page 270: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataExists

DynamoDBDataExistsUna condición previa para comprobar que los datos existen en una tabla de DynamoDB.

Sintaxis

Campos obligatorios Descripción Tipo de slot

role Especifica el rol que se va a usar para ejecutar lacondición previa.

Cadena

tableName Tabla de DynamoDB que se comprobará. Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

preconditionTimeout Período desde el comienzo después del cual lacondición previa se marca como fallida si aún nose ha satisfecho.

Período

Versión de API 2012-10-29263

Page 271: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataExists

Campos opcionales Descripción Tipo de slot

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

currentRetryCount Número de veces que se probó la condición previaen este intento.

Cadena

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

lastRetryTime Última vez que se probó la condición previa eneste intento.

Cadena

Versión de API 2012-10-29264

Page 272: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBTableExists

Campos de tiempo deejecución

Descripción Tipo de slot

nodo El nodo para el que se está realizando estacondición previa.

Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

DynamoDBTableExistsUna condición previa para comprobar que la tabla de DynamoDB existe.

Sintaxis

Campos obligatorios Descripción Tipo de slot

role Especifica el rol que se va a usar para ejecutar lacondición previa.

Cadena

tableName Tabla de DynamoDB que se comprobará. Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

Versión de API 2012-10-29265

Page 273: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBTableExists

Campos opcionales Descripción Tipo de slot

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

preconditionTimeout Período desde el comienzo después del cual lacondición previa se marca como fallida si aún nose ha satisfecho.

Período

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,

Versión de API 2012-10-29266

Page 274: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBTableExists

Campos de tiempo deejecución

Descripción Tipo de slot

"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

currentRetryCount Número de veces que se probó la condición previaen este intento.

Cadena

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

lastRetryTime Última vez que se probó la condición previa eneste intento.

Cadena

nodo El nodo para el que se está realizando estacondición previa.

Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Versión de API 2012-10-29267

Page 275: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresExists

Campos de tiempo deejecución

Descripción Tipo de slot

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

ExistsComprueba si existe un objeto del nodo de datos.

Note

Recomendamos que use condiciones previas administradas por el sistema en su lugar. Paraobtener más información, consulte Condiciones previas (p. 11).

EjemploA continuación se muestra un ejemplo de este tipo de objeto. El objeto InputData hace referencia a esteobjeto, Ready, además de a otro objeto que se definiría en el mismo archivo de definición de canalización.CopyPeriod es un objeto Schedule.

{ "id" : "InputData", "type" : "S3DataNode", "schedule" : { "ref" : "CopyPeriod" }, "filePath" : "s3://example-bucket/InputData/#{@scheduledStartTime.format('YYYY-MM-dd-hh:mm')}.csv", "precondition" : { "ref" : "Ready" }},{ "id" : "Ready", "type" : "Exists"}

Sintaxis

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

Versión de API 2012-10-29268

Page 276: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresExists

Campos opcionales Descripción Tipo de slot

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

failureAndRerunMode failureAndRerunMode. Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

preconditionTimeout Período desde el comienzo después del cual lacondición previa se marca como fallida si aún nose ha satisfecho.

Período

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

Versión de API 2012-10-29269

Page 277: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresExists

Campos de tiempo deejecución

Descripción Tipo de slot

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

nodo nodo. Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

Versión de API 2012-10-29270

Page 278: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3KeyExists

Campos del sistema Descripción Tipo de slot

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandPrecondition (p. 277)

S3KeyExistsComprueba si existe una clave en un nodo de datos de Amazon S3.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. La condición previa se activará cuando laclave, s3://mybucket/mykey, a la que hace referencia el parámetro s3Key, existe.

{"id" : "InputReady","type" : "S3KeyExists","role" : "test-role","s3Key" : "s3://mybucket/mykey"}

También puede utilizar S3KeyExists como una condición previa en la segunda canalización que espera aque finalice la primera canalización. Para ello:

1. Escriba un archivo en Amazon S3 tras la finalización de la primera canalización.2. Cree una condición previa S3KeyExists en la segunda canalización.

Sintaxis

Campos obligatorios Descripción Tipo de slot

role Especifica el rol que se va a usar para ejecutar lacondición previa.

Cadena

s3Key La clave de Amazon S3. Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera antes de intentar completar eltrabajo remoto una vez más. Si se establece, se

Período

Versión de API 2012-10-29271

Page 279: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3KeyExists

Campos opcionales Descripción Tipo de slotintenta de nuevo una actividad remota que no secomplete dentro del tiempo de inicio establecido.

failureAndRerunMode failureAndRerunMode. Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maximumRetries Número máximo de intentos que se iniciarán encaso de error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

preconditionTimeout preconditionTimeout. Período

reportProgressTimeout Tiempo de espera para llamadas sucesivasdel trabajo remoto a reportProgress. Si seestablece, las actividades remotas que no informende su progreso durante el período especificadopueden considerarse estancadas y reintentarse.

Período

retryDelay Duración del tiempo de espera entre dos reintentosconsecutivos.

Período

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

Versión de API 2012-10-29272

Page 280: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3KeyExists

Campos de tiempo deejecución

Descripción Tipo de slot

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

currentRetryCount Número de veces que se probó la condición previaen este intento.

Cadena

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

lastRetryTime Última vez que se probó la condición previa eneste intento.

Cadena

nodo El nodo para el que se está realizando estacondición previa.

Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

Versión de API 2012-10-29273

Page 281: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3PrefixNotEmpty

Campos del sistema Descripción Tipo de slot

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandPrecondition (p. 277)

S3PrefixNotEmptyUna condición previa para comprobar que los objetos de Amazon S3 con el prefijo especificado(representado como un URI) están presentes.

EjemploA continuación se muestra un ejemplo de este tipo de objeto mediante campos obligatorios, opcionales yde expresión.

{ "id" : "InputReady", "type" : "S3PrefixNotEmpty", "role" : "test-role", "s3Prefix" : "#{node.filePath}"}

Sintaxis

Campos obligatorios Descripción Tipo de slot

role Especifica el rol que se va a usar para ejecutar lacondición previa.

Cadena

s3Prefix El prefijo de Amazon S3 para comprobar laexistencia de objetos.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

Versión de API 2012-10-29274

Page 282: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3PrefixNotEmpty

Campos opcionales Descripción Tipo de slot

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

preconditionTimeout Período desde el comienzo después del cual lacondición previa se marca como fallida si aún nose ha satisfecho.

Período

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

Versión de API 2012-10-29275

Page 283: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresS3PrefixNotEmpty

Campos de tiempo deejecución

Descripción Tipo de slot

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

currentRetryCount Número de veces que se probó la condición previaen este intento.

Cadena

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

lastRetryTime Última vez que se probó la condición previa eneste intento.

Cadena

nodo nodo. Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Versión de API 2012-10-29276

Page 284: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandPrecondition

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandPrecondition (p. 277)

ShellCommandPreconditionUn comando de shell de Unix/Linux que se puede ejecutar como condición previa.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "VerifyDataReadiness", "type" : "ShellCommandPrecondition", "command" : "perl check-data-ready.pl"}

Sintaxis

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

command El comando que se va a ejecutar. Este valor ycualquier parámetro asociado debe funcionar enel entorno desde el que se está ejecutando TaskRunner.

Cadena

scriptUri Una ruta del URI de Amazon S3 para que sedescargue un archivo y se ejecute como comandode shell. Solo debe estar presente un campo decomando o un scriptUri. scriptUri no puede utilizarparámetros; utilice un comando en su lugar.

Cadena

Campos opcionales Descripción Tipo de slot

attemptStatus Estado más reciente notificado por la actividadremota.

Cadena

Versión de API 2012-10-29277

Page 285: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandPrecondition

Campos opcionales Descripción Tipo de slot

attemptTimeout Tiempo de espera para que se complete el trabajoremoto. Si se establece, se puede reintentar unaactividad remota que no se complete dentro deltiempo de inicio establecido.

Período

failureAndRerunMode Describe el comportamiento del nodo delconsumidor cuando las dependencias producen unerror o se vuelven a ejecutar.

Enumeración

lateAfterTimeout Tiempo transcurrido desde que se inició lacanalización durante el cual debe iniciarseel objeto. Solo se activa cuando el tipo deprogramación no se establece en ondemand.

Período

maximumRetries Número máximo de reintentos cuando se produceun error.

Entero

onFail Acción que se debe ejecutar cuando el objetoactual produzca un error.

Objeto de referencia,por ejemplo, "onFail":{"ref":"myActionId"}

onLateAction Acciones que deben iniciarse si un objeto todavíano se ha programado o no se ha completado.

Objeto de referencia,por ejemplo,"onLateAction":{"ref":"myActionId"}

onSuccess Acción que se debe ejecutar cuando el objetoactual se complete correctamente.

Objeto de referencia,por ejemplo,"onSuccess":{"ref":"myActionId"}

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

preconditionTimeout Período desde el comienzo después del cual lacondición previa se marca como fallida si aún nose ha satisfecho.

Período

reportProgressTimeout Tiempo de espera para llamadas sucesivas deltrabajo remoto a reportProgress. Si se establece,las actividades remotas que no informen de suprogreso durante el período especificado puedenconsiderarse estancadas y, en consecuencia,reintentarse.

Período

retryDelay Duración del tiempo de espera entre dosreintentos.

Período

scriptArgument Argumento que se transfiere al script de shell. Cadena

Versión de API 2012-10-29278

Page 286: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresShellCommandPrecondition

Campos opcionales Descripción Tipo de slot

stderr La ruta Amazon S3 que recibe los mensajes deerror del sistema redirigidos desde el comando.Si utiliza el campo runsOn, debe ser una ruta deAmazon S3 debido a la naturaleza transitoria delrecurso que ejecuta la actividad. No obstante, siespecifica el campo workerGroup, se permite unaruta de archivo local.

Cadena

stdout La ruta de Amazon S3 que recibe la salidaredirigida desde el comando. Si utiliza el camporunsOn, debe ser una ruta de Amazon S3 debidoa la naturaleza transitoria del recurso que ejecutala actividad. No obstante, si especifica el campoworkerGroup, se permite una ruta de archivolocal.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@activeInstances Lista de los objetos de instancias activasprogramados actualmente.

Objeto de referencia,por ejemplo,"activeInstances":{"ref":"myRunnableObjectId"}

@actualEndTime La hora a la que finalizó la ejecución de esteobjeto.

DateTime

@actualStartTime La hora a la que comenzó la ejecución de esteobjeto.

DateTime

cancellationReason El valor de cancellationReason si este objeto se hacancelado.

Cadena

@cascadeFailedOn Descripción de la cadena de dependencia en laque ha fallado el objeto.

Objeto de referencia,por ejemplo,"cascadeFailedOn":{"ref":"myRunnableObjectId"}

emrStepLog Registros de pasos de EMR disponiblesúnicamente sobre intentos de actividad de EMR.

Cadena

errorId El valor de errorId si este objeto ha fallado. Cadena

errorMessage El valor de errorMessage si este objeto ha fallado. Cadena

errorStackTrace El seguimiento de la pila de error si este objeto hafallado.

Cadena

hadoopJobLog Los registros de trabajo de Hadoop disponiblessobre intentos de actividades basadas en EMR.

Cadena

hostname El nombre de host del cliente que recogió el intentode tarea.

Cadena

Versión de API 2012-10-29279

Page 287: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresBases de datos

Campos de tiempo deejecución

Descripción Tipo de slot

nodo El nodo para el que se está realizando estacondición previa.

Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

reportProgressTime La hora más reciente a la que la actividad remotanotificó algún progreso.

DateTime

@scheduledEndTime Hora de finalización programada para el objeto. DateTime

@scheduledStartTime Hora de comienzo programada para el objeto. DateTime

@status El estado de este objeto. Cadena

@version Versión de la canalización con la que se creó elobjeto.

Cadena

@waitingOn Descripción de la lista de dependencias de la queeste objeto está a la espera.

Objeto de referencia,por ejemplo,"waitingOn":{"ref":"myRunnableObjectId"}

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• ShellCommandActivity (p. 224)• Exists (p. 268)

Bases de datosEstos son los objetos de la base de datos de AWS Data Pipeline:

Objetos• JdbcDatabase (p. 281)• RdsDatabase (p. 282)• RedshiftDatabase (p. 284)

Versión de API 2012-10-29280

Page 288: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresJdbcDatabase

JdbcDatabaseDefine una base de datos JDBC.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyJdbcDatabase", "type" : "JdbcDatabase", "connectionString" : "jdbc:redshift://hostname:portnumber/dbname", "jdbcDriverClass" : "com.amazon.redshift.jdbc41.Driver", "jdbcDriverJarUri" : "s3://redshift-downloads/drivers/RedshiftJDBC41-1.1.6.1006.jar", "username" : "user_name", "*password" : "my_password"}

Sintaxis

Campos obligatorios Descripción Tipo de slot

connectionString La cadena de conexión JDBC para acceder a labase de datos.

Cadena

jdbcDriverClass La clase de controlador que se va a cargar antesde establecer la conexión JDBC.

Cadena

*password La contraseña que se debe suministrar. Cadena

nombre de usuario nombre de usuario. Cadena

Campos opcionales Descripción Tipo de slot

databaseName El nombre de la base de datos lógica a la queconectarse.

Cadena

jdbcDriverJarUri La ubicación en Amazon S3 del archivo JAR delcontrolador JDBC que se utiliza para conectarsea la base de datos. AWS Data Pipeline debe tenerpermiso para leer este archivo JAR.

Cadena

jdbcProperties Pares de la forma A=B que se configurarán comopropiedades en conexiones JDBC para esta basede datos.

Cadena

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Versión de API 2012-10-29281

Page 289: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRdsDatabase

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

RdsDatabaseDefine una base de datos Amazon RDS.

Note

RdsDatabase no admite Aurora. Utilice the section called “JdbcDatabase” (p. 281) para Auroraen su lugar.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyRdsDatabase", "type" : "RdsDatabase", "region" : "us-east-1", "username" : "user_name", "*password" : "my_password", "rdsInstanceId" : "my_db_instance_identifier"}

Para el motor de Oracle, se requiere el campo jdbcDriverJarUri y puede especificar el siguientecontrolador: http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html. Para el motor de SQL Server, se requiere el campojdbcDriverJarUri y puede especificar el siguiente controlador: https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774. Para los motores de MySQL yPostgreSQL, el campo jdbcDriverJarUri es opcional.

Sintaxis

Campos obligatorios Descripción Tipo de slot

*password La contraseña que se debe suministrar. Cadena

Versión de API 2012-10-29282

Page 290: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRdsDatabase

Campos obligatorios Descripción Tipo de slot

rdsInstanceId El identificador de la instancia de base de datos. Cadena

nombre de usuario nombre de usuario. Cadena

Campos opcionales Descripción Tipo de slot

databaseName El nombre de la base de datos lógica a la queconectarse.

Cadena

jdbcDriverJarUri La ubicación en Amazon S3 del archivo JAR delcontrolador JDBC que se utiliza para conectarsea la base de datos. AWS Data Pipeline debetener permiso para leer este archivo JAR. En elcaso de los motores MySQL y PostgreSQL, seutiliza el controlador predeterminado si no seespecifica este campo, pero puede anular el valorpredeterminado utilizando este campo. Para losmotores de Oracle y SQL Server, este campo esobligatorio.

Cadena

jdbcProperties Pares de la forma A=B que se configurarán comopropiedades en conexiones JDBC para esta basede datos.

Cadena

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

region El código de la región en la que se encuentra labase de datos. Por ejemplo, us-east-1.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Versión de API 2012-10-29283

Page 291: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRedshiftDatabase

RedshiftDatabaseDefine una base de datos Amazon Redshift. RedshiftDatabase representa las propiedades de la basede datos que utiliza la canalización.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyRedshiftDatabase", "type" : "RedshiftDatabase", "clusterId" : "myRedshiftClusterId", "username" : "user_name", "*password" : "my_password", "databaseName" : "database_name"}

De forma predeterminada, el objeto usa el controlador Postgres, que requiere el campo clusterId.Para usar el controlador Amazon Redshift, especifique la cadena de conexión de la base de datosAmazon Redshift desde la consola de Amazon Redshift (comienza por "jdbc:redshift:") en el campoconnectionString en su lugar.

Sintaxis

Campos obligatorios Descripción Tipo de slot

*password La contraseña que se debe suministrar. Cadena

nombre de usuario nombre de usuario. Cadena

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

clusterId El identificador que proporcionó el usuariocuando se creó el clúster de Amazon Redshift.Por ejemplo, si el punto de enlace del clústerde Amazon Redshift es mydb.example.us-east-1.redshift.amazonaws.com, el identificadorcorrecto es mydb. En la consola de AmazonRedshift, puede obtener este valor a partir delnombre o el identificador del clúster.

Cadena

connectionString El punto de enlace de JDBC para conectarse a unainstancia de Amazon Redshift que es propiedadde una cuenta diferente a la de la canalización.No puede especificar connectionString niclusterId.

Cadena

Versión de API 2012-10-29284

Page 292: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFormatos de los datos

Campos opcionales Descripción Tipo de slot

databaseName El nombre de la base de datos lógica a la queconectarse.

Cadena

jdbcProperties Pares con el formato A=B que se configuran comopropiedades en conexiones JDBC para esta basede datos.

Cadena

parent Elemento principal del objeto actual del que seheredan los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

region El código de la región en la que se encuentra labase de datos. Por ejemplo, us-east-1.

Enumeración

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Formatos de los datosEstos son los objetos de formato de los datos de AWS Data Pipeline:

Objetos• Formato de los datos CSV (p. 285)• Formato de los datos personalizado (p. 287)• DynamoDBDataFormat (p. 288)• DynamoDBExportDataFormat (p. 290)• RegEx Data Format (p. 292)• Formato de datos TSV (p. 293)

Formato de los datos CSVUn formato de datos delimitado por comas donde el separador de columnas es una coma y el separadorde registros es un carácter de nueva línea.

Versión de API 2012-10-29285

Page 293: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFormato de los datos CSV

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyOutputDataType", "type" : "CSV", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ]}

Sintaxis

Campos opcionales Descripción Tipo de slot

column Nombre de la columna con el tipo de datosespecificado por cada campo para los datosdescritos por este nodo de datos. Ejemplo: nombrede host STRING. Para varios valores, use nombresde columna y tipos de datos separados por unespacio.

Cadena

escapeChar Un carácter, por ejemplo "\", que indica alanalizador que omita el carácter siguiente.

Cadena

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Versión de API 2012-10-29286

Page 294: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFormato de los datos personalizado

Formato de los datos personalizadoUn formato de datos personalizado definido por una combinación de un determinado separador decolumnas, separador de registros y carácter de escape.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyOutputDataType", "type" : "Custom", "columnSeparator" : ",", "recordSeparator" : "\n", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ]}

Sintaxis

Campos obligatorios Descripción Tipo de slot

columnSeparator Un carácter que indica el final de una columna enun archivo de datos.

Cadena

Campos opcionales Descripción Tipo de slot

column Nombre de la columna con el tipo de datosespecificado por cada campo para los datosdescritos por este nodo de datos. Ejemplo: nombrede host STRING. Para varios valores, use nombresde columna y tipos de datos separados por unespacio.

Cadena

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

recordSeparator Un carácter que indica el final de una fila enun archivo de datos; por ejemplo, "\n". Solo seadmiten caracteres únicos.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Versión de API 2012-10-29287

Page 295: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataFormat

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

DynamoDBDataFormatAplica un esquema a una tabla de DynamoDB para hacerla accesible mediante una consulta deHive. DynamoDBDataFormat se utiliza con un objeto HiveActivity y una entrada y salidaDynamoDBDataNode. DynamoDBDataFormat requiere que se especifiquen todas las columnas en laconsulta de Hive. A fin de obtener una mayor flexibilidad para especificar determinadas columnas en unaconsulta de Hive o soporte de Amazon S3, consulte DynamoDBExportDataFormat (p. 290).

Note

Los tipos booleanos de DynamoDB no están asignados a los tipos booleanos de Hive. Sinembargo, es posible asignar valores enteros de DynamoDB de 0 o 1 a tipos booleanos de Hive.

EjemploEn el siguiente ejemplo se muestra cómo usar DynamoDBDataFormat para asignar un esquema a unaentrada DynamoDBDataNode, que permite a un objeto HiveActivity obtener acceso a los datos porcolumnas con nombres y copiar los datos a una salida DynamoDBDataNode.

{ "objects": [ { "id" : "Exists.1", "name" : "Exists.1", "type" : "Exists" }, { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBDataFormat", "column" : [ "hash STRING", "range STRING" ] }, { "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tableName" : "$INPUT_TABLE_NAME", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "$OUTPUT_TABLE_NAME",

Versión de API 2012-10-29288

Page 296: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBDataFormat

"schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.small", "keyPair" : "$KEYPAIR" }, { "id" : "HiveActivity.1", "name" : "HiveActivity.1", "type" : "HiveActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" : { "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "hiveScript" : "insert overwrite table ${output1} select * from ${input1} ;" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 day", "startDateTime" : "2012-05-04T00:00:00", "endDateTime" : "2012-05-05T00:00:00" } ]}

Sintaxis

Campos opcionales Descripción Tipo de slot

column El nombre de la columna con el tipo de datosespecificado por cada campo para los datosdescritos por este nodo de datos. Por ejemplo,hostname STRING. Para varios valores, usenombres de columna y tipos de datos separadospor un espacio.

Cadena

parent El elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version La versión de canalización utilizada para crear elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error El error al describir el objeto mal estructurado. Cadena

Versión de API 2012-10-29289

Page 297: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBExportDataFormat

Campos del sistema Descripción Tipo de slot

@pipelineId El ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

DynamoDBExportDataFormatAplica un esquema a una tabla de DynamoDB para hacerla accesible mediante una consulta de Hive.Utilice DynamoDBExportDataFormat con un objeto HiveCopyActivity y una entrada y salidaDynamoDBDataNode o S3DataNode. DynamoDBExportDataFormat tiene los beneficios siguientes:

• Proporciona tanto soporte de DynamoDB como soporte de Amazon S3;• Permite filtrar datos por determinadas columnas en su consulta de Hive• Exporta todos los atributos desde DynamoDB, incluso si se tiene un esquema disperso

Note

Los tipos booleanos de DynamoDB no están asignados a los tipos booleanos de Hive. Sinembargo, es posible asignar valores enteros de DynamoDB de 0 o 1 a tipos booleanos de Hive.

EjemploEn el siguiente ejemplo se muestra cómo usar HiveCopyActivity y DynamoDBExportDataFormatpara copiar datos de un nodo DynamoDBDataNode a otro, mientras se filtra en función de una marcatemporal.

{ "objects": [ { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timeStamp BIGINT" }, { "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" }, { "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tableName" : "item_mapped_table_restore_temp", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "restore_table",

Versión de API 2012-10-29290

Page 298: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDynamoDBExportDataFormat

"region" : "us_west_1", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.2" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.xlarge", "coreInstanceCount" : "4" }, { "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" : { "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startDateTime" : "2013-06-04T00:00:00", "endDateTime" : "2013-06-04T01:00:00" } ]}

Sintaxis

Campos opcionales Descripción Tipo de slot

column Nombre de la columna con el tipo de datosespecificado por cada campo para los datosdescritos por este nodo de datos. Ej.: hostnameSTRING

Cadena

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

Versión de API 2012-10-29291

Page 299: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRegEx Data Format

Campos del sistema Descripción Tipo de slot

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

RegEx Data FormatUn formato de datos personalizado definido por una expresión regular.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyInputDataType", "type" : "RegEx", "inputRegEx" : "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\"))?", "outputFormat" : "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s", "column" : [ "host STRING", "identity STRING", "user STRING", "time STRING", "request STRING", "status STRING", "size STRING", "referer STRING", "agent STRING" ]}

Sintaxis

Campos opcionales Descripción Tipo de slot

column Nombre de la columna con el tipo de datosespecificado por cada campo para los datosdescritos por este nodo de datos. Ejemplo: nombrede host STRING. Para varios valores, use nombresde columna y tipos de datos separados por unespacio.

Cadena

inputRegEx La expresión regular para analizar un archivo deentrada de S3. inputRegEx proporciona una formade recuperar columnas de datos relativamente noestructurados en un archivo.

Cadena

outputFormat Los campos de columna recuperados porinputRegEx, pero a los que se hace referencia

Cadena

Versión de API 2012-10-29292

Page 300: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFormato de datos TSV

Campos opcionales Descripción Tipo de slotcomo %1$s %2$s mediante sintaxis delformateador de Java.

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Formato de datos TSVUn formato de datos delimitado por comas donde el separador de columnas es un tabulador y el separadorde registros es un carácter de nueva línea.

EjemploA continuación se muestra un ejemplo de este tipo de objeto.

{ "id" : "MyOutputDataType", "type" : "TSV", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ]}

Sintaxis

Campos opcionales Descripción Tipo de slot

column Nombre de columna y tipo de dato de los datosque se describen en este nodo de datos. Por

Cadena

Versión de API 2012-10-29293

Page 301: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresActions

Campos opcionales Descripción Tipo de slotejemplo, "Name STRING" indica una columnadenominada Name con los campos del tipo dedato STRING. Separe varios pares de nombre decolumna y tipo de dato con comas (tal como semuestra en el ejemplo).

columnSeparator El carácter que separa los campos de una columnade los campos de la siguiente columna. El valorpredeterminado es '\t'.

Cadena

escapeChar Un carácter, por ejemplo "\", que indica alanalizador que omita el carácter siguiente.

Cadena

parent Elemento principal del objeto actual del que seheredan los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

recordSeparator El carácter que separa registros. El valorpredeterminado es '\n'.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia, que ejecutan objetos deintento.

Cadena

ActionsEstos son los objetos de acción de AWS Data Pipeline:

Objetos• SnsAlarm (p. 294)• Finalizar (p. 296)

SnsAlarmEnvía un mensaje de notificación de Amazon SNS cuando una actividad falla o finaliza correctamente.

Versión de API 2012-10-29294

Page 302: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSnsAlarm

EjemploA continuación se muestra un ejemplo de este tipo de objeto. Los valores de node.input ynode.output proceden de la actividad o el nodo de datos que hace referencia a este objeto en su campoonSuccess.

{ "id" : "SuccessNotify", "name" : "SuccessNotify", "type" : "SnsAlarm", "topicArn" : "arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic", "subject" : "COPY SUCCESS: #{node.@scheduledStartTime}", "message" : "Files were copied from #{node.input} to #{node.output}."}

Sintaxis

Campos obligatorios Descripción Tipo de slot

message El texto de la notificación de Amazon SNS. Cadena

role El rol de IAM que se debe utilizar para crear laalarma de Amazon SNS.

Cadena

subject La línea de asunto del mensaje de notificación deAmazon SNS.

Cadena

topicArn El ARN del tema de Amazon SNS de destino parael mensaje.

Cadena

Campos opcionales Descripción Tipo de slot

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

nodo nodo. Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

Versión de API 2012-10-29295

Page 303: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresFinalizar

Campos del sistema Descripción Tipo de slot

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

FinalizarUna acción para desencadenar la cancelación de una actividad, recurso o nodo de datos pendienteso inacabados. AWS Data Pipeline intenta poner la actividad, el recurso o el nodo de datos en estadoCANCELLED si no comienza por el valor lateAfterTimeout.

No puede finalizar acciones que incluyan recursos onSuccess, OnFail u onLateAction.

EjemploA continuación se muestra un ejemplo de este tipo de objeto. En este ejemplo, el campo onLateActionde MyActivity contiene una referencia a la acción DefaultAction1. Al proporcionar una acción paraonLateAction, también debe facilitar un valor lateAfterTimeout para indicar el período de tiempodesde el inicio programado de la canalización tras el cual la actividad se considera tardía.

{ "name" : "MyActivity", "id" : "DefaultActivity1", "schedule" : { "ref" : "MySchedule" }, "runsOn" : { "ref" : "MyEmrCluster" }, "lateAfterTimeout" : "1 Hours", "type" : "EmrActivity", "onLateAction" : { "ref" : "DefaultAction1" }, "step" : [ "s3://myBucket/myPath/myStep.jar,firstArg,secondArg", "s3://myBucket/myPath/myOtherStep.jar,anotherArg" ]},{ "name" : "TerminateTasks", "id" : "DefaultAction1", "type" : "Terminate"}

Sintaxis

Campos opcionales Descripción Tipo de slot

parent Elemento principal del objeto actual del que seheredan los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Versión de API 2012-10-29296

Page 304: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresProgramación

Campos de tiempo deejecución

Descripción Tipo de slot

nodo nodo. Objeto de referencia,por ejemplo, "node":{"ref":"myRunnableObjectId"}

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia, que ejecutan objetos deintento.

Cadena

ProgramaciónDefine los tiempos de un evento programado, como cuando se ejecuta una actividad.

Note

Si la hora de inicio de una programación pertenece al pasado, AWS Data Pipeline repone lacanalización y comienza a programar ejecuciones que empiezan de forma inmediata a la horade inicio especificada. Para pruebas o desarrollo, use un intervalo relativamente corto. De locontrario, AWS Data Pipeline intenta poner en cola y programar todas las ejecuciones de lacanalización para ese intervalo. AWS Data Pipeline intenta evitar reposiciones accidentales sila antigüedad del componente de canalización scheduledStartTime es superior a un díamediante el bloqueo de la activación de la canalización.

EjemplosA continuación se muestra un ejemplo de este tipo de objeto. Define un programa de cada horacomenzando a las 00:00:00 horas el 01-09-2012 y finalizando a las 00:00:00 horas el 01-10-2012. Elprimer período finaliza a las 01:00:00 el 01-09-2012.

{ "id" : "Hourly", "type" : "Schedule", "period" : "1 hours", "startDateTime" : "2012-09-01T00:00:00", "endDateTime" : "2012-10-01T00:00:00"}

La siguiente canalización comenzará en FIRST_ACTIVATION_DATE_TIME y se ejecutará cada hora hastalas 22:00:00 horas el 25-04-2014.

{ "id": "SchedulePeriod",

Versión de API 2012-10-29297

Page 305: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjemplos

"name": "SchedulePeriod", "startAt": "FIRST_ACTIVATION_DATE_TIME", "period": "1 hours", "type": "Schedule", "endDateTime": "2014-04-25T22:00:00" }

La siguiente canalización comenzará en FIRST_ACTIVATION_DATE_TIME, se ejecutará cada hora y secompletará tras tres coincidencias.

{ "id": "SchedulePeriod", "name": "SchedulePeriod", "startAt": "FIRST_ACTIVATION_DATE_TIME", "period": "1 hours", "type": "Schedule", "occurrences": "3" }

La siguiente canalización comenzará a las 22:00:00 el 25-04-2014, se ejecutará cada hora y finalizará trastres coincidencias.

{ "id": "SchedulePeriod", "name": "SchedulePeriod", "startDateTime": "2014-04-25T22:00:00", "period": "1 hours", "type": "Schedule", "occurrences": "3" }

Bajo demanda mediante el objeto Default

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand"}

Bajo demanda con el objeto Schedule explícito

{ "name": "Default", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduleType": "ondemand"},{ "name": "DefaultSchedule", "type": "Schedule", "id": "DefaultSchedule", "period": "ONDEMAND_PERIOD", "startAt": "ONDEMAND_ACTIVATION_TIME"},

En los siguientes ejemplos se muestra cómo un Schedule se puede heredar del objeto Default, establecerde forma explícita para ese objeto o proporcionar mediante una referencia principal:

Schedule heredado del objeto Default

Versión de API 2012-10-29298

Page 306: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjemplos

{ "objects": [ { "id": "Default", "failureAndRerunMode":"cascade", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://myLogsbucket", "scheduleType": "cron", "schedule": { "ref": "DefaultSchedule" } }, { "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startAt": "FIRST_ACTIVATION_DATE_TIME" }, { "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateAfter": "1 Hour" }, { "id": "ShellCommandActivity_HelloWorld", "runsOn": { "ref": "A_Fresh_NewEC2Instance" }, "type": "ShellCommandActivity", "command": "echo 'Hello World!'" } ]}

Schedule explícito en el objeto

{ "objects": [ { "id": "Default", "failureAndRerunMode":"cascade", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://myLogsbucket", "scheduleType": "cron" }, { "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startAt": "FIRST_ACTIVATION_DATE_TIME" }, { "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateAfter": "1 Hour" }, { "id": "ShellCommandActivity_HelloWorld", "runsOn": {

Versión de API 2012-10-29299

Page 307: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjemplos

"ref": "A_Fresh_NewEC2Instance" }, "schedule": { "ref": "DefaultSchedule" }, "type": "ShellCommandActivity", "command": "echo 'Hello World!'" } ]}

Schedule de la referencia principal

{ "objects": [ { "id": "Default", "failureAndRerunMode":"cascade", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://myLogsbucket", "scheduleType": "cron" }, { "id": "parent1", "schedule": { "ref": "DefaultSchedule" } }, { "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startAt": "FIRST_ACTIVATION_DATE_TIME" }, { "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateAfter": "1 Hour" }, { "id": "ShellCommandActivity_HelloWorld", "runsOn": { "ref": "A_Fresh_NewEC2Instance" }, "parent": { "ref": "parent1" }, "type": "ShellCommandActivity", "command": "echo 'Hello World!'" } ]}

Versión de API 2012-10-29300

Page 308: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresSintaxis

Sintaxis

Campos obligatorios Descripción Tipo de slot

Período Con qué frecuencia se debe ejecutar lacanalización. El formato es "N [minutos|horas|días|semanas|meses]", donde N es un número seguidopor uno de los especificadores de tiempo. Porejemplo, "15 minutos", ejecuta la canalización cada15 minutos. El período mínimo es de 15 minutos yel período máximo es de 3 años.

Período

Grupo obligatorio (serequiere uno de lossiguientes)

Descripción Tipo de slot

startAt La fecha y hora en la que se inician las ejecucionesprogramadas de la canalización. Un valor válidoes FIRST_ACTIVATION_DATE_TIME, quequeda obsoleto en favor de la creación de unacanalización bajo demanda.

Enumeración

startDateTime La fecha y hora en la que se inician las ejecucionesprogramadas. Debe utilizar startDateTime o startAt,pero no ambos.

DateTime

Campos opcionales Descripción Tipo de slot

endDateTime La fecha y la hora para finalizar las ejecucionesprogramadas. Deben ser una fecha y horaposteriores al valor de startDateTime o startAt. Elcomportamiento predeterminado es programarejecuciones hasta que la canalización se cierre.

DateTime

occurrences El número de veces que se ejecutará lacanalización una vez activada. No se puede utilizaroccurrences con endDateTime.

Entero

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Versión de API 2012-10-29301

Page 309: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresUtilidades

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@firstActivationTime La hora de creación del objeto. DateTime

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

UtilidadesLos siguientes objetos de utilidad configuran otros objetos de canalización:

Temas• ShellScriptConfig (p. 302)• EmrConfiguration (p. 303)• Propiedad (p. 306)

ShellScriptConfigÚselo con una actividad para ejecutar un script de shell para preActivityTaskConfig ypostActivityTaskConfig. Este objeto está disponible para HadoopActivity (p. 186), HiveActivity (p. 193),HiveCopyActivity (p. 199) y PigActivity (p. 205). Especifica un URI de S3 y una lista de argumentospara el script.

EjemploShellScriptConfig con argumentos:

{ "id" : "ShellScriptConfig_1”, "name" : “prescript”, "type" : "ShellScriptConfig", "scriptUri": “s3://my-bucket/shell-cleanup.sh”, "scriptArgument" : ["arg1","arg2"] }

SintaxisEste objeto incluye los siguientes campos.

Campos opcionales Descripción Tipo de slot

parent Elemento principal del objeto actual del que seheredan los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Versión de API 2012-10-29302

Page 310: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrConfiguration

Campos opcionales Descripción Tipo de slot

scriptArgument Una lista de argumentos que se van a usar con elscript de shell.

Cadena

scriptUri El URI del script en Amazon S3 que se debedescargar y ejecutar.

Cadena

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia, que ejecutan objetos deintento.

Cadena

EmrConfigurationEl objeto EmrConfiguration es la configuración usada para clústeres de EMR con versiones 4.0.0o superiores. Configurations (como lista) es un parámetro de la llamada a la API RunJobFlow. LaAPI de configuración para Amazon EMR toma una clasificación y propiedades. AWS Data Pipelineutiliza EmrConfiguration con los objetos Property correspondientes para configurar una aplicaciónEmrCluster (p. 242) como Hadoop, Hive, Spark o Pig en clústeres de EMR lanzados en una ejecuciónde canalización. Dado que la configuración solo se puede cambiar para los nuevos clústeres, no puedeproporcionar un objeto EmrConfiguration para los recursos existentes. Para obtener más información,consulte http://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/.

EjemploEl siguiente objeto de configuración establece las propiedades io.file.buffer.size yfs.s3.block.size en core-site.xml:

[ { "classification":"core-site", "properties": { "io.file.buffer.size": "4096", "fs.s3.block.size": "67108864" } }]

Versión de API 2012-10-29303

Page 311: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrConfiguration

La definición de objeto de canalización correspondiente usa un objeto EmrConfiguration y una lista deobjetos Property en el campo property:

{ "objects": [ { "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": { "ref": "coresite" } }, { "name": "coresite", "id": "coresite", "type": "EmrConfiguration", "classification": "core-site", "property": [{ "ref": "io-file-buffer-size" }, { "ref": "fs-s3-block-size" } ] }, { "name": "io-file-buffer-size", "id": "io-file-buffer-size", "type": "Property", "key": "io.file.buffer.size", "value": "4096" }, { "name": "fs-s3-block-size", "id": "fs-s3-block-size", "type": "Property", "key": "fs.s3.block.size", "value": "67108864" } ]}

El siguiente ejemplo es una configuración anidada usada para establecer el entorno de Hadoop con laclasificación hadoop-env:

[ { "classification": "hadoop-env", "properties": {}, "configurations": [ { "classification": "export", "properties": { "YARN_PROXYSERVER_HEAPSIZE": "2396" } } ] }]

Versión de API 2012-10-29304

Page 312: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEmrConfiguration

El objeto de definición de la canalización correspondiente que usa esta configuración se muestra acontinuación:

{ "objects": [ { "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.0.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": { "ref": "hadoop-env" } }, { "name": "hadoop-env", "id": "hadoop-env", "type": "EmrConfiguration", "classification": "hadoop-env", "configuration": { "ref": "export" } }, { "name": "export", "id": "export", "type": "EmrConfiguration", "classification": "export", "property": { "ref": "yarn-proxyserver-heapsize" } }, { "name": "yarn-proxyserver-heapsize", "id": "yarn-proxyserver-heapsize", "type": "Property", "key": "YARN_PROXYSERVER_HEAPSIZE", "value": "2396" }, ]}

SintaxisEste objeto incluye los siguientes campos.

Campos obligatorios Descripción Tipo de slot

classification Clasificación de la configuración. Cadena

Campos opcionales Descripción Tipo de slot

configuration Subconfiguración de esta configuración. Objeto de referencia,por ejemplo,"configuration":{"ref":"myEmrConfigurationId"}

Versión de API 2012-10-29305

Page 313: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPropiedad

Campos opcionales Descripción Tipo de slot

parent Elemento principal del objeto actual del que seheredarán los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

property Propiedad de configuración. Objeto de referencia,por ejemplo, "property":{"ref":"myPropertyId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia que ejecutan objetos deintento.

Cadena

Véase también• EmrCluster (p. 242)• Propiedad (p. 306)• Guía de publicación de Amazon EMR

PropiedadUna sola propiedad de clave-valor para su uso con un objeto EmrConfiguration.

EjemploEn la siguiente definición de canalización se muestra un objeto EmrConfiguration y los objetos Propertycorrespondientes para lanzar EmrCluster:

{ "objects": [ { "name": "ReleaseLabelCluster", "releaseLabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc",

Versión de API 2012-10-29306

Page 314: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPropiedad

"type": "EmrCluster", "configuration": { "ref": "coresite" } }, { "name": "coresite", "id": "coresite", "type": "EmrConfiguration", "classification": "core-site", "property": [{ "ref": "io-file-buffer-size" }, { "ref": "fs-s3-block-size" } ] }, { "name": "io-file-buffer-size", "id": "io-file-buffer-size", "type": "Property", "key": "io.file.buffer.size", "value": "4096" }, { "name": "fs-s3-block-size", "id": "fs-s3-block-size", "type": "Property", "key": "fs.s3.block.size", "value": "67108864" } ]}

SintaxisEste objeto incluye los siguientes campos.

Campos obligatorios Descripción Tipo de slot

clave clave Cadena

value value Cadena

Campos opcionales Descripción Tipo de slot

parent Elemento principal del objeto actual del que seheredan los slots.

Objeto de referencia,por ejemplo, "parent":{"ref":"myBaseObjectId"}

Campos de tiempo deejecución

Descripción Tipo de slot

@version Versión de la canalización con la que se creó elobjeto.

Cadena

Versión de API 2012-10-29307

Page 315: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresPropiedad

Campos del sistema Descripción Tipo de slot

@error Error al describir el objeto mal estructurado. Cadena

@pipelineId ID de la canalización a la que pertenece esteobjeto.

Cadena

@sphere La esfera de un objeto denota su lugar en el ciclode vida: los objetos de componente dan lugara objetos de instancia, que ejecutan objetos deintento.

Cadena

Véase también• EmrCluster (p. 242)• EmrConfiguration (p. 303)• Guía de publicación de Amazon EMR

Versión de API 2012-10-29308

Page 316: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresTask Runner en recursos

administrados por AWS Data Pipeline

Uso de Task RunnerTask Runner es una aplicación agente de tareas que sondea a AWS Data Pipeline para detectar tareasprogramadas y las ejecuta en instancias de Amazon EC2, clústeres de Amazon EMR u otros recursosinformáticos e informa de su estado mientras lo hace. En función de la aplicación, puede elegir:

• Permitir que AWS Data Pipeline instale y administre una o más aplicaciones Task Runnerautomáticamente. Cuando se activa una canalización, se crea automáticamente el objeto Ec2Instanceo EmrCluster predeterminado al que hace referencia el campo runsOn de una actividad. AWSData Pipeline se encarga de instalar Task Runner en una instancia EC2 o en el nodo principal de unclúster de EMR. En este caso, AWS Data Pipeline puede hacer automáticamente la mayor parte de laadministración de la instancia o el clúster.

• Ejecutar la totalidad o partes de una canalización en recursos que usted administra. Los recursospotenciales incluyen una instancia Amazon EC2 de ejecución prolongada, un clúster de Amazon EMRo un servidor físico. Puede instalar una aplicación de ejecución de tareas (que puede ser Task Runnero un agente de tareas personalizado que usted haya ideado) casi en cualquier lugar, siempre quepueda comunicarse con el servicio web de AWS Data Pipeline. En este caso, usted asume un controlcasi completo sobre los recursos que se utilizan y cómo se administran, y debe instalar y configurarmanualmente Task Runner. Para ello, utilice los procedimientos de esta sección, tal y como se describeen Ejecución de trabajo en recursos existentes mediante Task Runner (p. 311).

Task Runner en recursos administrados por AWSData Pipeline

Cuando AWS Data Pipeline lanza y administra un recurso, el servicio web instala automáticamente TaskRunner en dicho recurso para procesar tareas en la canalización. Puede especificar un recurso informático(ya sea una instancia Amazon EC2 o un clúster de Amazon EMR) para el campo runsOn de un objetode actividad. Cuando AWS Data Pipeline lanza este recurso, instala Task Runner en dicho recurso ylo configura para procesar todos los objetos de actividad cuyo campo runsOn esté establecido en eserecurso. Cuando AWS Data Pipeline termina el recurso, los registros de Task Runner se publican en unaubicación de Amazon S3 antes de que esta se cierre.

Versión de API 2012-10-29309

Page 317: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresTask Runner en recursos

administrados por AWS Data Pipeline

Por ejemplo, si utiliza EmrActivity en una canalización y especifica un recurso EmrCluster en elcampo runsOn. Cuando AWS Data Pipeline procesa dicha actividad, lanza un clúster de Amazon EMRe instala Task Runner en el nodo principal. A continuación, este Task Runner procesa las tareas de lasactividades cuyo campo runsOn esté establecido en ese objeto EmrCluster. El siguiente fragmento deuna definición de canalización muestra esta relación entre los dos objetos.

{ "id" : "MyEmrActivity", "name" : "Work to perform on my data", "type" : "EmrActivity", "runsOn" : {"ref" : "MyEmrCluster"}, "preStepCommand" : "scp remoteFiles localFiles", "step" : "s3://myBucket/myPath/myStep.jar,firstArg,secondArg", "step" : "s3://myBucket/myPath/myOtherStep.jar,anotherArg", "postStepCommand" : "scp localFiles remoteFiles", "input" : {"ref" : "MyS3Input"}, "output" : {"ref" : "MyS3Output"}},{ "id" : "MyEmrCluster", "name" : "EMR cluster to perform the work", "type" : "EmrCluster", "hadoopVersion" : "0.20", "keypair" : "myKeyPair", "masterInstanceType" : "m1.xlarge", "coreInstanceType" : "m1.small", "coreInstanceCount" : "10", "taskInstanceType" : "m1.small", "taskInstanceCount": "10", "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-hadoop,arg1,arg2,arg3", "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-other-stuff,arg1,arg2"

Versión de API 2012-10-29310

Page 318: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEjecución de trabajo en recursosexistentes mediante Task Runner

}

Para obtener información y ejemplos de la ejecución de esta actividad, consulte EmrActivity (p. 180).

Si tiene varios recursos administrados por AWS Data Pipeline en una canalización, Task Runner se instalaen cada uno de ellos y todos ellos sondean a AWS Data Pipeline para detectar las tareas que hay queprocesar.

Ejecución de trabajo en recursos existentesmediante Task Runner

Puede instalar Task Runner en recursos informáticos que administre como, por ejemplo, una instanciaAmazon EC2 o una estación de trabajo o un servidor físicos. Task Runner se puede instalar en cualquierlugar, en cualquier sistema operativo o hardware compatible, siempre que este pueda comunicarse con elservicio web de AWS Data Pipeline.

Este enfoque puede resultar útil cuando, por ejemplo, desee utilizar AWS Data Pipeline para procesardatos almacenados dentro del firewall de la organización. Si instala Task Runner en un servidor de lared local, puede obtener acceso a la base de datos local de forma segura y, a continuación, sondear aAWS Data Pipeline para detectar la siguiente tarea que se deba ejecutar. Cuando AWS Data Pipelinetermina el procesamiento o elimina la canalización, la instancia de Task Runner permanece en ejecuciónen el recurso informático hasta que se cierra de manera manual. Los registros de Task Runner persistendespués de que se haya completado la ejecución de la canalización.

Para utilizar Task Runner en un recurso que administre, primero debe descargar Task Runner y, acontinuación, instalarlo en el recurso informático mediante los procedimientos de esta sección.

Note

Solo puede instalar Task Runner en Linux, UNIX o macOS. Task Runner no es compatible con elsistema operativo Windows.

Para conectar un Task Runner que haya instalado con las actividades de canalización que debe procesar,añada un campo workerGroup al objeto y configure Task Runner para sondear ese valor de grupode procesos de trabajo. Para ello, transfiera la cadena del grupo de procesos de trabajo en forma deparámetro (por ejemplo, --workerGroup=wg-12345) cuando ejecute el archivo JAR de Task Runner.

Versión de API 2012-10-29311

Page 319: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInstalación de Task Runner

{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "workerGroup" : "wg-12345", "command" : "mkdir new-directory"}

Instalación de Task RunnerEn esta sección, se explica cómo instalar y configurar Task Runner y sus requisitos previos. La instalaciónes un proceso manual sencillo.

Para instalar Task Runner

1. Task Runner requiere las versiones de Java 1.6 o 1.8. Para determinar si se encuentra instalado Javay la versión que se está ejecutando, utilice el siguiente comando:

java -version

Si no tiene la versión de Java 1.6 o 1.8 instalada en su equipo, puede descargar una de estasversiones desde http://www.oracle.com/technetwork/java/index.html. Descargue e instale Java y, acontinuación, continúe con el paso siguiente.

2. Descargue TaskRunner-1.0.jar desde https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar y, a continuación, cópielo en una carpeta en el

Versión de API 2012-10-29312

Page 320: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores(Opcional) Concesión a Task

Runner de acceso a Amazon RDS

recurso informático de destino. En los clústeres de Amazon EMR que ejecuten tareas EmrActivity,instale Task Runner en el nodo principal del clúster.

3. Task Runner necesita conectarse al servicio web de AWS Data Pipeline para procesar los comandos.En este paso, va a configurar Task Runner con una cuenta de AWS que tiene permisos para crear oadministrar canalizaciones de datos.

Cree un archivo JSON llamado credentials.json (puede utilizar otro nombre si lo prefiere) queespecifique un ID de clave de acceso y una clave de acceso secreta con el formato { "access-id": "MyAccessKeyID", "private-key": "MySecretAccessKey" } . Copie el archivo en eldirectorio en el que haya instalado Task Runner.

For CLI access, you need an access key ID and secret access key. Use IAM user access keys insteadof Usuario de la cuenta raíz de AWS access keys. IAM lets you securely control access to AWSservices and resources in your AWS account. For more information about creating access keys, seeUnderstanding and Getting Your Security Credentials in the AWS General Reference.

4. Task Runner se conecta al servicio web de AWS Data Pipeline mediante HTTPS. Si utiliza un recursode AWS, asegúrese de que HTTPS esté habilitado en la tabla de enrutamiento y la ACL de subredadecuadas. Si utiliza un firewall o un proxy, asegúrese de que el puerto 443 esté abierto.

(Opcional) Concesión a Task Runner de acceso aAmazon RDSAmazon RDS permite controlar el acceso a las instancias de bases de datos mediante grupos deseguridad de base de datos. Un grupo de seguridad de base de datos realiza las mismas funciones que unfirewall que controla el acceso de red a su instancia de base de datos. De forma predeterminada, el accesode red está deshabilitado para sus instancias de base de datos. Debe modificar los grupos de seguridadde base de datos para permitir que Task Runner obtenga acceso a las instancias de Amazon RDS. TaskRunner obtiene acceso a Amazon RDS desde la instancia en la que se ejecuta, por lo que las cuentas y losgrupos de seguridad que añada a la instancia de Amazon RDS dependen de dónde instale Task Runner.

Para conceder acceso a Task Runner en EC2-Classic

1. Abra la consola de Amazon RDS.2. En el panel de navegación, elija Instances y seleccione la instancia de base de datos.3. En Security and Network (Seguridad y redes), seleccione el grupo de seguridad, lo cual abre la página

Grupos de seguridad con este grupo de seguridad de base de datos seleccionado. Seleccione el iconode detalles del grupo de seguridad de base de datos.

4. Bajo Security Group Details, cree una regla con los valores adecuados de Connection Type y Details.Estos campos dependen de dónde se esté ejecutando Task Runner, tal y como se describe aquí:

• Ec2Resource

• Connection Type: EC2 Security Group

Details: my-security-group-name (el nombre del grupo de seguridad que ha creado para lainstancia EC2)

• EmrResource

• Connection Type: EC2 Security Group

Detalles: ElasticMapReduce-master• Connection Type: EC2 Security Group

Detalles: ElasticMapReduce-slave• Su entorno local

Versión de API 2012-10-29313

Page 321: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInicio de Task Runner

• Connection Type: CIDR/IP:

Details: my-ip-address (la dirección IP de su equipo o el intervalo de direcciones IP de la red, siel equipo está tras un firewall)

5. Haga clic en Add.

Para conceder acceso a Task Runner en EC2-VPC

1. Abra la consola de Amazon RDS.2. En el panel de navegación, elija Instances (Instancias).3. Seleccione el icono de detalles de la instancia de base de datos. En Security and Network (Seguridad

y redes), abra el enlace al grupo de seguridad, lo que le lleva a la consola de Amazon EC2. Si estáutilizando el diseño de consola anterior para los grupos de seguridad, seleccionando el icono que semuestra en la parte superior de la página de la consola para cambiar al nuevo diseño de consola.

4. En la pestaña Inbound (Entrada), elija Edit (Editar), Add Rule (Agregar regla). Especifique el puertode la base de datos que utilizó al lanzar la instancia de base de datos. El origen depende de dónde seesté ejecutando Task Runner, tal y como se describe aquí:

• Ec2Resource

• my-security-group-id (el ID del grupo de seguridad que ha creado para la instancia EC2)• EmrResource

• master-security-group-id (el ID del grupo de seguridad ElasticMapReduce-master)• slave-security-group-id (el ID del grupo de seguridad ElasticMapReduce-slave)

• Su entorno local• ip-address (la dirección IP del equipo o el intervalo de direcciones IP de la red, si el equipo está

detrás de un firewall)5. Haga clic en Guardar.

Inicio de Task RunnerEn una ventana de comandos nueva establecida en el directorio en el que haya instalado Task Runner,inicie Task Runner, con el siguiente comando.

java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=myWorkerGroup --region=MyRegion --logUri=s3://mybucket/foldername

La opción --config apunta a su archivo de credenciales.

La opción --workerGroup especifica el nombre del grupo de procesos de trabajo, que debe ser el mismovalor especificado en la canalización para las tareas que va a procesar.

La opción --region especifica la región de servicio desde la que extraer las tareas a ejecutar.

La opción --logUri se utiliza para enviar los registros comprimidos a una ubicación en Amazon S3.

Cuando Task Runner está activo, imprime la ruta donde se escriben los archivos de registro en la ventanade terminal. A continuación se muestra un ejemplo.

Logging to /Computer_Name/.../output/logs

Task Runner se debe ejecutar desconectada del shell de inicio de sesión. Si utiliza un terminal deaplicación para conectarse al equipo, puede que tenga que utilizar una utilidad como nohup o screen para

Versión de API 2012-10-29314

Page 322: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresVerificación del registro de Task Runner

evitar que la aplicación Task Runner se cierre al cerrar la sesión. Para obtener más información acerca delas opciones de línea de comandos, consulte Opciones de configuración de Task Runner (p. 315).

Verificación del registro de Task RunnerLa forma más sencilla de verificar si Task Runner está en funcionamiento es comprobar si está escribiendoarchivos de registro. Task Runner escribe archivos de registro cada hora en el directorio output/logs,bajo el directorio donde está instalado Task Runner. El nombre del archivo es Task Runner.log.YYYY-MM-DD-HH, donde HH va de 00 a 23, en UDT. Para ahorrar espacio de almacenamiento, los archivos deregistro de más de ocho horas de antigüedad se comprimen con GZip.

Subprocesos y condiciones previas de Task RunnerTask Runner utiliza un grupo de subprocesos para cada una de las tareas, actividades y condicionesprevias. El valor predeterminado de --tasks es 2, lo que significa que hay dos subprocesos asignadosdel grupo de tareas y que cada subproceso sondea el servicio AWS Data Pipeline para detectar tareasnuevas. Por lo tanto, --tasks es un atributo de ajuste de rendimiento que se puede utilizar para ayudar aoptimizar el rendimiento de la canalización.

En Task Runner se ejecuta la lógica de reintentos de la canalización para condiciones previas. Se asignandos subprocesos de condición previa para sondear AWS Data Pipeline con objeto de detectar objetosde condición previa. Task Runner respeta los campos retryDelay y preconditionTimeout del objeto decondición previa que haya definido en las condiciones previas.

En muchos casos, reducir el tiempo de espera de sondeo de condición previa y el número de reintentossirve para mejorar significativamente el desempeño de la aplicación. Del mismo modo, es posible que lasaplicaciones con condiciones previas de ejecución prolongada necesiten que se aumenten los valores detiempo de espera y reintentos. Para obtener más información acerca de los objetos de condición previa,consulte Condiciones previas (p. 11).

Opciones de configuración de Task RunnerEstas son las opciones de configuración disponibles en la línea de comandos cuando se lanza TaskRunner.

Parámetro de línea de comando Descripción

--help Ayuda de la línea de comando. Ejemplo: Java -jar TaskRunner-1.0.jar --help

--config Ruta y nombre de archivo del archivocredentials.json.

--accessId Su ID de clave de acceso de AWS para que TaskRunner lo utilice a la hora de realizar solicitudes.

Las opciones --accessID y --secretKeyproporcionan una alternativa al uso de un archivocredentials.json. Si también se proporciona unarchivo credentials.json, las opciones --accessID y --secretKey tienen prioridad.

--secretKey Su clave secreta de AWS para que Task Runnerla utilice a la hora de realizar solicitudes. Paraobtener más información, consulte --accessID.

Versión de API 2012-10-29315

Page 323: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresOpciones de configuración de Task Runner

Parámetro de línea de comando Descripción

--endpoint Un punto de enlace es una URL que es el punto deentrada de un servicio web. El punto de enlace deservicio de AWS Data Pipeline en la región dondese realizan las solicitudes. Opcional. En general, essuficiente especificar una región y no es necesarioestablecer el punto de enlace. Para obtener unalista de las regiones y los puntos de enlace deAWS Data Pipeline, consulte Regiones y puntosde enlace de AWS Data Pipeline en AWS GeneralReference.

--workerGroup El nombre del grupo de procesos de trabajo paralos que Task Runner recupera trabajo. Obligatorio.

Cuando Task Runner sondea el servicio web,utiliza las credenciales suministradas y el valor deworkerGroup para seleccionar qué tareas deberecuperar (si procede). Puede utilizar cualquiernombre que sea significativo para usted; el únicorequisito es que la cadena debe situarse entreTask Runner y las correspondientes actividades dela canalización. El nombre del grupo de procesosde trabajo está vinculado a una región. Aunquehaya nombres de grupo de procesos de trabajoidénticos en otras regiones, Task Runner siempreobtiene tareas de la región especificada en --region.

--taskrunnerId El ID que utilizará la aplicación de ejecución detareas para informar del progreso. Opcional.

--output El directorio de Task Runner para el registro dearchivos de salida. Opcional. Los archivos deregistro se almacenan en un directorio local hastaque se envían a Amazon S3. Esta opción tieneprioridad sobre el directorio predeterminado.

--region La región que se va a utilizar. Es opcional, perose recomienda establecer siempre la región. Sino se especifica la región, Task Runner recuperatareas de la región de servicio predeterminada,us-east-1.

Otras regiones que se admiten son: eu-west-1,ap-northeast-1, ap-southeast-2, us-west-2.

--logUri La ruta de destino de Amazon S3 en la que TaskRunner hará copias de seguridad de los archivosde registro cada hora. Cuando Task Runnertermina, los registros activos del directorio local seenvían a la carpeta de destino de Amazon S3.

--proxyHost El host del proxy que utilizan los clientes de TaskRunner para conectarse a los servicios de AWS.

Versión de API 2012-10-29316

Page 324: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresUso de Task Runner con un Proxy

Parámetro de línea de comando Descripción

--proxyPort El puerto del host proxy que utilizan los clientes deTask Runner para conectarse a los servicios deAWS.

--proxyUsername El nombre de usuario del proxy.

--proxyPassword Contraseña para el proxy.

--proxyDomain El nombre de dominio de Windows para el proxyNTLM.

--proxyWorkstation El nombre de estación de trabajo de Windows parael proxy NTLM.

Uso de Task Runner con un ProxySi está utilizando un host proxy, puede especificar su configuración cuando invoque a Task Runner oestablecer la variable de entorno, HTTPS_PROXY. La variable de entorno utilizada con Task Runneracepta la misma configuración que se utiliza para la interfaz de línea de comando de AWS.

Task Runner y AMI personalizadasCuando se especifica un objeto Ec2Resource para la canalización, AWS Data Pipeline creaautomáticamente una instancia EC2 utilizando una AMI que instala y configura Task Runner. En estecaso, se requiere un tipo de instancia compatible con PV. También puede crear una AMI personalizadacon Task Runner y, a continuación, especificar el ID de esta AMI mediante el campo imageId del objetoEc2Resource. Para obtener más información, consulte Ec2Resource (p. 235).

Una AMI personalizada debe cumplir los siguientes requisitos para que AWS Data Pipeline pueda utilizarlade forma satisfactoria para Task Runner:

• Crear la AMI en la misma región en la que se ejecutarán las instancias. Para obtener más información,consulte Creación de su propia AMI en Guía del usuario de Amazon EC2 para instancias de Linux.

• Asegurarse de que el tipo de virtualización de la AMI sea compatible con el tipo de instancia que planeeutilizar. Por ejemplo, los tipos de instancia I2 y G2 requieren una AMI HVM y los tipos de instancia T1,C1, M1 y M2 requieren una AMI PV. Para obtener más información, consulte Tipos de virtualización deAMI de Linux en Guía del usuario de Amazon EC2 para instancias de Linux.

• Instalar el siguiente software:• Linux• Bash• wget• unzip• Java 1.6 o 1.8• cloud-init

• Crear y configurar una cuenta de usuario denominada ec2-user.

Versión de API 2012-10-29317

Page 325: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresLocalización de errores en canalizaciones

Solución de problemasCuando hay un problema con AWS Data Pipeline, el síntoma más frecuente es que una canalización nose ejecuta. Puede utilizar los datos que proporcionan la consola y la CLI para identificar el problema yencontrar una solución.

Contenido• Localización de errores en canalizaciones (p. 318)• Identificación del clúster de Amazon EMR que da servicio a la canalización (p. 318)• Interpretación de los detalles de estado de la canalización (p. 319)• Localización de los registros de error (p. 320)• Resolución de problemas comunes (p. 321)

Localización de errores en canalizacionesLa consola de AWS Data Pipeline es una herramienta muy práctica para supervisar visualmente el estadode las canalizaciones y localizar fácilmente los errores relacionados con ejecuciones que han fallado o nose han completado.

Para localizar los errores debidos a que las ejecuciones de las canalizaciones han fallado o no sehan completado con la consola

1. En la página List Pipelines, si en la columna Status de cualquiera de las instancias de canalizaciónse indica un estado que no es FINISHED, eso significa que la canalización está esperando a que secumpla alguna condición previa o ha fallado y es necesario solucionar los problemas.

2. En la página List Pipelines (Enumerar canalizaciones), localice la canalización de la instancia yseleccione el triángulo situado a la izquierda de la misma para ampliar los detalles.

3. En la parte inferior de este panel, elija View execution details (Ver detalles de la ejecución); se abriráel panel Instance summary (Resumen de la instancia) para mostrar los detalles de la instanciaseleccionada.

4. En el panel Instance summary (Resumen de la instancia), seleccione el triángulo situado junto a lainstancia para ver detalles adicionales sobre ella y, a continuación, elija Details (Detalles), More...(Más...). Si el estado de la instancia seleccionada es FAILED (FALLIDO), el cuadro de detalles tendráentradas para el mensaje de error, errorStackTrace y otra información. Puede guardar estainformación en un archivo. Seleccione OK.

5. En el panel Instance summary (Resumen de la instancia), elija Intentos para ver los detalles de cadafila de intento.

6. Para realizar una acción en una instancia incompleta o con errores, seleccione la casilla deverificación situada junto a la instancia. Esto activa las acciones. A continuación, seleccione unaacción (Rerun|Cancel|Mark Finished).

Identificación del clúster de Amazon EMR que daservicio a la canalización

Si falla un EMRCluster o un EMRActivity y la información de error proporcionada por la consolade AWS Data Pipeline no está clara, puede identificar el clúster de Amazon EMR que da servicio a la

Versión de API 2012-10-29318

Page 326: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInterpretación de los detalles de estado de la canalización

canalización utilizando la consola de Amazon EMR. Esto le ayuda a localizar los registros que proporcionaAmazon EMR para obtener más información sobre los errores que se producen.

Para ver información más detallada sobre los errores de Amazon EMR

1. En la consola de AWS Data Pipeline, seleccione el triángulo situado junto a la instancia decanalización para ampliar los detalles de la instancia.

2. Elija View execution details (Ver detalles de la ejecución) y seleccione el triángulo situado junto alcomponente.

3. En la columna Detalles, elija More... (Más...). Se abrirá la pantalla de información con losdetalles del componente. Localice y copie el valor instanceParent en la pantalla, por ejemplo:@EmrActivityId_xiFDD_2017-09-30T21:40:13

4. Vaya a la consola de Amazon EMR, busque un clúster cuyo nombre coincida con el valorinstanceParent y elija Debug (Depurar).

Note

Para que el botón Debug funcione, la definición de la canalización debe tener establecidala opción enableDebugging de EmrActivity en true y la opción EmrLogUri en una rutaválida.

5. Ahora que sabe que el clúster de Amazon EMR contiene el error que provoca el error de lacanalización, siga los consejos para la solución de problemas en la Guía para desarrolladores deAmazon EMR.

Interpretación de los detalles de estado de lacanalización

Los distintos niveles de estado que se muestran en la CLI y la consola de AWS Data Pipeline indicanel estado de una canalización y sus componentes. El estado de la canalización es simplemente unavisión general de una canalización; para ver más información, consulte el estado de los componentes decanalización individuales. Para ello, haga clic en una canalización en la consola o recupere los detalles delcomponente de la canalización utilizando la CLI.

Códigos de estado

ACTIVATING

El componente o el recurso se está iniciando, por ejemplo, una instancia EC2.CANCELED

Un usuario o AWS Data Pipeline cancelaron el componente antes de que se pudiera ejecutar. Estopuede suceder automáticamente cuando se produce un error en otro componente o recurso del quedepende este.

CASCADE_FAILED

El componente o recurso se canceló como consecuencia de un error en cascada de una de susdependencias, pero probablemente el componente no fue el origen inicial del error.

DEACTIVATING

La canalización se está desactivando.FAILED

Se ha producido un error en el componente o recurso y ha dejado de funcionar. Cuando se produceun error en un componente o recurso, puede provocar cancelaciones y errores en cascada en otroscomponentes que dependen de él.

Versión de API 2012-10-29319

Page 327: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresLocalización de los registros de error

FINISHED

El componente completó el trabajo que tenía asignado.INACTIVE

La canalización se ha desactivado.PAUSED

El componente se ha puesto en pausa y en este momento no está realizando su trabajo.PENDING

La canalización está preparada para activarla por primera vez.RUNNING

El recurso está en ejecución y preparado para recibir trabajo.SCHEDULED

El recurso está programado para ejecutarse.SHUTTING_DOWN

El recurso se está cerrando después de haber finalizado correctamente su trabajo.SKIPPED

El componente ha omitido intervalos de ejecución después de activar la canalización con una marcatemporal posterior a la programación actual.

TIMEDOUT

El recurso superó el umbral de terminateAfter y AWS Data Pipeline lo ha detenido.Cuando el recurso adquiere este estado, AWS Data Pipeline hace caso omiso de los valoresactionOnResourceFailure, retryDelay y retryTimeout de ese recurso. Este estado solo seaplica a los recursos.

VALIDATING

AWS Data Pipeline está validando la definición de la canalización.WAITING_FOR_RUNNER

El componente está esperando a que su cliente de proceso de trabajo recupere un elemento detrabajo. La relación entre el componente y el cliente de proceso de trabajo se controla mediante loscampos runsOn o workerGroup definidos por ese componente.

WAITING_ON_DEPENDENCIES

El componente está comprobando que se cumplan sus condiciones previas predeterminadas ydefinidas por el usuario antes de llevar a cabo su trabajo.

Localización de los registros de errorEn esta sección, se explica cómo encontrar los diferentes registros que escribe AWS Data Pipeline, que sepueden utilizar para determinar el origen de determinados errores.

Registros de canalizaciónLe recomendamos que configure las canalizaciones para crear archivos de registro en una ubicaciónpersistente, como en el siguiente ejemplo, en el que se utiliza el campo pipelineLogUri en un objeto

Versión de API 2012-10-29320

Page 328: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresRegistros de trabajos de Hadoop

y de pasos de Amazon EMR

Default de una canalización para hacer que todos los componentes de la canalización utilicen de manerapredeterminada la ubicación del registro de Amazon S3 (puede cambiarlo configurando una ubicación deregistro en un componente específico de la canalización).

Note

Task Runner almacena sus registros en otra ubicación de forma predeterminada, que podría noestar disponible cuando termina la canalización y la instancia que ejecuta Task Runner. Paraobtener más información, consulte Verificación del registro de Task Runner (p. 315).

Para configurar la ubicación de registro utilizando la CLI de AWS Data Pipeline en un archivo JSON decanalización, comience el archivo de canalización con el siguiente texto:

{ "objects": [{ "id":"Default", "pipelineLogUri":"s3://mys3bucket/error_logs"},...

Después de configurar un directorio de registro de canalización, Task Runner crea una copia de losregistros en el directorio, con el mismo formato y los mismos nombres de archivo que se describen en lasección anterior sobre los registros de Task Runner.

Registros de trabajos de Hadoop y de pasos deAmazon EMRCon cualquier actividad basada en Hadoop como, por ejemplo HadoopActivity (p. 186),HiveActivity (p. 193) o PigActivity (p. 205), puede ver los registros de trabajos de Hadoop en la ubicaciónque se devuelve en el slot de tiempo de ejecución, hadoopJobLog. EmrActivity (p. 180) tiene sus propiascaracterísticas de registro, y esos registros se almacenan utilizando la ubicación seleccionada por AmazonEMR y que devuelve el slot de tiempo de ejecución, emrStepLog. Para obtener más información, consulteVer archivos de registro en la Guía para desarrolladores de Amazon EMR.

Resolución de problemas comunesEn este tema, se ofrecen diversos síntomas de los problemas de AWS Data Pipeline y los pasosrecomendados para solucionarlos.

Contenido• Canalización bloqueada en estado pendiente (p. 322)• Componente de la canalización bloqueado en el estado Waiting for Runner (p. 322)• Componente de la canalización bloqueado en el estado WAITING_ON_DEPENDENCIES (p. 322)• No se ejecuta cuando está programada (p. 323)• Los componentes de la canalización se ejecutan en el orden incorrecto (p. 323)• El clúster de EMR falla con un error: el token de seguridad que se incluye en la solicitud no es

válido (p. 324)• Permisos insuficientes para obtener acceso a los recursos (p. 324)• Status Code: 400 Error Code: PipelineNotFoundException (p. 324)• La creación de una canalización produce un error del token de seguridad (p. 324)• No se pueden ver los detalles de la canalización en la consola (p. 324)• Error in remote runner Status Code: 404, AWS Service: Amazon S3 (p. 325)

Versión de API 2012-10-29321

Page 329: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresCanalización bloqueada en estado pendiente

• Acceso denegado: no está autorizado a realizar la función datapipeline: (p. 325)• Las AMI de Amazon EMR más antiguas pueden crear datos falsos para archivos CSV de gran

tamaño (p. 325)• Aumento de los límites de AWS Data Pipeline (p. 326)

Canalización bloqueada en estado pendienteSi una canalización aparece en el estado PENDING, indica que una canalización aún no se ha activado ola activación ha fallado debido a un error en su definición. Asegúrese de que no ha recibido ningún error alenviar la canalización mediante la CLI de AWS Data Pipeline o al intentar guardar o activar la canalizaciónmediante la consola de AWS Data Pipeline. Además, compruebe que la canalización tiene una definiciónválida.

Para ver la definición de la canalización en la pantalla mediante la CLI:

datapipeline --get --id df-EXAMPLE_PIPELINE_ID

Asegúrese de que la definición de la canalización está completa, compruebe las llaves de cierre, verifiquelas comas necesarias, compruebe si faltan referencias y si hay otros errores de sintaxis. Lo mejor esutilizar un editor de texto que permita validar visualmente la sintaxis de los archivos JSON.

Componente de la canalización bloqueado en elestado Waiting for RunnerSi la canalización se encuentra en el estado SCHEDULED y una o varias tareas aparecen atascadasen el estado WAITING_FOR_RUNNER, asegúrese de que ha establecido un valor válido en los camposrunsOn o workerGroup para esas tareas. Si ambos valores están vacíos o no existen, la tarea no sepuede iniciar, ya que no existe una asociación entre la tarea y un trabajador para llevar a cabo las tareas.En esta situación, se ha definido el trabajo, pero no se ha definido qué equipo realiza dicho trabajo.Si procede, compruebe que el valor de workerGroup asignado al componente de la canalización seaexactamente el mismo nombre, con las mismas mayúsculas y minúsculas, que el valor de workerGroupque ha configurado para Task Runner.

Note

Si proporciona un valor runsOn y workerGroup existe, se hace caso omiso de workerGroup.

Otra posible causa de este problema es que el punto de enlace y la clave de acceso proporcionadosa Task Runner no sean los mismos que los de la consola de AWS Data Pipeline o el equipo en el queestán instaladas las herramientas de la CLI de AWS Data Pipeline. Es posible que haya creado nuevascanalizaciones sin errores visibles, pero Task Runner sondea la posición errónea debido a la diferencia decredenciales o sondea la ubicación correcta con permisos insuficientes para identificar y ejecutar el trabajoespecificado en la definición de la canalización.

Componente de la canalización bloqueado en elestado WAITING_ON_DEPENDENCIESSi la canalización se encuentra en el estado SCHEDULED y una o varias tareas aparecen atascadasen el estado WAITING_ON_DEPENDENCIES, asegúrese de que se han cumplido las condicionesprevias iniciales de la canalización. Si las condiciones previas del primer objeto de la cadena de lógicano se cumplen, ninguno de los objetos que dependen de ese primer objeto podrá salir del estadoWAITING_ON_DEPENDENCIES.

Versión de API 2012-10-29322

Page 330: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresNo se ejecuta cuando está programada

Por ejemplo, tenga en cuenta el siguiente fragmento de una definición de canalización. En este caso, elobjeto InputData tiene la condición previa 'Ready', que especifica que los datos deben existir antes deque el objeto InputData se haya completado. Si los datos no existen, el objeto InputData permanece enel estado WAITING_ON_DEPENDENCIES, esperando a que estén disponibles los datos especificadospor el campo de la ruta. Los objetos que dependen de InputData también permanecen en un estadoWAITING_ON_DEPENDENCIES esperando a que el objeto InputData alcance el estado FINISHED.

{ "id": "InputData", "type": "S3DataNode", "filePath": "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "schedule":{"ref":"MySchedule"}, "precondition": "Ready" },{ "id": "Ready", "type": "Exists"...

Además, compruebe que los objetos tengan los permisos adecuados para acceder a los datos. En elejemplo anterior, si la información del campo de las credenciales no tuviera permisos para accedera los datos especificados en el campo de la ruta, el objeto InputData se bloquearía en el estadoWAITING_ON_DEPENDENCIES, ya que no puede obtener acceso a los datos especificados por el campode la ruta, aunque esos datos existan.

También es posible que un recurso que se comunica con Amazon S3 no tenga asociada una direcciónIP pública. Por ejemplo, un Ec2Resource en una subred pública debe tener asociada una dirección IPpública.

Por último, en determinadas condiciones, las instancias de recursos pueden alcanzar el estadoWAITING_ON_DEPENDENCIES mucho antes del inicio programado de sus actividades asociadas, loque puede dar la impresión de que el recurso o la actividad fallan. Para obtener más información acercadel comportamiento de los recursos y el ajuste del tipo de programación, consulte la sección Tipo deprogramación de omisión de recursos en el tema Programación de canalizaciones (p. 22).

No se ejecuta cuando está programadaCompruebe que ha elegido el tipo de programación correcta que determina si su tarea comienza alprincipio del intervalo de programación (tipo de programación de estilo cron) o al final del intervalo deprogramación (tipo de programación de serie temporal).

Además, compruebe que ha especificado correctamente las fechas en los objetos de la programación yque los valores de endDateTime y startDateTime están en formato UTC, como en el siguiente ejemplo:

{ "id": "MySchedule", "startDateTime": "2012-11-12T19:30:00", "endDateTime":"2012-11-12T20:30:00", "period": "1 Hour", "type": "Schedule"},

Los componentes de la canalización se ejecutan en elorden incorrectoEs posible que se haya dado cuenta de que las horas de inicio y finalización de la ejecución de loscomponentes de la canalización están en el orden incorrecto o en una secuencia que no es la esperada.

Versión de API 2012-10-29323

Page 331: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresEl clúster de EMR falla con un error: el token de

seguridad que se incluye en la solicitud no es válido

Es importante entender que los componentes de la canalización pueden comenzar a ejecutarsesimultáneamente si se cumplen las condiciones previas en el momento del arranque. En otras palabras,los componentes de canalización no se ejecutan de forma secuencial de forma predeterminada; si necesitauna orden de ejecución específica, debe controlar el orden de ejecución con condiciones previas y camposdependsOn.

Compruebe que está utilizando el campo dependsOn que se ha rellenado con una referencia a loscomponentes de la canalización con los requisitos previos correctos y que todos los indicadoresnecesarios entre los componentes están presentes para lograr el orden que necesita.

El clúster de EMR falla con un error: el token deseguridad que se incluye en la solicitud no es válidoVerifique sus roles, políticas y relaciones de confianza de IAM, tal y como se describe en Roles de IAMpara AWS Data Pipeline (p. 80).

Permisos insuficientes para obtener acceso a losrecursosLos permisos que ha establecido en los roles de IAM determinan si AWS Data Pipeline puede tener accesoa los clústeres de EMR y las instancias EC2 para ejecutar sus canalizaciones. Además, IAM proporcionael concepto de las relaciones de confianza que van más allá para permitir la creación de recursos en sunombre. Por ejemplo, al crear una canalización que utiliza una instancia EC2 para ejecutar un comandopara trasladar datos, AWS Data Pipeline puede aprovisionar esta instancia EC2 automáticamente. Si tieneproblemas, en particular con recursos a los que usted puede tener acceso manualmente, pero no AWSData Pipeline, verifique sus roles, políticas y relaciones de confianza de IAM, tal y como se describe enRoles de IAM para AWS Data Pipeline (p. 80).

Status Code: 400 Error Code:PipelineNotFoundExceptionEste error significa que los roles predeterminados de IAM podrían no tener los permisos necesarios paraque AWS Data Pipeline funcione correctamente. Para obtener más información, consulte Roles de IAMpara AWS Data Pipeline (p. 80).

La creación de una canalización produce un error deltoken de seguridadRecibe el siguiente mensaje de error cuando intenta crear una canalización:

Failed to create pipeline with 'pipeline_name'. Error: UnrecognizedClientException - The security tokenincluded in the request is invalid.

No se pueden ver los detalles de la canalización en laconsolaEl filtro de la canalización de la consola de AWS Data Pipeline se aplica a la fecha de inicio programadade una canalización, sin tener en cuenta la hora a la que se envió la canalización. Es posible enviar unanueva canalización utilizando una fecha de inicio programada que está en el pasado, que es posible que

Versión de API 2012-10-29324

Page 332: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresError in remote runner Status Code:

404, AWS Service: Amazon S3

no muestre el filtro de fecha predeterminado. Para ver los detalles de la canalización, cambie el filtrode fecha para asegurarse de que la fecha de inicio de la canalización programada se ajusta al filtro deintervalos de fechas.

Error in remote runner Status Code: 404, AWSService: Amazon S3Este error significa que Task Runner no ha podido tener acceso a los archivos en Amazon S3. Verifique losiguiente:

• Si se han establecido correctamente las credenciales.• Si el bucket de Amazon S3 al que está intentando tener acceso existe.• Si tiene autorización de acceso al bucket de Amazon S3.

Acceso denegado: no está autorizado a realizar lafunción datapipeline:En los registros de Task Runner, es posible que vea un error que es similar a lo siguiente:

• ERROR Status Code: 403• AWS Service: DataPipeline• AWS Error Code: AccessDenied• Mensaje de error de AWS: User: arn:aws:sts::XXXXXXXXXXXX:federated-user/i-XXXXXXXX is not

authorized to perform: datapipeline:PollForTask.

Note

En este mensaje de error, PollForTask podría sustituirse por nombres de otros permisos de AWSData Pipeline.

Este mensaje de error indica que el rol de IAM especificado necesita permisos adicionales necesarios parainteractuar con AWS Data Pipeline. Asegúrese de que la política de roles de IAM contiene las siguienteslíneas, donde PollForTask se sustituye por el nombre del permiso que desea añadir (use * para concedertodos los permisos). Para obtener más información sobre cómo crear un nuevo rol de IAM y aplicarle unapolítica, consulte Administración de políticas de IAM en la Guía del usuario de IAM.

{"Action": [ "datapipeline:PollForTask" ],"Effect": "Allow","Resource": ["*"]}

Las AMI de Amazon EMR más antiguas pueden creardatos falsos para archivos CSV de gran tamañoEn imágenes AMI de Amazon EMR anteriores a la versión a 3.9 (3.8 y anteriores), AWS Data Pipelineutiliza un InputFormat personalizado para leer y escribir archivos CSV para su uso con trabajos deMapReduce. Esto se utiliza cuando el servicio utiliza tablas provisionales para enviar y recibir datos deAmazon S3. Se descubrió un problema con este InputFormat. Este problema consistía en que, al leerregistros de archivos CSV de gran tamaño, se podían producir tablas que no se copiaban correctamente.

Versión de API 2012-10-29325

Page 333: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresAumento de los límites de AWS Data Pipeline

Este problema se solucionó en las versiones de Amazon EMR posteriores. Utilice la AMI 3.9 de AmazonEMR o la versión 4.0.0 o superior de Amazon EMR.

Aumento de los límites de AWS Data PipelineOcasionalmente, es posible que exceda los límites del sistema específicos de AWS Data Pipeline. Porejemplo, el límite de canalización predeterminado es de 20 canalizaciones con 50 objetos en cada una deellas. Si descubre que necesita más canalizaciones de las que marca el límite, considere la posibilidad decombinar varias canalizaciones para crear menos con más objetos en cada una de ellas. Para obtener másinformación sobre los límites de AWS Data Pipeline, consulte Límites de AWS Data Pipeline (p. 329).Sin embargo, si no puede solucionar el problema de los límites utilizando la técnica de la combinación decanalizaciones, aumente su capacidad utilizando el siguiente formulario: Data Pipeline Limit Increase.

Versión de API 2012-10-29326

Page 334: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresInformación de AWS Data Pipeline en CloudTrail

Registro de llamadas al API deAWS Data Pipeline mediante AWSCloudTrail

AWS Data Pipeline está integrado con AWS CloudTrail, un servicio que proporciona un registro de lasacciones realizadas por un usuario, un rol o un servicio de AWS en AWS Data Pipeline. CloudTrail capturatodas las llamadas a la API de AWS Data Pipeline como eventos. Las llamadas capturadas incluyen lasllamadas desde la consola de AWS Data Pipeline y las llamadas desde el código a las operaciones dela API de AWS Data Pipeline. Si crea un registro de seguimiento, puede habilitar la entrega continua deeventos de CloudTrail a un bucket de Amazon S3, incluidos los eventos de AWS Data Pipeline. Si noconfigura un registro de seguimiento, puede ver los eventos más recientes en la consola de CloudTrailen el Event history (Historial de eventos). Mediante la información que recopila CloudTrail, se puededeterminar la solicitud que se envió a AWS Data Pipeline, la dirección IP desde la que se realizó lasolicitud, quién la realizó, cuándo la realizó y los detalles adicionales.

Para obtener más información sobre CloudTrail, consulte la AWS CloudTrail User Guide.

Información de AWS Data Pipeline en CloudTrailCloudTrail se habilita en una cuenta de AWS al crearla. Cuando se produce una actividad en AWS DataPipeline, dicha actividad se registra en un evento de CloudTrail junto con los eventos de los demásservicios de AWS en el Event history (Historial de eventos). Puede ver, buscar y descargar los últimoseventos de la cuenta de AWS. Para obtener más información, consulte Visualización de eventos con elhistorial de eventos de CloudTrail.

Para mantener un registro continuo de los eventos de la cuenta de AWS, incluidos los eventos de AWSData Pipeline, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviararchivos de registro a un bucket de Amazon S3. De forma predeterminada, cuando se crea un registrode seguimiento en la consola, este se aplica a todas las regiones de AWS. El registro de seguimientoregistra los eventos de todas las regiones de la partición de AWS y envía los archivos de registro al bucketde Amazon S3 especificado. También puede configurar otros servicios de AWS para analizar y actuar enfunción de los datos de eventos recopilados en los registros de CloudTrail. Para obtener más información,consulte los siguientes temas:

• Introducción a la creación de registros de seguimiento• Servicios e integraciones compatibles con CloudTrail• Configuración de notificaciones de Amazon SNS para CloudTrail• Recibir archivos de registro de CloudTrail de varias regiones y Recepción de archivos de registro de

CloudTrail de varias cuentas

Todas las acciones de AWS Data Pipeline las registra CloudTrail y se documentan en el capítulo sobreacciones de la Referencia de la API de AWS Data Pipeline. Por ejemplo, las llamadas a la acciónCreatePipeline generan entradas en los archivos de registro de CloudTrail.

Cada entrada de registro o evento contiene información acerca de quién generó la solicitud. La informaciónde identidad del usuario le ayuda a determinar lo siguiente:

Versión de API 2012-10-29327

Page 335: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresDescripción de las entradas de los

archivos de registro de AWS Data Pipeline

• Si la solicitud se realizó con credenciales de usuario raíz o de AWS Identity and Access Management(IAM).

• Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.• Si la solicitud la realizó otro servicio de AWS.

Para obtener más información, consulte el elemento userIdentity de CloudTrail.

Descripción de las entradas de los archivos deregistro de AWS Data Pipeline

Un registro de seguimiento es una configuración que permite la entrega de eventos como archivos deregistro al bucket de Amazon S3 que se especifique. Los archivos de registro de CloudTrail contienenuna o varias entradas de registro. Un evento representa una única solicitud de cualquier origen e incluyeinformación sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud,etcétera. Los archivos de registro de CloudTrail no son un rastro de la pila ordenada de las llamadas a laAPI públicas, por lo que no aparecen en ningún orden específico.

En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail que ilustra la operaciónCreatePipeline:

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "Root", "principalId": "123456789012", "arn": "arn:aws:iam::user-account-id:root", "accountId": "user-account-id", "accessKeyId": "user-access-key" }, "eventTime": "2014-11-13T19:15:15Z", "eventSource": "datapipeline.amazonaws.com", "eventName": "CreatePipeline", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.196.64", "userAgent": "aws-cli/1.5.2 Python/2.7.5 Darwin/13.4.0", "requestParameters": { "name": "testpipeline", "uniqueId": "sounique" }, "responseElements": { "pipelineId": "df-06372391ZG65EXAMPLE" }, "requestID": "65cbf1e8-6b69-11e4-8816-cfcbadd04c45", "eventID": "9f99dce0-0864-49a0-bffa-f72287197758", "eventType": "AwsApiCall", "recipientAccountId": "user-account-id" }, ...additional entries ]}

Versión de API 2012-10-29328

Page 336: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresLímites de la cuenta

Límites de AWS Data PipelinePara asegurarse de que haya capacidad para todos los usuarios, AWS Data Pipeline impone límites sobrelos recursos que se pueden asignar y la frecuencia con la que es posible asignarlos.

Contenido• Límites de la cuenta (p. 329)• Límites de llamadas a servicios web (p. 330)• Consideraciones de escalado (p. 331)

Límites de la cuentaLos siguientes límites se aplican a una única cuenta de AWS. Si necesita más capacidad, puede utilizar elformulario de solicitud del Centro de Amazon Web Services Support para aumentarla.

Atributo Límite Ajustable

Número decanalizaciones

100 Sí

Número de objetos porcanalización

100 Sí

Número de instanciasactivas por objeto

5 Sí

Número de campos porobjeto

50 No

Número de bytesUTF8 por nombre oidentificador de campo

256 No

Número de butes UTF8por campo

10 240 No

Número de bytes UTF8por objeto

15 360 (incluidos los nombres decampos)

No

Tasa de creación deuna instancia a partir deun objeto

1 por cada 5 minutos No

Reintentos actividad deuna canalización

5 por tarea No

Retraso mínimo entrereintentos

2 minutos No

Intervalo deprogramación mínimo

15 minutos No

Versión de API 2012-10-29329

Page 337: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresLímites de llamadas a servicios web

Atributo Límite Ajustable

Número máximo deacumulaciones en unsolo objeto

32 No

Número máximo deinstancias EC2 porobjeto Ec2Resource

1 No

Límites de llamadas a servicios webAWS Data Pipeline limita la frecuencia con la que se puede llamar a la API de servicios web. Estos límitestambién se aplican a los agentes de AWS Data Pipeline que llaman a la API de servicios web en sunombre, como la consola, la CLI y Task Runner.

Los siguientes límites se aplican a una única cuenta de AWS. Esto significa que el uso total de la cuenta,incluido el de los usuarios de IAM, no puede superar estos límites.

La frecuencia de ráfaga permite ahorrar llamadas a servicios web durante los períodos de inactividad ygastarlas en un breve período de tiempo. Por ejemplo, CreatePipeline tiene una frecuencia normal de unallamada cada cinco segundos. Si no llama al servicio durante 30 segundos, habrá ahorrado seis llamadas.A continuación, podría llamar al servicio web seis veces en un segundo. Dado que este valor está pordebajo del límite de ráfaga y mantiene la media de llamadas dentro del límite de frecuencia normal, lasllamadas no se ven limitadas.

Si supera el límite de frecuencia y el límite de ráfaga, la llamada al servicio web produce un error ydevuelve una excepción de limitación controlada. La implementación predeterminada de un procesode trabajo, Task Runner, reintenta automáticamente las llamadas a la API que producen un error conuna excepción de limitación controlada. Task Runner tiene un retardo para que los intentos posterioresde llamar a la API se produzcan a intervalos cada vez mayores. Si escribe un proceso de trabajo, lerecomendamos que implemente un lógica de reintentos similar.

Estos límites se aplican a una única cuenta de AWS.

API Límite de frecuencia normal Límite de ráfaga

ActivatePipeline 1 llamada por segundo 100 llamadas

CreatePipeline 1 llamada por segundo 100 llamadas

DeletePipeline 1 llamada por segundo 100 llamadas

DescribeObjects 2 llamadas por segundo 100 llamadas

DescribePipelines 1 llamada por segundo 100 llamadas

GetPipelineDefinition 1 llamada por segundo 100 llamadas

PollForTask 2 llamadas por segundo 100 llamadas

ListPipelines 1 llamada por segundo 100 llamadas

PutPipelineDefinition 1 llamada por segundo 100 llamadas

QueryObjects 2 llamadas por segundo 100 llamadas

Versión de API 2012-10-29330

Page 338: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladoresConsideraciones de escalado

API Límite de frecuencia normal Límite de ráfaga

ReportTaskProgress 10 llamadas por segundo 100 llamadas

SetTaskStatus 10 llamadas por segundo 100 llamadas

SetStatus 1 llamada por segundo 100 llamadas

ReportTaskRunnerHeartbeat1 llamada por segundo 100 llamadas

ValidatePipelineDefinition 1 llamada por segundo 100 llamadas

Consideraciones de escaladoAWS Data Pipeline se escala para adaptarse a un número elevado de tareas simultáneas, y es posibleconfigurarlo para crear automáticamente los recursos necesarios para gestionar grandes cargas detrabajo. Usted mantiene el control de estos recursos que se crean automáticamente, y se tienen en cuentapara los límites de recursos de la cuenta de AWS. Por ejemplo, si configura AWS Data Pipeline para quecree automáticamente un clúster de Amazon EMR de 20 nodos para procesar datos y su cuenta de AWStiene un límite de instancias EC2 establecido en 20, es posible que agote sin darse cuenta sus recursosde reposición disponibles. Como resultado, tenga en cuenta estas restricciones de recursos en el diseño oaumente los límites de su cuenta en consonancia.

Si necesita más capacidad, puede utilizar el formulario de solicitud del Centro de Amazon Web ServicesSupport para aumentarla.

Versión de API 2012-10-29331

Page 339: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Recursos de AWS Data PipelineA continuación, se muestran recursos para ayudarle a usar AWS Data Pipeline.

• Información sobre el producto AWS Data Pipeline: página web principal con información sobre AWSData Pipeline.

• Preguntas frecuentes sobre AWS Data Pipeline: contiene las 20 preguntas principales que formulan losdesarrolladores acerca de este producto.

• Notas de la versión: proporcionan información general de alto nivel sobre la versión actual. Destacan deforma específica las características nuevas, las correcciones y los problemas que se conocen.

• Foros de debate de AWS Data Pipeline: un foro de la comunidad para que los desarrolladores tratenaspectos técnicos relacionados con Amazon Web Services.

• Clases y talleres: enlaces a cursos basados en roles y especializados, y también a laboratoriosautoguiados para ayudarle a desarrollar sus conocimientos de AWS y obtener experiencia práctica.

• Herramientas para desarrolladores de AWS: enlaces a herramientas para desarrolladores, SKD,conjuntos de herramientas de IDE y herramientas de línea de comandos para desarrollar y administraraplicaciones de AWS.

• Documentos técnicos de AWS: enlaces a una completa lista de documentos técnicos de AWS que cubreuna gran variedad de temas técnicos, como arquitecturas, seguridad y economía de la nube, escritos porarquitectos de soluciones de AWS o expertos técnicos.

• Centro de soporte de AWS: centro para crear y administrar sus casos de AWS Support. También incluyeenlaces a otros recursos útiles como foros, preguntas técnicas frecuentes, estado de los servicios y AWSTrusted Advisor.

• AWS Support: página web principal para obtener información sobre AWS Support, un canal de soporteindividualizado y de respuesta rápida que le ayudará a crear y ejecutar aplicaciones en la nube.

• Contacte con nosotros: un punto central de contacto para las consultas relacionadas con la facturaciónde AWS, cuentas, eventos, uso indebido y otros problemas.

• Términos del sitio de AWS: información detallada sobre nuestros derechos de autor y marca comercial,su cuenta, licencia y acceso al sitio, entre otros temas.

Versión de API 2012-10-29332

Page 340: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Historial de revisiónEsta documentación está relacionada con la versión 2012-10-29 de AWS Data Pipeline.

Última actualización de la documentación: 9 de noviembre de 2018.

Cambio Descripción Fecha de laversión

Se han actualizadolas listas de instanciasde Amazon EC2y Amazon EMRcompatibles.

Se ha actualizado lalista de ID de las AMIde HVM (máquinavirtual de hardware)que se usan para lasinstancias.

Se han actualizado las listas de instancias de AmazonEC2 y Amazon EMR compatibles. Para obtener másinformación, consulte Tipos de instancia compatibles conlas actividades de trabajo de canalización (p. 3).

Se ha actualizado la lista de ID de las AMI de HVM(máquina virtual de hardware) que se usan para lasinstancias. Para obtener más información, Sintaxis (p. 236)y busque imageId.

9 de noviembrede 2018

Se ha añadido laconfiguración paraasociar volúmenesde Amazon EBS anodos del clúster ypara lanzar un clústerde Amazon EMR enuna subred privada.

Se han añadido opciones de configuración a un objetoEMRcluster. Puede utilizar estas opciones en lascanalizaciones que utilizan clústeres de Amazon EMR.

Utilice los campos coreEbsConfiguration,masterEbsConfiguration y TaskEbsConfigurationpara configurar la asociación de volúmenes de AmazonEBS a los nodos principal, maestro y de tarea del clústerde Amazon EMR. Para obtener más información, consulteAsociar volúmenes de EBS a los nodos del clúster (p. 250).

Utilice los camposemrManagedMasterSecurityGroupId,emrManagedSlaveSecurityGroupId yServiceAccessSecurityGroupId para configurarun clúster de Amazon EMR en una subred privada. Paraobtener más información, consulte Configurar un clúster deAmazon EMR en una subred privada (p. 248).

Para obtener más información acerca de la sintaxisEMRcluster, consulte EmrCluster (p. 242).

19 de abril de2018

Se ha añadido lalista de instanciasde Amazon EC2y Amazon EMRcompatibles.

Se ha añadido la lista de las instancias que AWS DataPipeline crea de forma predeterminada si no se especificaun tipo de instancia en la definición de la canalización.Se ha añadido una lista de instancias de Amazon EC2 yAmazon EMR compatibles. Para obtener más información,consulte Tipos de instancia compatibles con las actividadesde trabajo de canalización (p. 3).

22 de marzo de2018

Se ha añadidocompatibilidad concanalizaciones bajodemanda.

• Se ha añadido compatibilidad con canalizacionesbajo demanda, lo que le permite volver a ejecutar unacanalización activándola de nuevo. Para obtener másinformación, consulte Bajo demanda (p. 23).

22 de febrero de2016

Versión de API 2012-10-29333

Page 341: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Cambio Descripción Fecha de laversión

Compatibilidadadicional para basesde datos RDS

• Se han añadido rdsInstanceId, region yjdbcDriverJarUri a RdsDatabase (p. 282).

• Se ha actualizado database en SqlActivity (p. 230) parapermitir también RdsDatabase.

17 de agosto de2015

Soporte para JDBCadicional

• Se ha actualizado database en SqlActivity (p. 230) parapermitir también JdbcDatabase.

• Se ha añadido jdbcDriverJarUri aJdbcDatabase (p. 281)

• Se ha añadido initTimeout a Ec2Resource (p. 235) yEmrCluster (p. 242).

• Se ha añadido runAsUser a Ec2Resource (p. 235).

7 de julio de 2015

HadoopActivity, zonade disponibilidad ysoporte de spot

• Se ha añadido compatibilidad para enviar trabajosparalelos a clústeres de Hadoop. Para obtener másinformación, consulte HadoopActivity (p. 186).

• Se ha añadido la posibilidad de solicitar instancias despot con Ec2Resource (p. 235) y EmrCluster (p. 242).

• Se ha añadido la posibilidad de lanzar recursosde EmrCluster en una zona de disponibilidadespecificada.

1 de junio de2015

Desactivación decanalizaciones

Se ha añadido compatibilidad para desactivarcanalizaciones activas. Para obtener más información,consulte Desactivación de la canalización (p. 55).

7 de abril de 2015

Plantillas y consolaactualizados

Se han añadido nuevas plantillas, tal como se reflejaen la consola. Se ha actualizado el capítulo deintroducción para utilizar la plantilla Getting Started withShellCommandActivity. Para obtener más información,consulte Creación de canalizaciones con plantillas deconsola (p. 26).

25 de noviembrede 2014

Compatibilidad conVPC

Se ha añadido compatibilidad para lanzar recursos en unanube virtual privada (VPC). Para obtener más información,consulte Lanzamiento de recursos para su canalización enuna VPC (p. 60).

12 de marzo de2014

Compatibilidad deregiones

Se ha añadido compatibilidad con varias regiones deservicio. Además de us-east-1, AWS Data Pipeline seadmite en las regiones eu-west-1, ap-northeast-1,ap-southeast-2 y us-west-2.

20 de febrero de2014

Compatibilidad conAmazon Redshift

Se ha añadido compatibilidad con Amazon Redshift enAWS Data Pipeline, incluida una nueva plantilla de consola(Copy to Redshift) y un tutorial para demostrar el uso dela plantilla. Para obtener más información, consulte Copiardatos en Amazon Redshift con AWS Data Pipeline (p. 124),RedshiftDataNode (p. 159), RedshiftDatabase (p. 284) yRedshiftCopyActivity (p. 215).

6 de noviembrede 2013

PigActivity Se ha añadido PigActivity, que dispone de compatibilidadnativa con Pig. Para obtener más información, consultePigActivity (p. 205).

15 de octubre de2013

Versión de API 2012-10-29334

Page 342: AWS Data Pipeline - docs.aws.amazon.com · transformación de los datos. Con AWS Data Pipeline, puede definir flujos de trabajo controlados por datos en los que las tareas dependan

AWS Data Pipeline Guía para desarrolladores

Cambio Descripción Fecha de laversión

Nueva plantilla deconsola, actividad yformato de datos

Se ha añadido la plantilla de consola CrossRegionDynamoDB Copy, que incluye los nuevos HiveCopyActivityy DynamoDBExportDataFormat.

21 de agosto de2013

Errores en cascaday repeticiones deejecuciones

Se ha añadido información sobre el error en cascada deAWS Data Pipeline y el comportamiento de repeticiónde ejecuciones. Para obtener más información, consulteErrores en cascada y repeticiones de ejecuciones (p. 66).

8 de agosto de2013

Vídeo de solución deproblemas

Se ha añadido el vídeo de solución de problemas básicosde AWS Data Pipeline. Para obtener más información,consulte Solución de problemas (p. 318).

17 de julio de2013

Edición decanalizaciones activas

Se ha añadido más información sobre la edición decanalizaciones activas y la repetición de la ejecuciónde componentes de canalización. Para obtener másinformación, consulte Edición de la canalización (p. 52).

17 de julio de2013

Uso de recursos endiferentes regiones

Se ha añadido más información sobre el uso de losrecursos en distintas regiones. Para obtener másinformación, consulte Uso de una canalización conrecursos en varias regiones (p. 64).

17 de junio de2013

EstadoWAITING_ON_DEPENDENCIES

El estado CHECKING_PRECONDITIONS ha cambiadoa WAITING_ON_DEPENDENCIES y se ha añadido elcampo en tiempo de ejecución @waitingOn para objetos decanalización.

20 de mayo de2013

DynamoDBDataFormat Se ha añadido la plantilla DynamoDBDataFormat. 23 de abril de2013

Vídeo de registrosweb de procesos ycompatibilidad coninstancias de spot

Se ha introducido el vídeo "Procesar registros webcon AWS Data Pipeline, Amazon EMR y Hive" y lacompatibilidad con instancias de spot de Amazon EC2.

21 de febrero de2013

  Versión inicial de la Guía del desarrollador de AWS DataPipeline.

20 de diciembrede 2012

Versión de API 2012-10-29335