다음을 통해 공유


Fabric에서 고객 데이터 작업

Microsoft Fabric OneLake는 모든 분석 데이터의 단일 위치로 디자인된 전체 조직을 위한 통합 논리 데이터 레이크입니다. 모든 Microsoft Fabric 테넌트와 함께 자동으로 제공되며 ADLS(Azure Data Lake Storage) Gen2를 기반으로 빌드됩니다. OneLake는 정형 또는 비정형 형식의 파일을 지원하며 모든 테이블 형식 데이터를 Delta Parquet 형식으로 저장합니다. 테넌트의 경계 내에서 기본값으로 협업을 위한 분산 소유권을 통해 제어되는 단일 데이터 레이크를 제공하여 여러 비즈니스 그룹에서 헙업할 수 있습니다. 테넌트 내 작업 영역을 사용하면 조직의 여러 부분에서 소유권 및 액세스 정책을 배포할 수 있으며, 레이크하우스 및 웨어하우스와 같은 데이터 항목을 통해 OneLake의 모든 데이터에 액세스할 수 있습니다.

데이터 저장소 측면에서 OneLake는 수집, 변환, 실시간 인사이트 및 비즈니스 인텔리전스 시각화를 위한 공통 스토리지 위치 역할을 합니다. 다양한 Fabric 서비스를 중앙 집중화하며 Fabric의 모든 워크로드에서 사용하는 데이터 항목에 대한 스토리지 역할을 합니다.

Microsoft Fabric에서 데이터를 읽고 쓰는 방법

Microsoft Fabric은 고객 데이터의 스토리지 및 관리를 지원하는 플랫폼입니다. Fabric에서 데이터를 읽고 쓰려면 Fabric REST API 및 적절한 인증 방법을 사용해야 합니다.

API 권한

고객 데이터에 액세스하는 몇 가지 방법에서는 Azure Storage 또는 Azure SQL 데이터베이스와 같은 Fabric 외부의 다른 서비스를 사용해야 합니다. 예를 들어 Microsoft Fabric 개발자 키트 샘플에서 API 권한 Azure Storage user_impersonation은 Power BI 서비스 Lakehouse.Read.All 권한과 함께 사용하여 레이크하우스의 데이터에 액세스합니다.

Azure SQL 데이터베이스를 사용하여 웨어하우스 항목의 테이블 데이터에 액세스할 수 있습니다. 이 경우 사용자를 대신하여 데이터베이스를 쿼리하기 위해 Azure SQL Database user_impersonation을 사용하고, Fabric REST API 웨어하우스 가져오기 엔드포인트를 쿼리하기 위해 Power BI 서비스를 사용하도록 앱을 구성합니다.

개발 요구 사항에 따라 Microsoft Entra ID 앱을 구성해야 합니다.

인증

Fabric REST API 또는 Azure Storage 및 Azure SQL 데이터베이스와 같은 다른 서비스 사용을 시작하려면 먼저 토큰을 사용하여 인증해야 합니다. 이 토큰은 토큰 교환 프로세스를 통해 가져올 수 있습니다.

Fabric 워크로드 개발 키트 SDK는 워크로드 프런트 엔드에서 액세스 토큰을 획득하는 방법을 제공합니다. 예제는 샘플 워크로드 컨트롤러를 참조하세요.

이 클라이언트 토큰은 워크로드 백 엔드에 전달되고 OneLake와 같이 필요한 리소스에 액세스하는 데 필요한 범위가 있는 토큰에 대한 On-Behalf-of 흐름을 사용하여 교환해야 합니다. 예를 들어 레이크하우스에서 액세스하고 읽으려면 사용자가 Azure Storage user_impersonation 권한을 사용하여 API 호출을 수행할 수 있는 권한을 애플리케이션에 부여해야 합니다. 그런 다음 백 엔드에서 Azure Storage를 사용하려면 위임된 범위 https://storage.azure.com/user_impersonation 로 액세스 토큰을 가져와야 합니다.

SQL을 사용하여 고객 데이터에 액세스하려는 경우 Azure SQL 데이터베이스 및 Microsoft.Data.SqlClient 네임스페이스를 사용하려면 https://database.windows.net//user_impersonation 범위와 함께 액세스 토큰을 가져와야 합니다. 액세스 토큰은 SQLConnection 클래스에서 유효성을 검사하기 위해 user_impersonation 전에 두 개의 슬래시와 함께 작성한 대로 사용해야 합니다. 토큰 인증에 대한 자세한 예제는 Microsoft Fabric 개발자 키트 샘플을 참조하세요.

토큰을 가져오는 방법에 대한 자세한 내용은 Microsoft Fabric 워크로드 개발 REST API 설명서에서 확인할 수 있습니다.

메타데이터 읽기

Fabric REST API는 항목 속성에 액세스하는 방법을 제공합니다. 예를 들어 레이크하우스 가져오기 API를 쿼리하면 OneLake 경로 및 SQL 연결 문자열과 같은 유용한 속성을 포함하여 특정 레이크하우스에 대한 메타데이터가 제공됩니다. 또 다른 유용한 엔드포인트는 웨어하우스 가져오기 API입니다. 여기에서는 다음 정보를 반환합니다.

    {
        Id: Guid
        Type: string
        DisplayName: string
        Description: string
        WorkspaceId: Guid
        Properties {
            ConnectionInfo: string
            CreatedDate: DateTime
            LastUpdatedTime: DateTime
        }
    }

여기서 "ConnectionInfo" 속성은 웨어하우스 SQL Server의 FQDN(정규화된 도메인 이름)입니다. 이 FQDN을 사용하면 SQL 연결을 설정할 수 있습니다. 자세한 내용은 Microsoft Fabric의 데이터 웨어하우징에 대한 연결을 참조하세요. 구현 예제는 Microsoft Fabric 워크로드 개발 키트를 참조하세요.

데이터 읽기

인증 후에는 Azure Data Lake Storage REST API를 사용하여 OneLake에 연결해 다양한 유형의 데이터를 읽을 수 있습니다. 테이블을 읽으려면 Delta Lake 프로토콜을 활용하는 것이 좋습니다.

또는 Azure SQL Database를 사용하도록 선택하는 경우 다음 절차를 구현하여 웨어하우스에서 데이터를 읽을 수 있습니다.

  1. 권한 부여 컨텍스트를 만듭니다. 권한 부여 컨텍스트를 만드는 예제는 AuthenticateDataPlaneCall 메서드를 참조하세요.

  2. 프런트 엔드에서 전달된 전달자 토큰을 사용하여 사용자를 대신해 Warehouse.Read.All 범위의 토큰을 획득합니다.

  3. Fabric 토큰을 사용하여 웨어하우스 가져오기 API를 호출합니다. 서버의 초기 카탈로그인 웨어하우스의 연결 정보 및 표시 이름에 액세스해야 합니다.

  4. 사용자를 대신하여 SQL 범위가 있는 토큰을 획득합니다. SQL 연결을 설정하려면 https://database.windows.net//user_impersonation 범위를 사용합니다.

  5. SQL 토큰 및 연결 정보를 사용하여 SQL 연결을 엽니다.

    private SqlConnection GetSqlConnection(string token, string databaseFqdn, string initialCatalog)
            {
                var builder = new SqlConnectionStringBuilder();
                builder.DataSource = databaseFqdn; // ConnectionInfo from Get Warehouse API
                builder.InitialCatalog = initialCatalog; //display name of the Warehouse
                builder.ConnectTimeout = 120;
    
                var connection = new SqlConnection();
                connection.AccessToken = token; // SQL token acquired with the Azure SQL Database user_impersonation scope
                connection.ConnectionString = builder.ConnectionString;
                connection.Open();
                return connection;
            }
    
  6. 이제 이 연결을 쿼리하여 웨어하우스의 데이터에 액세스할 수 있습니다. Microsoft.Data.SqlClient 네임스페이스를 활용하는 방법에 대한 자세한 내용은 Microsoft.Data.SqlClient 네임스페이스 설명서를 참조하세요.

데이터 쓰기

토큰을 사용하여 데이터를 읽는 것 외에도 ADLS API를 사용하여 Delta Lake 프로토콜에 설명된 대로 테이블에 데이터를 쓸 수도 있습니다.

API를 사용하여 파일 및 디렉터리를 만들 수도 있습니다.

또는 다른 Fabric 워크로드를 사용하여 플랫폼에 데이터를 쓸 수 있습니다. 예를 들어 Fabric의 레이크하우스 워크로드 API를 사용하여 공통 파일 형식을 최적화된 델타 테이블에 효율적으로 로드할 수 있습니다. 이 작업은 테이블 - 테이블 로드 API 엔드포인트에 POST 요청을 전송하여 수행됩니다.

SQL 연결을 사용하여 테이블에 데이터를 삽입하는 명령을 수행할 수도 있습니다.