

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
<a name="ca-data-lake"></a>

El lago de datos de análisis de llamadas de Amazon Chime SDK le permite transmitir información basada en el machine learning y cualquier metadato de Amazon Kinesis Data Streams a su bucket de Amazon S3. Por ejemplo, usar el lago de datos para acceder a las URL de las grabaciones. Para crear el lago de datos, debe implementar un conjunto de AWS CloudFormation plantillas desde la consola del SDK 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.

**Topics**
+ [Requisitos previos](#data-lake-prereqs)
+ [Terminología y conceptos de lagos de datos](#data-lake-terms)
+ [Creación de lagos de datos](#creating-multiple-data-lakes)
+ [Disponibilidad regional de lago de datos](#data-lake-regions)
+ [Arquitectura de lagos de datos](#data-lake-architecture)
+ [Configuración del lago de datos](#data-lake-setup)

## Requisitos previos
<a name="data-lake-prereqs"></a>

Debe tener los siguientes elementos para crear un lago de Amazon Chime SDK:
+ Un Amazon Kinesis Data Streams. Para obtener más información, consulte [Creación de una transmisión mediante la consola de administración de AWS](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-create-a-stream.html) en la *Guía para desarrolladores de Amazon Kinesis Streams*.
+ Un bucket de S3. Para obtener más información, consulte [Cómo crear su primer bucket de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) en la *Guía del usuario de Amazon S3*.

## Terminología y conceptos de lagos de datos
<a name="data-lake-terms"></a>

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 datos de manera fiable 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 consulta interactivo que le permite analizar datos en Amazon S3 usando SQL estándar. 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 SQL estándar. 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
<a name="creating-multiple-data-lakes"></a>

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
<a name="data-lake-regions"></a>

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


| Region | Tabla de Glue | Quick | 
| --- | --- | --- | 
| us-east-1 | Disponible | Disponible | 
| us-west-2 | Disponible | Disponible | 
| eu-central-1 | Disponible | Disponible | 

## Arquitectura de lagos de datos
<a name="data-lake-architecture"></a>

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.](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/call-analytics-data-lake-architecture.png)


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 llamadas de Amazon Chime SDK empezará a transmitir datos en tiempo real al flujo de datos de Kinesis del cliente. 

1. 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 `amazon_chime_sdk_call_analytics_firehose_schema` en el catálogo de datos de Glue para comprimir los datos y transformar los registros JSON en un archivo tipo parquet.

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

1. 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. 

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

1. 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.

1. Todos los datos del bucket de Amazon S3 también se pueden visualizar con Quick. 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](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) 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
   ```

1. donde `DETAIL_TYPE` es uno de los siguientes:

   1. `CallAnalyticsMetadata`

   1. `TranscribeCallAnalytics`

   1. `TranscribeCallAnalyticsCategoryEvents`

   1. `Transcribe`

   1. `Recording`

   1. `VoiceAnalyticsStatus`

   1. `SpeakerSearchStatus`

   1. `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
<a name="data-lake-setup"></a>

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

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

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

1. 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.

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

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

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

   1. `S3BucketURI`— Seleccione su bucket de Amazon S3. La URI debe tener el prefijo `s3://{{bucket-name}}`

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

1. 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
<a name="data-lake-setup-using-cli"></a>

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 roles de IAM. Para obtener más información, consulte [Creación de una pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html) en la *Guía del AWS CloudFormation usuario*.

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

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

------
#### [ JSON ]

****  

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

------

   1. 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
      ```

   1. Anote el *ARN de rol* que devuelve la respuesta. Se requiere *un ARN de rol* en el siguiente paso.

1. Cree una política con permiso para crear una CloudFormation pila.

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

------
#### [ JSON ]

****  

      ```
      {  
          "Version":"2012-10-17",		 	 	   
          "Statement": [  
              {  
                  "Sid": "DeployCloudFormationStack",  
                  "Effect": "Allow",  
                  "Action": [  
                      "cloudformation:CreateStack"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. 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
      ```

   1. Anote el *ARN de rol* que devuelve la respuesta. Se requiere *un ARN de rol* en el siguiente paso.

1. 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}
   ```

1. 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
<a name="cf-resources"></a>

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



- **Base de datos del catálogo de datos de AWS Glue**
  - **Nombre y descripción del recurso:** **GlueDatabaseName**— Agrupa de forma lógica todas las tablas de datos de AWS Glue que pertenecen a la información de llamadas y al análisis de voz.
  - **Nombre del servicio:** Análisis de llamadas, análisis de voz

- ** Tablas del catálogo de datos de AWS Glue **
  - **Nombre y descripción del recurso:** **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. / **Nombre del servicio:** Análisis de llamadas, análisis de voz
  - **Nombre y descripción del recurso:** **call\_analytics\_metadata**: esquema para los metadatos de análisis de llamadas. Contiene metadatos SIP y. OneTimeMetadata / **Nombre del servicio:** Análisis de llamadas
  - **Nombre y descripción del recurso:** call\_analytics\_recording\_metadata: esquema para los metadatos de grabación y mejora de la voz / **Nombre del servicio:** Análisis de llamadas, análisis de voz
  - **Nombre y descripción del recurso:** **transcribe\_call\_analytics**: esquema de la carga útil «UtteranceEvent» TranscribeCallAnalytics  / **Nombre del servicio:** Análisis de llamadas
  - **Nombre y descripción del recurso:** **transcribe\_call\_analytics\_category\_events: esquema de la carga útil «CategoryEvent»** TranscribeCallAnalytics  / **Nombre del servicio:** Análisis de llamadas
  - **Nombre y descripción del recurso:** **transcribe\_call\_analytics\_post\_call**: esquema para la carga útil resumida de análisis posterior a la llamada y transcripción de la llamada / **Nombre del servicio:** Análisis de llamadas
  - **Nombre y descripción del recurso:** **transcribe**\_ esquema para la carga útil de Transcribe / **Nombre del servicio:** Análisis de llamadas
  - **Nombre y descripción del recurso:** **voice\_analytics\_status**: esquema para eventos preparados para el análisis de voz / **Nombre del servicio:** Análisis de voz
  - **Nombre y descripción del recurso:** **speaker\_search\_status**: esquema para las coincidencias de identificación / **Nombre del servicio:** Análisis de voz
  - **Nombre y descripción del recurso:** **voice\_tone\_analysis\_status**: esquema para eventos de análisis del tono de voz / **Nombre del servicio:** Análisis de voz

- **Amazon Kinesis Data Firehose**
  - **Nombre y descripción del recurso:** **AmazonChimeSDK-call-analytics- {{UUID}}** — Datos de canalización de Kinesis Data Firehose para el análisis de llamadas
  - **Nombre del servicio:** Análisis de llamadas, análisis de voz

- **Grupo de trabajo de Amazon Athena**
  - **Nombre y descripción del recurso:** **GlueDatabaseName-AmazonChimeSDKDataAnalytics**— Grupo lógico de usuarios para controlar los recursos a los que tienen acceso cuando ejecutan consultas.
  - **Nombre del servicio:** Análisis de llamadas, análisis de voz

