SQL Server의 외부 데이터에 액세스하도록 PolyBase 구성

적용 대상:SQL Server

이 문서에서는 SQL Server 인스턴스에서 PolyBase를 사용하여 다른 SQL Server 인스턴스의 외부 데이터를 쿼리하는 방법을 설명합니다.

전제 조건

PolyBase를 설치하지 않은 경우 PolyBase 설치를 참조하세요. 설치 문서에서는 필수 구성 요소를 설명합니다. 설치되면 PolyBase를 사용하도록 설정해야 합니다.

SQL Server 외부 데이터 원본은 SQL 인증을 사용합니다.

데이터베이스 범위 자격 증명 을 만들기 전에 마스터 키를 만들어야 합니다.

SQL Server 외부 데이터 원본 구성

SQL Server 데이터 원본에서 데이터를 쿼리하려면 외부 데이터를 참조할 외부 테이블을 만들어야 합니다. 이 섹션에서는 이러한 외부 테이블을 만드는 샘플 코드를 제공합니다.

최적의 쿼리 성능을 위해서는 특히 조인, 필터 및 집계에 사용되는 외부 테이블 열에 대해 통계를 만듭니다.

이 섹션에서는 다음 Transact-SQL 명령이 사용됩니다.

  1. SQL Server 원본에 액세스하기 위한 데이터베이스 범위 자격 증명을 만듭니다. 다음 예제에서는 IDENTITY = 'username'SECRET = 'password'를 사용하여 외부 데이터 원본에 대한 자격 증명을 만듭니다.

    CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials
    WITH IDENTITY = 'username', SECRET = 'password';
    

    Important

    PolyBase용 SQL ODBC 커넥터는 기본 인증만 지원하고 Kerberos 인증은 지원하지 않습니다.

  2. CREATE EXTERNAL DATA SOURCE를 사용하여 외부 데이터 원본을 만듭니다. 다음 예제를 참조하세요.

    • 라는 SQLServerInstance외부 데이터 원본을 만듭니다.
    • 외부 데이터 원본(LOCATION = '<vendor>://<server>[:<port>]')을 식별합니다. 예제에서는 SQL Server의 기본 인스턴스를 가리킵니다.
    • 계산을 원본(PUSHDOWN)에 푸시해야 하는지 여부를 식별합니다. PUSHDOWNON 기본적으로

    마지막으로, 예제에서는 이전에 만든 자격 증명을 사용합니다.

    CREATE EXTERNAL DATA SOURCE SQLServerInstance
        WITH ( LOCATION = 'sqlserver://SqlServer',
        PUSHDOWN = ON,
        CREDENTIAL = SQLServerCredentials);
    
  3. CREATE EXTERNAL TABLE로 외부 테이블 만들기 문에는 데이터 정렬이 필요하고 위치에는 세 부분으로 구성된 표기법(<database>.<schema>.<table>)이 필요합니다.

    CREATE EXTERNAL TABLE DatabasesExternal (
        name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS)
      WITH (LOCATION = 'master.sys.databases',
      DATA_SOURCE = SQLServerInstance);
    
  4. 필요에 따라 외부 테이블에 대한 통계를 만듭니다.

최적의 쿼리 성능을 얻으려면 외부 테이블 열, 특히 조인 필터와 집계에 사용되는 열에 대한 통계를 만듭니다.

  CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
  WITH FULLSCAN;

Important

외부 데이터 원본을 만든 후에는 CREATE EXTERNAL TABLE 명령을 사용하여 해당 원본 위에 쿼리 가능 테이블을 만들 수 있습니다.

SQL Server 커넥터 호환 형식

SQL Server(sqlserver://) 커넥터를 활용하여 Azure SQL Database에 액세스할 수도 있습니다. 이 작업을 수행하려면 이전에 나열된 것과 동일한 단계를 수행합니다. 데이터베이스 범위 자격 증명, 서버 주소, 포트 및 위치 문자열이 연결하려는 Azure SQL Database 데이터 원본과 관련이 있는지 확인합니다.

다음 단계

다양한 데이터 원본에 외부 데이터 원본 및 외부 테이블을 만드는 방법에 대한 자세한 자습서는 PolyBase Transact-SQL 참조를 참조하세요.

PolyBase에 대한 자세한 내용은 SQL Server PolyBase 개요를 참조하세요.