Programación de datos en el lago de datos analíticos de Amazon Connect - Amazon Connect

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.

Programación de datos en el lago de datos analíticos de Amazon Connect

En este tema se detalla el contenido de las tablas de programación de lagos de datos de Amazon Connect Analytics. En las tablas se muestran la columna, el tipo y la descripción del contenido.

Hay dos formas de acceder al lago de datos de análisis y configurar los datos para que se compartan:

Si no puede acceder a las tablas de programación mediante la opción 1, intente utilizar la opción 2.

Perfil de programación del personal

Nombre de la tabla: staff_scheduling_profile

Clave principal compuesta: {instance_id, agent_arn, staff_scheduling_profile_version}

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
agent_arn cadena El ARN del agente.
staff_scheduling_profile_version bigint La versión del perfil de programación del personal.
instance_arn cadena El ARN de la instancia de Amazon Connect.
staffing_group_arn cadena El ARN del grupo de personal al que está asignado el agente.
start_timestamp Timestamp StartTimestamp para el agente configurado en el Reglamento del Personal (los horarios se generan solo después de esta marca de tiempo).
end_timestamp Timestamp EndTimestamp para el agente configurado en el Reglamento del Personal (los horarios no se generan más allá de esta marca temporal).
shift_profile_arn cadena El ARN del perfil de turno al que está asignado el agente está configurado en el Reglamento del Personal.
timezone cadena Zona horaria configurada para el agente.
is_deleted Booleano Establézcalo en True si se elimina el agente. Si no, se establece en False.
last_updated_timestamp Timestamp Fecha y hora en que estaba el perfil de programación del personal. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Actividades de turnos

Nombre de la tabla: shift_activities

Clave principal compuesta: {instance_id, shift_activity_arn, shift_activity_version}

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
shift_activity_arn cadena El ARN de la actividad de turnos.
shift_activity_version bigint La versión de Shift Activity.
instance_arn cadena El ARN de la instancia de Amazon Connect.
shift_activity_name cadena Nombre de la actividad del turno.
type cadena Tipo de actividad del turno. Los valores posibles son: PRODUCTIVE, NON_PRODUCTIVE y LEAVE.
sub_type cadena El subtipo de la actividad de turno. Esto solo es válido para actividades de tipo NON_PRODUCTIVE. Los valores posibles son: BREAK_OR_MEAL y NONE.
tiene un seguimiento de la adherencia Booleano Establézcalo en True si la actividad de turno está configurada para el seguimiento de la adherencia. Si no, se establece en False.
is_paid Booleano Establézcalo en True si la actividad del turno está configurada como pagada. Si no, se establece en False.
is_deleted Booleano Establézcalo en True si se elimina la actividad del turno. Si no, se establece en False.
last_updated_timestamp Timestamp La marca de tiempo en la que se realizó la actividad del turno. created/updated/deleted
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Perfiles de turnos

Nombre de la tabla: shift_profiles

Clave principal compuesta: {instance_id, shift_profile_arn, shift_profile_version}

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
shift_profile_arn cadena El ARN del perfil de turno.
shift_profile_version bigint La versión de Shift Profile.
instance_arn cadena El ARN de la instancia de Amazon Connect.
shift_profile_name cadena El nombre del perfil de turno.
is_deleted Booleano Establézcalo en True si se borra el perfil de turno. Si no, se establece en False.
last_updated_timestamp Timestamp La marca de tiempo en que se produjo el perfil de cambio. created/updated/deleted
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Grupos de personal

Nombre de la tabla: staffing_groups

Clave principal compuesta: {instance_id, staffing_group_arn, staffing_group_version}

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
staffing_group_arn cadena El ARN del Staffing Group.
Versión del grupo de personal bigint La versión de Staffing Group.
instance_arn cadena El ARN de la instancia de Amazon Connect.
staffing_group_name cadena El nombre del grupo de personal.
is_deleted Booleano Establézcalo en True si se elimina el grupo de personal. Si no, se establece en False.
last_updated_timestamp Timestamp La marca de tiempo de cuando estaba el grupo de personal. created/updated/deleted
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Grupos de personal - Forecast groups

Nombre de la tabla: staffing_group_forecast_groups

Clave principal compuesta: {instance_id, staffing_group_arn, staffing_group_version, forecast_group_arn}

Esta tabla debe consultarse uniéndola a la staffing_groups tabla en staffing_group_arn ystaffing_group_version.

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
staffing_group_arn cadena El ARN del Staffing Group.
Versión del grupo de personal bigint La versión de Staffing Group.
forecast_group_arn cadena El ARN del Forecast Group asociado al Staffing Group.
instance_arn cadena El ARN de la instancia de Amazon Connect.
is_deleted Booleano Se establece en False cuando la ForecastGroup asociación StaffingGroup - es válida.
last_updated_timestamp Timestamp La marca de tiempo en que se creó o actualizó el grupo de personal.
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Grupos de personal: supervisores

Nombre de la tabla: staffing_group_supervisors

Clave principal compuesta: {instance_id, staffing_group_arn, staffing_group_version, supervisor_arn}

Esta tabla debe consultarse uniéndola a la staffing_groups tabla en staffing_group_arn ystaffing_group_version.

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
staffing_group_arn cadena El ARN del Staffing Group.
Versión del grupo de personal bigint La versión de Staffing Group.
supervisor_arn cadena El ARN del agente del supervisor asociado al grupo de personal.
instance_arn cadena El ARN de la instancia de Amazon Connect.
is_deleted Booleano Se establece en False cuando la ForecastGroup asociación StaffingGroup - es válida.
last_updated_timestamp Timestamp La marca de tiempo en que se creó o actualizó el grupo de personal.
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Turnos de personal

Nombre de la tabla: staff_shifts

Clave principal compuesta: {instance_id, shift_id, shift_version}

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
shift_id cadena El ID del turno.
shift_version bigint La versión Shift.
instance_arn cadena El ARN de la instancia de Amazon Connect.
agent_arn cadena El ARN del agente.
shift_start_timestamp Timestamp La marca de tiempo cuando comienza el turno.
shift_end_timestamp Timestamp La marca de tiempo cuando finaliza el turno.
created_timestamp Timestamp La marca de tiempo en que se creó el turno.
is_deleted Booleano Configúrelo en Verdadero si se elimina el turno. Si no, se establece en False.
last_updated_timestamp Timestamp La marca de tiempo de cuando ocurrió el cambio. created/updated/deleted
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Actividades por turnos de personal

Nombre de la tabla: staff_shift_activities

Clave principal compuesta: {instance_id, shift_id, shift_version, activity_id}

Esta tabla debe consultarse uniéndola a la staff_shifts tabla en shift_id yshift_version.

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
shift_id cadena El ID del turno.
shift_version bigint La versión Shift.
activity_id cadena El ID de la actividad.
instance_arn cadena El ARN de la instancia de Amazon Connect.
activity_start_timestamp Timestamp La marca de tiempo del inicio de la actividad.
activity_end_timestamp Timestamp La marca de tiempo cuando finaliza la actividad.
shift_activity_arn cadena El ARN de la actividad de turnos. Si el valor shift_activity_arn es nulo, indica actividad «laboral».
activity_status cadena Estado de la actividad. Se establece como INACTIVO si la actividad se superpone con un tiempo libre.
is_overtime Booleano Establézcalo en True si la actividad forma parte de las horas extra. Si no, se establece en False.
is_deleted Booleano Se establece en False cuando las actividades del turno son válidas.
last_updated_timestamp Timestamp La marca de tiempo en que se creó o actualizó el turno.
data_lake_last_processed_timestamp Timestamp La marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Períodos de descanso del personal

Nombre de la tabla: staff_timeoffs

Clave principal compuesta: {instance_id, timeoff_id, agent_arn, timeoff_version}

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
timeoff_id cadena El ID del tiempo libre.
agent_arn cadena El ARN del agente.
timeoff_version bigint La versión Time Off.
instance_arn cadena El ARN de la instancia de Amazon Connect.
timeoff_type cadena Tipo de tiempo libre. Los valores posibles son: TIME_OFF y VOLUNTARY_TIME_OFF.
timeoff_start_timestamp Timestamp Marca de tiempo cuando comienza el Time Off.
timeoff_end_timestamp Timestamp Marca de tiempo cuando finaliza el tiempo libre.
timeoff_status cadena Estado del tiempo libre. Los valores posibles son: PENDING_CREATE, PENDING_UPDATE, PENDING_CANCEL, PENDING_ACCEPT, PENDING_APPROVE, PENDING_DECLINE, APROBADO, ACEPTADO, RECHAZADO, CANCELADO, WAITING_ACCEPT y WAITING_APPROVE. Los estados de espera indican que el tiempo libre está pendiente de acción por parte del usuario. Los estados PENDIENTES indican que se está agotando el tiempo de espera para que el sistema procese una acción del usuario.
shift_activity_arn cadena El ARN de la actividad de turno utilizada para el tiempo libre.
horas_libres efectivas double Horas totales de tiempo libre efectivas. Las horas de descanso efectivas se calculan en función de la lógica de deducción del tiempo libre. Esto solo está configurado para el tipo TIME_OFF.
last_updated_timestamp Timestamp Marca de tiempo cuando era el tiempo libre. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Intervalos de tiempo libre del personal

Nombre de la tabla: staff_timeoff_intervals

Clave principal compuesta: {instance_id, timeoff_id, timeoff_version, interval_id}

Esta tabla debe consultarse uniéndola a la staff_timeoffs tabla en timeoff_id ytimeoff_version.

Columna Tipo Descripción
instance_id cadena El ID de la instancia de Amazon Connect.
timeoff_id cadena El ID del tiempo libre.
timeoff_version bigint La versión Time Off.
interval_id cadena El ID del intervalo de tiempo libre.
instance_arn cadena El ARN de la instancia de Amazon Connect.
timeoff_interval_start_timestamp Timestamp Marca de tiempo cuando comienza el intervalo específico de tiempo libre.
timeoff_interval_end_timestamp Timestamp Marca de tiempo cuando finaliza el intervalo específico de tiempo libre.
interval_efective_timeoff_hours double Horas de tiempo libre efectivas para este intervalo específico de tiempo libre. Las horas de descanso efectivas se calculan en función de la lógica de deducción del tiempo libre.
last_updated_timestamp Timestamp Marca de tiempo de cuando era el tiempo libre. created/updated/deleted
data_lake_last_processed_timestamp Timestamp Marca de tiempo, que muestra la última vez que el lago de datos tocó el registro. Esto puede incluir la transformación y el relleno. Este campo no se puede utilizar para determinar de forma fiable la frescura de los datos.

Esquema de datos

A continuación se muestra un diagrama de relaciones entre entidades que muestra la estructura y las relaciones entre las tablas de programación del lago de datos analíticos de Amazon Connect. El diagrama ilustra el esquema de la base de datos con 10 tablas interconectadas: staff_shift_ activities staff_shifts staff_timeoffsstaff_timeoff_intervals,users,routing_profiles,shift_activities,staffing_groups,shift_profiles, staffing_group_supervisors,,staffing_group_forecast_groups, y forecast_groups.

Cada tabla muestra sus claves y atributos principales con sus tipos de datos. El diagrama ilustra cómo estas tablas se relacionan entre sí a través de relaciones de clave externa, lo que proporciona una visión completa del modelo de datos de programación.

Un diagrama de relaciones entre entidades que muestra la estructura y las relaciones entre las tablas de programación del lago de datos analíticos de Amazon Connect.

Consultas de ejemplo

1. Realice una consulta para obtener todas las actividades de turno programadas de los agentes que trabajan en un Forecast Group específico

SELECT * FROM agent_scheduled_shift_activities_view where forecast_group_name = 'AnyDepartmentForecastGroup'

Complete los siguientes pasos para crear lo agent_scheduled_shift_activities_view mencionado anteriormente.

Paso 1: Cree una vista para obtener los nombres de los supervisores

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

Paso 2: Cree una vista para asociar el grupo de personal y el grupo de previsión 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

Paso 3: Obtenga las últimas actividades de 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)

Paso 4: Cree una vista para que el agente programe las actividades del turno

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. Consulta para obtener todas las solicitudes de tiempo libre de los agentes de un Forecast Group específico

SELECT * FROM agent_timeoff_report_view where forecast_group_name = 'AnyDepartmentForecastGroup'

Utilice la siguiente consulta para crear lo agent_timeoff_report_view mencionado anteriormente.

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