다음을 통해 공유


자습서 1부: Apache Spark를 사용하여 Microsoft Fabric Lakehouse로 데이터 수집

이 자습서에서는 델타 레이크 형식의 데이터를 Fabric 레이크하우스로 가져옵니다. 여기서는 몇 가지 중요한 용어를 정의합니다.

  • Lakehouse - 레이크하우스는 데이터 레이크를 통해 데이터베이스를 나타내는 파일, 폴더 및/또는 테이블의 컬렉션입니다. Spark 엔진 및 SQL 엔진은 빅 데이터 처리를 위해 Lakehouse 리소스를 사용합니다. 오픈 소스 델타 형식 테이블을 사용하는 경우 해당 처리에는 향상된 ACID 트랜잭션 기능이 포함됩니다.

  • Delta Lake - Delta Lake는 ACID 트랜잭션, 확장 가능한 메타데이터 관리 및 일괄 처리 및 스트리밍 데이터 처리를 Apache Spark에 제공하는 오픈 소스 스토리지 계층입니다. 데이터 테이블 형식으로 Delta Lake는 ACID 트랜잭션 및 확장 가능한 메타데이터 관리를 위해 파일 기반 트랜잭션 로그를 사용하여 Parquet 데이터 파일을 확장합니다.

  • Azure Open Datasets 는 기계 학습 솔루션에 시나리오별 기능을 추가하는 큐레이팅된 공용 데이터 세트입니다. 이렇게 하면 보다 정확한 모델이 생성됩니다. 개방형 데이터 세트는 Microsoft Azure Storage에 상주하는 클라우드 리소스입니다. Apache Spark, REST API, Data Factory 및 기타 도구는 Open Datasets에 액세스할 수 있습니다.

이 자습서에서는 Apache Spark를 사용하여 다음을 수행합니다.

  • Azure Open Datasets 컨테이너에서 데이터를 읽습니다.
  • Fabric 레이크하우스 델타 테이블에 데이터를 씁니다.

필수 조건

  • 이 노트북에 레이크하우스를 추가하세요. 이 자습서에서는 먼저 공용 Blob에서 데이터를 다운로드합니다. 그런 다음 데이터는 해당 Lakehouse 리소스에 저장됩니다.

노트에 따라가며 기록하기

1-ingest-data.ipynb Notebook은 이 자습서와 함께 제공됩니다.

은행 이탈 데이터

데이터 세트에는 10,000명의 고객을 위한 변동 상태 정보가 포함되어 있습니다. 또한 변동에 영향을 줄 수 있는 특성도 포함됩니다. 예를 들면 다음과 같습니다.

  • 신용 점수
  • 지리적 위치(독일, 프랑스, 스페인)
  • 성별(남성, 여성)
  • 나이
  • 재임 기간(고객이 해당 은행의 고객이었던 기간)
  • 계정 잔액
  • 예상 급여
  • 고객이 은행을 통해 구매한 제품 수
  • 신용 카드 상태(고객에게 신용 카드가 있는지 여부)
  • 활성 멤버 상태(고객에게 활성 은행 고객 상태가 있는지 여부)

데이터 세트에는 다음 열도 포함됩니다.

  • 행 번호
  • 고객 ID
  • 고객 성

이러한 열은 고객이 은행을 떠나기로 한 결정에 영향을 미치지 않아야 합니다.

고객 은행 계좌의 폐쇄는 해당 고객의 변동을 정의합니다. 데이터 세트 exited 열은 고객의 중단을 나타냅니다. 이러한 특성에 대한 컨텍스트는 거의 사용할 수 없으므로 데이터 세트에 대한 배경 정보 없이 진행해야 합니다. 우리의 목표는 이러한 특성이 상태에 어떻게 기여하는지 이해하는 것입니다 exited .

샘플 데이터 세트 행:

"CustomerID" "성" 신용점수 지리학 "성별" 나이 "임기" 균형 제품수량 "HasCrCard" 활동 중인 회원 여부 추정 급여 "종료됨"
15634602 하그레이브 619 프랑스 여성 42 2 0.00 1 1 1 101348.88 1
15647311 언덕 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 Lakehouse에 저장합니다.

중요 사항

레이크하우스를 실행하기 전에 Notebook에 추가해야 합니다. 이렇게 하지 않으면 오류가 발생합니다.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.z13.web.core.windows.net/data/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.")

방금 수집한 데이터를 다음에서 사용합니다: