.alter materialized-view
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
구체화된 뷰 변경은 뷰의 기존 데이터를 유지하면서 구체화된 뷰의 쿼리를 변경하는 데 사용할 수 있습니다.
Warning
구체화된 뷰를 변경할 때는 주의해야 합니다. 잘못 사용하면 데이터가 손실 될 수 있습니다.
사용 권한
이 명령을 실행하려면 최소한 구체화된 뷰 관리자 권한이 있어야 합니다.
구문
.alter
materialized-view
[ with
(
PropertyName =
PropertyValue,
...)
] MaterializedViewName SourceTableName{
쿼리 on table
}
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
PropertyName, PropertyValue | string |
지원되는 속성 목록에서 이름 및 값 쌍 형식의 속성 목록입니다. | |
MaterializedViewName | string |
✔️ | 구체화된 뷰의 이름입니다. |
SourceTableName | string |
✔️ | 뷰가 정의된 원본 테이블의 이름입니다. |
쿼리 | string |
✔️ | 구체화된 뷰의 쿼리 정의입니다. |
지원되는 속성
PropertyName PropertyValue )
=
절에서 with
(
지원되는 속성은 다음과 같습니다. 모든 속성은 선택 사항입니다.
속성 | 형식 | 설명 |
---|---|---|
lookback | timespan |
구체화된 뷰에 arg_max //arg_min take_any 만 유효합니다. 중복이 예상되는 기간을 제한합니다. 예를 들어 보기에 arg_max 6시간의 조회가 지정된 경우 새로 수집된 레코드와 기존 레코드 간의 중복 제거는 최대 6시간 전에 수집된 레코드만 고려합니다. 조회는 을 기준으로 합니다 ingestion_time . 조회 기간을 잘못 정의하면 구체화된 뷰에서 중복될 수 있습니다. 예를 들어 특정 키에 대한 레코드가 동일한 키에 대한 레코드를 수집한 후 10시간 후에 수집되고 조회가 6시간으로 설정된 경우 해당 키는 보기에서 중복됩니다. 조회 기간은 구체화 시간과 쿼리 시간 모두에 적용됩니다. |
autoUpdateSchema | bool |
원본 테이블 변경에 대한 뷰를 자동으로 업데이트할지 여부입니다. 기본값은 false 입니다. 이 옵션은 열의 인수가 있는 경우에만 형식 arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) 보기에만 유효합니다.* 이 옵션을 설정 true 하면 원본 테이블의 변경 내용이 구체화된 뷰에 자동으로 반영됩니다. |
dimensionTables | 배열 | 뷰에 차원 테이블의 배열을 포함하는 동적 인수입니다. 쿼리 매개 변수를 참조하세요. |
폴더 | string |
구체화된 뷰의 폴더입니다. |
docString | string |
구체화된 뷰를 문서화하는 문자열입니다. |
반품
출력 스키마:
속성 | 형식 | Description |
---|---|---|
이름 | 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
}
출력
속성 | 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 | Completed | true | true | false | 2023-02-23T14:01:42.5172342Z |
사용 사례
- 뷰에 집계를 추가합니다. 예를 들어 뷰 쿼리를
T | summarize count(), min(Value) by Id
로 변경하여 집계를T | summarize count(), min(Value), avg(Value) by Id
추가avg
합니다. - 요약 연산자가 아닌 변경 연산자입니다. 예를 들어 으로 변경하여 일부 레코드를 필터링합니다
T | summarize arg_max(Timestamp, *) by User
T | where User != 'someone' | summarize arg_max(Timestamp, *) by User
. - 원본 테이블의 변경으로 인해 쿼리를 변경하지 않고 변경합니다. 예를 들어 설정되지 않은 뷰
T | summarize arg_max(Timestamp, *) by Id
를 가정합니다autoUpdateSchema
(명령 참조.create materialized-view
). 뷰의 원본 테이블에서 열을 추가하거나 제거하면 보기가 자동으로 비활성화됩니다. 정확히 동일한 쿼리를 사용하여 alter 명령을 실행하여 구체화된 뷰의 스키마를 새 테이블 스키마에 맞게 변경합니다. 구체화된 뷰 사용 명령을 사용하여 변경 후 뷰를 명시적으로 사용하도록 설정해야 합니다.
제한 사항
지원되지 않는 변경 내용:
- 식별로 구체화된 뷰 그룹에 대한 변경 내용입니다.
- 열 형식 변경
- 열 이름 바꾸기 예를 들어 열을 삭제
count_
하도록 뷰T | summarize count() by Id
를T | summarize Count=count() by Id
변경하고 처음에는 null만 포함하는 새 열을Count
만듭니다.
기존 데이터에 미치는 영향:
- 구체화된 뷰를 변경해도 기존 데이터에는 영향을 주지 않습니다.
- 쿼리에 필터를 추가하면 새로 수집된 레코드에만 적용되며 이미 구체화된 레코드는 변경되지 않습니다.
- alter 명령이 null 값을 수정한 후 수집된 레코드가 수집될 때까지 새 열은 모든 기존 레코드에 대해 null을 받습니다.
- 예: 뷰
T | summarize count() by bin(Timestamp, 1d)
가 .로 변경됩니다T | summarize count(), sum(Value) by bin(Timestamp, 1d)
. 보기를 변경하기 전에 레코드가 이미 처리된 특정Timestamp=T
레코드의 경우 열에sum
부분 데이터가 포함됩니다. 이 보기에는 변경 실행 후에 처리된 레코드만 포함됩니다.