자습서 1부: Apache Spark를 사용하여 Microsoft Fabric 레이크하우스에 데이터 수집
이 자습서에서는 델타 레이크 형식의 Fabric 레이크하우스에 데이터를 수집합니다. 이해해야 할 몇 가지 중요한 용어:
레이크하우스 - 레이크하우스는 빅 데이터 처리를 위해 Spark 엔진 및 SQL 엔진에서 사용하는 데이터 레이크에 대한 데이터베이스를 나타내는 파일/폴더/테이블의 컬렉션으로, 오픈 소스 델타 형식 테이블을 사용할 때 ACID 트랜잭션을 위한 향상된 기능을 포함합니다.
Delta Lake - Delta Lake는 Apache Spark에ACID 트랜잭션, 확장 가능한 메타데이터 관리, 일괄 처리 및 스트리밍 데이터 처리를 제공하는 오픈 소스 스토리지 계층입니다. Delta Lake 테이블은 ACID 트랜잭션 및 스케일링 가능한 메타데이터 관리를 위해 파일 기반 트랜잭션 로그로 Parquet 데이터 파일을 확장하는 데이터 테이블 형식입니다.
Azure Open Datasets는 기계 학습 솔루션에 시나리오별 기능을 추가하여 보다 정확한 모델을 만들 수 있는 큐레이팅된 공개 데이터 세트입니다. Open Datasets는 Microsoft Azure Storage의 클라우드에 있으며 Apache Spark, REST API, 데이터 팩터리 및 기타 도구를 비롯한 다양한 방법을 통해 액세스할 수 있습니다.
이 자습서에서는 Apache Spark를 사용하여 다음을 수행합니다.
- Azure Open Datasets 컨테이너에서 데이터를 읽습니다.
- Fabric 레이크하우스 델타 테이블에 데이터를 씁니다.
필수 조건
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽의 환경 전환기를 사용하여 Synapse 데이터 과학 환경으로 전환합니다.
- 이 Notebook에 레이크하우스를 추가합니다. 공개 Blob에서 데이터를 다운로드한 다음, 레이크하우스에 데이터를 저장합니다.
Notebooks에서 따라 하기
이 자습서에는 1-ingest-data.ipynb Notebook이 함께 제공됩니다.
이 자습서에 함께 제공되는 Notebook을 열려면 데이터 과학 자습서를 위한 시스템 준비의 지침에 따라 Notebook을 작업 영역으로 가져옵니다.
이 페이지에서 코드를 복사하여 붙여넣으려는 경우 새 Notebook을 만들 수 있습니다.
코드 실행을 시작하기 전에 Notebook에 레이크하우스를 연결해야 합니다.
은행 이탈 데이터
데이터 세트에는 10,000명 고객의 이탈 상태가 포함되어 있습니다. 또한 다음과 같이 이탈에 영향을 미칠 수 있는 특성도 포함되어 있습니다.
- 신용 점수
- 지리적 위치(독일, 프랑스, 스페인)
- 성별(남성, 여성)
- 나이
- 가입 기간(은행 고객이었던 기간)
- 계정 잔액
- 예상 급여
- 고객이 은행을 통해 구매한 제품 수
- 신용 카드 상태(고객이 신용카드를 가지고 있는지 여부)
- 활성 회원 상태(활성 은행 고객인지 여부)
데이터 세트에는 행 번호, 고객 ID 및 고객 성 등의 열도 포함되어 있으며, 이는 고객이 은행을 떠나기로 결정하는 데 아무런 영향을 미치지 않습니다.
고객 이탈을 정의하는 이벤트는 고객의 은행 계좌가 폐쇄되는 것입니다. 데이터 세트의 열 exited
는 고객의 중단을 나타냅니다. 이러한 특성에 관해 사용할 수 있는 컨텍스트가 많지 않으므로 데이터 세트에 대한 배경 정보 없이 진행해야 합니다. 목표는 이러한 특성이 exited
상태에 어떻게 기여하는지 이해하는 것입니다.
데이터 세트의 행 예시:
"CustomerID" | "Surname" | "CreditScore" | "Geography" | "Gender" | "Age" | "Tenure" | "Balance" | "NumOfProducts" | "HasCrCard" | "IsActiveMember" | "EstimatedSalary" | "Exited" |
---|---|---|---|---|---|---|---|---|---|---|---|---|
15634602 | Hargrave | 619 | 프랑스 | 여성 | 42 | 2 | 0.00 | 1 | 1 | 1 | 101348.88 | 1 |
15647311 | Hill | 608 | 스페인 | 여성 | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
데이터 세트 다운로드 및 레이크하우스에 업로드
팁
다음 매개 변수를 정의하면 이 Notebook을 다양한 데이터 세트에 쉽게 사용할 수 있습니다.
IS_CUSTOM_DATA = False # if TRUE, dataset has to be uploaded manually
DATA_ROOT = "/lakehouse/default"
DATA_FOLDER = "Files/churn" # folder with data files
DATA_FILE = "churn.csv" # data file name
이 코드는 공개적으로 사용 가능한 버전의 데이터 세트를 다운로드한 다음 Fabric 레이크하우스에 저장합니다.
중요 사항
실행하기 전에 Notebook에 레이크하우스를 추가해야 합니다. 그렇게 하지 않으면 오류가 발생합니다.
import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
remote_url = "https://synapseaisolutionsa.blob.core.windows.net/public/bankcustomerchurn"
file_list = [DATA_FILE]
download_path = f"{DATA_ROOT}/{DATA_FOLDER}/raw"
if not os.path.exists("/lakehouse/default"):
raise FileNotFoundError(
"Default lakehouse not found, please add a lakehouse and restart the session."
)
os.makedirs(download_path, exist_ok=True)
for fname in file_list:
if not os.path.exists(f"{download_path}/{fname}"):
r = requests.get(f"{remote_url}/{fname}", timeout=30)
with open(f"{download_path}/{fname}", "wb") as f:
f.write(r.content)
print("Downloaded demo data files into lakehouse.")
관련 콘텐츠
방금 수집한 데이터를 사용합니다.