.alter materialized-view

구체화된 뷰를 변경하면 뷰의 기존 데이터를 유지하면서 구체화된 뷰의 쿼리를 변경할 수 있습니다.

경고

구체화된 뷰를 변경할 때는 주의해야 합니다. 잘못된 사용으로 인해 데이터가 손실 될 수 있습니다.

사용 권한

이 명령을 실행하려면 구체화된 뷰 관리 권한이 있어야 합니다.

Syntax

.altermaterialized-view [ with(PropertyName=PropertyValue,...)] MaterializedViewNameon tableSourceTableName{쿼리}

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 형식 필수 Description
PropertyName, PropertyValue string 지원되는 속성 목록에서 이름 및 값 쌍 형식의 속성 목록입니다.
MaterializedViewName string ✔️ 구체화된 뷰의 이름입니다.
SourceTableName string ✔️ 뷰가 정의된 원본 테이블의 이름입니다.
쿼리 string ✔️ 구체화된 뷰의 쿼리 정의입니다.

지원되는 속성

PropertyName PropertyValue=) 절에서 with( 지원되는 속성은 다음과 같습니다. 모든 속성은 선택 사항입니다.

Name 형식 Description
lookback timespan 구체화된 뷰에 arg_max//arg_mintake_any 만 유효합니다. 중복이 예상되는 기간을 제한합니다. 예를 들어 보기에 arg_max 6시간의 조회가 지정된 경우 새로 수집된 레코드와 기존 레코드 간의 중복 제거는 최대 6시간 전에 수집된 레코드만 고려합니다.

조회는 를 기준으로 합니다 ingestion_time. 조회 기간을 잘못 정의하면 구체화된 뷰에서 중복될 수 있습니다. 예를 들어 특정 키에 대한 레코드가 동일한 키에 대한 레코드를 수집한 후 10시간 후에 수집되고 조회가 6시간으로 설정된 경우 해당 키는 보기에서 중복됩니다. 조회 기간은 구체화 시간과쿼리 시간 모두에 적용됩니다.
autoUpdateSchema bool 원본 테이블 변경에 대한 보기를 자동으로 업데이트할지 여부입니다. 기본값은 false입니다. 이 옵션은 형식 arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) 의 보기에만 유효합니다(열의 인수가 *인 경우에만 ). 이 옵션을 로 true설정하면 원본 테이블의 변경 내용이 구체화된 뷰에 자동으로 반영됩니다.
dimensionTables array 뷰에 차원 테이블 배열을 포함하는 동적 인수입니다. 쿼리 매개 변수를 참조하세요.
폴더 string 구체화된 뷰의 폴더입니다.
docString string 구체화된 뷰를 문서화하는 문자열입니다.

반환

출력 스키마:

Name 형식 Description
Name string 구체화된 뷰의 이름입니다.
SourceTable string 뷰가 정의된 원본 테이블의 이름입니다.
쿼리 string 구체화된 뷰의 쿼리 정의입니다.
MaterializedTo datetime 원본 테이블에서 구체화된 최대 ingestion_time() 타임스탬프입니다. 자세한 내용은 구체화된 뷰의 작동 방식을 참조하세요.
LastRun datetime 마지막으로 구체화를 실행했습니다.
LastRunResult string 마지막 실행의 결과입니다. 성공한 실행에 대해 를 반환하고, 그렇지 않으면 Failed를 반환 Completed 합니다.
IsHealthy bool true 보기가 정상으로 간주되면 이고, false 그렇지 않으면 입니다. 뷰는 마지막 1시간까지 성공적으로 구체화된 경우 정상으로 간주됩니다(MaterializedTo 보다 큼 ago(1h)).
IsEnabled bool true 뷰가 활성화되면(구체화된 뷰 사용 안 함 또는 사용).
폴더 string 구체화된 뷰가 만들어지는 폴더입니다.
DocString string 구체화된 뷰에 할당된 설명입니다.
AutoUpdateSchema bool 자동 업데이트에 대해 뷰를 사용할 수 있는지 여부입니다.
EffectiveDateTime datetime 생성 시간 동안 결정되는 보기의 유효 날짜 시간(참조 .create materialized-view).
되돌아보기 timespan 중복이 예상되는 기간을 제한하는 시간 범위입니다.

예제

구체화된 뷰의 쿼리 정의 수정

다음 명령은 구체화된 뷰 MyView의 쿼리 정의를 수정합니다.

.alter materialized-view MyView on table MyTable
{
    MyTable | summarize arg_max(Column3, *) by Column1
}

출력

Name SourceTable 쿼리 MaterializedTo LastRun LastRunResult IsHealthy IsEnabled 폴더 DocString AutoUpdateSchema EffectiveDateTime 되돌아보기
MyView MyTable MyTable | column1로 arg_max(Column3, *) 요약 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z 완료됨 true true false 2023-02-23T14:01:42.5172342Z

사용 사례

  • 보기에 집계를 추가합니다. 예를 들어 뷰 쿼리T | summarize count(), min(Value), avg(Value) by IdT | summarize count(), min(Value) by Id로 변경하여 에 집계를 추가 avg 합니다.
  • summarize 연산자 이외의 변경 연산자입니다. 예를 들어 을 로 변경하여 일부 레코드를 필터링합니다 T | summarize arg_max(Timestamp, *) by UserT | where User != 'someone' | summarize arg_max(Timestamp, *) by User.
  • 원본 테이블의 변경으로 인해 쿼리를 변경하지 않고 변경합니다. 예를 들어 로 설정되지 않은 의 T | summarize arg_max(Timestamp, *) by Id뷰를 가정합니다 autoUpdateSchema (명령 참조 .create materialized-view ). 뷰의 원본 테이블에서 열을 추가하거나 제거하면 보기가 자동으로 비활성화됩니다. 정확히 동일한 쿼리를 사용하여 alter 명령을 실행하여 구체화된 뷰의 스키마를 새 테이블 스키마에 맞게 변경합니다. 구체화된 뷰 사용 명령을 사용하여 변경 후 뷰를 명시적으로 사용하도록 설정 해야 합니다.

제한 사항

  • 변경 내용은 지원되지 않습니다.

    • 식별로 구체화된 뷰 그룹에 대한 변경 내용입니다.
    • 열 형식 변경
    • 열 이름 바꾸기 예를 들어 뷰 T | summarize count() by IdT | summarize Count=count() by Id 를 로 변경하면 열 count_ 이 삭제되고 처음에 null만 포함된 새 열 Count이 만들어집니다.
  • 기존 데이터에 미치는 영향:

    • 구체화된 뷰를 변경해도 기존 데이터에는 영향을 주지 않습니다.
    • 쿼리에 필터를 추가하면 새로 수집된 레코드에만 적용되며 이미 구체화된 레코드는 변경되지 않습니다.
      • 새 열은 alter 명령이 null 값을 수정한 후 수집된 레코드가 수집될 때까지 모든 기존 레코드에 대해 null을 받습니다.
      • 예: 의 T | summarize count() by bin(Timestamp, 1d) 보기가 로 변경됩니다 T | summarize count(), sum(Value) by bin(Timestamp, 1d). 보기를 변경하기 전에 레코드가 이미 처리된 특정 Timestamp=T 항목의 경우 열에 sum 부분 데이터가 포함됩니다. 이 보기에는 변경 실행 후에 처리된 레코드만 포함됩니다.