Aspectos generales

P: ¿Qué es Amazon Kinesis Data Analytics?
Amazon Kinesis Data Analytics es la manera más sencilla de analizar datos de streaming, obtener información procesable y atender las necesidades de los clientes y su negocio en tiempo real. Amazon Kinesis Data Analytics reduce la complejidad de construir, administrar e integrar las aplicaciones de streaming con otros servicios de AWS. Puede escribir rápidamente consultas SQL y crear aplicaciones Java sofisticadas mediante el uso de plantillas y operadores integrados para funciones de procesamiento comunes con el fin de organizar, transformar, incorporar y analizar datos a cualquier escala.
 
Amazon Kinesis Data Analytics se ocupa de todo lo necesario para ejecutar sus aplicaciones en tiempo real de forma continua y ajusta la escala automáticamente para adaptarse al volumen y rendimiento de los datos de entrada. Con Amazon Kinesis Data Analytics, solo paga por los recursos que consumen sus aplicaciones de streaming. Sin tarifa mínima ni costo de contratación.
 
P: ¿Qué es el procesamiento de streaming en tiempo real y por qué lo necesito?
Tras el significativo crecimiento de los orígenes de datos en tiempo real, nos llegan datos a una velocidad increíble. Tanto si se trata de datos de logs procedentes de aplicaciones móviles y web, datos de compra de sitios de comercio electrónico o datos de sensores de dispositivos IoT, los datos proporcionan información que puede ayudar a las empresas a descubrir lo que sus clientes, organizaciones y negocios están haciendo ahora mismo. Al tener visibilidad en estos datos a medida que llegan, puede monitorizar su negocio en tiempo real y rápidamente aprovechar las nuevas oportunidades de negocio. Por ejemplo, hacer ofertas promocionales a los clientes basadas en donde estas podrían estar en un momento específico o monitorizar el sentimiento social y las actitudes cambiantes del cliente para identificar y actuar sobre nuevas oportunidades.
 
Para aprovechar estas oportunidades, necesita un conjunto distinto de herramientas de análisis para recopilar y analizar datos de streaming en tiempo real en lugar de las soluciones que había disponibles anteriormente y que trataban los datos estáticos y almacenados. Con el análisis tradicional, recopila la información, la almacena en una base de datos y la analiza horas, días o semanas después. El análisis de datos en tiempo real requiere un enfoque distinto, así como herramientas y servicios diferentes. En lugar de ejecutar consultas en una base de datos con datos almacenados, los servicios de análisis de streaming procesan los datos de forma constante antes de almacenarlos en una base de datos. Los datos de streaming fluyen a gran velocidad, la cual puede aumentar o disminuir todo el tiempo. Los servicios de análisis de streaming deben poder procesar los datos cuando llegan, a menudo a velocidades de millones de eventos por hora.
 
P: ¿Qué puedo hacer con Kinesis Data Analytics?
Puede utilizar Kinesis Data Analytics para muchos casos de uso con el fin de procesar datos de forma constante y obtener información en segundos o minutos en lugar de esperar días o incluso semanas. Kinesis Data Analytics le permite crear con rapidez aplicaciones de procesamiento de streaming completas para el análisis de logs, el análisis de secuencias de clics, Internet de las cosas (IoT), la tecnología publicitaria, los videojuegos y más. Los tres casos de uso más comunes son el streaming de procesos de extracción, transformación y carga (ETL), la generación continua de métricas y el análisis de la capacidad de respuesta.
 
Streaming de procesos ETL
Las aplicaciones de streaming de procesos de ETL le permiten limpiar, enriquecer, organizar y transformar datos sin procesar antes de cargar sus lagos de datos o almacén de datos en tiempo real, y así reducir o eliminar los pasos de ELT por lotes. Estas aplicaciones pueden guardar pequeños registros en archivos más grandes antes de la entrega y realizar cadenas sofisticadas a través de secuencias y tablas. Por ejemplo, puede crear una aplicación que lea continuamente los datos del sensor IoT almacenados en Amazon Managed Streaming for Apache Kafka (Amazon MSK), organice los datos por tipo de sensor, elimine datos duplicados, normalice los datos por un esquema específico y, a continuación, proporcione los datos a Amazon S3.
 
Generación continua de métricas
La generación continua de métricas le permite monitorizar y comprender las tendencias de los datos con el paso del tiempo. Las aplicaciones pueden incorporar datos de streaming en la información crítica e integrarlos perfectamente con bases de datos de informes y servicios de monitorización para atender a las aplicaciones y a los usuarios en tiempo real. Con Kinesis Data Analytics, puede usar una código SQL o Java que genere de forma constante un análisis de serie de tiempo en ventanas de tiempo. Por ejemplo, puede crear un marcador en vivo para un videojuego móvil mediante el procesamiento por minuto de los mejores jugadores y el envío de la información a Amazon DynamoDB. O puede monitorizar el tráfico de su sitio web calculando la cantidad de visitantes únicos cada cinco minutos y enviando los resultados procesados a Amazon Redshift.
 
Análisis de la capacidad de respuesta en tiempo real
Las aplicaciones de análisis de la capacidad de respuesta en tiempo real envían alarmas o notificaciones en tiempo real cuando determinadas métricas alcanzan umbrales predeterminados o, en casos más complejos, cuando su aplicación detecta anomalías mediante algoritmos de aprendizaje automático. Estas aplicaciones le permiten responder de forma inmediata a los cambios de su negocio en tiempo real, como en la predicción de abandono de usuario en aplicaciones móviles y la identificación de sistemas degradados. Por ejemplo, una aplicación puede procesar la disponibilidad o la tasa de éxito de una API de cara al cliente con el tiempo y enviar los resultados a Amazon CloudWatch. Puede crear otra aplicación que busque eventos que cumplan determinados criterios y notificar automáticamente a los clientes correspondientes mediante Amazon Kinesis Data Streams y Amazon Simple Notification Service (SNS).
 
P: ¿Cómo comienzo a usar aplicaciones Java para Kinesis Data Analytics?
Inicie sesión en la consola de Amazon Kinesis Data Analytics y cree una nueva aplicación de procesamiento de streaming. También puede usar la CLI y los SDK de AWS. Una vez que se crea una aplicación, vaya a su entorno de desarrollo integrado favorito, conéctese a AWS e instale las bibliotecas Java de código abierto. Las bibliotecas de código abierto se basan en Apache Flink, un motor y marco de código abierto para procesar streaming de datos, y SDK de AWS. Las bibliotecas ampliables incluyen más de 25 operadores de procesamiento de transmisiones predefinidos, como window y aggregate, e integraciones en servicios de AWS, como Amazon MSK, Amazon Kinesis Data Streams y Amazon Kinesis Data Firehose. Una vez finalizado el proceso de creación, debe cargar su código en Amazon Kinesis Data Analytics y el servicio se ocupa de todo lo necesario para ejecutar sus aplicaciones de funcionamiento en tiempo real de forma continua y ajusta la escala automáticamente para adaptarse al volumen y nivel de procesamiento de los datos de entrada.
 
P: ¿Cómo comienzo a usar aplicaciones SQL para Kinesis Data Analytics?
Inicie sesión en la consola de Amazon Kinesis Data Analytics y cree una nueva aplicación de procesamiento de streaming. También puede usar la CLI y los SDK de AWS. Puede crear una aplicación completa en tres pasos sencillos: 1) configure los datos de streaming de entrada, 2) escriba las consultas en SQL, y 3) apunte adónde desea que se carguen los datos. Kinesis Data Analytics reconoce formatos de datos estándar como JSON, CSV y TSV, y crea un esquema de referencia de manera automática. Puede modificar el esquema o, si los datos de entrada no están estructurados, puede definir un esquema nuevo con el editor de esquemas intuitivo. A continuación, el servicio aplica el esquema a la transmisión de entrada y hace que tenga el aspecto de una tabla SQL que se actualiza constantemente, para que pueda escribir consultas SQL. Para crear las consultas, utiliza el editor SQL.
 
El editor SQL incorpora todas las características necesarias, incluida la comprobación de sintaxis y las pruebas con datos en vivo. También le proporcionamos plantillas que incluyen el código SQL para cualquier tarea, desde un filtro de transmisiones sencillo a la detección de anomalías y el análisis de los elementos K principales. Kinesis Data Analytics se ocupa del aprovisionamiento y el escalado elástico de toda la infraestructura para abastecer cualquier rendimiento de datos. No es necesario que planifique, aprovisione ni administre infraestructura.
 
P: ¿Qué límites tiene Kinesis Data Analytics?
Kinesis Data Analytics ajusta la escala de la aplicación de manera elástica para adaptarse al procesamiento de datos de su secuencia de origen y al nivel de complejidad de su consulta en la mayoría de las situaciones. Si desea obtener información detallada acerca de los límites del servicio, consulte la sección Limites en la Guía del desarrollador SQL de Amazon Kinesis Data Analytics. Si desea obtener información detallada acerca de los límites del servicio, consulte la sección Limites en la Guía del desarrollador Java de Amazon Kinesis Data Analytics.

Conceptos clave

P: ¿Qué es una aplicación de Kinesis Data Analytics?
Una aplicación es la entidad de Kinesis Data Analytics con la que trabaja. Las aplicaciones de Kinesis Data Analytics leen y procesan datos de streaming en tiempo real de forma constante. Usted escribe un código de aplicación en SQL o Java para procesar los datos de streaming entrantes y producir elementos de salida. A continuación, Kinesis Data Analytics escribe los elementos de salida en un destino configurado.
 
Cada aplicación posee tres componentes principales:
 
Entrada: el origen de streaming de su aplicación. En la configuración de entrada, usted asigna el origen de streaming a streaming de datos en la aplicación. Los datos fluyen desde su origen de datos hacia sus streaming de datos en la aplicación. Se procesan los datos de estos streaming de datos en la aplicación al utilizar el código de la aplicación, enviar datos procesados a sus streaming posteriores de datos o destinos en la aplicación. Puede agregar entradas dentro del código de aplicación para las aplicaciones Java y a través de la API para aplicaciones SQL.
 
Código de aplicación: una serie de operadores Java o enunciados SQL que procesan entradas y producen salidas. En su forma más simple, el código de la aplicación puede ser un único operador de Java o enunciado SQL que lee a partir de un streaming de datos en la aplicación asociado con un origen de streaming y escribe en un streaming de datos en la aplicación asociado con un elemento de salida. Puede escribir un código SQL o Java que divide los datos iniciales en la aplicación en varios streaming y aplica una lógica adicional para estas secuencias independientes.
 
Salida: puede crear una o más streaming en la aplicación para guardar resultados intermedios. Además, como opción, puede configurar la salida de una aplicación para que envíe datos de streaming en la aplicación específicos a un destino externo. Puede agregar estas salidas dentro del código de aplicación para las aplicaciones Java y a través de la API para aplicaciones SQL.
 
P: ¿Qué es un streaming de datos en la aplicación?
Un streaming de datos en la aplicación es una entidad que almacena datos de forma constante en la aplicación, para que pueda realizar procesos. Sus aplicaciones continuamente escriben y leen streaming de datos en la aplicación. Para las aplicaciones Java, puede interactuar con la secuencia en la aplicación mediante datos de procesamiento a través de los operadores de secuencia. Los operadores transforman uno o más streaming de datos en una nueva secuencia de datos. Para las aplicaciones SQL, la interacción con la secuencia en la aplicación es la misma que con una tabla SQL al utilizar enunciados SQL. Puede aplicar enunciados SQL a uno o más streaming de datos e insertar los resultados en una nueva secuencia de datos.
 
P: ¿Qué código de aplicación se admite?
Para las aplicaciones Java, Kinesis Data Analytics admite aplicaciones Java generadas con Apache Flink y los SDK de AWS. Para las aplicaciones SQL, Kinesis Data Analytics admite ANSI SQL con algunas extensiones al SQL estándar para facilitar el trabajo con datos de streaming.

Administración de aplicaciones

P: ¿Cómo puedo monitorizar las operaciones y el rendimiento de mis aplicaciones de Kinesis Data Analytics?
AWS proporciona varias herramientas que puede utilizar para monitorizar sus aplicaciones de Kinesis Data Analytics. Puede configurar algunas de estas herramientas para que realicen la monitorización por usted. Para obtener más información sobre cómo monitorizar su aplicación, consulte:
 
P: ¿Cómo puedo administrar y controlar el acceso a mis aplicaciones de Kinesis Data Analytics?
Kinesis Data Analytics necesita permisos para leer los registros de los orígenes de datos de streaming que especifique en su aplicación. Kinesis Data Analytics también necesita permisos para escribir los elementos de salida de su aplicación en los destinos que especifique en la configuración de salida de la aplicación. Para conceder los permisos, debe crear roles de IAM que Kinesis Data Analytics pueda asumir. Los permisos que conceda a un rol determinarán lo que Kinesis Data Analytics podrá hacer cuando el servicio asuma el rol. Para obtener más información, consulte:
 
P: ¿De qué manera Kinesis Data Analytics ajusta la escala de mi aplicación?
Kinesis Data Analytics ajusta la escala de su aplicación de manera elástica para adaptarse al procesamiento de datos de su transmisión de origen y al nivel de complejidad de su consulta en la mayoría de los casos. Kinesis Data Analytics aprovisiona capacidad mediante unidades de procesamiento de Amazon Kinesis (KPU). Una KPU le proporciona 1 vCPU y 4 GB de memoria.
 
Pata las aplicaciones Java, Kinesis Data Analytics asigna 50 GB de almacenamiento de aplicaciones en ejecución por KPU que utiliza la aplicación para los puntos de control y está disponible para su uso a través de disco temporal. Un punto de control es una copia de seguridad actualizada de una aplicación en ejecución que se utiliza para recuperar inmediatamente una interrupción de la aplicación. También puede controlar la ejecución en paralelo para sus tareas de la aplicación Java de Kinesis Data Analytics (como la lectura de una fuente o un operador de ejecución) mediante los parámetros Parallelism y ParallelismPerKPU en la API. El parámetro Parallelism define el número de instancias simultáneas de una tarea. Todos los operadores, las fuentes y los receptores se ejecutan con un paralelismo definido, de forma predeterminada 1. ParallelismperKPU define la cantidad del número de tareas paralelas que se pueden programar por cada Unidad de procesamiento de Kinesis (KPU) de su aplicación, de forma predeterminada 1. Para obtener más información, consulte Escalado en la Guía del desarrollador Java de Amazon Kinesis Data Analytics.
 
Para las aplicaciones SQL, cada origen de streaming se asigna a la secuencia correspondiente en la aplicación. Si bien no es necesario para muchos clientes, puede usar las KPU de forma más eficaz si incrementa la cantidad de secuencias en la aplicación asignadas a su origen mediante la especificación del parámetro de paralelismo de entrada. Kinesis Data Analytics asigna las particiones del origen de datos de streaming de manera uniforme, como los fragmentos de una secuencia de datos de Amazon Kinesis, a la cantidad de secuencias de datos en aplicación que haya especificado. Por ejemplo, si el origen de datos de streaming es una secuencia de datos de Amazon Kinesis de 10 fragmentos y especifica un paralelismo de entrada de dos, Kinesis Data Analytics asignará cinco fragmentos de Amazon Kinesis a dos secuencias en aplicación con los nombres "SOURCE_SQL_STREAM_001" y "SOURCE_SQL_STREAM_002". Para obtener más información, consulte la sección Configuración de la entrada de la aplicación en la Guía del desarrollador SQL de Amazon Kinesis Data Analytics.
 
P: ¿Cuáles son las prácticas recomendadas asociadas con la creación y la administración de mis aplicaciones de Kinesis Data Analytics?
Para información sobre las mejores prácticas para SQL, vea la sección de Mejores Prácticas de Amazon Kinesis Data Analytics para la guía del desarrollador de SQL. La sección cubre la administración de aplicaciones, definición de esquema de entrada, conexión de salida y autoría de código de aplicación.
 
Para información sobre las mejores prácticas para Java, vea la sección de Mejores Prácticas de Amazon Kinesis Data Analytics para la guía del desarrollador de Java. La sección cubre las mejores prácticas para la tolerancia a fallas, rendimiento, registro, codificación y más.
 
P: ¿Puedo acceder a recursos detrás de una Amazon VPC con una aplicación Java de Kinesis Data Analytics??
Sí. Puede obtener acceso a los recursos que hay detrás de una Amazon VPC. Puede aprender a configurar su aplicación para el acceso a una VPC en la sección Uso de una Amazon VPC de la guía del desarrollador de Amazon Kinesis Data Analytics.
 
P: ¿Puede una única aplicación de Java de Kinesis Data Analytics tener acceso a múltiples VPC?
No. Si se especifican varias subredes, todas ellas deben estar en la misma VPC. Puede conectarse a otras VPC interconectando las VPC.
 
P: ¿Puede una aplicación de Java de Kinesis Data Analytics conectada a una VPC también poder acceder a Internet y a los puntos de enlace del servicio de AWS?
Kinesis Data Analytics para aplicaciones de Java configuradas para obtener acceso a los recursos de una VPC determinada no tendrán acceso a Internet como configuración predeterminada. Puede aprender a configurar el acceso a Internet para su aplicación en la sección Acceso a Internet y servicio de la guía del desarrollador de Amazon Kinesis Data Analytics.  

Precios y facturación

P: ¿Cuánto cuesta Kinesis Data Analytics?
Con Amazon Kinesis Data Analytics paga únicamente por lo que usa. Amazon Kinesis Data Analytics no conlleva el aprovisionamiento de recursos ni costos iniciales.
 
Se le cobra una tarifa por hora en función de la cantidad de unidades de procesamiento de Amazon Kinesis (o KPU) que utilice para ejecutar su aplicación de streaming. Una sola KPU es una unidad de capacidad de procesamiento de secuencias compuesta de 1 vCPU de capacidad informática y 4 GB de memoria. Amazon Kinesis Data Analytics escala automáticamente el número de KPUs requerido por su aplicación de procesamiento de secuencias, tales como las demandas de memoria y cómputo varían en respuesta a la complejidad del procesamiento y la velocidad de datos de streaming procesados.
 
Para las aplicaciones Java, pagará una KPU adicional única por aplicación, que se utilice para la organización de aplicaciones. En las aplicaciones Java también paga por el almacenamiento de aplicaciones en ejecución y copias de seguridad de aplicaciones duraderas. El almacenamiento de aplicaciones en ejecución se utiliza para capacidades de procesamiento con estado de Amazon Kinesis Data Analytics, y se paga por GB/mes. Las copias de seguridad de aplicaciones duraderas son opcionales, se pagan por GB/mes y proporcionan un punto de recuperación a un momento dado.
 
Para obtener más información sobre los precios, consulte la página de precios de Amazon Kinesis Data Analytics.
 
P: ¿Kinesis Data Analytics está disponible dentro de la capa gratuita de AWS?
No. En la actualidad, Kinesis Data Analytics no está disponible dentro de la capa gratuita de AWS. La capa gratuita de AWS es un programa que ofrece pruebas gratuitas de varios servicios de AWS.
 
P: ¿Se me cobraría una aplicación de Kinesis Data Analytics que estuviera en ejecución pero no procesase ningún dato del origen?
Para las aplicaciones SQL, si la aplicación de Kinesis Data Analytics está en ejecución, se le cobrará un mínimo de una KPU. Para las aplicaciones Java, si la aplicación de Kinesis Data Analytics está en ejecución, se le cobrará un mínimo de dos KPU y 50 GB.
 
P: Además de los costos de Kinesis Data Analytics, ¿podría incurrir en otros costos?
Kinesis Data Analytics es una solución de procesamiento de secuencia completamente administrada, independiente del origen de streaming del que lea datos y de los destinos en los que escriba los datos procesados. Se le cobrará de manera independiente por los servicios que lea o escriba en su aplicación.

Creación de aplicaciones Java

Creación de código de aplicación para aplicaciones Java

P: ¿Qué es Apache Fink?
Apache Flink es un motor y marco de código abierto para el procesamiento de datos de lote y de streaming. Esto facilita la creación de aplicaciones de streaming, porque proporciona operadores potentes y resuelve muy bien los principales problemas de streaming, tales como el procesamiento duplicado. Apache Flink proporciona distribución de datos, comunicación y tolerancia a fallos para cálculos distribuidos a lo largo de secuencia de datos.
 
P: ¿Cómo puedo desarrollar aplicaciones?
Puede empezar por descargar las bibliotecas de código abierto que incluyen el SDK de AWS, Apache Flink, y conectores para servicios de AWS. Puede obtener instrucciones sobre cómo descargar las bibliotecas y crear su primera aplicación en la Guía del desarrollador Java de Amazon Kinesis Data Analytics.
 
P: ¿Qué aspecto tiene el código de mi aplicación?
Puede escribir su código Java utilizando streaming de datos y operadores de secuencia. Las secuencias de datos de la aplicación son la estructura de datos con la que puede realizar el procesamiento en lugar de utilizar su código Java. Los datos fluyen de manera continua desde las fuentes hacia las secuencias de datos de aplicaciones. Se utilizan uno o dos operadores de secuencias para definir el procesamiento de secuencias de datos de la aplicación, incluidos la transformación, la partición, el agregado, la cadena y la ventana. La secuencia de datos y los operadores pueden estar juntas en cadenas en serie y paralelas. A continuación se muestra un breve ejemplo del uso de un pseudocódigo.
DataStream <GameEvent> rawEvents = env.addSource(
	New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
	rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId, 
			event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
            .keyBy(1)
            .window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
            .apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
P: ¿¿Cómo puedo utilizar los operadores?
Los operadores toman un streaming de datos de la aplicación como entrada y envían los datos procesados a un streaming de datos de la aplicación como salida. Los operadores se pueden poner juntos para construir aplicaciones con varios pasos y no requieren conocimientos avanzados de sistemas distribuidos para la implementación y el funcionamiento.
 
P: ¿Qué operadores se admiten?
Kinesis Data Analytics para Java incluye más de 25 operadores de Apache Flink que pueden utilizarse para resolver una amplia variedad de casos de uso, incluidos Map, KeyBy, Aggregations, Window Join, y Window. Map permite realizar procesamiento arbitrario, al tomar un elemento de un streaming de datos de entrada y producir otro elemento. KeyBy organiza lógicamente los datos mediante una clave específica que le permite procesar puntos de datos similares juntos. Aggregations realiza el procesamiento a través de múltiples claves como SUM, MIN y MÁX. Window Join une dos streaming de datos juntos en una clave y ventana determinadas. Window agrupa fechas mediante una clave y una operación típicamente basada en el tiempo, como contar el número de elementos únicos durante un período de 5 minutos.
 
Puede crear operadores personalizados si estos no satisfacen sus necesidades. Puede encontrar más ejemplos en la sección Operadores de la Guía del desarrollador Java de Amazon Kinesis Data Analytics. Puede encontrar un listado detallado de los operadores de Apache Flink en la sección Operadores de la documentación de Apache Flink.
 
P: ¿Qué integraciones se admiten en una aplicación Java de Kinesis Data Analytics?
Puede configurar integraciones predeterminadas con código mínimo o construir su propia integración para conectarse virtualmente a cualquier origen de datos. Las bibliotecas de código abierto basadas en Apache Flink admiten fuentes y destinos de streaming, o receptores, para la entrega de datos de proceso. Esto también incluye soporte para el enriquecimiento de los datos a través de conectores de entrada/salida asíncrona. A continuación se muestra un listado de conectores específicos incluidos en las bibliotecas de código abierto.
  • Origen de datos de streaming: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams
  • Destinos o receptores: Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service y Amazon S3 (a través de integraciones de receptores de archivo).
 
Apache Flink también incluye otros conectores, incluidos Apache Kafka, Apache Casssandra, Elasticsearch, y más.
 
P: ¿Es posible admitir integraciones personalizadas?
Puede agregar un origen o un destino para su aplicación aprovechando un conjunto de primitivas que permiten leer y escribir archivos, directorios, sockets, o cualquier cosa a la que puede tener acceso a través de Internet. Flink Apache proporciona estas primitivas para fuentes de datos y receptores de datos. Las primitivas vienen con configuraciones como la capacidad de leer y escribir datos de forma continua o una vez, de manera asincrónica o sincrónica, y mucho más. Por ejemplo, puede configurar una aplicación para leer de forma continua desde Amazon S3 mediante la ampliación de la actual integración de origen basada en archivos.
 
P: ¿Qué modelo de entrega proporciona Kinesis Data Analytics para aplicaciones Java?
Las aplicaciones Java en Kinesis Data Analytics usan un modelo de entrega del tipo "exactamente una vez" si una aplicación está construida con operadores idempotentes, incluidas las fuentes y los receptores. Esto significa que los datos procesados afectarán los resultados posteriores una vez y sólo una vez Los puntos de control guardan el estado actual de la aplicación y permite que Kinesis Data Analytics para las aplicaciones Java recupere la posición de la aplicación para proporcionar la misma semántica como una ejecución sin errores. Los puntos de control para las aplicaciones Java se proporcionan a través de la funcionalidad de puntos de control de Apache Flink. De forma predeterminada, Kinesis Data Analytics para aplicaciones Java utiliza la semántica del tipo "exactamente una vez" de Apache Flink. La aplicación admitirá la semántica de procesamiento de exactamente una vez si diseña sus aplicaciones con fuentes, operadores y receptores que utilizan la semántica del tipo "exactamente una vez" de Apache Flink.
 
P: ¿Tengo acceso al almacenamiento local desde el almacenamiento de mi aplicación?
Sí. Kinesis Data Analytics para aplicaciones Java proporciona a su aplicación 50 GB de almacenamiento de aplicaciones en ejecución por cada unidad de procesamiento de Kinesis (KPU). Kinesis Data Analytics incrementa el almacenamiento con su aplicación. El almacenamiento de aplicaciones en ejecución se utiliza para guardar el estado de la aplicación mediante puntos de control. También es accesible al código de la aplicación para utilizarlo como disco temporal para el almacenamiento de datos en caché y cualquier otro propósito. Kinesis Data Analytics puede eliminar datos del almacenamiento de la aplicación en ejecución que no están guardados mediante puntos de control (por ejemplo, operadores, fuentes, receptores) en cualquier momento. Todos los datos almacenados en un almacenamiento de la aplicación en ejecución se cifran en reposo.
 
P: ¿Cómo realiza Kinesis Data Analytics para Java una copia de seguridad automática de mi aplicación?
Kinesis Data Analytics realiza automáticamente copias de seguridad del estado de su aplicación en ejecución mediante puntos de control e instantáneas. Los puntos de control guardan el estado actual de la aplicación y permite que Kinesis Data Analytics para las aplicaciones Java recupere la posición de la aplicación para proporcionar la misma semántica como una ejecución sin errores. Los puntos de control utilizan almacenamiento de aplicaciones en ejecución. Las instantáneas guardan un punto de recuperación en un momento dado para las aplicaciones. Las instantáneas utilizan copias de seguridad de aplicaciones duraderas.
 
P: ¿Qué son las instantáneas de la aplicación?
Las instantáneas le permiten crear y restaurar la aplicación a un punto anterior en el tiempo. Esto le permite mantener el estado de la aplicación anterior y restaurar su aplicación en cualquier momento. Puede controlar cómo sus instantáneas en cualquier momento dado se incrementan de cero a miles de instantáneas. Las instantáneas utilizan copias de seguridad de aplicaciones y Kinesis Data Analytics le cobra con base en el tamaño. Kinesis Data Analytics cifra los datos guardados en las instantáneas de manera predeterminada. Puede eliminar instantáneas individuales a través de la API o todas las instantáneas mediante la eliminación de su aplicación.
 
P: ¿Qué versiones de Apache Flink son compatibles?
Amazon Kinesis Data Analytics para aplicaciones Java es compatible con Apache Flink 1.6 y la versión 8 de Java.

Creación de aplicaciones SQL

Configuración de los elementos de entrada para aplicaciones SQL

P: ¿Qué elementos de entrada se admiten en una aplicación de Kinesis Data Analytics?
Las aplicaciones SQL en Kinesis Data Analytics admiten dos tipos de elementos de entrada: orígenes de datos de streaming y orígenes de datos de referencia. Un origen de datos de streaming consiste en datos que se generan de manera constante y que se envían a la aplicación para su procesamiento. Un origen de datos de referencia consiste en datos estáticos que su aplicación utiliza para enriquecer los datos procedentes de orígenes de streaming. Cada aplicación no puede tener más de un origen de datos de streaming ni más de un origen de datos de referencia. Una aplicación lee y procesa constantemente datos nuevos de orígenes de datos de streaming, incluidos Amazon Kinesis Data Streams o Amazon Kinesis Data Firehose. Una aplicación lee la totalidad de un origen de datos de referencia, incluida Amazon S3, para usarlo a fin de enriquecer el origen de datos de streaming mediante JOIN en SQL.
 
P: ¿Qué es un origen de datos de referencia?
Un origen de datos de referencia consiste en datos estáticos que su aplicación utiliza para enriquecer los datos procedentes de orígenes de streaming. Los datos de referencia se almacenan como objeto en el bucket de S3. Cuando se inicia la aplicación SQL, Kinesis Data Analytics lee el objeto de S3 y crea una tabla SQL en la aplicación para almacenar los datos de referencia. Entonces, el código de aplicación puede incorporarse con una secuencia en la aplicación. Puede actualizar los datos de la tabla SQL si llama a la API UpdateApplication.
 
P: ¿Cómo puedo configurar un origen de datos de streaming en mi aplicación SQL?
Un origen de datos de streaming puede ser una transmisión de datos de Amazon Kinesis o una transmisión de entrega de Amazon Kinesis Data Firehose. Su aplicación de Kinesis Data Analytics lee constantemente nuevos datos provenientes de los orígenes de datos de streaming a medida que llegan en tiempo real. Se puede obtener acceso a los datos del código SQL mediante una secuencia en la aplicación. Una transmisión en la aplicación actúa a modo de tabla SQL, ya que puede crear, introducir y seleccionar datos. Sin embargo, la diferencia es que una transmisión en la aplicación se actualiza constantemente con datos nuevos del origen de datos de streaming.
 
Puede utilizar la consola de administración de AWS para añadir un origen de datos de streaming. Puede obtener más información sobre los orígenes en la sección Configuración de la entrada de la aplicación de la Guía del desarrollador SQL de Kinesis Data Analytics.
 
P: ¿Cómo puedo configurar un origen de datos de referencia en mi aplicación SQL?
Un origen de datos de referencia puede ser un objeto de Amazon S3. Su aplicación SQL de Kinesis Data Analytics lee el objeto de S3 por completo cuando comienza a ejecutarse. Se puede obtener acceso a los datos del código SQL mediante una tabla. El caso de uso más común de un origen de datos de referencia es enriquecer los datos provenientes de un origen de datos de streaming con JOIN en SQL.
 
Con la CLI de AWS, puede añadir un origen de datos de referencia mediante la especificación del bucket de S3, el objeto, la función de IAM y el esquema asociado. Kinesis Data Analytics carga los datos cuando inicia la aplicación, y los vuelve a cargar cada vez que realiza una llamada a la API de actualización.
 
P: ¿Qué formatos de datos se admiten para las aplicaciones SQL?
Las aplicaciones SQL en Kinesis Data Analytics pueden detectar el esquema y analiza de manera automática los registros CSV y JSON cifrados con UTF-8 con la API DiscoverInputSchema. Este esquema se aplica a los datos leídos de la secuencia como parte de la inserción en una secuencia en la aplicación.
 
Para otros datos cifrados con UTF-8 sin delimitador, utiliza un delimitador distinto de CSV o, en casos en los que la API de descubrimiento no ha determinado el esquema en su totalidad, puede definir un esquema con el editor de esquemas interactivo o utilizar funciones de manipulación de cadenas para estructurar los datos. Para obtener más información, consulte la sección Cómo usar la característica de detección de esquemas y las modificaciones asociadas de la Guía del desarrollador SQL de Amazon Kinesis Data Analytics.
 
P: ¿Cómo se expone mi secuencia de entrada al código SQL?
Kinesis Data Analytics para SQL aplica el esquema que haya especificado e introduce los datos en una o más secuencias de la aplicación para orígenes de streaming, y en una sola tabla SQL para los orígenes de referencia. El número predeterminado de secuencias en aplicación es el que satisfaga las necesidades de la mayoría de sus casos de uso. Debería incrementarlo si cree que su aplicación no mantiene el ritmo de los datos más recientes de la transmisión de origen, definida por la métrica MillisBehindLatest de CloudWatch. La cantidad de transmisiones en aplicación necesarias depende del nivel de desempeño de su transmisión de origen y la complejidad de su consulta. El parámetro para especificar la cantidad de transmisiones en aplicación asignadas a su transmisión de origen se denomina paralelismo de entrada.

Creación de código de aplicación para aplicaciones SQL

P: ¿Qué aspecto tiene el código de mi aplicación SQL?
El código de la aplicación es una serie de enunciados SQL que procesan entradas y producen salidas. Estos enunciados SQL operan en transmisiones en aplicación y tablas de referencia. Una transmisión en aplicación es similar a una tabla que se actualiza de forma constante en la que realiza operaciones SQL SELECT e INSERT. Sus orígenes y destinos configurados están expuestos al código SQL mediante transmisiones en aplicación. También puede crear transmisiones en aplicación adicionales para almacenar resultados de consultas intermedios.
 
Puede utilizar el siguiente patrón para trabajar con transmisiones en aplicación:
  • Utilice siempre un enunciado SELECT en el contexto de un enunciado INSERT. Cuando selecciona filas, introduce resultados en otra transmisión en aplicación.
  • Utilice un enunciado INSERT en el contexto de una bomba. Utiliza una bomba para hacer que un enunciado INSERT sea continuo, y escribir a una transmisión en aplicación.
  • Utiliza una bomba para emparejar transmisiones en aplicación, seleccionando datos de una transmisión en aplicación e introduciéndolos en otra transmisión en aplicación.
 
El siguiente código SQL proporciona una aplicación sencilla y funcional:
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
    ticker_symbol VARCHAR(4),
    change DOUBLE,
    price DOUBLE);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
  INSERT INTO "DESTINATION_SQL_STREAM"    
    SELECT STREAM ticker_symbol, change, price    
    FROM "SOURCE_SQL_STREAM_001";
Para obtener más información acerca del código de aplicación, consulte la sección Código de la aplicación de la Guía del desarrollador SQL de Amazon Kinesis Data Analytics.
 
P: ¿Cómo me ayuda Kinesis Data Analytics con la escritura de código SQL?
Kinesis Data Analytics incluye una biblioteca de plantillas de análisis para casos de uso comunes, incluidos filtros de streaming, períodos de tiempo excedidos y detección de anomalías. Puede obtener acceso a estas plantillas desde el editor de SQL en la consola de administración de AWS. Después de crear una aplicación y dirigirse al editor de SQL, las plantillas estarán disponibles en la esquina superior izquierda de la consola.
 
P: ¿Cómo puedo llevar a cabo la detección de anomalías en tiempo real en Kinesis Data Analytics?
Kinesis Data Analytics incluye funciones SQL integradas para varias tareas de análisis avanzado, incluida una para la detección de anomalías. Puede realizar una llamada a esta función desde el código SQL para que detecte anomalías en tiempo real. Kinesis Data Analytics utiliza el algoritmo Random Cut Forest para implementar la detección de anomalías. Para obtener más información sobre Random Cut Forests, consulte el documento técnico Detección de anomalías en datos de streaming.

Configuración de destinos en aplicaciones SQL

P: ¿Qué destinos se admiten?
Kinesis Data Analytics para SQL admite hasta cuatro destinos por aplicación. Puede almacenar resultados SQL en Amazon S3, Amazon Redshift y Amazon Elasticsearch Service (mediante Amazon Kinesis Data Firehose) y Amazon Kinesis Data Streams. Puede escribir en un destino que no sea compatible directamente con Kinesis Data Analytics mediante el envío de los resultados SQL a Amazon Kinesis Data Streams y el uso de la integración con AWS Lambda para enviarlos al destino que elija.
 
P: ¿Cómo puedo configurar un destino?
El código de la aplicación, escribe la salida de los enunciados SQL en una o más transmisiones en aplicación. De forma opcional, puede agregar una configuración de salida a su aplicación para enviar todo lo escrito en transmisiones en aplicación específicas hasta a cuatro destinos externos. Estos destinos externos pueden ser un bucket de Amazon S3, una tabla de Amazon Redshift, un dominio de Amazon Elasticsearch (mediante Amazon Kinesis Data Firehose) y un streaming de datos de Amazon Kinesis. Cada aplicación es compatible con hasta cuatro destinos, que pueden ser una combinación de los anteriores. Para obtener más información, consulte la sección Configuración de streaming de salida de la Guía del desarrollador SQL de Amazon Kinesis Data Analytics.
 
P: Mi destino de preferencia no se admite directamente. ¿Cómo puedo enviar resultados SQL a este destino?
Puede utilizar AWS Lambda para escribir en un destino que no se admite directamente. Le aconsejamos que escriba los resultados en una transmisión de datos de Amazon Kinesis y, a continuación, utilice AWS Lambda para leer los resultados procesados y enviarlos al destino de su elección. Para obtener más información, consulte la sección Ejemplo: Integración con AWS Lambda en la Guía del desarrollador SQL de Amazon Kinesis Data Analytics. Opcionalmente, puede utilizar una secuencia de entrega de Kinesis Data Firehose para cargar los datos en Amazon S3 y, a continuación, activar una función de AWS Lambda para leer los datos y enviarlos al destino que elija. Para obtener más información, consulte la sección Uso de AWS Lambda con Amazon S3 en la Guía para desarrolladores de AWS Lambda.
 
P: ¿Qué modelo de entrega proporciona Kinesis Data Analytics?
Las aplicaciones de SQL en Kinesis Data Analytics utilizan un modelo de entrega de "al menos una vez" para el elemento de salida de la aplicación en los destinos configurados. Las aplicaciones de Kinesis Data Analytics tienen puntos de control internos, que son momentos determinados en los que los registros de salida se entregaron al destino sin que se haya producido ninguna pérdida de datos. El servicio utiliza los puntos de control necesarios para garantizar que los elementos de salida de la aplicación se entreguen al menos una vez en los destinos configurados. Para obtener más información sobre el modelo de entrega, consulte la sección Configuración de la salida de la aplicación en la Guía del desarrollador SQL de Amazon Kinesis Data Analytics.

Comparación con otras soluciones de procesamiento de streams

P: ¿Qué diferencias existen entre Amazon Kinesis Data Analytics y ejecutar mi propia aplicación con la biblioteca de clientes de Amazon Kinesis?
La biblioteca de clientes de Amazon Kinesis (KCL) es una biblioteca preintegrada que permite desarrollar aplicaciones de consumo para la lectura y el procesamiento de datos procedentes de un streaming de datos de Amazon Kinesis. La KCL se encarga de administrar las cuestiones complejas, como la adaptación a los cambios de volumen de la transmisión de datos, el equilibrio de carga de los datos de streaming, la coordinación de servicios distribuidos y el procesamiento de datos con tolerancia a errores. La KCL le permite concentrarse en la lógica de negocio al momento de desarrollar aplicaciones.
 
Con Kinesis Data Analytics, puede procesar los datos de streaming y realizar consultas en tiempo real. Puede utilizar SQL estándar para procesar las transmisiones de datos, sin necesidad de aprender ningún lenguaje de programación nuevo. Basta con apuntar Kinesis Data Analytics a una transmisión de datos de entrada, escribir las consultas en SQL y especificar dónde desea que se carguen los resultados. Kinesis Data Analytics utiliza la KCL para leer datos de orígenes de datos de streaming como parte de la aplicación subyacente. El servicio lo libera de esta tarea, así como de muchos de los conceptos más complejos relacionados con el uso de la KCL, como los puntos de control.
 
Si desea una solución completamente administrada y quiere utilizar SQL para procesar los datos de su transmisión de datos, debería utilizar Kinesis Data Analytics. Utilice la KCL si necesita crear una solución de procesamiento personalizada y Kinesis Data Analytics no satisface sus requisitos particulares. De ese modo, podrá administrar la aplicación de consumo resultante.

Acuerdo de nivel de servicios

P: ¿Qué se garantiza en el acuerdo de nivel de servicio de Amazon Kinesis Data Analytics?

Mediante el acuerdo de nivel de servicio de Amazon Kinesis Data Analytics se garantiza un porcentaje de tiempo de funcionamiento mensual de al menos 99,9 % Amazon Kinesis Data Analytics.

P: ¿Cómo sé si reúno los requisitos para recibir un crédito para el servicio del SLA?

Será elegible para recibir crédito del acuerdo para Amazon Kinesis Data Analytics bajo el acuerdo de Amazon Kinesis Data Analytics si más de una zona de disponibilidad en las que ejecuta una tarea, dentro de la misma región, tiene un porcentaje de tiempo de funcionamiento mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual.

Para obtener información completa sobre los términos y las condiciones del acuerdo, así como detalles sobre cómo enviar una reclamación, consulte la página con detalles del acuerdo de Amazon Kinesis.

Introducción a Amazon Kinesis Data Analytics

Product-Page_Standard-Icons_01_Product-Features_SqInk
Calcule sus costos

Visite la página de precios

Más información 
Product-Page_Standard-Icons_01_Product-Features_SqInk
Consulte la guía de introducción

Aprenda a usar Amazon Kinesis Data Analytics con esta guía paso a paso para SQL o Java.

Product-Page_Standard-Icons_03_Start-Building_SqInk
Comience a crear aplicaciones de streaming

Cree su primera aplicación de streaming a partir de la consola de Amazon Kinesis Data Analytics.