Tutorial Bagian 1: Menyerap data ke dalam microsoft Fabric lakehouse menggunakan Apache Spark

Dalam tutorial ini, Anda akan menyerap data ke dalam Fabric lakehouses dalam format delta lake. Beberapa istilah penting untuk dipahami:

  • Lakehouse - Lakehouse adalah kumpulan file/folder/tabel yang mewakili database melalui data lake yang digunakan oleh mesin Spark dan mesin SQL untuk pemrosesan big data dan yang mencakup kemampuan yang ditingkatkan untuk transaksi ACID saat menggunakan tabel berformat Delta sumber terbuka.

  • Delta Lake - Delta Lake adalah lapisan penyimpanan sumber terbuka yang membawa transaksi ACID, manajemen metadata yang dapat diskalakan, dan pemrosesan data batch dan streaming ke Apache Spark. Tabel Delta Lake adalah format tabel data yang memperluas file data Parquet dengan log transaksi berbasis file untuk transaksi ACID dan manajemen metadata yang dapat diskalakan.

  • Azure Open Datasets adalah himpunan data publik yang dikumpulkan yang dapat Anda gunakan untuk menambahkan fitur khusus skenario ke solusi pembelajaran mesin untuk model yang lebih akurat. Open Datasets berada di cloud di Microsoft Azure Storage dan dapat diakses oleh berbagai metode termasuk Apache Spark, REST API, Data factory, dan alat lainnya.

Dalam tutorial ini, Anda menggunakan Apache Spark untuk:

  • Membaca data dari kontainer Azure Open Datasets.
  • Tulis data ke dalam tabel delta Fabric lakehouse.

Prasyarat

  • Tambahkan lakehouse ke buku catatan ini. Anda akan mengunduh data dari blob publik, lalu menyimpan data di lakehouse.

Ikuti di buku catatan

1-ingest-data.ipynb adalah notebook yang menyertai tutorial ini.

Untuk membuka buku catatan yang menyertai tutorial ini, ikuti instruksi dalam Menyiapkan sistem Anda untuk tutorial ilmu data, untuk mengimpor buku catatan ke ruang kerja Anda.

Jika Anda lebih suka menyalin dan menempelkan kode dari halaman ini, Anda bisa membuat buku catatan baru.

Pastikan untuk melampirkan lakehouse ke buku catatan sebelum Anda mulai menjalankan kode.

Data churn bank

Himpunan data berisi status churn 10.000 pelanggan. Ini juga termasuk atribut yang dapat berdampak pada churn seperti:

  • Skor kredit
  • Lokasi geografis (Jerman, Prancis, Spanyol)
  • Jenis kelamin (laki-laki, perempuan)
  • Usia
  • Tenure (bertahun-tahun menjadi nasabah bank)
  • Saldo rekening
  • Estimasi gaji
  • Jumlah produk yang telah dibeli nasabah melalui bank
  • Status kartu kredit (apakah pelanggan memiliki kartu kredit atau tidak)
  • Status anggota aktif (baik nasabah bank aktif maupun tidak)

Himpunan data juga mencakup kolom seperti nomor baris, ID pelanggan, dan nama keluarga pelanggan yang seharusnya tidak berdampak pada keputusan pelanggan untuk meninggalkan bank.

Kejadian yang mendefinisikan churn nasabah adalah penutupan rekening bank nasabah. Kolom exited dalam himpunan data mengacu pada pengabaian pelanggan. Tidak ada banyak konteks yang tersedia tentang atribut ini sehingga Anda harus melanjutkan tanpa memiliki informasi latar belakang tentang himpunan data. Tujuannya adalah untuk memahami bagaimana atribut ini berkontribusi pada exited status.

Contoh baris dari himpunan data:

"CustomerID" "Nama Keluarga" "CreditScore" "Geography" "Jenis Kelamin" "Usia" "Tenure" "Keseimbangan" "NumOfProducts" "HasCrCard" "IsActiveMember" "EstimatedSalary" "Keluar"
15634602 Hargrave 619 Prancis Perempuan 42 2 0.00 1 1 1 101348.88 1
15647311 Hill 608 Spanyol Perempuan 41 1 83807.86 1 0 1 112542.58 0

Mengunduh himpunan data dan mengunggah ke lakehouse

Tip

Dengan menentukan parameter berikut, Anda dapat menggunakan notebook ini dengan himpunan data yang berbeda dengan mudah.

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

Kode ini mengunduh versi himpunan data yang tersedia untuk umum dan kemudian menyimpannya di Fabric lakehouse.

Penting

Pastikan Anda menambahkan lakehouse ke buku catatan sebelum menjalankannya. Kegagalan untuk melakukannya akan mengakibatkan kesalahan.

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.")

Anda akan menggunakan data yang baru saja Anda serap di: