Creación de un lago de datos de Amazon Chime SDK - Amazon Chime SDK

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.

Creación de un lago de datos de Amazon Chime SDK

El lago de datos de análisis de SDK llamadas de Amazon Chime le permite transmitir información basada en el aprendizaje automático y cualquier metadato de Amazon Kinesis Data Stream a su bucket de Amazon S3. Por ejemplo, usar el lago de datos para acceder URLs a las grabaciones. Para crear el lago de datos, debe implementar un conjunto de AWS CloudFormation plantillas desde la SDK consola de Amazon Chime o mediante programación mediante. AWS CLI El lago de datos le permite consultar los metadatos de sus llamadas y los datos de análisis de voz haciendo referencia a las tablas de datos de AWS Glue en Amazon Athena.

Requisitos previos

Debes tener los siguientes elementos para crear un lago Amazon ChimeSDK:

Terminología y conceptos de lagos de datos

Utilice los siguientes términos y conceptos para comprender cómo funciona el lago de datos.

Amazon Kinesis Data Firehose

Un servicio de extracción, transformación y carga (ETL) que captura, transforma y entrega de forma fiable los datos de streaming a lagos de datos, almacenes de datos y servicios de análisis. Para obtener más información, consulte ¿Qué es Amazon Kinesis Data Firehose?.

Amazon Athena

Amazon Athena es un servicio de consultas interactivo que le permite analizar datos en Amazon S3 de forma estándar. SQL Athena funciona sin servidor, por lo que no hay una infraestructura para administrar y solo pagará por las consultas que ejecute. Para usar Athena, señale sus datos en Amazon S3, defina el esquema y utilice consultas estándarSQL. También puede usar grupos de trabajo para agrupar a los usuarios y controlar los recursos a los que tienen acceso cuando ejecutan consultas. Los grupos de trabajo le permiten administrar la simultaneidad de consultas y priorizar la ejecución de las consultas en diferentes grupos de usuarios y cargas de trabajo.

Catálogo de datos de Glue

En Amazon Athena, las tablas y bases de datos son contenedores de los metadatos que definen un esquema para los datos de origen subyacentes. Para cada conjunto de datos debe existir una tabla en Athena. Los metadatos de la tabla indican a Athena la ubicación del bucket de Amazon S3. También especifica la estructura de datos, como los nombres de las columnas, los tipos de datos y el nombre de la tabla. Las bases de datos solo contienen los metadatos y la información del esquema de un conjunto de datos.

Creación de lagos de datos

Se pueden crear varios lagos de datos proporcionando un nombre único de base de datos de Glue para especificar dónde almacenar la información sobre las llamadas. Para una AWS cuenta determinada, puede haber varias configuraciones de análisis de llamadas, cada una con su correspondiente lago de datos. Esto significa que la separación de datos se puede aplicar para determinados casos de uso, como la personalización de la política de retención y la política de acceso sobre cómo se almacenan los datos. Se pueden aplicar diferentes políticas de seguridad para el acceso a la información, las grabaciones y los metadatos.

Disponibilidad regional de lago de datos

El lago de SDK datos Amazon Chime está disponible en las siguientes regiones.

Región

Tabla de Glue

Amazon QuickSight

us-east-1

Disponible

Disponible

us-west-2

Disponible

Disponible

eu-central-1

Disponible

Disponible

Arquitectura de lagos de datos

En el siguiente diagrama se muestra la arquitectura de lago de datos. Los números del dibujo corresponden al texto numerado que aparece a continuación.

El programa fluye a través de un lago de datos.

En el diagrama, una vez que utilice la AWS consola para implementar la CloudFormation plantilla desde el flujo de trabajo de configuración del pipeline de Media Insights, los siguientes datos fluyen al bucket de Amazon S3:

  1. El análisis de SDK llamadas de Amazon Chime empezará a transmitir datos en tiempo real al Kinesis Data Stream del cliente.

  2. Amazon Kinesis Firehose almacena en búfer estos datos en tiempo real hasta que acumulen 128 mb o hasta que pasen 60 segundos, lo que ocurra primero. A continuación, Firehose utiliza el catálogo amazon_chime_sdk_call_analytics_firehose_schema de datos de Glue para comprimir los datos y transformar los JSON registros en un archivo de parquet.

  3. El archivo parquet se encuentra en su bucket de Amazon S3, en un formato particionado.

  4. Además de los datos en tiempo real, los archivos.wav de resumen de análisis de llamadas con Amazon Transcribe posteriores a la llamada (redactados y no redactados, si se especifica en la configuración) y los archivos.wav de grabación de llamadas también se envían a su bucket de Amazon S3.

  5. Puede utilizar Amazon Athena y el estándar SQL para consultar los datos del bucket de Amazon S3.

  6. La CloudFormation plantilla también crea un catálogo de datos de Glue para consultar estos datos resumidos posteriores a la llamada a través de Athena.

  7. Todos los datos del bucket de Amazon S3 también se pueden visualizar con Amazon QuickSight. QuickSight crea una conexión con un bucket de Amazon S3 mediante Amazon Athena.

La tabla Amazon Athena utiliza las siguientes características para optimizar el rendimiento de las consultas:

Particiones de datos

Las particiones dividen la tabla en partes y mantienen los datos relacionados juntos de acuerdo con propiedades como la fecha, el país o la región. Las claves de partición actúan como columnas virtuales. En este caso, la CloudFormation plantilla define las particiones al crear la tabla, lo que ayuda a reducir la cantidad de datos escaneados por consulta y mejora el rendimiento. También puede filtrar por partición para restringir la cantidad de datos escaneados por una consulta. Para obtener más información, consulte Particiones de datos en Athena en la Guía del usuario de Amazon Athena.

En este ejemplo se muestra la estructura de particiones con una fecha del 1 de enero de 2023:

  1. s3://example-bucket/amazon_chime_sdk_data_lake /serviceType=CallAnalytics/detailType={DETAIL_TYPE}/year=2023 /month=01/day=01/example-file.parquet
  2. donde DETAIL_TYPE es uno de los siguientes:

    1. CallAnalyticsMetadata

    2. TranscribeCallAnalytics

    3. TranscribeCallAnalyticsCategoryEvents

    4. Transcribe

    5. Recording

    6. VoiceAnalyticsStatus

    7. SpeakerSearchStatus

    8. VoiceToneAnalysisStatus

Optimizar la generación de almacenes de datos en columnas

Apache Parquet utiliza la compresión por columnas, la compresión basada en el tipo de datos y la compresión de predicados para almacenar los datos. Unos índices de compresión mejores o la omisión de bloques de datos implican leer menos bytes del bucket de Amazon S3. Esto conduce a un mejor rendimiento de las consultas y a una reducción de los costos. Para esta optimización, la conversión de datos de JSON a parquet está habilitada en Amazon Kinesis Data Firehose.

Proyección de particiones

Esta característica de Athena crea particiones automáticamente para cada día para mejorar el rendimiento de las consultas basadas en fechas.

Configuración del lago de datos

Utilice la SDK consola Amazon Chime para completar los siguientes pasos.

  1. Inicie la SDK consola Amazon Chime ( https://console.aws.amazon.com/chime-sdk/principal) y, en el panel de navegación, en Call Analytics, elija Configuraciones.

  2. Complete el paso 1, seleccione Siguiente y, en la página del paso 2, seleccione la casilla Análisis de voz.

  3. En Detalles de salida, seleccione la casilla Almacén de datos para realizar un análisis histórico y, a continuación, seleccione el enlace Implementar CloudFormation pila.

    El sistema lo envía a la página de creación rápida de pilas en la CloudFormation consola.

  4. Indique un nombre para la pila y, a continuación, los siguientes parámetros:

    1. DataLakeType— Elija Crear análisis de llamadas DataLake.

    2. KinesisDataStreamName— Seleccione su transmisión. Debe ser la transmisión utilizada para la transmisión de análisis de llamadas.

    3. S3BucketURI— Seleccione su bucket de Amazon S3. URIDebe tener el prefijo s3://bucket-name

    4. GlueDatabaseName— Elige un nombre único para la base de datos AWS Glue. No puede reutilizar una base de datos existente en la AWS cuenta.

  5. Seleccione la casilla de confirmación y, a continuación, seleccione Crear lago de datos. Espere 10 minutos para que el sistema cree el lago.

Configuración del lago de datos mediante AWS CLI

Se usa AWS CLI para crear un rol con permisos para llamar a CloudFormation la pila de creación. Siga el procedimiento que se indica a continuación para crear y configurar los IAM roles. Para obtener más información, consulte Creación de una pila en la Guía del AWS CloudFormation usuario.

  1. Cree un rol denominado AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role y adjunte una política de confianza al rol que permita asumirlo. CloudFormation

    1. Cree una política de IAM confianza con la siguiente plantilla y guarde el archivo en formato.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
    2. Ejecute el comando aws iam create-role y pase la política de confianza como parámetro.

      aws iam create-role \ --role-name AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role --assume-role-policy-document file://role-trust-policy.json
    3. Anote el ARN de rol que devuelve la respuesta. Se requiere un ARN de rol en el siguiente paso.

  2. Crea una política con permiso para crear una CloudFormation pila.

    1. Cree una IAM política con la siguiente plantilla y guarde el archivo en formato.json. Este archivo es obligatorio para llamar a create-policy.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "DeployCloudFormationStack", "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*" } ] }
    2. Ejecute aws iam create-policy y pase la política de creación de pila como parámetro.

      aws iam create-policy --policy-name testCreateStackPolicy --policy-document file://create-cloudformation-stack-policy.json
    3. Anote el ARN de rol que devuelve la respuesta. Se requiere un ARN de rol en el siguiente paso.

  3. Asocie la política de aws iam attach-role-policy al rol.

    aws iam attach-role-policy --role-name {Role name created above} --policy-arn {Policy ARN created above}
  4. Cree una CloudFormation pila e introduzca los parámetros necesarios:aws cloudformation create-stack.

    Proporcione los valores de los parámetros para cada ParameterKey uso ParameterValue.

    aws cloudformation create-stack --capabilities CAPABILITY_NAMED_IAM --stack-name testDeploymentStack --template-url https://chime-sdk-assets.s3.amazonaws.com/public_templates/AmazonChimeSDKDataLake.yaml --parameters ParameterKey=S3BucketURI,ParameterValue={S3 URI} ParameterKey=DataLakeType,ParameterValue="Create call analytics datalake" ParameterKey=KinesisDataStreamName,ParameterValue={Name of Kinesis Data Stream} --role-arn {Role ARN created above}

Recursos creados por la configuración del lago de datos

La siguiente tabla muestra los recursos que se crean al crear un lago de datos.

Tipo de recurso

Nombre y descripción del recurso

Nombre del servicio

AWSBase de datos del catálogo de datos de Glue

GlueDatabaseName— Agrupa de forma lógica todas las tablas de AWS Glue Data que pertenecen a la información de llamadas y al análisis de voz.

Análisis de llamadas, análisis de voz

AWSTablas del catálogo de datos de Glue

amazon_chime_sdk_call_analytics_firehose_schema: esquema combinado para el análisis de llamadas y el análisis de voz que se envía a la Kinesis Firehose.

Análisis de llamadas, análisis de voz

call_analytics_metadata: esquema para los metadatos de análisis de llamadas. Contiene SIPmetadata y OneTimeMetadata.

Análisis de llamadas

call_analytics_recording_metadata: esquema para los metadatos de grabación y mejora de la voz Análisis de llamadas, análisis de voz

transcribe_call_analytics: esquema para la carga útil «» TranscribeCallAnalytics utteranceEvent

Análisis de llamadas

transcribe_call_analytics_category_events — Esquema para la carga útil «» TranscribeCallAnalytics categoryEvent

Análisis de llamadas

transcribe_call_analytics_post_call: esquema para la carga útil resumida de análisis posterior a la llamada y transcripción de la llamada

Análisis de llamadas

transcribe_ esquema para la carga útil de Transcribe

Análisis de llamadas

voice_analytics_status: esquema para eventos preparados para el análisis de voz

Análisis de voz

speaker_search_status: esquema para las coincidencias de identificación

Análisis de voz

voice_tone_analysis_status: esquema para eventos de análisis del tono de voz

Análisis de voz

Amazon Kinesis Data Firehose

AmazonChimeSDK-call-analytics-UUID— Datos de canalización de Kinesis Data Firehose para el análisis de llamadas

Análisis de llamadas, análisis de voz

Grupo de trabajo de Amazon Athena

GlueDatabaseName- AmazonChime SDKDataAnalytics — Grupo lógico de usuarios para controlar los recursos a los que tienen acceso cuando ejecutan consultas.

Análisis de llamadas, análisis de voz