다음을 통해 공유


Apache Spark를 사용하여 데이터 변환 및 SQL을 사용하여 쿼리

이 가이드에서는 다음을 수행합니다.

  • OneLake 파일 탐색기를 사용하여 데이터를 OneLake에 업로드합니다.

  • Fabric Notebook을 사용하여 OneLake에서 데이터를 읽고 Delta 테이블로 다시 씁니다.

  • Fabric Notebook을 사용하여 Spark에서 데이터를 분석하고 변환합니다.

  • SQL을 사용하여 OneLake에서 하나의 데이터 복사본을 쿼리합니다.

필수 조건

시작하기 전에 다음을 수행해야 합니다.

  • OneLake 파일 탐색기를 다운로드하여 설치합니다.

  • 레이크하우스 항목을 사용하여 작업 영역을 만듭니다.

  • WideWorldImportersDW 데이터 세트를 다운로드합니다. Azure Storage Explorer를 사용하여 https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city에 연결하고 csv 파일 집합을 다운로드할 수 있습니다. 또는 사용자 고유의 csv 데이터를 사용하고 필요에 따라 세부 정보를 업데이트할 수 있습니다.

데이터 업로드

이 섹션에서는 OneLake 파일 탐색기를 사용하여 레이크하우스에 테스트 데이터를 업로드합니다.

  1. OneLake 파일 탐색기에서 lakehouse로 이동하고 /Files 디렉터리 아래에 dimension_city 하위 디렉터리를 만듭니다.

    OneLake 파일 탐색기에서 만든 새 폴더의 스크린샷

  2. OneLake 파일 탐색기를 사용하여 샘플 csv 파일을 /Files/dimension_city OneLake 디렉터리에 복사합니다.

    파일 탐색기에서 파일을 OneLake에 복사하는 스크린샷

  3. Power BI 또는 Fabric 서비스에서 레이크하우스로 이동하여 파일을 봅니다.

    Fabric의 레이크하우스에서 파일을 확인하는 스크린샷

델타 테이블 만들기

이 섹션에서는 델타 형식을 사용하여 관리되지 않는 CSV 파일을 관리되는 테이블로 변환합니다.

참고

항상 레이크하우스의 Tables 섹션에서 Delta-Parquet 데이터를 직접 만들거나 로드하거나, 이 데이터에 대한 바로 가기를 만드세요. 테이블 섹션 아래의 하위 폴더에 테이블을 중첩하지 마세요. 레이크하우스는 하위 폴더를 테이블로 인식하지 않아 식별되지 않음라벨을 붙입니다.

  1. 레이크하우스에서 전자 필기장 열기을 선택한 다음, 새 전자 필기장 을 선택하여 전자 필기장을 만듭니다.

    Fabric에서 새 Notebook을 만드는 스크린샷

  2. Fabric Notebook을 사용하여 CSV 파일을 Delta 형식으로 변환합니다. 다음 코드 조각에서는 사용자가 만든 /Files/dimension_city 디렉터리 에서 데이터를 읽고 dim_city Delta 테이블로 변환합니다.

    코드 조각을 Notebook 셀 편집기에 복사합니다. 자리 표시자를 고유한 작업 영역 세부 정보로 바꾼 다음 실행 또는 모든 실행선택합니다.

    import os
    from pyspark.sql.types import *
    for filename in os.listdir("/lakehouse/default/Files/dimension_city"):
        df=spark.read.format('csv').options(header="true",inferSchema="true").load("abfss://<YOUR_WORKSPACE_NAME>@onelake.dfs.fabric.microsoft.com/<YOUR_LAKEHOUSE_NAME>.Lakehouse/Files/dimension_city/"+filename,on_bad_lines="skip")
        df.write.mode("overwrite").format("delta").save("Tables/dim_city")
    

    디렉터리 이름을 마우스 오른쪽 단추로 클릭하고 복사 ABFS 경로선택하여 디렉터리에 대한 전체 ABFS 경로를 검색할 수 있습니다.

  3. 새 테이블을 보려면 /Tables 디렉터리의 보기를 새로 고칩니다. 테이블 디렉터리 옆에 있는 추가 옵션(...)을 선택한 다음, 새로 고침선택합니다.

    Fabric의 레이크하우스에 있는 보기 테이블의 스크린샷

데이터 쿼리 및 수정

이 섹션에서는 Fabric Notebook을 사용하여 테이블의 데이터와 상호 작용합니다.

  1. 동일한 Fabric Notebook에서 SparkSQL을 사용하여 테이블을 쿼리합니다.

    %%sql
    SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    
  2. 데이터 형식이 정수인 newColumn이라는 새 열을 추가하여 Delta 테이블을 수정합니다. 새로 추가된 이 열의 모든 레코드에 대해 9 값을 설정합니다.

    %%sql
    
    ALTER TABLE <LAKEHOUSE_NAME>.dim_city ADD COLUMN newColumn int;
    
    UPDATE <LAKEHOUSE_NAME>.dim_city SET newColumn = 9;
    
    SELECT City,newColumn FROM <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    

SQL 분석 엔드포인트를 통해 OneLake의 모든 Delta 테이블에 액세스할 수도 있습니다. SQL 분석 엔드포인트는 OneLake에서 Delta 테이블의 동일한 물리적 복사본을 참조하고 T-SQL 환경을 제공합니다.

  1. 레이크하우스로 이동한 다음, 드롭다운 메뉴에서 Lakehouse>SQL 분석 엔드포인트 선택합니다.

    SQL 분석 엔드포인트로의 탐색을 보여 주는 스크린샷

  2. 새 SQL 쿼리 선택하여 T-SQL을 사용하여 테이블을 쿼리합니다.

  3. 다음 코드를 복사하여 쿼리 편집기에 붙여넣은 다음 실행을 선택합니다.

    SELECT TOP (100) * FROM [<LAKEHOUSE_NAME>].[dbo].[dim_city];