퀵스타트: Microsoft Fabric 전반에서 OneLake 데이터를 쿼리하고 소비하기

이 퀵스타트에서는 세 개의 Fabric 엔진을 사용해 같은 호숫가 테이블과 상호작용합니다. 먼저, SQL 분석 엔드포인트를 사용해 테이블을 쿼리합니다. 그 후 같은 테이블 위에 Direct Lake 모드로 Power BI 보고서를 작성합니다. 마지막으로, Spark 노트북에서 동일한 테이블을 읽어옵니다. 이 단계들을 함께 보면 OneLake의 핵심 패턴이 드러납니다: 데이터 한 사본, 여러 엔진.

OneLake는 Azure Data Lake Storage (ADLS) Gen2 위에 오픈 Delta Parquet 형식으로 테이블 형태 데이터를 저장합니다. 이 공유된 기반 덕분에 서로 다른 Fabric 엔진이 동일한 데이터를 각 경험마다 이동하거나 재포맷하지 않고도 함께 작업할 수 있습니다. Azure Databricks, Azure Synapse Analytics, 그리고 맞춤형 애플리케이션과 같은 ADLS Gen2를 지원하는 도구와 서비스도 Fabric 외부에서 동일한 데이터를 접근할 수 있습니다.

사전 요구 사항

SQL 분석 엔드포인트를 사용하여 테이블을 쿼리합니다

모든 레이크하우스는 자동으로 SQL 분석 엔드포인트를 받습니다. 엔드포인트는 OneLake의 Delta 테이블에서 직접 읽기 때문에, 별도의 SQL 저장소에 복사하지 않고도 Lakehouse 데이터에 대해 T-SQL 쿼리를 실행할 수 있습니다.

  1. Fabric 포털에서 호숫가 하우스가 있는 작업 공간을 열고 호숫가 하우스를 선택하세요.

  2. 호수집 오른쪽 상단에서 드롭다운에서 SQL분석 엔드포인트로 데이터를 >하여 동일한 항목의 SQL 분석 엔드포인트로 전환할 수 있습니다.

    SQL 분석 엔드포인트로 전환하는 Fabric 포털 스크린샷입니다.

  3. SQL 분석 엔드포인트 메뉴에서 New SQL 쿼리를 선택하세요.

  4. 쿼리 편집기에서 dim_products 테이블을 대상으로 다음 쿼리를 실행하세요:

    이 쿼리는 카테고리와 하위 카테고리별로 그룹화하여 제품 수와 평균 가격을 보여줍니다.

    SELECT
       category,
       subcategory,
       COUNT(*) AS products,
       ROUND(AVG(standard_price), 2) AS avg_price
    FROM (
       SELECT
          product_id,
          category,
          subcategory,
          standard_price,
          ROW_NUMBER() OVER (
             PARTITION BY product_id
             ORDER BY from_date DESC
          ) AS rn
       FROM dbo.dim_products
    ) latest
    WHERE rn = 1
    GROUP BY category, subcategory
    ORDER BY avg_price DESC;
    
  5. 쿼리 출력 창에서 결과를 검토하세요.

    SQL 쿼리 출력을 보여주는 Fabric 포털 스크린샷입니다.

테이블을 이동하거나 복제하지 않고 조회했습니다. SQL 분석 엔드포인트는 Lakehouse에서 사용하는 것과 동일한 Delta 파일을 OneLake에서 읽었습니다.

Direct Lake 모드에서 Power BI 보고서를 구축하기

Direct Lake는 OneLake에서 Delta 테이블을 읽는 Power BI 저장 모드로, 의미론 모델이 데이터를 가져오거나 복제하지 않고도 보고서를 제공할 수 있습니다. Direct Lake는 OneLake에서 데이터를 읽는 두 가지 모드를 가지고 있습니다: OneLake 위의 Direct LakeSQL의 Direct Lake입니다. 이들은 의미론 모델이 테이블을 발견하고 권한을 강제하는 방식에서 차이가 있습니다. 이 퀵스타트는 SQL 분석 엔드포인트에서 시작되므로, 이 흐름에서는 Direct Lake on SQL 의미 모델이 생성됩니다.

이 섹션에서는 같은 dim_products 테이블 위에 의미 모델과 간단한 보고서를 구축합니다.

보고서 보기에는 category별 평균 제품 가격이 표시되며, 각 막대는 subcategory별로 구분됩니다.

  1. SQL 분석 엔드포인트 메뉴에서 새로운 의미 모델을 선택하세요.

    SQL 분석 엔드포인트에서 의미 모델을 생성하는 Fabric 포털 스크린샷입니다.

  2. 의미 모델의 이름을 입력하세요, 예를 들어 dim_products_model. 테이블을 dim_products 선택한 후 확인을 선택하세요.

  3. 시맨틱 모델 메뉴에서 새 보고서를 선택하세요.

    의미 모델에서 보고서를 생성하는 모습을 보여주는 Fabric 포털 스크린샷입니다.

  4. 보고서 작성 경험에서 dim_products 창에서 테이블을 펼칩니다.

  5. 시각화 창에서 스택 컬럼 차트를 선택하세요.

    Fabric 포털의 스크린샷으로, 스택 컬럼 차트 시각화를 선택하는 모습을 보여줍니다.

  6. category으로 드래그 하세요.

  7. standard_price으로 드래그 한 후 집계를 평균으로 설정하세요.

  8. 각 카테고리를 하위 카테고리로 나누기 위해 subcategory로 드래그 하세요.

    보고서 작성 단계 결과를 보여주는 Fabric 포털 스크린샷입니다.

  9. 리본에서 파일>저장 을 선택하고 보고서를 작업 공간에 저장하세요.

보고서는 방금 T-SQL로 문의하신 OneLake의 델타 테이블에서 나온 것과 같습니다. 보고서 출력을 위해 두 번째 데이터 사본을 만들지 않았잖아요.

스파크 노트북에서 같은 표를 읽어보세요

Fabric 노트북은 같은 데이터에 대해 세 번째 엔진을 제공합니다. Spark는 SQL 분석 엔드포인트나 의미 모델을 거치지 않고 OneLake에서 Delta 테이블을 dim_products 직접 읽습니다. 이 단계는 완전히 다른 쿼리 스택을 가진 엔진이 동일한 기본 파일에서 작동함을 보여줍니다.

  1. 가 포함된 dim_products호숫가로 돌아가세요.

  2. 호숫가 메뉴에서 '노트북>새 노트북> 데이터 분석'을 선택하세요. 노트북은 이미 호숫가 집이 기본 호숫가로 연결되어 있는 상태로 시작됩니다.

  3. 첫 번째 코드 셀에 다음 PySpark 코드를 붙여넣으세요:

    이 코드는 시간 차원으로 사용 from_date 되며, 기간 및 카테고리별 제품 수와 평균 가격을 요약합니다.

    from pyspark.sql import functions as F
    
    df = spark.read.table("dim_products")
    
    summary = (
       df.groupBy("from_date", "category")
       .agg(
          F.count("*").alias("products"),
          F.round(F.avg("standard_price"), 2).alias("avg_price"),
       )
       .orderBy(F.col("from_date"), F.col("avg_price").desc())
    )
    
    display(summary)
    
  4. 셀을 실행하려면 셀 실행 을 선택하거나 Shift+Enter를 눌러야 합니다. 결과물은 효력 발생일마다 카테고리별로 평균 가격이 어떻게 다르는지 보여줍니다.

    노트북 코드 결과를 보여주는 Fabric 포털 스크린샷입니다.

스파크는 OneLake에서 델타 파일을 직접 읽습니다. 어떤 데이터도 Spark 전용 저장소에 복사되지 않으며, 당신이 쿼리한 테이블은 의미론 모델을 뒷받침하는 동일한 테이블입니다. 이제 OneLake에는 하나의 데이터 복사본이 있으며, SQL 분석 엔드포인트, Power BI Direct Lake, Spark라는 세 가지 엔진이 데이터를 이동하거나 재포맷하지 않고 오픈 스토리지와 오픈 테이블 형식을 통해 사용할 수 있습니다.

자원을 정리하세요

의미 모델, 보고서, 노트북을 계속 사용할 계획이 없다면, 작업 공간에서 삭제하세요:

  1. 작업 공간에서 만든 의미 모델 위에 마우스를 올리고 더 많은 옵션(...) 메뉴를 선택한 후 삭제를 선택하세요.
  2. 작업 영역의 보고서와 노트북에 대해서도 이 과정을 반복하세요.

보고서, 의미 모델, 노트북을 삭제해도 기본 레이크하우스와 dim_products 테이블에는 영향이 없습니다.