Menjalankan beban kerja ETL pertama Anda di Azure Databricks

Pelajari cara menggunakan alat siap produksi dari Azure Databricks untuk mengembangkan dan menyebarkan alur ekstrak, transformasi, dan pemuatan (ETL) pertama Anda untuk orkestrasi data.

Pada akhir artikel ini, Anda akan merasa nyaman:

  1. Meluncurkan kluster komputasi serbaguna Databricks.
  2. Membuat buku catatan Databricks.
  3. Mengonfigurasi penyerapan data bertahap ke Delta Lake dengan Auto Loader.
  4. Menjalankan sel buku catatan untuk memproses, mengkueri, dan mempratinjau data.
  5. Menjadwalkan buku catatan sebagai pekerjaan Databricks.

Tutorial ini menggunakan notebook interaktif untuk menyelesaikan tugas ETL umum di Python atau Scala.

Anda juga dapat menggunakan Tabel Langsung Delta untuk membangun alur ETL. Databricks membuat Tabel Langsung Delta untuk mengurangi kompleksitas membangun, menyebarkan, dan memelihara alur ETL produksi. Lihat Tutorial: Menjalankan alur Tabel Langsung Delta pertama Anda.

Anda juga dapat menggunakan penyedia Databricks Terraform untuk membuat sumber daya artikel ini. Lihat Membuat kluster, notebook, dan pekerjaan dengan Terraform.

Persyaratan

Catatan

Jika Anda tidak memiliki hak istimewa kontrol kluster, Anda masih dapat menyelesaikan sebagian besar langkah di bawah ini selama Anda memiliki akses ke kluster.

Langkah 1: Membuat kluster

Untuk melakukan analisis data eksploratif dan rekayasa data, buat kluster untuk menyediakan sumber daya komputasi yang diperlukan untuk menjalankan perintah.

  1. Klik ikon komputasiHitung di bilah sisi.
  2. Pada halaman Komputasi, klik Buat Kluster. Ini membuka halaman Kluster Baru.
  3. Tentukan nama unik untuk kluster, biarkan nilai yang tersisa dalam status defaultnya, dan klik Buat Kluster.

Untuk mempelajari selengkapnya tentang kluster Databricks, lihat Komputasi.

Langkah 2: Membuat buku catatan Databricks

Untuk mulai menulis dan menjalankan kode interaktif di Azure Databricks, buat buku catatan.

  1. Klik Ikon BaruBaru di bilah samping, lalu klik Buku Catatan.
  2. Pada halaman Buat Buku Catatan:
    • Tentukan nama unik untuk buku catatan Anda.
    • Pastikan bahasa default diatur ke Python atau Scala.
    • Pilih kluster yang Anda buat di langkah 1 dari dropdown Kluster .
    • Klik Buat.

Buku catatan terbuka dengan sel kosong di bagian atas.

Untuk mempelajari selengkapnya tentang membuat dan mengelola buku catatan, lihat Mengelola buku catatan.

Langkah 3: Mengonfigurasi Auto Loader untuk menyerap data ke Delta Lake

Databricks merekomendasikan penggunaan Auto Loader untuk penyerapan data bertahap. Auto Loader secara otomatis mendeteksi dan memproses file baru saat tiba di penyimpanan objek cloud.

Databricks merekomendasikan penyimpanan data dengan Delta Lake. Delta Lake adalah lapisan penyimpanan sumber terbuka yang menyediakan transaksi ACID dan memungkinkan data lakehouse. Delta Lake adalah format default untuk tabel yang dibuat di Databricks.

Untuk mengonfigurasi Auto Loader untuk menyerap data ke tabel Delta Lake, salin dan tempel kode berikut ke dalam sel kosong di buku catatan Anda:

Python

# Import functions
from pyspark.sql.functions import col, current_timestamp

# Define variables used in code below
file_path = "/databricks-datasets/structured-streaming/events"
username = spark.sql("SELECT regexp_replace(current_user(), '[^a-zA-Z0-9]', '_')").first()[0]
table_name = f"{username}_etl_quickstart"
checkpoint_path = f"/tmp/{username}/_checkpoint/etl_quickstart"

# Clear out data from previous demo execution
spark.sql(f"DROP TABLE IF EXISTS {table_name}")
dbutils.fs.rm(checkpoint_path, True)

# Configure Auto Loader to ingest JSON data to a Delta table
(spark.readStream
  .format("cloudFiles")
  .option("cloudFiles.format", "json")
  .option("cloudFiles.schemaLocation", checkpoint_path)
  .load(file_path)
  .select("*", col("_metadata.file_path").alias("source_file"), current_timestamp().alias("processing_time"))
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .trigger(availableNow=True)
  .toTable(table_name))

Scala

// Imports
import org.apache.spark.sql.functions.current_timestamp
import org.apache.spark.sql.streaming.Trigger
import spark.implicits._

// Define variables used in code below
val file_path = "/databricks-datasets/structured-streaming/events"
val username = spark.sql("SELECT regexp_replace(current_user(), '[^a-zA-Z0-9]', '_')").first.get(0)
val table_name = s"${username}_etl_quickstart"
val checkpoint_path = s"/tmp/${username}/_checkpoint"

// Clear out data from previous demo execution
spark.sql(s"DROP TABLE IF EXISTS ${table_name}")
dbutils.fs.rm(checkpoint_path, true)

// Configure Auto Loader to ingest JSON data to a Delta table
spark.readStream
  .format("cloudFiles")
  .option("cloudFiles.format", "json")
  .option("cloudFiles.schemaLocation", checkpoint_path)
  .load(file_path)
  .select($"*", $"_metadata.file_path".as("source_file"), current_timestamp.as("processing_time"))
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .trigger(Trigger.AvailableNow)
  .toTable(table_name)

Catatan

Variabel yang ditentukan dalam kode ini akan memungkinkan Anda untuk menjalankannya dengan aman tanpa risiko bertentangan dengan aset ruang kerja yang ada atau pengguna lain. Izin jaringan atau penyimpanan terbatas akan menimbulkan kesalahan saat menjalankan kode ini; hubungi administrator ruang kerja Anda untuk memecahkan masalah pembatasan ini.

Untuk mempelajari selengkapnya tentang Auto Loader, lihat Apa itu Auto Loader?.

Langkah 4: Memproses dan berinteraksi dengan data

Notebook menjalankan logika sel demi sel. Untuk menjalankan logika di sel Anda:

  1. Untuk menjalankan sel yang Anda selesaikan di langkah sebelumnya, pilih sel dan tekan SHIFT+ENTER.

  2. Untuk mengkueri tabel yang baru saja Anda buat, salin dan tempel kode berikut ke dalam sel kosong, lalu tekan SHIFT+ENTER untuk menjalankan sel.

    Python

    df = spark.read.table(table_name)
    

    Scala

    val df = spark.read.table(table_name)
    
  3. Untuk mempratinjau data di DataFrame Anda, salin dan tempel kode berikut ke dalam sel kosong, lalu tekan SHIFT+ENTER untuk menjalankan sel.

    Python

    display(df)
    

    Scala

    display(df)
    

Untuk mempelajari selengkapnya tentang opsi interaktif untuk memvisualisasikan data, lihat Visualisasi di buku catatan Databricks.

Langkah 5: Menjadwalkan pekerjaan

Anda dapat menjalankan buku catatan Databricks sebagai skrip produksi dengan menambahkannya sebagai tugas dalam pekerjaan Databricks. Dalam langkah ini, Anda akan membuat pekerjaan baru yang dapat Anda picu secara manual.

Untuk menjadwalkan buku catatan Anda sebagai tugas:

  1. Klik Jadwalkan di sisi kanan bilah header.
  2. Masukkan nama unik untuk Nama pekerjaan.
  3. Klik Manual.
  4. Di drop-down Kluster, pilih kluster yang Anda buat di langkah 1.
  5. Klik Buat.
  6. Di jendela yang muncul, klik Jalankan sekarang.
  7. Untuk melihat hasil eksekusi pekerjaan, klik ikon di Tautan Eksternalsamping tanda waktu eksekusi terakhir.

Untuk informasi selengkapnya tentang pekerjaan, lihat Apa itu Pekerjaan Azure Databricks?.

Integrasi Tambahan

Pelajari selengkapnya tentang integrasi dan alat untuk rekayasa data dengan Azure Databricks: