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 파일 탐색기를 사용하여 레이크하우스에 테스트 데이터를 업로드합니다.
OneLake 파일 탐색기에서 lakehouse로 이동하고
/Files
디렉터리 아래에dimension_city
하위 디렉터리를 만듭니다.OneLake 파일 탐색기를 사용하여 샘플 csv 파일을
/Files/dimension_city
OneLake 디렉터리에 복사합니다.Power BI 또는 Fabric 서비스에서 레이크하우스로 이동하여 파일을 봅니다.
델타 테이블 만들기
이 섹션에서는 델타 형식을 사용하여 관리되지 않는 CSV 파일을 관리되는 테이블로 변환합니다.
참고
항상 레이크하우스의 Tables 섹션에서 Delta-Parquet 데이터를 직접 만들거나 로드하거나, 이 데이터에 대한 바로 가기를 만드세요. 테이블 섹션 아래의 하위 폴더에 테이블을 중첩하지 마세요. 레이크하우스는 하위 폴더를 테이블로 인식하지 않아 식별되지 않음라벨을 붙입니다.
레이크하우스에서 전자 필기장 열기을 선택한 다음, 새 전자 필기장 을 선택하여 전자 필기장을 만듭니다.
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 경로를 검색할 수 있습니다.
새 테이블을 보려면
/Tables
디렉터리의 보기를 새로 고칩니다. 테이블 디렉터리 옆에 있는 추가 옵션(...)을 선택한 다음, 새로 고침선택합니다.
데이터 쿼리 및 수정
이 섹션에서는 Fabric Notebook을 사용하여 테이블의 데이터와 상호 작용합니다.
동일한 Fabric Notebook에서 SparkSQL을 사용하여 테이블을 쿼리합니다.
%%sql SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
데이터 형식이 정수인 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 환경을 제공합니다.
레이크하우스로 이동한 다음, 드롭다운 메뉴에서 Lakehouse>SQL 분석 엔드포인트 선택합니다.
새 SQL 쿼리 선택하여 T-SQL을 사용하여 테이블을 쿼리합니다.
다음 코드를 복사하여 쿼리 편집기에 붙여넣은 다음 실행을 선택합니다.
SELECT TOP (100) * FROM [<LAKEHOUSE_NAME>].[dbo].[dim_city];