Pianificazione dei dati nel data lake di analisi Amazon Connect - Amazon Connect

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Pianificazione dei dati nel data lake di analisi Amazon Connect

Questo argomento descrive in dettaglio il contenuto delle tabelle di pianificazione del data lake di analisi di Amazon Connect. Le tabelle elencano la colonna, il tipo e la descrizione del contenuto.

Esistono due modi per accedere al data lake di analisi e configurare i dati da condividere:

Se non riesci ad accedere alle tabelle di pianificazione utilizzando l'opzione 1, prova a utilizzare l'opzione 2.

Profilo di pianificazione del personale

Nome della tabella: staff_scheduling_profile

Chiave primaria composita: {instance_id, agent_arn, staff_scheduling_profile_version}

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
agent_arn string L'ARN dell'agente.
staff_scheduling_profile_version bigint La versione del profilo Staff Scheduling.
instance_arn string L'ARN dell'istanza Amazon Connect.
staffing_group_arn string L'ARN del gruppo di personale a cui è assegnato l'agente.
start_timestamp Timestamp StartTimestamp per l'agente configurato nelle Regole dello staff (le pianificazioni vengono generate solo dopo questo timestamp).
end_timestamp Timestamp EndTimestamp per l'agente configurato nelle regole dello staff (le pianificazioni non vengono generate oltre questo timestamp).
shift_profile_arn string L'ARN dello Shift Profile a cui è assegnato l'agente configurato nelle Regole dello staff.
timezone string Fuso orario configurato per l'agente.
è_eliminato Booleano Imposta su True se l'agente viene eliminato. Altrimenti impostato su False.
last_updated_timestamp Timestamp Indicatore temporale in cui era impostato il profilo di pianificazione dello staff. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Attività a turni

Nome della tabella: shift_activities

Chiave primaria composita: {instance_id, shift_activity_arn, shift_activity_version}

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
shift_activity_arn string L'ARN dell'attività a turni.
shift_activity_version bigint La versione Shift Activity.
instance_arn string L'ARN dell'istanza Amazon Connect.
shift_activity_name string Nome dell'attività Shift.
tipo string Tipo di attività a turni. I valori possibili sono: PRODUCTIVE, NON_PRODUCTIVE e LEAVE.
sottotipo string Il sottotipo di Shift Activity. Questo è valido solo per le attività di tipo NON_PRODUCTIVE. I valori possibili sono: BREAK_OR_MEAL e NONE.
is_adherence_tracked Booleano Imposta su True se Shift Activity è configurata per il tracciamento dell'aderenza. Altrimenti impostato su False.
is_paid Booleano Imposta su True se Shift Activity è configurata come a pagamento. Altrimenti impostato su False.
è_cancellato Booleano Imposta su True se l'attività Shift viene eliminata. Altrimenti impostato su False.
last_updated_timestamp Timestamp Il timestamp in cui si svolgeva l'attività Shift. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Profili di turno

Nome della tabella: shift_profiles

Chiave primaria composita: {instance_id, shift_profile_arn, shift_profile_version}

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
shift_profile_arn string L'ARN dello Shift Profile.
shift_profile_version bigint La versione Shift Profile.
instance_arn string L'ARN dell'istanza Amazon Connect.
shift_profile_name string Il nome dello Shift Profile.
è_deleted Booleano Imposta su True se lo Shift Profile viene eliminato. Altrimenti impostato su False.
last_updated_timestamp Timestamp Il timestamp in cui era impostato Shift Profile. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Gruppi di personale

Nome della tabella: staffing_groups

Chiave primaria composita: {instance_id, staffing_group_arn, staffing_group_version}

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
staffing_group_arn string L'ARN dello Staffing Group.
staffing_group_version bigint La versione Staffing Group.
instance_arn string L'ARN dell'istanza Amazon Connect.
nome_gruppo_personale string Il nome dello Staffing Group.
è_cancellato Booleano Imposta su True se lo Staffing Group viene eliminato. Altrimenti impostato su False.
last_updated_timestamp Timestamp Il timestamp di quando era lo Staffing Group. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Gruppi di personale - Forecast groups

Nome della tabella: staffing_group_forecast_groups

Chiave primaria composita: {instance_id, staffing_group_arn, staffing_group_version, forecast_group_arn}

Questa tabella deve essere interrogata unendosi alla staffing_groups tabella su staffing_group_arn and. staffing_group_version

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
staffing_group_arn string L'ARN dello Staffing Group.
staffing_group_version bigint La versione Staffing Group.
forecast_group_arn string L'ARN del Forecast Group associato allo Staffing Group.
instance_arn string L'ARN dell'istanza Amazon Connect.
è_cancellato Booleano Impostato su False quando l'ForecastGroupassociazione StaffingGroup - è valida.
last_updated_timestamp Timestamp Il timestamp in cui il gruppo di personale è stato creato/aggiornato.
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Gruppi di personale - Supervisori

Nome della tabella: staffing_group_supervisors

Chiave primaria composita: {instance_id, staffing_group_arn, staffing_group_version, supervisor_arn}

Questa tabella deve essere interrogata unendosi alla staffing_groups tabella su staffing_group_arn and. staffing_group_version

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
staffing_group_arn string L'ARN dello Staffing Group.
staffing_group_version bigint La versione Staffing Group.
supervisor_arn string L'ARN dell'agente del supervisore associato al gruppo di personale.
instance_arn string L'ARN dell'istanza Amazon Connect.
è_cancellato Booleano Impostato su False quando l'ForecastGroupassociazione StaffingGroup - è valida.
last_updated_timestamp Timestamp Il timestamp in cui il gruppo di personale è stato creato/aggiornato.
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Turni del personale

Nome della tabella: staff_shifts

Chiave primaria composita: {instance_id, shift_id, shift_version}

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
shift_id string L'ID dello Shift.
shift_version bigint La versione Shift.
instance_arn string L'ARN dell'istanza Amazon Connect.
agent_arn string L'ARN dell'agente.
shift_start_timestamp Timestamp Il timestamp all'inizio dello Shift.
shift_end_timestamp Timestamp Il timestamp al termine dello Shift.
created_timestamp Timestamp Il timestamp in cui è stato creato lo Shift.
è_deleted Booleano Imposta su True se Shift viene eliminato. Altrimenti impostato su False.
last_updated_timestamp Timestamp Il timestamp in cui si è verificato lo Shift. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Attività a turni del personale

Nome della tabella: staff_shift_activities

Chiave primaria composita: {instance_id, shift_id, shift_version, activity_id}

Questa tabella deve essere interrogata unendosi alla staff_shifts tabella su shift_id and. shift_version

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
shift_id string L'ID dello Shift.
shift_version bigint La versione Shift.
activity_id string L'ID dell'attività.
instance_arn string L'ARN dell'istanza Amazon Connect.
activity_start_timestamp Timestamp Il timestamp di inizio dell'attività.
activity_end_timestamp Timestamp Il timestamp al termine dell'attività.
shift_activity_arn string L'ARN dell'attività a turni. Se shift_activity_arn è nullo, indica l'attività «Lavorativa».
stato_attività string Stato dell'attività. È impostato su INATTIVO se l'attività si sovrappone a un timeoff.
is_overtime Booleano Imposta su True se l'attività fa parte degli straordinari. Altrimenti impostato su False.
è_cancellato Booleano Impostato su False quando le Shift Activities sono valide.
last_updated_timestamp Timestamp Il timestamp in cui lo Shift è stato creato/aggiornato.
data_lake_last_processed_timestamp Timestamp Il timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Tempi di ferie per il personale

Nome della tabella: staff_timeoffs

Chiave primaria composita: {instance_id, timeoff_id, agent_arn, timeoff_version}

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
timeoff_id string L'ID del Time Off.
agent_arn string L'ARN dell'agente.
timeoff_version bigint La versione Time Off.
instance_arn string L'ARN dell'istanza Amazon Connect.
timeoff_type string Tipo di Time Off. I valori possibili sono: TIME_OFF e VOLUNTARY_TIME_OFF.
timeoff_start_timestamp Timestamp Timestamp all'inizio del Time Off.
timeoff_end_timestamp Timestamp Timestamp al termine del Time Off.
timeoff_status string Stato del Time Off. I valori possibili sono: PENDING_CREATE, PENDING_UPDATE, PENDING_CANCEL, PENDING_ACCEPT, PENDING_APPROVE, PENDING_DECLINE, APPROVED, ACCEPTED, REJECTED, CANCELLED, WAITING_ACCEPT e WAITING_APPROVE. Gli stati WAITING indicano che il timeoff è in attesa dell'azione dell'utente. Gli stati PENDING indicano che il timeoff è in attesa dell'elaborazione da parte del sistema di un'azione dell'utente.
shift_activity_arn string L'ARN dell'attività a turni utilizzata per il timeoff.
time_off_hours effettivi double Tempo di riposo effettivo totale. Le ore di timeoff effettive vengono calcolate in base alla logica di detrazione del timeoff. Questo è impostato solo per il tipo TIME_OFF.
last_updated_timestamp Timestamp Indicatore temporale in cui era il Time Off. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Intervalli di tempo libero del personale

Nome della tabella: staff_timeoff_intervals

Chiave primaria composita: {instance_id, timeoff_id, timeoff_version, interval_id}

Questa tabella deve essere interrogata unendosi alla staff_timeoffs tabella su timeoff_id and. timeoff_version

Colonna Tipo Descrizione
instance_id string L'ID dell'istanza Amazon Connect.
timeoff_id string L'ID del Time Off.
timeoff_version bigint La versione Time Off.
interval_id string L'ID dell'intervallo di tempo libero.
instance_arn string L'ARN dell'istanza Amazon Connect.
timeoff_interval_start_timestamp Timestamp Timestamp quando inizia l'intervallo specifico di Time Off.
timeoff_interval_end_timestamp Timestamp Timestamp quando termina l'intervallo specifico di Time Off.
interval_effective_timeoff_hours double Ore di tempo libero effettive per questo intervallo specifico di Time Off. Le ore di timeoff effettive vengono calcolate in base alla logica di detrazione del timeoff.
last_updated_timestamp Timestamp Indicatore orario in cui era il Time Off. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Timestamp, che mostra l'ultima volta che il record è stato toccato dal data lake. Ciò può includere la trasformazione e il riempimento. Questo campo non può essere utilizzato per determinare in modo affidabile la freschezza dei dati.

Schema dei dati

Di seguito è riportato un diagramma delle relazioni tra entità che mostra la struttura e le relazioni tra le tabelle di pianificazione nel data lake di analisi Amazon Connect. Il diagramma illustra lo schema del database con 10 tabelle interconnesse:staff_shift_ activities,,staff_shifts,staff_timeoffs,staff_timeoff_intervals,users,routing_profiles, shift_activities staffing_groupsshift_profiles, staffing_group_supervisors e f. staffing_group_forecast_groups orecast_groups

Ogni tabella mostra le chiavi e gli attributi primari con i relativi tipi di dati. Il diagramma illustra come queste tabelle si relazionano tra loro tramite relazioni con chiavi esterne, fornendo una visione completa del modello di dati di pianificazione.

Un diagramma delle relazioni tra entità che mostra la struttura e le relazioni tra le tabelle di pianificazione nel data lake di analisi Amazon Connect.

Query di esempio

1. Interrogazione per ottenere tutte le attività programmate dei turni degli agenti che lavorano su uno specifico Forecast Group

SELECT * FROM agent_scheduled_shift_activities_view where forecast_group_name = 'AnyDepartmentForecastGroup'

Completa i seguenti passaggi per creare quanto agent_scheduled_shift_activities_view sopra indicato.

Passaggio 1: crea una vista per ottenere i nomi dei supervisori

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

Passaggio 2: crea una visualizzazione per associare il gruppo di personale e il gruppo di previsione a un agente

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

Passaggio 3: ottieni le ultime attività di Shift

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)

Fase 4: Crea una visualizzazione per visualizzare le attività dei turni programmate dall'agente

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. Interrogazione per ottenere tutte le richieste di ferie degli agenti in uno specifico Forecast Group

SELECT * FROM agent_timeoff_report_view where forecast_group_name = 'AnyDepartmentForecastGroup'

Usa la seguente query per creare quanto sopra agent_timeoff_report_view menzionato.

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