다음을 통해 공유


자습서: Microsoft Entra ID를 사용하여 외부 데이터 로드

이 문서에서는 Microsoft Entra ID 통과를 사용하여 외부 테이블을 만드는 방법을 설명합니다.

필수 조건

이 자습서를 완료하려면 다음 리소스가 필요합니다.

  • Azure Synapse Analytics 작업 영역 및 전용 SQL 풀

스토리지 계정에 대한 Microsoft Entra ID 계정 액세스 권한 부여

이 예제에서는 Microsoft Entra ID 계정(또는 그룹)을 사용하여 원본 데이터에 인증합니다.

ADLS(Azure Data Lake Storage) Gen2 계정의 데이터에 액세스할 수 있도록 하려면 Microsoft Entra ID 계정(또는 그룹)에 원본 계정에 대한 액세스 권한을 부여해야 합니다. 적절한 권한을 부여하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 스토리지 계정을 찾습니다.
  2. 데이터 스토리지 ->컨테이너를 선택하고 외부 테이블에 액세스해야 하는 원본 데이터가 있는 폴더로 이동합니다.
  3. 액세스 제어(IAM) 를 선택합니다.
  4. 추가 -> 역할 할당 추가를 선택합니다.
  5. 작업 함수 역할 목록에서 Storage Blob 데이터 판독기를 선택하고 다음을 선택합니다.
  6. 역할 할당 추가 페이지에서 + 멤버 선택을 선택합니다. 오른쪽 모서리에 구성원 선택 창이 열립니다.
  7. 원하는 Microsoft Entra ID 계정의 이름을 입력합니다. 표시되면 원하는 계정을 선택하고 선택을 선택합니다.
  8. 역할 할당 추가 페이지에서 구성원 목록에 원하는 Microsoft Entra ID 계정이 포함되어 있는지 확인합니다. 확인되면 검토 + 할당을 선택합니다.
  9. 확인 페이지에서 변경 내용을 검토하고 검토 + 할당을 선택합니다.

Microsoft Entra ID 계정 또는 그룹은 이제 Storage Blob 데이터 판독기 역할의 멤버이며 원본 폴더에 액세스할 수 있습니다.

COPY INTO를 사용하여 데이터 수집

T-SQL 문은 COPY INTO 테이블에 유연하고 처리량이 높은 데이터 수집을 제공하며, 전용 SQL 풀 테이블에 데이터를 수집하는 기본 전략입니다. 이를 통해 사용자는 외부 테이블에 필요한 추가 데이터베이스 개체를 만들지 않고도 외부 위치에서 데이터를 수집할 수 있습니다.

이 문은 COPY INTO 인수를 CREDENTIAL 사용하여 원본 계정에 연결하는 데 사용되는 인증 방법을 지정합니다. 그러나 Microsoft Entra ID 또는 공용 스토리지 계정을 CREDENTIAL 사용하여 인증하는 경우 지정할 필요가 없습니다. 인증을 COPY INTO 위해 작업 영역 관리 ID를 사용하여 문을 실행하려면 다음 T-SQL 명령을 사용합니다.

COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
    [<CopyIntoOptions>]
);

여기서

  • <TableName> 는 데이터를 수집할 테이블의 이름입니다.
  • <AccountName> 는 ADLS Gen2 계정 이름입니다.
  • <Container> 는 원본 데이터가 저장되는 스토리지 계정 내의 컨테이너 이름입니다.
  • <Folder> 는 원본 데이터가 컨테이너 내에 저장되는 폴더(또는 하위 폴더가 있는 경로)입니다. 단일 파일을 직접 가리키는 경우 파일 이름을 제공할 수도 있습니다.
  • <CopyIntoOptions> 는 문에 제공하려는 다른 옵션 목록입니다 COPY INTO .

자세한 내용을 알아보고 전체 구문을 살펴보려면 COPY INTO(Transact-SQL)를 참조하세요.

필요한 데이터베이스 개체 만들기

외부 테이블을 만들려면 다음 개체가 필요합니다.

  1. 원본 폴더를 가리키는 외부 데이터 원본
  2. 원본 파일의 형식을 정의하는 외부 파일 형식
  3. 쿼리에 사용되는 외부 테이블 정의

이러한 단계를 수행하려면 Azure Synapse 작업 영역의 SQL 편집기 또는 전용 SQL 풀에 연결된 기본 SQL 클라이언트를 사용해야 합니다. 이러한 단계를 자세히 살펴보겠습니다.

외부 데이터 원본 만들기

다음 단계는 외부 테이블에서 사용하는 원본 데이터가 있는 위치를 지정하는 외부 데이터 원본을 만드는 것입니다.

외부 데이터 원본을 만들려면 다음 T-SQL 명령을 사용합니다.

CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
    TYPE = HADOOP,
    LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/
);

여기서

  • <ExternalDataSourceName> 는 외부 데이터 원본에 사용할 이름입니다.
  • <AccountName> 는 ADLS Gen2 계정 이름입니다.
  • <Container> 는 원본 데이터가 저장되는 스토리지 계정 내의 컨테이너 이름입니다.
  • <Folder> 는 원본 데이터가 컨테이너 내에 저장되는 폴더(또는 하위 폴더가 있는 경로)입니다.

외부 데이터 원본에 대한 자세한 내용은 CREATE EXTERNAL DATA SOURCE(Transact-SQL)를 참조하세요.

외부 파일 형식 만들기

다음 단계는 외부 파일 형식을 만드는 것입니다. 외부 테이블에서 참조하는 데이터의 실제 레이아웃을 지정합니다.

외부 파일 형식을 만들려면 다음 T-SQL 명령을 사용합니다. 외부 파일 형식에 사용할 이름으로 바꿉 <FileFormatName> 습니다.

CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        USE_TYPE_DEFAULT = True
    )
);

이 예제에서는 원본 데이터에 따라 필요에 따라 , STRING_DELIMITERFIRST_ROW, 등의 매개 변수FIELD_TERMINATOR를 조정합니다. 자세한 서식 지정 옵션 및 자세한 내용은 CREATE EXTERNAL FILE FORMAT(Transact-SQL)을 참조하세요.

외부 테이블 만들기

외부 데이터에 안전하게 액세스하기 위해 메타데이터를 보유하는 데 필요한 개체를 만들었으므로 이제 외부 테이블을 만들어야 합니다. 외부 테이블을 만들려면 다음 T-SQL 명령을 사용합니다.

-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
    Col1 INT,
    Col2 NVARCHAR(100),
    Col4 INT
)
WITH
(
    LOCATION = '<Path>',
    DATA_SOURCE = <ExternalDataSourceName>,
    FILE_FORMAT = <FileFormatName>
);

여기서

  • <ExternalTableName> 는 외부 테이블에 사용할 이름입니다.
  • <Path> 는 외부 데이터 원본에 지정된 위치를 기준으로 원본 데이터의 경로입니다.
  • <ExternalDataSourceName>은 사용자가 만든 외부 데이터 원본의 이름입니다.
  • <FileFormatName>은 사용자가 만든 외부 파일 형식의 이름입니다.

테이블 이름과 스키마를 원본 파일에 있는 데이터의 원하는 이름과 스키마로 조정해야 합니다.

이 시점에서 외부 테이블에 액세스하는 데 필요한 모든 메타데이터가 만들어집니다. 외부 테이블을 테스트하려면 다음 T-SQL 샘플과 같은 쿼리를 사용하여 작업의 유효성을 검사합니다.

SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;

모든 것이 제대로 구성된 경우 이 쿼리의 결과로 원본 데이터의 데이터가 표시됩니다.

자세한 CREATE EXTERNAL TABLE내용은 CREATE EXTERNAL TABLE(Transact-SQL)을 참조 하세요.