本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon Connect 分析資料湖中排程資料
本主題詳細說明 Amazon Connect 分析資料湖排程表中的內容。資料表列出內容的欄、類型和描述。
有兩種方式可存取分析資料湖並設定要共用的資料:
如果您無法使用選項 1 存取排程資料表,請嘗試使用選項 2。
員工排程設定檔
資料表名稱: staff_scheduling_profile
複合主索引鍵: {instance_id, agent_arn, staff_scheduling_profile_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| agent_arn | string | 代理程式的 ARN。 |
| staff_scheduling_profile_version | bigint | 員工排程設定檔版本。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| staffing_group_arn | string | 指派給客服人員之人員配置群組的 ARN。 |
| start_timestamp | Timestamp | 在員工規則中設定的客服人員 StartTimestamp (排程只會在此時間戳記之後產生)。 |
| end_timestamp | Timestamp | 在員工規則中設定的客服人員 EndTimestamp (排程不會在此時間戳記之後產生)。 |
| shift_profile_arn | string | 在員工規則中設定代理程式的 Shift Profile ARN。 |
| timezone | string | 為 代理程式設定的時區。 |
| is_deleted | Boolean | 如果代理程式已刪除,請將 設定為 True。否則設定為 False。 |
| last_updated_timestamp | Timestamp | created/updated/deleted員工排程設定檔時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
輪班活動
資料表名稱: shift_activities
複合主索引鍵: {instance_id, shift_activity_arn, shift_activity_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| shift_activity_arn | string | 輪班活動的 ARN。 |
| shift_activity_version | bigint | 輪班活動版本。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| shift_activity_name | string | 輪班活動的名稱。 |
| type | string | 輪班活動的類型。可能的值為:生產力、NON_PRODUCTIVE 和 LEAVE。 |
| sub_type | string | Shift 活動的子類型。這僅適用於 NON_PRODUCTIVE 類型活動。可能的值為:BREAK_OR_MEAL 和 NONE。 |
| is_adherence_tracked | Boolean | 如果 Shift 活動設定為遵循性追蹤,則設為 True。否則設定為 False。 |
| is_paid | Boolean | 如果輪班活動設定為已支付,則設為 True。否則設定為 False。 |
| is_deleted | Boolean | 如果刪除輪班活動,則設為 True。否則設定為 False。 |
| last_updated_timestamp | Timestamp | created/updated/deleted輪班活動的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
輪班設定檔
資料表名稱: shift_profiles
複合主索引鍵: {instance_id, shift_profile_arn, shift_profile_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| shift_profile_arn | string | Shift Profile 的 ARN。 |
| shift_profile_version | bigint | 輪班設定檔版本。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| shift_profile_name | string | Shift Profile 的名稱。 |
| is_deleted | Boolean | 如果刪除輪班設定檔,則設為 True。否則設定為 False。 |
| last_updated_timestamp | Timestamp | created/updated/deleted輪班設定檔時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
人員配置群組
資料表名稱: staffing_groups
複合主索引鍵: {instance_id, staffing_group_arn, staffing_group_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| staffing_group_arn | string | 人員配置群組的 ARN。 |
| staffing_group_version | bigint | 人員配置群組版本。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| staffing_group_name | string | 人員配置群組的名稱。 |
| is_deleted | Boolean | 如果刪除人員配置群組,則設為 True。否則設定為 False。 |
| last_updated_timestamp | Timestamp | created/updated/deleted人員配置群組時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
人員配置群組 - 預測群組
資料表名稱: staffing_group_forecast_groups
複合主索引鍵: {instance_id, staffing_group_arn, staffing_group_version, forecast_group_arn}
應透過在 staffing_group_arn和 上加入資料表來查詢此staffing_groups資料表staffing_group_version。
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| staffing_group_arn | string | 人員配置群組的 ARN。 |
| staffing_group_version | bigint | 人員配置群組版本。 |
| forecast_group_arn | string | 與人員配置群組相關聯的預測群組 ARN。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| is_deleted | Boolean | 當 StaffingGroup-ForecastGroup 關聯有效時,設定為 False。 |
| last_updated_timestamp | Timestamp | 建立/更新人員配置群組時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
人員配置群組 - 主管
資料表名稱: staffing_group_supervisors
複合主索引鍵: {instance_id, staffing_group_arn, staffing_group_version, supervisor_arn}
應透過在 staffing_group_arn和 上加入資料表來查詢此staffing_groups資料表staffing_group_version。
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| staffing_group_arn | string | 人員配置群組的 ARN。 |
| staffing_group_version | bigint | 人員配置群組版本。 |
| supervisor_arn | string | 與人員配置群組相關聯之主管的客服人員 ARN。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| is_deleted | Boolean | 當 StaffingGroup-ForecastGroup 關聯有效時,設定為 False。 |
| last_updated_timestamp | Timestamp | 建立/更新人員配置群組時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
員工輪班
資料表名稱: staff_shifts
複合主索引鍵: {instance_id, shift_id, shift_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| shift_id | string | Shift 的 ID。 |
| shift_version | bigint | Shift 版本。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| agent_arn | string | 代理程式的 ARN。 |
| shift_start_timestamp | Timestamp | Shift 開始時的時間戳記。 |
| shift_end_timestamp | Timestamp | 輪班結束時的時間戳記。 |
| create_timestamp | Timestamp | 建立輪班時的時間戳記。 |
| is_deleted | Boolean | 如果刪除輪班,則設為 True。否則設定為 False。 |
| last_updated_timestamp | Timestamp | created/updated/deleted輪班時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
員工輪班活動
資料表名稱: staff_shift_activities
複合主索引鍵: {instance_id, shift_id, shift_version, activity_id}
應透過在 shift_id和 上使用資料表來查詢此staff_shifts資料表shift_version。
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| shift_id | string | Shift 的 ID。 |
| shift_version | bigint | Shift 版本。 |
| activity_id | string | 活動的 ID。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| activity_start_timestamp | Timestamp | 活動開始時的時間戳記。 |
| activity_end_timestamp | Timestamp | 活動結束時的時間戳記。 |
| shift_activity_arn | string | 輪班活動的 ARN。如果 shift_activity_arn 為 null,則表示 'Work' 活動。 |
| activity_status | string | 活動的狀態。如果活動與休假重疊,這會設為非作用中。 |
| is_overtime | Boolean | 如果活動是加班的一部分,則設為 True。否則設定為 False。 |
| is_deleted | Boolean | 當輪班活動有效時,設定為 False。 |
| last_updated_timestamp | Timestamp | 建立/更新輪班時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
員工休假餘額變更
資料表名稱: staff_timeoff_balance_changes
複合主索引鍵: {instance_id, agent_arn, shift_activity_arn, timeoff_balance_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| account_id | string | AWS 帳戶的 ID。 |
| agent_arn | string | 客服人員的 ARN。 |
| shift_activity_arn | string | 分配此餘額之輪班活動的 ARN。 |
| timeoff_balance_version | bigint | 休假餘額版本,用來表示變更順序的遞增數字。 |
| balance_update_source | string | 餘額更新的來源。可能的值為 TIME_OFF_BALANCE_UPLOAD、CONNECT_TIME_OFF_REQUEST、SCHEDULE_PUBLISH、CSV_TIME_OFF_BALANCE_DELETION、TIME_OFF_BALANCE_BACKFILL、 SYSTEM_UPDATE |
| timeoff_id | string | 造成此餘額變更的休假 ID,如果有的話。 |
| last_updated_by | string | 造成此餘額變更的客服人員 ARN,如果有的話。 |
| balance_change_in_hours | double | 透過此小時變更更新的休假餘額量。如果此值為正值,則此變更會計入休假餘額。如果此值為負值,則此變更會扣除休假餘額。此值未針對任何餘額上傳和刪除事件定義。 |
| remaining_balance_in_hours | double | 此變更事件之後的剩餘休假餘額時數。未針對任何餘額刪除事件定義此值。 |
| last_created_timestamp | Timestamp | 建立休假餘額變更記錄時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
員工休假
資料表名稱: staff_timeoffs
複合主索引鍵: {instance_id, timeoff_id, agent_arn, timeoff_version}
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| timeoff_id | string | 休假的 ID。 |
| agent_arn | string | 代理程式的 ARN。 |
| timeoff_version | bigint | 休假版本。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| timeoff_type | string | 休假類型。可能的值為:TIME_OFF 和 VOLUNTARY_TIME_OFF。 |
| timeoff_start_timestamp | Timestamp | 休假開始時的時間戳記。 |
| timeoff_end_timestamp | Timestamp | 休假結束時的時間戳記。 |
| timeoff_status | string | 休假的狀態。可能的值為:PENDING_CREATE、PENDING_UPDATE、PENDING_CANCEL、PENDING_ACCEPT、PENDING_APPROVE、PENDING_DECLINE、APPROVED、ACCCEPTED、REJECTED、CANCELLED、WAITING_ACCEPT 和 WAITING_APPROVE。WAITING 狀態表示使用者動作正在等待休假。待定狀態表示使用者動作正在等待系統處理。 |
| shift_activity_arn | string | 用於休假之輪班活動的 ARN。 |
| effective_timeoff_hours | double | 總有效休假時數。有效休假時數是根據休假扣除邏輯計算。這只會針對 TIME_OFF 類型設定。 |
| last_updated_timestamp | Timestamp | created/updated/deleted休假時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
員工休假間隔
資料表名稱: staff_timeoff_intervals
複合主索引鍵:{instance_id, timeoff_id, timeoff_version, interval_id}
應該透過在 timeoff_id和 上加入資料表來查詢此staff_timeoffs資料表timeoff_version。
| 資料欄 | 類型 | 說明 |
|---|---|---|
| instance_id | string | Amazon Connect 執行個體的 ID。 |
| timeoff_id | string | 休假的 ID。 |
| timeoff_version | bigint | 休假版本。 |
| interval_id | string | 休假間隔的 ID。 |
| instance_arn | string | Amazon Connect 執行個體的 ARN。 |
| timeoff_interval_start_timestamp | Timestamp | 休假的特定間隔開始時的時間戳記。 |
| timeoff_interval_end_timestamp | Timestamp | 休假的特定間隔結束時的時間戳記。 |
| interval_effective_timeoff_hours | double | 此特定休假間隔的有效休假時數。有效休假時數是根據休假扣除邏輯計算。 |
| last_updated_timestamp | Timestamp | created/updated/deleted休假時的時間戳記。 |
| data_lake_last_processed_timestamp | Timestamp | 時間戳記,顯示上次資料湖碰觸記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。 |
資料結構描述
以下是實體關係圖,顯示 Amazon Connect 分析資料湖中排程資料表之間的結構和關係。圖表說明具有 10 個互連資料表的資料庫結構描述:staff_shift_ activities、staff_shifts、staff_timeoffs、staff_timeoff_balance_changes、staff_timeoff_intervals、usersrouting_profiles、shift_activities、staffing_groups、shift_profiles、 staffing_group_supervisors staffing_group_forecast_groups和 forecast_groups。
每個資料表會顯示其主索引鍵和屬性及其資料類型。圖表說明這些資料表如何透過外部金鑰關係相互關聯,提供排程資料模型的全方位檢視。
範例查詢
1. 查詢以取得處理特定預測群組之客服人員的所有排程輪班活動
SELECT * FROM agent_scheduled_shift_activities_view
where forecast_group_name = 'AnyDepartmentForecastGroup'
完成下列步驟以建立agent_scheduled_shift_activities_view上述內容。
步驟 1:建立檢視以取得主管名稱
CREATE OR REPLACE VIEW "latest_supervisor_names_view" AS SELECT staffing_group_arn , array_agg(supervisor_name ORDER BY supervisor_name ASC) supervisor_names FROM ( SELECT s.staffing_group_arn , CONCAT(u.first_name, ' ', u.last_name) supervisor_name FROM (( SELECT staffing_group_arn , supervisor_arn FROM ( SELECT * , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency FROM staffing_group_supervisors WHERE (instance_id = 'YourAmazonConnectInstanceId') ) t WHERE (recency = 1) ) s INNER JOIN USERS u ON (s.supervisor_arn = u.user_arn)) ) GROUP BY staffing_group_arn
步驟 2:建立檢視以取得與客服人員相關聯的人員配置群組和預測群組
CREATE OR REPLACE VIEW "latest_agent_staffing_group_forecast_group_view" AS WITH latest_staff_scheduling_profile AS ( SELECT agent_arn , staffing_group_arn , last_updated_timestamp FROM ( SELECT * , RANK() OVER (PARTITION BY agent_arn ORDER BY staff_scheduling_profile_version DESC) recency FROM staff_scheduling_profile WHERE ((instance_id = 'YourAmazonConnectInstanceId') AND (is_deleted = false)) ) t WHERE (recency = 1) ) , latest_staffing_groups AS ( SELECT staffing_group_name , staffing_group_arn FROM ( SELECT * , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency FROM staffing_groups WHERE (instance_id = 'YourAmazonConnectInstanceId') ) t WHERE (recency = 1) ) , latest_forecast_groups AS ( SELECT forecast_group_arn , forecast_group_name FROM ( SELECT * , RANK() OVER (PARTITION BY forecast_group_arn ORDER BY forecast_group_version DESC) recency FROM forecast_groups WHERE (instance_id = 'YourAmazonConnectInstanceId') ) t WHERE (recency = 1) ) , latest_staffing_group_forecast_groups AS ( SELECT staffing_group_arn , forecast_group_arn FROM ( SELECT * , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency FROM staffing_group_forecast_groups WHERE (instance_id = 'YourAmazonConnectInstanceId') ) t WHERE (recency = 1) ) SELECT ssp.agent_arn , U.agent_username AS username , U.agent_routing_profile_id AS routing_profile_id , CONCAT(u.first_name, ' ', u.last_name) agent_name , fg.forecast_group_arn , fg.forecast_group_name , sg.staffing_group_arn , sg.staffing_group_name FROM latest_staff_scheduling_profile ssp INNER JOIN latest_staffing_groups sg ON ssp.staffing_group_arn = sg.staffing_group_arn INNER JOIN latest_staffing_group_forecast_groups sgfg ON ssp.staffing_group_arn = sgfg.staffing_group_arn INNER JOIN latest_forecast_groups fg ON fg.forecast_group_arn = sgfg.forecast_group_arn INNER JOIN USERS u ON ssp.agent_arn = u.user_arn
步驟 3:取得最新的輪班活動
CREATE OR REPLACE VIEW "latest_shift_activities_view" AS SELECT shift_activity_arn , shift_activity_name , shift_activity_version , type , sub_type , is_adherence_tracked , is_paid , last_updated_timestamp FROM ( SELECT * , RANK() OVER (PARTITION BY shift_activity_arn ORDER BY shift_activity_version DESC) recency FROM shift_activities WHERE (instance_id = 'YourAmazonConnectInstanceId') ) t WHERE (recency = 1)
步驟 4:建立檢視以取得客服人員排定的輪班活動
CREATE OR REPLACE VIEW "agent_scheduled_shift_activities_view" AS WITH latest_staff_shifts AS ( SELECT agent_arn , shift_id , shift_version , shift_start_timestamp , shift_end_timestamp , created_timestamp , last_updated_timestamp , data_lake_last_processed_timestamp , recency FROM ( SELECT RANK() OVER (PARTITION BY shift_id ORDER BY shift_version DESC) recency , * FROM staff_shifts sa WHERE (instance_id = 'YourAmazonConnectInstanceId') ) t WHERE ((recency = 1) AND (is_deleted = false)) ) SELECT asgfg.forecast_group_name , array_join(sn.supervisor_names, ',') supervisor_names , s.agent_arn , u.first_name , u.last_name , asgfg.staffing_group_name , ssa.activity_id , (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.shift_activity_name, 'Work') ELSE sa.shift_activity_name END) shift_activity_name , s.shift_start_timestamp , s.shift_end_timestamp , (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.type, 'PRODUCTIVE') ELSE sa.type END) type , (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.is_paid, true) ELSE sa.is_paid END) is_paid , ssa.activity_start_timestamp , ssa.activity_end_timestamp , ssa.last_updated_timestamp , ssa.data_lake_last_processed_timestamp , u.agent_username as username , u.agent_routing_profile_id as routing_profile_id FROM staff_shift_activities ssa INNER JOIN latest_staff_shifts s ON s.shift_id = ssa.shift_id AND s.shift_version = ssa.shift_version INNER JOIN USERS u ON s.agent_arn = u.user_arn INNER JOIN latest_agent_staffing_group_forecast_group_view asgfg ON s.agent_arn = asgfg.agent_arn LEFT JOIN latest_shift_activities_view sa ON sa.shift_activity_arn = ssa.shift_activity_arn INNER JOIN latest_supervisor_names_view sn ON sn.staffing_group_arn = asgfg.staffing_group_arn WHERE (ssa.is_deleted = false) AND (COALESCE(ssa.activity_status, ' ') <> 'INACTIVE') AND (ssa.instance_id = 'YourAmazonConnectInstanceId')
2. 查詢以取得特定預測群組中客服人員的所有休假請求
SELECT * FROM agent_timeoff_report_view where forecast_group_name =
'AnyDepartmentForecastGroup'
使用以下查詢來建立agent_timeoff_report_view上述內容。
CREATE OR REPLACE VIEW "agent_timeoff_report_view" AS WITH latest_staff_timeoffs AS ( SELECT t1.*, CAST((t1.effective_timeoff_hours * 60) AS INT) total_effective_timeoff_minutes FROM ( SELECT RANK() OVER ( PARTITION BY timeoff_id ORDER BY timeoff_version DESC ) recency, agent_arn, timeoff_id, shift_activity_arn, timeoff_status, timeoff_version, effective_timeoff_hours, timeoff_start_timestamp, timeoff_end_timestamp, last_updated_timestamp, data_lake_last_processed_timestamp FROM staff_timeoffs WHERE ( instance_id = 'YourAmazonConnectInstanceId' ) ) t1 WHERE (recency = 1) ) SELECT asgfg.forecast_group_name, to.agent_arn, asgfg.agent_name, asgfg.staffing_group_name, asgfg.username, sa.shift_activity_name, to.timeoff_start_timestamp, to.timeoff_end_timestamp, to.timeoff_status, array_join(sn.supervisor_names, ',') AS supervisor_names, sa.is_paid, to.last_updated_timestamp, to.data_lake_last_processed_timestamp, u.agent_routing_profile_id AS routing_profile_id, to.timeoff_id, to.shift_activity_arn, to.total_effective_timeoff_minutes FROM latest_staff_timeoffs to INNER JOIN latest_agent_staffing_group_forecast_group_view asgfg ON asgfg.agent_arn = to.agent_arn INNER JOIN latest_shift_activities_view sa ON sa.shift_activity_arn = to.shift_activity_arn INNER JOIN latest_supervisor_names_view sn ON sn.staffing_group_arn = asgfg.staffing_group_arn INNER JOIN users u ON u.user_arn = to.agent_arn