대화 데이터 증가 제한
작업이 수행될 때 대화 관련 테이블의 크기가 증가하고 시스템 성능에 영향을 줄 수 있습니다. 충분한 기록을 유지하면서 성능을 향상시키려면 과거 데이터를 보관하고 진행 중인 대화에 사용되는 테이블을 정리하는 프로세스를 설정합니다.
권장 활성화
및 의 과도한 사용 가상 에이전트 과 관련된 데이터 증가를 제한하려면 에이전트 채팅다음 표에서 더 깨끗한 작업을 활성화합니다.
| 테이블 이름 | 더 깨끗한 작업 요약 | 권장 사항 |
|---|---|---|
| AWA 에이전트 채널 가용성 [awa_agent_channel_availability] | 90일이 지난 에이전트 채널 가용성 로그를 제거합니다 AWA . | 정품 인증이 권장됩니다. |
| AWA 에이전트 현재 상태 [awa_agent_presence] | 90일이 지난 에이전트 현재 상태 로그를 제거합니다 AWA . | 정품 인증이 권장됩니다. |
| AWA 에이전트 현재 상태 이력 [awa_agent_presence_history] | 180일이 지난 에이전트 현재 상태 이력 로그를 제거합니다 AWA . | 이미 활성화되어 있으므로 작업이 필요하지 않습니다. |
| AWA 문서 크기 [awa_document_size] | 90일이 지난 문서 크기 로그를 제거합니다 AWA . | 정품 인증이 권장됩니다. |
| AWA 인스턴스 통계 [awa_instance_stats] | 60일이 지난 인스턴스 통계 로그를 제거합니다 AWA . | 이미 활성화되어 있으므로 작업이 필요하지 않습니다. |
| AWA 큐 통계 [awa_queue_stats] | 60일보다 오래된 큐 통계 로그를 제거합니다 AWA . | 이미 활성화되어 있으므로 작업이 필요하지 않습니다. |
| AWA 서비스 채널 통계 [awa_service_channel_stats] | 60일보다 오래된 서비스 채널 통계 로그를 제거합니다 AWA . | 이미 활성화되어 있으므로 작업이 필요하지 않습니다. |
| AWA 작업 항목 [awa_work_item] | 수락 또는 취소되었고 90일이 지난 작업 항목 로그를 제거합니다 AWA . | 정품 인증이 권장됩니다. |
| 상호작용 [interaction] | 90일이 지난 상호작용 로그를 제거합니다. | 정품 인증이 권장됩니다. |
| 상호 작용 JSON Blob [interaction_json_blob] | 60일이 지난 상호 작용 JSON Blob 로그를 제거합니다. | 정품 인증이 권장됩니다. |
| 라이브 그룹 프로파일 [live_group_profile] | 60일이 지난 라이브 그룹 프로파일 로그를 제거합니다. | 정품 인증이 권장됩니다. |
| 소비자 [sys_cs_consumer] | 사용자 ID가 [user_id]=5136503cc611227c0183e96598c4f706이고 60일이 지난 소비자 로그를 제거합니다. | 이미 활성으로 설정되어 있거나 Name [name] = Guest User를 조건에 추가합니다. |
| 소비자 장치 컨텍스트 [sys_cs_consumer_device_context] | 참조 계단식 규칙 [reference_cascade_rule]=삭제 규칙을 소비자 계정 [consumer_account] 열에 추가합니다. | 아무 동작도 필요하지 않습니다. |
| 대화 [sys_cs_conversation] | 60일이 지난 대화 로그를 제거합니다. | 이미 활성화되어 있으므로 작업이 필요하지 않습니다. |
정리해야 할 테이블
이러한 테이블은 장기 실행 인스턴스에서 수백만 개의 기록으로 증가할 수 있으므로 정리해야 합니다.
- 에이전트 현재 상태 이력 [awa_agent_presence_history]
- AWA 문서 크기 [awa_document_size]
- AWA 작업 항목 [awa_work_item]
- 소비자 [sys_cs_consumer]
- 소비자 장치 컨텍스트 [sys_cs_consumer_device_context]
- 대화 [sys_cs_conversation]
- 상호작용 [interaction]
- 상호작용 JSON Blob [interaction_json_blob]
- 라이브 그룹 프로파일 [live_group_profile]
대화 메시지 [sys_cs_message] 및 라이브 피드 메시지 [live_message] 테이블과 같이 커질 수 있는 다른 관련 테이블도 있습니다. 이러한 테이블에는 앞의 목록에 있는 테이블을 정리할 때 발생하는 부작용으로 테이블을 정리하는 특성이 있습니다 reference_cascade_rule_delete .
테이블에서 삭제해야 하는 기록
Auto Flush(자동 플러시) 구성을 사용하면 Matchfield(일치 필드 ) 및 Age in seconds(기간(초) 필드)를 선택할 수 있습니다. Matchfield 필드는 테이블의 날짜 열에 해당하며 Age in seconds 필드는 삭제가 트리거되는 시기를 나타냅니다. 레코드가 Matchfield 필드의 날짜가 Age in seconds 필드보다 더 오래된 날짜인 지점에 도달하면 클리너가 실행될 때 레코드를 삭제합니다.
이상적으로 Matchfield 필드는 기록이 활성화된 시간을 표시해야 합니다. 다음 표의 열은 해당 테이블의 Matchfield 필드와 잘 작동하며, 표시된 경우 조건 필드에 추가 조건이 있습니다.
| 테이블 | 열 | 열이 인덱싱되었습니까? | 추가 조건 |
|---|---|---|---|
| AWA 에이전트 채널 가용성 [awa_agent_channel_availability] | 업데이트됨(sys_updated_on) | 아니요 | agent.active=거짓 |
| AWA 에이전트 현재 상태 [awa_agent_presence] | 업데이트됨(sys_updated_on) | 아니요 | |
| AWA 에이전트 현재 상태 이력 [awa_agent_presence_history] | 업데이트됨(sys_updated_on) | 예 | |
| AWA 문서 크기 [awa_document_size] | 업데이트됨(sys_updated_on) | 아니요 | |
| AWA 작업 항목 [awa_work_item] | 업데이트됨(sys_updated_on) | 예 | stateINaccepted,cancelled |
| 상호작용 [interaction] | 업데이트됨(sys_updated_on) | 예 | |
| 상호 작용 JSON Blob [interaction_json_blob] | 업데이트됨(sys_updated_on) | 아니요 | |
| 라이브 그룹 프로파일 [live_group_profile] | 업데이트됨(sys_updated_on) | 아니요 | |
| 소비자 [sys_cs_consumer] | 업데이트됨(sys_updated_on) | 아니요 | name=손님 사용자 (Automatic Translation) |
| 대화 [sys_cs_conversation] | 업데이트됨(sys_updated_on) | 아니요 |
interaction.closed_at 및 sys_cs_conversation.conversation_completed는 오류가 있는 대화 및 일부 종결된 상호 작용에 대한 값이 없기 때문에 Matchfield 필드에 적합한 옵션이 아닙니다. 적절한 상태 변경이 발생할 때 이 날짜가 비어 있는 경우 이 날짜를 설정하는 비즈니스 규칙으로 간격을 좁힐 수 있지만 단순화를 위해 이러한 테이블에 sys_updated_on 필드를 사용합니다.
다른 테이블은 종결된 채팅만 삭제되도록 하는 상태 필드의 조건으로 제한될 수 있습니다. 일반적으로 상호 작용은 며칠 이상 열어 두어서는 안 되므로 마지막 업데이트 후 쿼리를 더 단순하게 만들고 더 빠르게 실행하기 위해 이러한 조건을 생략할 수 있습니다. 케이스와 같이 더 오래 실행되는 작업도 표시되므로 awa_work_item 테이블의 상태가 더 중요할 수 있습니다.
sys_cs_consumer 테이블의 문제는 일반적으로 새 대화를 기존 사용자와 일치시키기 위해 이러한 레코드를 유지할 수 있지만 게스트 사용자의 경우 모든 대화에 대해 다른 레코드가 생성된다는 것입니다.
sys_cs_consumer_device_context 테이블의 경우 CS 소비자 계정 [sys_cs_consumer_account] 테이블에 대한 참조(자체적으로 sys_cs_consumer 테이블에 대한 참조가 있음)가 있지만 참조가 reference_cascade_rule=delete로 표시되지 않습니다. 이 규칙을 소비자 계정 참조에 추가하는 것이 좋습니다. 이렇게 하면 클리너가 sys_cs_consumer 및 sys_cs_consumer_account 테이블의 레코드를 삭제할 때 해당 레코드도 삭제됩니다.
awa_agent_presence 및 awa_agent_channel_availability 테이블은 다른 테이블과 같은 방식으로 채팅당 증가하지 않지만 할당 엔진에서 정기적으로 액세스하며 더 이상 활성 상태가 아닌 사용자의 부실 항목으로 끝날 수 있습니다. 오랫동안 사용하지 않은 항목도 여기에서 정리해야 합니다. awa_agent_channel_availability 열은 자주 업데이트되지 않을 수 있으므로 각별히 주의해야 합니다. 이러한 이유로, 비활성 사용자와 관련된 기록만 제거할 수 있도록 해당 클리너에 추가 조건을 추가해야 합니다.
기록을 안전하게 삭제할 수 있는 경우
기록을 안전하게 삭제할 수 있는 시기를 결정할 때 고려해야 할 몇 가지 사항이 있습니다.
- 진행 중인 대화에 대한 기록을 삭제하지 마십시오.
세션 기반 채팅 대화의 경우 연령 임계값은 단 며칠입니다. SMS/메시징 대화가 포함된 경우 연령 기준이 몇 주 이상으로 연장될 수 있습니다. 이를 평가하는 한 가지 방법은 com.glide.cs.*_idle_timeout 형식의 모든 속성을 살펴보고 값이 가장 높은 속성을 찾는 것입니다.
- 최근 활동에 대한 대시보드/보고서에 기여하는 기록을 삭제하지 마십시오.
for Interactions-Advanced Analytics 대시보드에는 AWA 3개월 전을 돌아보는 주간 추세 표시기가 포함되어 있습니다. 이를 완벽하게 지원하려면 상호작용 및 awa_work_item 기록을 90일 이상 보관해야 합니다.
- 나중에 참조하기 위해 데이터를 보관해야 하는 경우 기록을 삭제하지 마십시오.
이 시기는 필요한 보관을 수행하기 위해 추가되는 사용자 지정 논리의 타이밍에 따라 달라집니다. 결정적인 요소가 되지 않을 만큼 충분히 일찍 실행되도록 설정할 수 있어야 합니다.
- 상호 작용, awa_work_item: 7776000(90일 - 그러나 주간 추세 표시기를 사용하지 않거나 이에 대한 룩백을 더 짧은 시간으로 설정하려는 경우 줄일 수 있음).
- sys_cs_conversation, live_group_profile, interaction_json_blob, sys_cs_consumer: 2592000(30일) 또는 5184000(60일).
성능 고려 사항
누락된 테이블에 sys_updated_on 인덱스가 필요합니까?
테스트는 12,000,000+ 상호작용이 있는 인스턴스에서 실행되었으며, sys_updated_on 필드에 인덱스가 있는 테이블(상호작용)과 그렇지 않은(interaction_json_blob) 테이블에 대해 테이블 정리가 구성되었습니다. 두 경우 모두 초기 및 후속 실행의 경우 삭제에 소요되는 시간(잠재적으로 몇 분)이 레코드를 쿼리하는 데 소요되는 시간(2초 이하)보다 훨씬 컸습니다. 이 결과가 주어지면 성능에 미치는 영향이 최소화되므로 인덱스를 테이블에 추가할 필요가 없습니다.
초기 및 반복된 테이블 클리너 작업은 언제 실행해야 합니까?
일반적으로 테이블 클리너 sys_trigger는 시간당 한 번씩 실행됩니다. 오래된 레코드가 많은 테이블에 하나 이상의 클리너가 설정된 경우 첫 번째 실행 중에 수행되는 삭제 수가 매우 많을 수 있으며 시스템에 추가 부하가 발생할 수 있습니다. 테이블 정리 구성을 조정하고 활성화하기 전에 이 테이블 클리너 일정을 임시로 변경하여 업무 외 시간(일반적으로 시스템 부하가 낮은 시간)에 다음 실행이 발생하도록 합니다.
쉬는 시간이 없다면 도움이 될 수 있는 테이블 클리너를 관리하는 몇 가지 속성이 있습니다. 특히 glide.db.tablecleaner.chunk_delete_max_time_spent 는 클리너가 단일 실행 중에 레코드를 일괄 삭제하는 데 소요되는 시간을 제한합니다. 값은 초 단위로 지정되며 기본값은 1200(20분)입니다. 즉, 기본 시스템 설정에서 테이블 클리너는 최대 20분 동안 매시간 실행됩니다(참고로 한 테스트 중에 계단식 삭제를 포함하여 20분 동안 약 400,000개의 상호 작용이 삭제될 수 있음). 매시간 20분이 너무 공격적이면 속성 값을 줄일 수 있습니다.