Création d'un lac de données Amazon Chime SDK - Amazon Chime SDK

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un lac de données Amazon Chime SDK

Le lac de données d'analyse des SDK appels Amazon Chime vous permet de diffuser vos informations basées sur l'apprentissage automatique et toutes les métadonnées d'Amazon Kinesis Data Stream vers votre compartiment Amazon S3. Par exemple, utiliser le lac de données pour accéder URLs aux enregistrements. Pour créer le lac de données, vous déployez un ensemble de AWS CloudFormation modèles depuis la SDK console Amazon Chime ou par programmation à l'aide du. AWS CLI Le lac de données vous permet d'interroger les métadonnées de vos appels et les données d'analyse vocale en faisant référence aux tables de données AWS Glue dans Amazon Athena.

Prérequis

Vous devez disposer des éléments suivants pour créer un lac Amazon Chime SDK :

Terminologie et concepts relatifs aux lacs de données

Utilisez les termes et concepts suivants pour comprendre le fonctionnement du lac de données.

Amazon Kinesis Data Firehose

Un service d'extraction, de transformation et de chargement (ETL) qui capture, transforme et diffuse de manière fiable des données en streaming vers des lacs de données, des magasins de données et des services d'analyse. Pour plus d'informations, consultez Qu'est-ce qu'Amazon Kinesis Data Firehose ?

Amazon Athena

Amazon Athena est un service de requête interactif qui vous permet d'analyser les données dans Amazon S3 en utilisant la norme. SQL Athena fonctionne sans serveur, vous n'avez donc aucune infrastructure à gérer et vous ne payez que pour les requêtes que vous exécutez. Pour utiliser Athena, pointez sur vos données dans Amazon S3, définissez le schéma et utilisez des requêtes standardSQL. Vous pouvez également utiliser des groupes de travail pour regrouper les utilisateurs et contrôler les ressources auxquelles ils ont accès lorsqu'ils exécutent des requêtes. Les groupes de travail vous permettent de gérer la simultanéité des requêtes et de hiérarchiser l'exécution des requêtes entre différents groupes d'utilisateurs et différentes charges de travail.

Catalogue de données Glue

Dans Amazon Athena, les tables et les bases de données contiennent les métadonnées qui détaillent le schéma des données sources sous-jacentes. Pour chaque jeu de données, une table doit exister dans Athena. Les métadonnées du tableau indiquent à Athena l'emplacement de votre compartiment Amazon S3. Il spécifie également la structure des données, telle que les noms des colonnes, les types de données et le nom de la table. Les bases de données contiennent uniquement les métadonnées et les informations de schéma d'un ensemble de données.

Création de plusieurs lacs de données

Plusieurs lacs de données peuvent être créés en fournissant un nom de base de données Glue unique pour spécifier où stocker les informations relatives aux appels. Pour un AWS compte donné, il peut y avoir plusieurs configurations d'analyse des appels, chacune associée à un lac de données correspondant. Cela signifie que la séparation des données peut être appliquée dans certains cas d'utilisation, tels que la personnalisation de la politique de conservation et de la politique d'accès sur la manière dont les données sont stockées. Différentes politiques de sécurité peuvent être appliquées pour l'accès aux informations, aux enregistrements et aux métadonnées.

Disponibilité régionale du data lake

Le lac de SDK données Amazon Chime est disponible dans les régions suivantes.

Région

Table Glue

Amazon QuickSight

us-east-1

Disponible

Disponible

us-west-2

Disponible

Disponible

eu-central-1

Disponible

Disponible

Architecture du lac de données

Le schéma suivant montre l'architecture du lac de données. Les numéros du dessin correspondent au texte numéroté ci-dessous.

Le programme passe par un lac de données.

Dans le schéma, une fois que vous avez utilisé la AWS console pour déployer le CloudFormation modèle à partir du flux de travail de configuration du pipeline Media Insights, les données suivantes sont transmises au compartiment Amazon S3 :

  1. L'analyse des SDK appels Amazon Chime commencera à diffuser des données en temps réel vers le flux de données Kinesis du client.

  2. Amazon Kinesis Firehose met en mémoire tampon ces données en temps réel jusqu'à ce qu'elles accumulent 128 Mo, soit 60 secondes, selon la première éventualité. Firehose utilise ensuite le catalogue amazon_chime_sdk_call_analytics_firehose_schema de données Glue pour compresser les données et transforme les JSON enregistrements en fichier parquet.

  3. Le fichier parquet se trouve dans votre compartiment Amazon S3, dans un format partitionné.

  4. Outre les données en temps réel, les fichiers .wav récapitulatifs Amazon Transcribe Call Analytics après l'appel (expurgés et non expurgés, si cela est spécifié dans la configuration) et les fichiers .wav d'enregistrement des appels sont également envoyés à votre compartiment Amazon S3.

  5. Vous pouvez utiliser Amazon Athena et le standard SQL pour interroger les données du compartiment Amazon S3.

  6. Le CloudFormation modèle crée également un catalogue de données Glue pour interroger ces données récapitulatives après l'appel via Athena.

  7. Toutes les données du compartiment Amazon S3 peuvent également être visualisées à l'aide d'Amazon QuickSight. QuickSight établit une connexion avec un compartiment Amazon S3 à l'aide d'Amazon Athena.

La table Amazon Athena utilise les fonctionnalités suivantes pour optimiser les performances des requêtes :

Partitionnement de données

Le partitionnement divise votre table en plusieurs parties et conserve les données associées en fonction des valeurs des colonnes telles que la date, le pays et la région. Les partitions agissent comme des colonnes virtuelles. Dans ce cas, le CloudFormation modèle définit les partitions lors de la création de la table, ce qui permet de réduire la quantité de données numérisées par requête et d'améliorer les performances. Vous pouvez également filtrer par partition pour limiter la quantité de données numérisées par une requête. Pour plus d'informations, reportez-vous à la section Partitionnement des données dans Athena dans le guide de l'utilisateur d'Amazon Athena.

Cet exemple montre une structure de partitionnement datée du 1er janvier 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. où se DETAIL_TYPE trouve l'un des suivants :

    1. CallAnalyticsMetadata

    2. TranscribeCallAnalytics

    3. TranscribeCallAnalyticsCategoryEvents

    4. Transcribe

    5. Recording

    6. VoiceAnalyticsStatus

    7. SpeakerSearchStatus

    8. VoiceToneAnalysisStatus

Optimisation de la génération de banques de données en colonnes

Apache Parquet utilise la compression par colonne, la compression basée sur le type de données et le transfert des prédicats vers le bas pour stocker les données. De meilleurs taux de compression ou le fait de sauter des blocs de données permettent de lire moins d'octets dans votre compartiment Amazon S3. Cela permet d'améliorer les performances des requêtes et de réduire les coûts. Pour cette optimisation, la conversion des données JSON en parquet est activée dans Amazon Kinesis Data Firehose.

Projection de partition

Cette fonctionnalité d'Athena crée automatiquement des partitions pour chaque jour afin d'améliorer les performances des requêtes basées sur les dates.

Configuration du lac de données

Utilisez la SDK console Amazon Chime pour effectuer les étapes suivantes.

  1. Démarrez la SDK console Amazon Chime ( https://console.aws.amazon.com/chime-sdk/accueil) et dans le volet de navigation, sous Call Analytics, sélectionnez Configurations.

  2. Terminez l'étape 1, choisissez Suivant, puis sur la page Étape 2, cochez la case Voice Analytics.

  3. Sous Détails de la sortie, cochez la case Entrepôt de données pour effectuer une analyse historique, puis cliquez sur le lien Déployer la CloudFormation pile.

    Le système vous renvoie vers la page Quick Create Stack de la CloudFormation console.

  4. Entrez un nom pour la pile, puis entrez les paramètres suivants :

    1. DataLakeType— Choisissez Create Call Analytics DataLake.

    2. KinesisDataStreamName— Choisissez votre stream. Il doit s'agir du flux utilisé pour le streaming des analyses d'appels.

    3. S3BucketURI— Choisissez votre compartiment Amazon S3. URIIl doit avoir le préfixe s3://bucket-name

    4. GlueDatabaseName— Choisissez un nom de base de données AWS Glue unique. Vous ne pouvez pas réutiliser une base de données existante dans le AWS compte.

  5. Cochez la case d'accusé de réception, puis choisissez Create data lake. Attendez 10 minutes pour que le système crée le lac.

Configuration du lac de données à l'aide de AWS CLI

AWS CLI À utiliser pour créer un rôle autorisé à créer une pile CloudFormation d'appels. Suivez la procédure ci-dessous pour créer et configurer les IAM rôles. Pour plus d'informations, consultez la section Création d'une pile dans le guide de AWS CloudFormation l'utilisateur.

  1. Créez un rôle appelé AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role et associez une politique de confiance au rôle permettant de l'assumer. CloudFormation

    1. Créez une politique de IAM confiance à l'aide du modèle suivant et enregistrez le fichier au format .json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
    2. Exécutez la aws iam create-role commande et transmettez la politique de confiance en tant que paramètre.

      aws iam create-role \ --role-name AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role --assume-role-policy-document file://role-trust-policy.json
    3. Notez l'ARN du rôle renvoyé par la réponse. le rôle arn est requis à l'étape suivante.

  2. Créez une politique avec l'autorisation de créer une CloudFormation pile.

    1. Créez une IAM politique à l'aide du modèle suivant et enregistrez le fichier au format .json. Ce fichier est obligatoire lors de l'appel à create-policy.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "DeployCloudFormationStack", "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*" } ] }
    2. Exécutez aws iam create-policy et transmettez la politique de création de pile en tant que paramètre.

      aws iam create-policy --policy-name testCreateStackPolicy --policy-document file://create-cloudformation-stack-policy.json
    3. Notez l'ARN du rôle renvoyé par la réponse. le rôle arn est requis à l'étape suivante.

  3. Attachez la stratégie aws iam attach-role-policy au rôle.

    aws iam attach-role-policy --role-name {Role name created above} --policy-arn {Policy ARN created above}
  4. Créez une CloudFormation pile et entrez les paramètres requis :aws cloudformation create-stack.

    Fournissez des valeurs de paramètres pour chaque ParameterKey utilisation 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}

Ressources créées par la configuration du lac de données

Le tableau suivant répertorie les ressources créées lorsque vous créez un lac de données.

Type de ressource

Nom et description de la ressource

Nom du service

AWSBase de données du catalogue Glue Data

GlueDatabaseName— Regroupe de manière logique toutes les tables AWS Glue Data appartenant à l'analyse des appels et à l'analyse vocale.

Analyse des appels, analyse vocale

AWSTableaux du catalogue de données Glue

amazon_chime_sdk_call_analytics_firehose_schema — Schéma combiné pour l'analyse des appels et l'analyse vocale transmis au Kinesis Firehose.

Analyse des appels, analyse vocale

call_analytics_metadata — Schéma pour les métadonnées d'analyse des appels. Contient SIPmetadata et OneTimeMetadata.

Analyse des appels

call_analytics_recording_metadata — Schéma pour les métadonnées d'enregistrement et d'amélioration vocale Analyse des appels, analyse vocale

transcribe_call_analytics — Schéma pour la charge utile « » TranscribeCallAnalytics utteranceEvent

Analyse des appels

transcribe_call_analytics_category_events — Schéma de la charge utile « » TranscribeCallAnalytics categoryEvent

Analyse des appels

transcribe_call_analytics_post_call — Schéma pour la charge utile récapitulative de Post-Call Transcribe Call Analytics

Analyse des appels

transcribe — Schéma pour la charge utile de transcription

Analyse des appels

voice_analytics_status — Schéma pour les événements prêts pour l'analyse vocale

Analyses vocales

speaker_search_status — Schéma pour les correspondances d'identification

Analyses vocales

voice_tone_analysis_status — Schéma pour les événements d'analyse de tonalité vocale

Analyses vocales

Amazon Kinesis Data Firehose

AmazonChimeSDK-analyse des appels-UUID— Kinesis Data Firehose achemine les données pour l'analyse des appels

Analyse des appels, analyse vocale

Groupe de travail Amazon Athena

GlueDatabaseName- AmazonChime SDKDataAnalytics — Groupe logique d'utilisateurs pour contrôler les ressources auxquelles ils ont accès lors de l'exécution de requêtes.

Analyse des appels, analyse vocale