Azure Cosmos DB v2(베타)

요약

항목 설명
릴리스 상태 베타
제품 Power BI(의미 체계 모델)
Power BI(데이터 흐름)
패브릭(데이터 흐름 Gen2)
지원되는 인증 유형 피드 키

필수 조건

지원되는 기능

  • 가져오기
  • DirectQuery(Power BI 의미 체계 모델)
  • 고급 옵션
    • 재시도 횟수
    • "AVERAGE" 함수 암호를 사용하도록 설정
    • 여러 열에 대해 "SORT" 암호를 사용하도록 설정

Azure Cosmos DB에 연결

Azure Cosmos DB 데이터에 연결하려면 다음을 수행합니다.

  1. Power BI Desktop을 시작하세요.

  2. 탭에서 데이터 가져오기를 선택합니다.

  3. 검색 상자에 Cosmos DB v2를 입력합니다.

  4. Azure Cosmos DB v2(베타)를 선택한 다음, 연결을 선택합니다.

    Azure Cosmos DB v2 선택 항목을 보여 주는 스크린샷

  5. Azure Cosmos DB v2 연결 페이지의 Cosmos 엔드포인트에 사용할 Azure Cosmos DB 계정의 URI를 입력합니다. 데이터 연결 모드의 경우 다음 일반적인 지침에 따라 사용 사례에 적합한 모드를 선택합니다.

    • 더 작은 데이터 집합의 경우 가져오기를 선택합니다. 가져오기 모드를 사용하는 경우 Power BI는 Cosmos DB와 협력하여 시각화에 사용할 전체 데이터 집합의 콘텐츠를 가져옵니다.

    • DirectQuery 모드는 실행을 위해 Cosmos DB 컨테이너에 대한 쿼리 푸시다운 을 사용하도록 설정하고 커넥터의 성능을 향상시킵니다. 분할된 Cosmos DB 컨테이너의 경우 쿼리에 파티션 키에 필터(WHERE 절)가 포함된 경우 집계 함수가 있는 SQL 쿼리가 Cosmos DB로 전달됩니다. 예를 들어 파티션 키가 "Product"로 정의된 경우 Cosmos DB 서버에서 전달되고 실행될 수 있는 SQL 쿼리는 다음과 같습니다.

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    추가 정보:

    Cosmos 엔드포인트 항목 및 DirectQuery로 설정된 데이터 연결 모드를 보여 주는 연결 대화 상자의 스크린샷

  6. 데이터 원본 인증을 구성하라는 프롬프트에서 계정 키를 입력합니다. 그런 다음 연결을 선택합니다. 데이터 카탈로그, 데이터베이스 및 테이블이 탐색기 대화 상자에 표시됩니다.

  7. 표시 옵션 창에서 사용하려는 데이터 집합의 확인란을 선택합니다.

    선택한 데이터를 강조하는 탐색기의 스크린샷.

  8. 파티션 키 필터를 지정하는 가장 최적의 방법은(집계 함수를 Cosmos DB로 푸시다운할 수 있도록) 동적 M 매개 변수를 사용하는 것입니다. 동적 M 매개 변수를 사용하려면 고유한 파티션 키 값을 사용하여 데이터 집합을 만들고, 매개 변수를 만들고, 기본 데이터 집합에 필터로 추가하고, 고유한 파티션 키 데이터 집합에 바인딩하고, 기본 데이터 집합의 슬라이서로 사용합니다. 파티션 키 필터링에 동적 M 매개 변수를 사용하도록 설정하려면 다음 단계를 사용합니다.

    a. 고유한 파티션 키 값을 사용하여 데이터 집합 만들기:

    탐색기에서 로드 대신 데이터 변환을 선택하여 파워 쿼리 편집기를 표시합니다. 쿼리 데이터 집합을 마우스 오른쪽 단추로 클릭한 다음 중복을 선택하여 새 데이터 집합을 만듭니다.

    파워 쿼리 편집기에서 기존 쿼리에서 중복 항목을 선택하는 방법을 보여 주는 스크린샷

    새 파티션 키 모델의 이름을 바꾼 다음 Cosmos DB 파티션 키 열을 마우스 오른쪽 단추로 클릭합니다. 이 예제 에서 Product 는 Cosmos DB 파티션 키 열입니다. 다른 열 제거를 선택한 다음 중복 제거를 선택합니다.

    파워 쿼리 편집기에서 고유한 파티션 키를 보여 주는 스크린샷

    b. 동적 필터링을 위한 매개 변수 만들기:

    파워 쿼리 편집기에서 매개 변수 새 매개 변수> 관리를 선택합니다. 필터 매개 변수를 반영하도록 새 매개 변수의 이름을 바꾸고 유효한 값을 현재 값으로 입력합니다.

    파워 쿼리 편집기에서 매개 변수를 만드는 방법을 보여 주는 스크린샷

    c. 기본 데이터 집합에 매개 변수가 있는 필터 적용:

    파티션 키 열의 드롭다운 아이콘을 선택한 다음 텍스트 필터 등가를> 선택합니다. 필터 형식을 텍스트에서 매개 변수로 변경합니다. 그런 다음, b단계에서 만든 매개 변수를 선택합니다. 파워 쿼리 편집기의 왼쪽 위 모서리에서 닫기 및 적용을 선택합니다.

    매개 변수가 있는 필터를 적용하는 단계를 보여 주는 스크린샷

    d. 매개 변수 바인딩을 사용하여 파티션 키 값 슬라이서 만들기:

    Power BI에서 모델 탭을 선택합니다. 그런 다음 파티션 키 필드를 선택합니다. 속성 창에서 매개 변수에 대한 고급>바인딩을 선택합니다. b단계에서 만든 매개 변수를 선택합니다.

    매개 변수를 바인딩하는 단계를 보여 주는 스크린샷

    보고서 탭을 선택하고 고유한 파티션 키가 있는 슬라이서 추가

    슬라이서의 스크린샷.

    e. 시각화 추가 및 슬라이서에서 파티션 키 필터 적용:

    슬라이서에서 선택한 파티션 키 값이 매개 변수에 바인딩되고(d단계에서 수행한 대로) 매개 변수가 있는 필터가 주 데이터 집합에 적용되므로(c단계에서 수행한 대로) 선택한 파티션 키 값이 기본 데이터 집합에 필터로 적용되고 파티션 키 필터가 있는 쿼리는 모든 시각화에서 Cosmos DB로 전달됩니다.

    파티션 키 필터가 적용된 후의 시각화 스크린샷

고급 옵션

파워 쿼리는 필요한 경우 쿼리에 추가할 수 있는 고급 옵션 집합을 제공합니다.

다음 표에서는 파워 쿼리에서 설정할 수 있는 모든 고급 옵션을 나열합니다.

고급 옵션 설명
재시도 횟수 또는 HTTP 반환 코드408 - Request Timeout412 - Precondition Failed429 - Too Many Requests가 있는 경우 다시 시도할 횟수입니다. 기본 재시도 횟수는 5입니다.
AVERAGE 함수 전달 사용 커넥터에서 AVG 집계 함수를 Cosmos DB로 전달할 수 있는지 여부를 지정합니다. 기본값은 1이고 커넥터는 기본적으로 AVG 집계 함수를 Cosmos DB로 전달하려고 시도합니다. 인수에 AVG 집계 함수에 대한 문자열, 부울 또는 null 값이 포함된 경우 Cosmos DB 서버에서 정의되지 않은 결과 집합이 반환됩니다. 값 0으로 설정하면 AVG 집계 함수가 Cosmos DB 서버로 전달되지 않으며 커넥터는 AVG 집계 작업 자체를 수행하는 것을 처리합니다.
여러 열에 대해 SORT Passdown 사용 SQL 쿼리의 ORDER BY 절에 지정된 경우 커넥터에서 여러 열을 Cosmos DB로 전달할 수 있는지 여부를 지정합니다. 기본값은 0이고 ORDER BY 절에 둘 이상의 열이 지정된 경우 커넥터는 기본적으로 열을 전달하지 않고 대신 순서를 수행하는 작업을 자체 처리합니다. 값 1로 설정하면 커넥터는 SQL 쿼리의 ORDER BY 절에 지정된 경우 여러 열을 Cosmos DB로 전달하려고 시도합니다. 여러 열을 Cosmos DB로 전달할 수 있도록 하려면 해당 컬렉션의 열에 복합 인덱스를 설정해야 합니다. 분할된 컬렉션의 경우 ORDER BY를 사용하는 SQL 쿼리는 쿼리에 분할된 키에 대한 필터가 포함된 경우에만 Cosmos DB로 전달됩니다. 또한 ORDER BY 절에 8개 이상의 열이 지정된 경우 커넥터는 ORDER BY 절을 전달하지 않고 순서 지정 실행 자체를 처리합니다.

알려진 문제 및 제한 사항

  • 분할된 Cosmos DB 컨테이너의 경우 쿼리에 파티션 키에 필터(WHERE 절)가 포함된 경우 집계 함수가 있는 SQL 쿼리가 Cosmos DB로 전달됩니다. 집계 쿼리에 파티션 키에 대한 필터가 포함되어 있지 않으면 커넥터에서 집계를 수행합니다.

  • TOP 또는 LIMIT가 적용된 후에 호출되는 경우 커넥터는 집계 함수를 전달하지 않습니다. Cosmos DB는 쿼리를 처리할 때 마지막에 TOP 작업을 처리합니다. 예를 들어 다음 쿼리에서 TOP은 하위 쿼리에 적용되고 집계 함수는 해당 결과 집합 위에 적용됩니다.

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • DISTINCT가 집계 함수에 제공된 경우 집계 함수에 DISTINCT 절이 제공된 경우 커넥터는 집계 함수를 Cosmos DB로 전달하지 않습니다. 집계 함수에 있는 경우 DISTINCT는 Cosmos DB SQL API에서 지원되지 않습니다.

  • SUM 집계 함수의 경우 SUM의 인수 중 문자열, 부울 또는 null인 경우 Cosmos DB는 결과 집합으로 정의되지 않은 값을 반환합니다. 그러나 null 값이 있는 경우 커넥터는 SUM 계산의 일부로 null 값을 0으로 바꾸도록 데이터 원본에 요청하는 방식으로 Cosmos DB에 쿼리를 전달합니다.

  • AVG 집계 함수의 경우 SUM의 인수 중 문자열, 부울 또는 null인 경우 Cosmos DB는 결과 집합으로 정의되지 않은 값을 반환합니다. 커넥터는 이 기본 Cosmos DB 동작을 재정의해야 하는 경우 AVG 집계 함수를 Cosmos DB에 전달하지 않도록 설정하는 연결 속성을 노출합니다. AVG 암호를 사용하지 않도록 설정하면 Cosmos DB로 전달되지 않으며 커넥터는 AVG 집계 작업 자체를 수행하는 것을 처리합니다. 자세한 내용은 고급 옵션에서 "AVERAGE 함수 암호 사용"을 참조하세요.

  • 큰 파티션 키가 있는 Azure Cosmos DB 컨테이너는 현재 커넥터에서 지원되지 않습니다.

  • 서버 제한으로 인해 다음 구문에 대해 집계 암호를 사용할 수 없습니다.

    • 쿼리가 파티션 키에서 필터링되지 않거나 파티션 키 필터가 WHERE 절의 최상위 수준에 있는 다른 조건자가 있는 OR 연산자를 사용하는 경우.

    • 쿼리에 하나 이상의 파티션 키가 있는 경우 WHERE 절의 IS NOT NULL 절에 표시됩니다.

  • V2 커넥터는 배열, 개체 및 계층 구조와 같은 복잡한 데이터 형식을 지원하지 않습니다. 이러한 시나리오에서는 Azure Cosmos DB 용 패브릭 미러링 기능을 사용하는 것이 좋습니다.

  • V2 커넥터는 처음 1,000개 문서의 샘플링을 사용하여 유추된 스키마를 작성합니다. 문서의 일부만 업데이트되는 경우 스키마 진화 시나리오에는 권장되지 않습니다. 예를 들어 문서의 thousants가 있는 컨테이너의 한 문서에 새로 추가된 속성은 유추된 스키마에 포함되지 않을 수 있습니다. 이러한 시나리오에서는 Azure Cosmos DB 용 패브릭 미러링 기능을 사용하는 것이 좋습니다.

  • 현재 V2 커넥터는 개체 속성에서 문자열이 아닌 값을 지원하지 않습니다.

  • 서버 제한으로 인해 다음 구문에 대해 필터 암호를 사용할 수 없습니다.

    • 하나 이상의 집계 열을 포함하는 쿼리가 WHERE 절에서 참조되는 경우