영어로 읽기

다음을 통해 공유


ODBC 기반 커넥터에 DirectQuery 사용

M의 기본 제공 Odbc.DataSource 함수를 사용하면 기존 ODBC 드라이버가 있거나 SQL 쿼리 구문을 지원하는 데이터 원본에 대한 사용자 지정 커넥터를 만드는 것이 좋습니다. Odbc.DataSource 함수를 래핑하면 커넥터가 드라이버에서 보고한 기능에 따라 기본 쿼리 접기 동작을 상속할 수 있습니다. 이 동작을 통해 M 엔진은 커넥터 자체 내에서 이 논리를 제공하지 않고도 파워 쿼리 환경 내에서 사용자가 정의한 필터 및 기타 변환을 기반으로 SQL 문을 생성할 수 있습니다.

ODBC 확장은 필요에 따라 DirectQuery 모드를 사용하도록 설정하여 Power BI가 사용자의 데이터 모델을 미리 캐시하지 않고 런타임에 쿼리를 동적으로 생성할 수 있도록 합니다.

참고

DirectQuery 지원을 사용하도록 설정하면 커넥터의 난이도와 복잡성 수준이 높아집니다. DirectQuery를 사용하도록 설정하면 Power BI는 M 엔진이 기본 데이터 원본에 완전히 푸시할 수 없는 작업에 대한 보정을 방지합니다.

이 문서에서는 기본 사용자 지정 커넥터를 만드는 방법을 잘 알고 있다고 가정합니다.

다음 섹션의 대부분의 코드 예제는 SqlODBC 샘플을 참조하세요. 다른 샘플은 ODBC 샘플 디렉터리에서 찾을 수 있습니다.

ODBC 확장성 함수

M 엔진은 Odbc.DataSourceOdbc.Query라는 두 가지 ODBC 관련 데이터 원본 함수를 제공합니다.

Odbc.DataSource 함수는 시스템의 모든 데이터베이스, 테이블 및 뷰가 포함된 기본 탐색 테이블을 제공합니다. 또한 이 함수는 쿼리 폴딩을 지원하며 다양한 사용자 지정 옵션을 허용합니다. 대부분의 ODBC 기반 확장은 이 함수를 기본 확장성 함수로 사용합니다. 함수는 연결 문자열 및 동작 재정의를 제공하는 옵션 레코드라는 두 개의 인수를 허용합니다.

Odbc.Query 함수를 사용하면 ODBC 드라이버를 통해 SQL 문을 실행할 수 있습니다. 쿼리 실행을 위한 통과로 작동합니다. Odbc.DataSource 함수와 달리 쿼리 접기 기능을 제공하지 않으며 커넥터(또는 최종 사용자)가 SQL 쿼리를 제공해야 합니다. 사용자 지정 커넥터를 빌드할 때 이 함수는 일반적으로 내부적으로 쿼리를 실행하여 일반 ODBC 채널을 통해 노출되지 않을 수 있는 메타데이터를 검색하는 데 사용됩니다. 이 함수는 연결 문자열 및 SQL 쿼리라는 두 개의 인수를 허용합니다.

데이터 원본 함수 지침

사용자 지정 커넥터는 임의의 수의 함수 인수를 허용할 수 있습니다. 그러나 파워 쿼리와 함께 제공되는 기본 제공 데이터 원본 함수와 일관성을 유지하려면 다음 지침이 권장됩니다.

  • 서버에 대한 연결을 설정하는 데 사용되는 최소 매개 변수 집합이 필요합니다. 최종 사용자가 제공해야 하는 매개 변수 수가 적을수록 커넥터를 더 쉽게 사용할 수 있습니다.

  • 고정된 수의 값(예: UI의 드롭다운 목록)으로 매개 변수를 정의할 수 있지만 사용자가 인증되기 전에 매개 변수가 입력됩니다. 사용자가 인증된 후 프로그래밍 방식으로 검색할 수 있는 값(예: 카탈로그 또는 데이터베이스 이름)은 탐색기를 통해 선택할 수 있어야 합니다. Odbc.DataSource 함수의 기본 동작은 카탈로그(데이터베이스), 스키마 및 테이블 이름으로 구성된 계층적 탐색 테이블을 반환하는 것입니다. 그러나 이 동작은 커넥터 내에서 재정의할 수 있습니다.

  • 일반적으로 사용자가 탐색기에서 선택할 항목에 대해 입력할 값(예: 데이터베이스 이름)을 알고 있다고 생각되면 이러한 매개 변수를 선택 사항으로 지정합니다. 프로그래밍 방식으로 검색할 수 있는 매개 변수는 필요하지 않습니다.

  • 함수의 마지막 매개 변수는 "options"라는 선택적 레코드여야 합니다. 이 매개 변수를 사용하면 일반적으로 고급 사용자가 공통 ODBC 관련 속성(예: CommandTimeout커넥터에 특정한 동작 재정의 설정)을 설정할 수 있으며 함수의 이전 버전과의 호환성에 영향을 주지 않고 향후 확장성을 허용합니다.

  • 연결 대화 상자에 입력된 값이 사용자의 쿼리에 유지되기 때문에 보안/자격 증명 관련 인수는 데이터 원본 함수 매개 변수의 일부가 되어서는 안 됩니다. 자격 증명 관련 매개 변수는 커넥터의 지원되는 인증 방법의 일부로 지정해야 합니다.

기본적으로 데이터 원본 함수에 필요한 모든 매개 변수는 사용자 자격 증명을 식별하는 데 사용되는 데이터 원본 경로 값에 포함됩니다.

기본 제공 Odbc.DataSource 함수의 UI는 사용자가 DSN을 선택할 수 있는 드롭다운을 제공하지만 확장성을 통해 이 기능을 사용할 수 없습니다. 데이터 원본 구성이 완전히 사용자 지정 가능한 구성 대화 상자가 필요할 정도로 복잡한 경우 최종 사용자가 시스템 DSN을 미리 구성하고 함수가 DSN 이름을 텍스트 필드로 사용하도록 하는 것이 좋습니다.