일시 삭제 개요
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
개별 레코드를 삭제하는 기능이 지원됩니다. 레코드 삭제는 일반적으로 다음 방법 중 하나를 사용하여 수행됩니다.
- 이러한 레코드를 포함하는 스토리지 아티팩트도 삭제되도록 시스템을 통해 레코드를 삭제하려면 다음을 사용합니다.
.purge
- 이러한 보장 없이 레코드를 삭제하려면 이 문서에 설명된 대로 사용합니다
.delete
. 이 명령은 레코드를 삭제된 것으로 표시하지만 스토리지 아티팩트에서 데이터를 반드시 삭제하지는 않습니다. 이 삭제 방법은 제거보다 빠릅니다.
명령을 사용하는 방법에 대한 자세한 내용은 구문을 참조 하세요.
사용 사례
이 삭제 메서드는 계획되지 않은 개별 레코드 삭제에만 사용해야 합니다. 예를 들어 IoT 디바이스가 손상된 원격 분석을 일정 시간 동안 보고하는 경우 이 메서드를 사용하여 손상된 데이터를 삭제하는 것이 좋습니다.
중복 제거 또는 업데이트에 대한 레코드를 자주 삭제해야 하는 경우 구체화된 뷰를 사용하는 것이 좋습니다. 데이터 중복 제거에 대한 구체화된 뷰와 일시 삭제 중에서 선택 항목을 참조 하세요.
삭제 프로세스
일시 삭제 프로세스는 다음 단계를 사용하여 수행됩니다.
- 조건자 쿼리 실행: 테이블은 삭제할 레코드가 포함된 데이터 익스텐트 식별을 위해 검사됩니다. 식별되는 범위는 조건자 쿼리에서 반환된 하나 이상의 레코드가 있는 범위입니다.
- 익스텐트 대체: 식별된 익스텐트를 원래 데이터 Blob을 가리키는 새 익스텐트로 대체되고 레코드당 삭제 여부를 나타내는 새 숨겨진 형식
bool
열도 있습니다. 완료되면 새 데이터가 수집되지 않으면 조건자 쿼리는 다시 실행하면 레코드를 반환하지 않습니다.
제한 사항 및 고려 사항
삭제 프로세스는 최종적이며 취소할 수 없습니다. 작업 후에 스토리지 아티팩트가 반드시 삭제되지는 않더라도 이 프로세스를 실행 취소하거나 삭제된 데이터를 복구할 수 없습니다.
일시 삭제는 네이티브 테이블 및 구체화된 뷰에 대해 지원됩니다. 외부 테이블에 대해서는 지원되지 않습니다.
일시 삭제를 실행하기 전에 쿼리를 실행하고 결과가 예상 결과와 일치하는지 확인하여 조건자를 확인합니다. 삭제될 것으로 예상되는 레코드 수를 반환하는 모드에서
whatif
명령을 실행할 수도 있습니다.동일한 테이블에서 여러 병렬 일시 삭제 작업을 실행하지 마세요. 이로 인해 일부 또는 모든 명령이 실패할 수 있습니다. 그러나 여러 테이블에서 여러 병렬 일시 삭제 작업을 실행할 수 있습니다.
동일한 테이블에서 일시 삭제 및 제거 명령을 병렬로 실행하지 마세요. 먼저 한 명령이 완료되기를 기다린 다음 다른 명령만 실행합니다.
일시 삭제는 클러스터 URI
https://[YourClusterName].[region].kusto.windows.net
에 대해 실행됩니다. 이 명령에는 관련 데이터베이스에 대한 데이터베이스 관리자 권한이 필요합니다.구체화된 뷰의 원본 테이블인 테이블에서 레코드를 삭제하면 구체화된 뷰에 영향을 줄 수 있습니다. 삭제되는 레코드가 구체화 주기에 의해 아직 처리되지 않은 경우 이러한 레코드는 처리되지 않으므로 보기에 누락됩니다. 마찬가지로 레코드가 이미 처리된 경우 삭제는 구체화된 뷰에 영향을 주지 않습니다.
조건자의 제한 사항:
- 하나
where
이상의 연산자가 포함되어야 합니다. - 레코드를 삭제할 테이블만 참조할 수 있습니다.
- 다음 연산자만 허용
extend
take
order
project
where
됩니다. 내에서toscalar()
연산자summarize
도 허용됩니다.
- 하나
삭제 성능
삭제 프로세스 성능에 영향을 줄 수 있는 주요 고려 사항은 다음과 같습니다.
- 조건자 쿼리 실행: 이 단계의 성능은 조건자 자체의 성능과 매우 유사합니다. 조건자에서 약간 더 빨라지거나 느려질 수 있지만 그 차이는 미미할 것으로 예상됩니다.
- 익스텐트 대체: 이 단계의 성능은 다음 사항에 따라 달라집니다.
- 클러스터의 데이터 익스텐트 간에 배포 기록
- 클러스터의 노드 수
명령과 .delete
달리 .purge
이 명령은 데이터를 다시 수집하지 않습니다. 조건자 쿼리에서 반환되는 레코드만 삭제된 것으로 표시하므로 훨씬 빠릅니다.
삭제 후 쿼리 성능
쿼리 성능은 레코드 삭제 후 눈에 띄게 변경되지 않을 것으로 예상됩니다.
삭제된 레코드를 필터링하는 모든 쿼리에 자동으로 추가되는 필터가 효율적이므로 성능 저하가 예상되지 않습니다.
그러나 쿼리 성능도 향상되지 않습니다. 일부 유형의 쿼리에서는 성능이 향상될 수 있지만 일부 쿼리에서는 성능이 향상되지 않을 수 있습니다. 쿼리 성능을 향상시키기 위해 대부분의 레코드가 삭제되는 범위는 삭제되지 않은 레코드만 포함하는 새 익스텐트로 대체하여 주기적으로 압축됩니다.
COGS에 미치는 영향(판매된 상품 비용)
대부분의 경우 레코드를 삭제해도 COGS가 변경되지는 않습니다.
- 실제로 삭제된 레코드가 없으므로 감소하지 않습니다. 레코드는 형식의
bool
숨겨진 열을 사용하여 삭제된 것으로만 표시되며 크기는 무시할 수 있습니다. - 대부분의 경우 작업에 추가 리소스를
.delete
프로비저닝할 필요가 없으므로 증가하지 않습니다. - 경우에 따라 대부분의 레코드가 삭제되는 범위는 삭제되지 않은 레코드만 포함하는 새 익스텐트로 대체하여 주기적으로 압축됩니다. 이렇게 하면 많은 수의 삭제된 레코드가 포함된 이전 스토리지 아티팩트가 삭제됩니다. 새 익스텐트 크기는 더 작으므로 스토리지 계정과 핫 캐시 모두에서 더 적은 공간을 사용합니다. 그러나 대부분의 경우 COGS에 미치는 영향은 무시할 수 있습니다.