Refresh 명령(TMSL)

적용 대상: SQL Server 2016 이상 Analysis Services Azure Analysis Services Fabric/Power BI Premium

현재 데이터베이스의 개체를 처리합니다.
새로 고침TMSL(시퀀스 명령)으로 제한하지 않는 한 항상 병렬로 실행됩니다.

데이터 새로 고침 작업 중에 일부 개체의 일부 속성을 재정의할 수 있습니다.

  • 즉시 사용 가능한 필터 식을 사용하여 데이터를 가져오도록 Partition 개체의 QueryDefinition 속성을 변경합니다.

  • DataSource 개체의 ConnectionString 속성에서 Refresh 명령의 일부로 데이터 원본 자격 증명을 제공합니다. 자격 증명이 저장되지 않고 작업 기간 동안 일시적으로 제공되고 사용되기 때문에 이 방법은 더 안전한 것으로 간주될 수 있습니다.

  • 기본 Power BI 의미 체계 모델 증분 새로 고침 정책을 재정의합니다.

이러한 속성 재정의에 대한 설명은 이 항목의 예제를 참조하세요.

참고

다차원 처리와 달리 테이블 형식 처리에 대한 처리 오류의 특별한 처리는 없습니다.

요청

새로 고침 은 형식 매개 변수 및 개체 정의를 사용합니다.

    {  
        "refresh": {  
            "description": "Parameters of Refresh command of Analysis Services JSON API",  
            "properties": {  
            "type": {  
                "enum": [  
                "full",  
                "clearValues",  
                "calculate",  
                "dataOnly",  
                "automatic",  
                "add",  
                "defragment"  
                ]  
            },  
            "objects": [  

형식 매개 변수는 처리 작업에 대한 scope 설정합니다.

새로 고침 형식 적용 대상 Description
전체 데이터베이스
테이블
파티션
지정한 파티션, 테이블 또는 데이터베이스의 모든 파티션의 경우 데이터를 새로 고치고 모든 종속 항목을 다시 계산합니다. 계산 파티션의 경우 파티션 및 해당하는 모든 종속 항목을 다시 계산합니다.
clearValues 데이터베이스
테이블
파티션
이 개체 및 해당하는 모든 종속 항목에서 값을 지웁니다.
계산 데이터베이스
테이블
파티션
이 개체 및 해당하는 모든 종속 항목을 다시 계산하지만, 필요한 경우에만 이렇게 합니다. volatile 수식을 제외하고는 이 값은 강제로 다시 계산되지 않습니다.
dataOnly 데이터베이스
테이블
파티션
이 개체에서 데이터를 새로 고치고 모든 종속 항목을 지웁니다.
automatic 데이터베이스
테이블
파티션
개체를 새로 고치고 다시 계산해야 할 경우 개체 및 해당하는 모든 종속 항목을 새로 고치고 다시 계산합니다. 파티션이 준비 이외의 상태인 경우에 적용됩니다.
add 파티션 이 파티션에 데이터를 추가하고 모든 종속 항목을 다시 계산합니다. 이 명령은 계산 파티션이 아닌 일반 파티션에 대해서만 유효합니다.
조각 모음 데이터베이스
테이블
지정한 테이블의 데이터를 조각 모음합니다. 데이터가 테이블에 추가되거나 테이블에서 제거되면 각 열의 사전이 더 이상 실제 열 값에 존재하지 않는 값으로 유효하지 않게 될 수 있습니다. 조각 모음 옵션은 더 이상 사용되지 않는 사전의 값을 정리합니다.

다음 개체를 새로 고칠 수 있습니다.

데이터베이스 개체(TMSL) 데이터베이스를 처리합니다.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200"  
      }  
    ]  
  }  
}  

Tables 개체(TMSL) 단일 테이블을 처리합니다.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "Date"  
      }  
    ]  
  }  
}  

Partitions 개체(TMSL) 테이블 내에서 단일 파티션을 처리합니다.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "FactSalesQuota",  
        "partition": "FactSalesQuota"  
      },  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "FactSalesQuota",  
        "partition": "FactSalesQuota - 2011"  
      }  
    ]  
  }  
}  

선택적 매개 변수

Power BI 의미 체계 모델의 경우 TMSL 새로 고침 명령에 다음 매개 변수를 추가하여 기본 증분 새로 고침 동작을 재정의할 수 있습니다.

  • applyRefreshPolicy – 테이블에 증분 새로 고침 정책이 정의된 경우 applyRefreshPolicy는 정책 적용 여부를 결정합니다. 정책이 적용되지 않는 경우 전체 처리 작업을 수행하면 파티션 정의가 변경되지 않고 테이블의 모든 파티션이 완전히 새로 고쳐집니다. 기본값은 true입니다.

  • effectiveDate – 증분 새로 고침 정책이 적용되는 경우 현재 날짜를 알고 있어야 기록 범위 및 증분 범위의 이동 기간 범위를 결정할 수 있습니다. effectiveDate 매개 변수를 사용하여 현재 날짜를 재정의할 수 있습니다. 이는 과거 또는 미래의 날짜까지 데이터를 증분 방식으로 새로 고치는 테스트, 데모 및 비즈니스 시나리오에 유용합니다(예: 향후 예산). 기본값은 현재 날짜입니다.

{
  "refresh": {
    "type": "full",

    "applyRefreshPolicy": true,
    "effectiveDate": "12/31/2013",

    "objects": [
      {
        "database": "IR_AdventureWorks", 
        "table": "FactInternetSales" 
      }
    ]
  }
}

다음 표에서는 증분 새로 고침 정책이 포함된 테이블의 각 새로 고침 유형에 대해 applyRefreshPolicy 가 true(기본값)인 경우의 영향을 보여 줍니다.

새로 고침 형식 영향
전체 정책은 Power BI의 증분 새로 고침에 설명된 대로 적용됩니다. 이전 새로 고침 작업에 의해 기록 파티션이 이미 만들어졌다고 가정하면 다음과 같은
요약이 설명되어 있습니다. - 필요한 경우 새 파티션이 증분 범위에 추가됩니다.
- 데이터 변경 내용을 검색하기 위해 pollingExpression이 정의되지 않은 경우 증분 범위의 모든 파티션이 완전히 새로 고쳐집니다.
- pollingExpression이 정의되면 증분 범위의 각 파티션에 대해 평가됩니다. 이전 새로 고침 작업과 비교하여 다른 폴링 결과를 반환하는 항목만 완전히 새로 고쳐집니다.
- 기록 파티션은 데이터의 지워졌는지 여부에 관계없이 새로 고쳐지지 않습니다.
- 범위를 벗어난 기록 파티션이 삭제됩니다.
- 영향을 받는 파티션 및 종속성의 다시 계산
clearValues applyRefreshPolicy는 동작에 영향을 주지 않습니다.
계산 applyRefreshPolicy는 동작에 영향을 주지 않습니다.
dataOnly type=full과 동일하지만 영향을 받는 파티션 및 종속을 다시 계산하지 않습니다.
automatic type=full과 동일하지만 증분 범위의 파티션은 type=automatic을 사용하여 새로 고쳐집니다.
add applyRefreshPolicy는 동작에 영향을 주지 않습니다.
조각 모음 applyRefreshPolicy는 동작에 영향을 주지 않습니다.

응답

명령이 성공하면 빈 결과를 반환합니다. 그렇지 않으면 XMLA 예외가 반환됩니다.

예제

파티션의 ConnectionStringQueryDefinition 을 모두 재정의합니다.

{
  "refresh": {
    "type": "dataOnly",
    "objects": [
      {
        "database": "AdventureWorksDW2017",
        "table": "DimCustomer"
      }
    ],
    "overrides": [
      {
        "dataSources": [ // Bindings for DataSources​
          {
            "originalObject": {
              "database": "AdventureWorksDW2017",
              "dataSource": "SqlServer localhost"
            },
            "connectionString": "Provider=SQLNCLI11.1;Data Source=.;Persist Security Info=True;User ID=YourSQLLogin;Password=YourPassword;Initial Catalog=AdventureWorksDW2017"
          }
        ],
        "partitions": [ // Bindings for Partitions​
          {
            "originalObject": {
              "database": "AdventureWorksDW2017",
              "table": "DimCustomer",
              "partition": "DimCustomer"
            },
            "source": {
              "query": "SELECT * FROM [dbo].[DimCustomer]"
            }
          }
        ]
      }
    ]
  }
}

형식 매개 변수를 dataOnly 새로 고침으로 설정하여 특정 재정의 범위를 지정합니다. 메타데이터는 그대로 유지됩니다.

{
  "refresh": {
    "type": "dataOnly",
    "objects": [
      {
        "database": "TMTestDB",
        "table": "Customer"
      },
      {
        "database": "TMTestDB",
        "table": "Sales"
      }
    ],
    "overrides": [
      {
        "scope": {
          "database": "TMTestDB",
          "table": "Sales"
        },
        "dataSources": [
          {
            "originalObject": {
              "dataSource": "SqlServer sqlcldb2 AS_foodmart_2000"
            },
            "connectionString": "Provider=SQLNCLI11;Data Source=sqlcldb2;Initial Catalog=AS_foodmart_2000;Integrated Security=SSPI;Persist Security Info=false"
          }
        ]
      }
    ]
  }
}

사용량(엔드포인트)

이 명령 요소는 다음과 같은 방법으로 노출되는 XMLA 엔드포인트를 통해 XMLA(Execute 메서드) 호출의 문에 사용됩니다.

  • SSMS(SQL Server Management Studio)의 XMLA 창으로

  • invoke-ascmd PowerShell cmdlet에 대한 입력 파일로

  • SSIS 작업 또는 SQL Server 에이전트 작업에 대한 입력으로

SSMS에서 이 명령에 대한 즉시 만든 스크립트를 생성할 수 있습니다. 예를 들어 처리 대화 상자에서 스크립트 를 클릭할 수 있습니다.