Ejemplo: Agregar datos de referencia a una aplicación de Kinesis Data Analytics - Guía para desarrolladores de aplicaciones de Amazon Kinesis Data Analytics para SQL

Para proyectos nuevos, le recomendamos que utilice el nuevo servicio gestionado para Apache Flink Studio en lugar de aplicaciones de Kinesis Data Analytics para SQL. El servicio gestionado para Apache Flink Studio combina la facilidad de uso con capacidades analíticas avanzadas, lo que le permite crear aplicaciones sofisticadas de procesamiento de flujos en cuestión de minutos.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo: Agregar datos de referencia a una aplicación de Kinesis Data Analytics

En este ejercicio añadirá datos de referencia a una aplicación de Kinesis Data Analytics existente. Para obtener información sobre los datos de referencia, consulte los siguientes temas:

En este ejercicio, añadirá los datos de referencia a la aplicación que creó en el ejercicio de introducción de Kinesis Data Analytics. Los datos de referencia proporcionan el nombre de la empresa para cada símbolo de cotización (ticker); por ejemplo:

Ticker, Company AMZN,Amazon ASD, SomeCompanyA MMB, SomeCompanyB WAS, SomeCompanyC

En primer lugar, complete los pasos del ejercicio de introducción para crear una aplicación inicial. A continuación, siga estos pasos para configurar y añadir datos de referencia a la aplicación:

  1. Prepare los datos.

    • Guarde los datos de referencia anteriores como un objeto en Amazon Simple Storage Service (Amazon S3).

    • Cree un rol de IAM, que Kinesis Data Analytics pueda asumir para leer el objeto de Amazon S3 en su nombre.

  2. Añada la fuente de los datos de referencia a su aplicación.

    Kinesis Data Analytics lee el objeto de Amazon S3 y crea una tabla de referencia en la aplicación que se puede consultar en el código de la aplicación.

  3. Pruebe el código.

    En el código de la aplicación, escriba una consulta de combinación para unir la secuencia en la aplicación con la tabla de referencia en la aplicación con el fin de obtener el nombre de la empresa para cada símbolo de cotización.

Paso 1: Preparación

En esta sección, almacenará los datos de referencia de muestra como un objeto en un bucket de Amazon S3. También, creará un rol de IAM que Kinesis Data Analytics pueda asumir para leer el objeto en su nombre.

Almacenamiento de datos de referencia como un objeto de Amazon S3

En este paso, almacenará los datos de referencia de muestra como un objeto de Amazon S3.

  1. Abra un editor de texto, añada los siguientes datos y guarde el archivo como TickerReference.csv.

    Ticker, Company AMZN,Amazon ASD, SomeCompanyA MMB, SomeCompanyB WAS, SomeCompanyC

  2. Cargue el archivo TickerReference.csv en el bucket de S3. Para ver las instrucciones, consulte Carga de objetos en Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.

Creación de un rol de IAM

A continuación, cree un rol de IAM que Kinesis Data Analytics pueda asumir y lea el objeto de Amazon S3.

  1. En AWS Identity and Access Management (IAM), cree un rol de IAM denominado KinesisAnalytics-ReadS3Object. Para crear el rol, siga las instrucciones que se describen en Creación de un rol para un servicio de Amazon (AWS Management Console) en la Guía del usuario de IAM.

    En la consola de IAM, especifique lo siguiente:

    • En Seleccionar tipo de rol, elija AWS Lambda. Después de crear el rol, cambie la política de confianza para permitir que Kinesis Data Analytics (no AWS Lambda) asuma el rol.

    • No asigne ninguna política en la página Attach Policy.

  2. Actualice las políticas de roles de IAM:

    1. En la consola de IAM, elija el rol que ha creado.

    2. En la pestaña Relaciones de confianza, actualice la política de confianza para conceder permisos a Kinesis Data Analytics para asumir el rol. La política de confianza se muestra tras:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanalytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    3. En la pestaña Premisos, asigne una política administrada de Amazon denominada AmazonS3ReadOnlyAccess. Esto concede permisos al rol para leer un objeto de Amazon S3. Esta política se muestra a continuación:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "*" } ] }

Paso 2: Añadir el origen de datos de referencia a la configuración de la aplicación

En este paso, añadirá un origen de datos de referencia a la configuración de la aplicación. Para comenzar, necesitará la siguiente información:

  • El nombre del bucket de S3 y el nombre de la clave de objeto

  • El nombre de recurso de Amazon (ARN) del rol de IAM

  1. En página principal de la aplicación, elija Connect reference data (Conectar datos de referencia).

  2. En la página Conectar el origen de datos de referencia, elija el bucket de Amazon S3 que contiene el objeto de datos de referencia y escriba el nombre de la clave del objeto.

  3. Escriba CompanyName como In-application reference table name (Nombre de tabla de referencia en la aplicación).

  4. En la sección Access to chosen resources (Obtener acceso a los recursos seleccionados), seleccione Choose from IAM roles that Kinesis Analytics can assume (Elegir entre las funciones de IAM que Kinesis Analytics puede asumir) y elija la función de IAM KinesisAnalytics-ReadS3Object que creó en la sección anterior.

  5. Elija Discover schema (Detectar esquema). La consola detecta dos columnas en los datos de referencia.

  6. Elija Save and close.

Paso 3: Prueba: Consultar la tabla de referencia en la aplicación

Ahora, puede consultar la tabla de referencia en la aplicación, CompanyName. Puede utilizar la información de referencia para mejorar la aplicación uniendo los datos de precio de cotización con la tabla de referencia. El resultado muestra el nombre de la compañía.

  1. Reemplace el código de la aplicación por lo siguiente. La consulta une la secuencia de entrada en la aplicación con la tabla de referencia en la aplicación. El código de la aplicación escribe los resultados en otra secuencia en la aplicación, DESTINATION_SQL_STREAM.

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), "Company" varchar(20), sector VARCHAR(12), change DOUBLE, price DOUBLE); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM ticker_symbol, "c"."Company", sector, change, price FROM "SOURCE_SQL_STREAM_001" LEFT JOIN "CompanyName" as "c" ON "SOURCE_SQL_STREAM_001".ticker_symbol = "c"."Ticker";
  2. Compruebe que la salida de la aplicación aparezca en la pestaña SQLResults. Asegúrese de que algunas de las filas muestren nombres de empresas (no todos los datos de referencia de muestra tienen nombres de empresas).