建立亞馬遜編鐘開發套件資料湖 - Amazon Chime SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立亞馬遜編鐘開發套件資料湖

Amazon Chime SDK 呼叫分析資料湖可讓您將機器學習支援的見解和任何中繼資料從 Amazon Kinesis 資料串流串流串流到 Amazon S3 儲存貯體。例如,使用資料湖存取錄製檔的 URL。若要建立資料湖,您可以從 Amazon Chime SDK 主控台或以程式設計方式使用 AWS CLI. AWS CloudFormation 資料湖可讓您參考 Amazon Athena 中的 AWS Glue 資料表,來查詢通話中繼資料和語音分析資料。

必要條件

您必須具備下列項目,才能建立 Amazon Chime SDK 湖泊:

資料湖術語和概念

使用下列術語和概念來瞭解資料湖的運作方式。

Amazon Kinesis Data Firehose

擷取、轉換和載入 (ETL) 服務,可靠地擷取、轉換串流資料並將其傳遞至資料湖、資料存放區和分析服務。如需詳細資訊,請參閱什麼是 Amazon Kinesis Data Firehose?

Amazon Athena

Amazon Athena 是一種互動式查詢服務,可讓您使用標準 SQL 分析 Amazon S3 中的資料。Athena 是無伺服器服務,因此您無需管理基礎結構,而且您只需為執行的查詢付費。若要使用 Athena,請指向 Amazon S3 中的資料、定義結構描述,然後使用標準 SQL 查詢。您也可以使用工作群組將使用者分組,並控制他們在執行查詢時可存取的資源。工作群組可讓您管理查詢並行處理不同群組的使用者和工作負載之間的查詢執行優先順序。

Glue Data Catalog

在 Amazon Athena 中,資料表和資料庫包含詳細說明基礎來源資料結構描述的中繼資料。對於每個資料集,資料表必須存在於 Athena 中。表格中的中繼資料告訴 Athena 您的 Amazon S3 儲存貯體的位置。它還指定了數據結構,如列名,數據類型和表的名稱。資料庫只會保留資料集的中繼資料和結構描述資訊。

建立多個資料湖

透過提供唯一的 Glue 資料庫名稱,指定要儲存通話見解的位置,即可建立多個資料湖。對於特定 AWS 帳戶,可以有多個呼叫分析設定,每個設定都有對應的資料湖。這表示資料分隔可套用於特定使用案例,例如自訂保留原則,以及資料儲存方式的存取原則。可以套用不同的安全性原則來存取見解、錄製檔和中繼資料。

資料湖區域可用性

下列區域提供 Amazon Chime 開發套件資料湖。

區域

Glue 表

Amazon QuickSight

us-east-1

可用性

可用性

us-west-2

可用性

可用性

eu-central-1

可用性

可用性

資料湖架構

下圖顯示資料湖架構。圖面中的數字與下面編號的文字相對應。

程式流經資料湖。

在圖中,當您使用 AWS 主控台從媒體見解管道組態設定工作流程部署 CloudFormation 範本後,下列資料將流至 Amazon S3 儲存貯體:

  1. Amazon Chime 開發套件呼叫分析將開始將即時資料串流到客戶的 Kinesis 資料串流。

  2. Amazon Kinesis Firehose 會緩衝此即時資料,直到累積 128 MB 或經過 60 秒 (以先者為準) 為止。然後 Firehose 會使用 Glue 資料目錄amazon_chime_sdk_call_analytics_firehose_schema中的來壓縮資料,並將 JSON 記錄轉換為實木地板檔案。

  3. 實木複合地板檔案以分區格式存放在 Amazon S3 儲存貯體中。

  4. 除了即時資料之外,通話後 Amazon Transcribe 呼叫分析摘要 .wav 檔案 (編輯和未編輯,如果在組態中指定),以及通話錄製 .wav 檔案也會傳送至您的 Amazon S3 儲存貯體。

  5. 您可以使用 Amazon Athena 和標準 SQL 查詢 Amazon S3 儲存貯體中的資料。

  6. 此 CloudFormation 範本也會建立 Glue 資料型錄,以便透過 Athena 查詢此通話後摘要資料。

  7. Amazon S3 存儲桶上的所有數據也可以使用 Amazon QuickSight 進行可視化。 QuickSight 使用亞馬遜 Amazon Athena 與 Amazon S3 存儲桶建立連接。

Amazon Athena 表格使用下列功能來最佳化查詢效能:

資料分割

分割會將表格分成多個部分,並根據欄值 (例如日期、國家/地區) 保留相關資料。分區充當虛擬列。在此情況下, CloudFormation 範本會在建立資料表時定義分割區,這有助於減少每個查詢掃描的資料量並改善效能。您還可以按分區進行過濾,以限制查詢掃描的數據量。如需詳細資訊,請參閱 Amazon Athena 使用者指南中的在 Athena 分割資料

此範例顯示日期為 2023 年 1 月 1 日的磁碟分割結構:

  1. s3://example-bucket/amazon_chime_sdk_data_lake /serviceType=CallAnalytics/detailType={DETAIL_TYPE}/year=2023 /month=01/day=01/example-file.parquet
  2. 其中DETAIL_TYPE是下列其中一項:

    1. CallAnalyticsMetadata

    2. TranscribeCallAnalytics

    3. TranscribeCallAnalyticsCategoryEvents

    4. Transcribe

    5. Recording

    6. VoiceAnalyticsStatus

    7. SpeakerSearchStatus

    8. VoiceToneAnalysisStatus

最佳化單欄式資料存放區產生

Apache 的實木複合地板使用列式壓縮,基於數據類型的壓縮和謂詞下推來存儲數據。更好的壓縮比率或跳過資料區塊意味著從 Amazon S3 儲存貯體讀取較少的位元組。這會導致更好的查詢效能並降低成本。針對此最佳化,Amazon Kinesis 資料防火管中會啟用從 JSON 到實木複合地板的資料轉換。

分割區投影

此 Athena 功能會自動為每天建立分割區,以改善以日期為基礎的查詢效能。

資料湖設定

使用 Amazon Chime 開發套件主控台完成下列步驟。

  1. 啟動 Amazon Chime 開發套件主控台 (https://console.aws.amazon.com/chime-sdk/home),然後在導覽窗格的 [呼叫分析] 下,選擇 [組態]。

  2. 完成步驟 1,選擇 [下一步],然後在 [步驟 2] 頁面上選擇 [語音分析] 核取方塊。

  3. 輸出詳細資料下,選取要執行歷史分析的資料倉儲核取方塊,然後選擇部署 CloudFormation 堆疊連結。

    系統會將您傳送至 CloudFormation 主控台中的 [快速建立堆疊] 頁面。

  4. 輸入堆疊的名稱,然後輸入下列參數:

    1. DataLakeType— 選擇創建呼叫分析 DataLake.

    2. KinesisDataStreamName— 選擇你的流. 它應該是用於呼叫分析流的流。

    3. S3BucketURI— 選擇您的 Amazon S3 存儲桶。URI 必須具有前綴 s3://bucket-name

    4. GlueDatabaseName— 選擇唯一的 AWS Glue 資料庫名稱。您無法重複使用 AWS 帳戶中的現有資料庫。

  5. 選擇確認核取方塊,然後選擇「建立資料湖」。等待 10 分鐘讓系統建立湖泊。

資料湖設定使用 AWS CLI

用 AWS CLI 於建立具有呼叫建立堆疊之權限 CloudFormation的角色。請遵循以下程序來建立和設定 IAM 角色。若要取得更多資訊,請參閱《使用指南》中的AWS CloudFormation 〈建立堆疊

  1. 建立名為 AmazonChimeSdkCallAnalytics-Datalake-Protection-角色的角色,並將信任原則附加至允許承擔該角色的角色。 CloudFormation

    1. 使用下列範本建立 IAM 信任政策,並以 .json 格式儲存檔案。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
    2. 執行命aws iam create-role令並將信任原則作為參數傳遞。

      aws iam create-role \ --role-name AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role --assume-role-policy-document file://role-trust-policy.json
    3. 記下從響應返回的角色 arn。 在下一個步驟中需要角色 arn

  2. 建立具有建立 CloudFormation 堆疊權限的原則。

    1. 使用下列範本建立 IAM 政策,並以 .json 格式儲存檔案。呼叫建立原則時需要此檔案。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "DeployCloudFormationStack", "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*" } ] }
    2. 執行aws iam create-policy並傳遞建立堆疊原則做為參數。

      aws iam create-policy --policy-name testCreateStackPolicy --policy-document file://create-cloudformation-stack-policy.json
    3. 記下從響應返回的角色 arn。 在下一個步驟中需要角色 arn

  3. aws iam attach-role-policy 政策連接到角色。

    aws iam attach-role-policy --role-name {Role name created above} --policy-arn {Policy ARN created above}
  4. 創建一個 CloudFormation 堆棧並輸入所需的參數:aws cloudformation create-stack

    提供每次 ParameterKey 使用的參數值 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}

資料湖安裝程式建立的資源

下表列出建立資料湖時建立的資源。

資源類型

資源名稱和說明

服務名稱

AWS Glue 資料型錄資料庫

GlueDatabaseName— 以邏輯方式將屬於通話見解和語音分析的所有 AWS Glue 資料表分組。

通話分析、語音分析

AWS Glue 資料型錄資料表

亞馬遜語音分析結構描述 — 用於輸入 Kinesis Firehose 的呼叫分析語音分析的組合結構描述。

通話分析、語音分析

呼叫分析中繼資料 — 呼叫分析中繼資料的結構描述。包含 SIP 中繼資料和. OneTimeMetadata

通話分析

中繼資料 — 錄製和語音增強中繼資料的架構 通話分析、語音分析

轉錄調用分析-有效載荷「發言事件」的架構 TranscribeCallAnalytics

通話分析

轉錄分析 _ 分類 _ 事件 — 有效負載的結構描述「分類事件」 TranscribeCallAnalytics

通話分析

呼叫後轉錄呼叫分析摘要有效負載 Transcribe 結構描述

通話分析

轉錄 — 轉錄有效載荷的架構

通話分析

語音分析狀態 — 語音分析就緒事件的架構

語音分析

搜尋狀態 — 識別符合的結構描述

語音分析

語音分析狀態 — 語音音調分析事件的架

語音分析

Amazon Kinesis Data Firehose

AmazonChimeSDK-通話分析-UUID — Kinesis Data Firehose 道資料以進行呼叫分析

通話分析、語音分析

Amazon Athena

GlueDatabaseName-AmazonChime SDK DataAnalytics — 邏輯使用者群組,可控制他們在執行查詢時可存取的資源。

通話分析、語音分析