ODBC 제네릭 형식을 사용하여 외부 데이터에 액세스하도록 PolyBase 구성

적용 대상:SQL Server

SQL Server 2019부터 PolyBase를 사용하면 ODBC 커넥터를 사용하여 ODBC 호환 데이터 원본에 연결할 수 있습니다.

이 문서에서는 ODBC 데이터 원본을 사용하여 연결을 구성하는 방법을 보여 줍니다. 제공된 지침에서는 하나의 특정 ODBC 드라이버를 예로 사용합니다. 특정 예제는 ODBC 공급자에게 문의하세요. 데이터 원본에 대한 ODBC 드라이버 설명서를 참조하여 적절한 연결 문자열 옵션을 확인합니다. 이 문서의 예제는 특정 ODBC 드라이버에 적용되지 않을 수 있습니다.

전제 조건

참고 항목

이 기능을 사용하려면 Windows에서 SQL Server가 필요합니다.

ODBC 드라이버 설치

각 PolyBase 노드에서 연결할 데이터 원본의 ODBC 드라이버를 다운로드하여 설치합니다. 드라이버가 제대로 설치되면 ODBC 데이터 원본 관리자에서 드라이버를 보고 테스트할 수 있습니다.

PolyBase scale-out groups

위의 예제에서 드라이버 이름은 빨간색 원으로 표시됩니다. 외부 데이터 원본을 만들 때 이 이름을 사용합니다.

Important

쿼리 성능을 향상시키려면 연결 풀링을 사용하도록 설정합니다. 이 작업은 ODBC 데이터 원본 관리자에서 수행할 수 있습니다.

SQL Server에서 종속 개체 만들기

ODBC 데이터 원본을 사용하려면 먼저 몇 가지 개체를 만들어 구성을 완료해야 합니다.

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

  1. ODBC 원본에 액세스하기 위한 데이터베이스 범위 자격 증명을 만듭니다.

    CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
    

    예를 들어 다음 예제에서는 ID username 와 복잡한 암호를 사용하여 명명credential_name된 자격 증명을 만듭니다.

    CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
    
  2. CREATE EXTERNAL DATA SOURCE를 사용하여 외부 데이터 원본을 만듭니다.

    CREATE EXTERNAL DATA SOURCE [<external_data_source_name>]
    WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]',
    CONNECTION_OPTIONS = 'Driver={<Name of Installed Driver>};
    ServerNode = <name of server  address>:<Port>',
    -- PUSHDOWN = [ON] | OFF,
    CREDENTIAL = [<credential_name>] );
    

    다음 예제에서는 외부 데이터 원본을 만듭니다.

    • 명명 된 external_data_source_name
    • ODBC SERVERNAME 및 포트 4444에 있음
    • CData ODBC Driver For SAP 2015 연결 - ODBC 드라이버 설치에서 만든 드라이버입니다.
    • 포트에서 ServerNodesap_server_node5555
    • 서버로 푸시되는 처리를 위해 구성됨(PUSHDOWN = ON)
    • credential_name 자격 증명 사용
    CREATE EXTERNAL DATA SOURCE external_data_source_name
    WITH ( LOCATION = 'odbc://SERVERNAME:4444',
    CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015};
    ServerNode = sap_server_node:5555',
    PUSHDOWN = ON,
    CREDENTIAL = credential_name );
    

외부 테이블 만들기

종속 개체를 만든 후에는 T-SQL을 사용하여 외부 테이블을 만들 수 있습니다.

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

  1. 하나 이상의 외부 테이블을 만듭니다.

    외부 테이블을 만듭니다. 인수를 사용하여 위에서 만든 외부 데이터 원본을 DATA_SOURCE 참조하고 원본 테이블을 .로 LOCATION지정해야 합니다. 모든 열을 참조할 필요는 없지만 형식이 올바르게 매핑되었는지 확인해야 합니다.

      CREATE EXTERNAL TABLE [<your_table_name>]
      (
      [<col1_name>]     DECIMAL(38) NOT NULL,
      [<col2_name>]     DECIMAL(38) NOT NULL,
      [<col3_name>]     CHAR COLLATE Latin1_General_BIN NOT NULL
      )
      WITH (
      LOCATION='<sap_table_name>',
      DATA_SOURCE= [<external_data_source_name>]
      )
      ;
    

    참고 항목

    이 외부 데이터 원본을 사용하여 모든 외부 테이블에 종속 개체를 다시 사용할 수 있습니다.

  2. 선택 사항: 외부 테이블에 대한 통계를 만듭니다.

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

    CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN; 
    

다음 단계

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

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