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:
- Meluncurkan kluster komputasi serbaguna Databricks.
- Membuat buku catatan Databricks.
- Mengonfigurasi penyerapan data bertahap ke Delta Lake dengan Auto Loader.
- Menjalankan sel buku catatan untuk memproses, mengkueri, dan mempratinjau data.
- Menjadwalkan notebook sebagai pekerjaan Databricks.
Tutorial ini menggunakan notebook interaktif untuk menyelesaikan tugas ETL umum di Python atau Scala.
Anda juga dapat menggunakan DLT untuk membangun alur ETL. Databricks membuat DLT untuk mengurangi kompleksitas membangun, menyebarkan, dan memelihara alur ETL produksi. Lihat Tutorial : Jalankan alur DLT pertama Anda.
Anda juga dapat menggunakan penyedia Databricks Terraform untuk membuat sumber daya artikel ini. Lihat Membuat kluster, notebook, dan pekerjaan dengan Terraform.
Persyaratan
- Anda masuk ke ruang kerja Azure Databricks.
- Anda memiliki izin untuk membuat kluster.
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.
- Klik
Komputasi di bilah samping.
- Pada halaman Komputasi, klik Buat Kluster. Ini membuka halaman Kluster Baru.
- 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 membuat buku catatan di ruang kerja Anda, klik Baru di bilah samping, lalu klik Buku Catatan. Buku catatan kosong terbuka di ruang kerja.
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 (open source) 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
Sebuah notebook menjalankan logika sel demi sel. Untuk menjalankan logika di sel Anda:
Untuk menjalankan sel yang Anda selesaikan di langkah sebelumnya, pilih sel dan tekan SHIFT+ENTER.
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)
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:
- Klik Jadwalkan di sisi kanan bilah header.
- Masukkan nama unik untuk Nama pekerjaan.
- Klik Manual.
- Di drop-down Kluster, pilih kluster yang Anda buat di langkah 1.
- Klik Buat.
- Di jendela yang muncul, klik Jalankan sekarang.
- Untuk melihat hasil eksekusi pekerjaan, klik ikon di
samping tanda waktu eksekusi terakhir.
Untuk informasi selengkapnya tentang pekerjaan, lihat Apa itu pekerjaan?.
Integrasi tambahan
Pelajari selengkapnya tentang integrasi dan alat untuk rekayasa data dengan Azure Databricks: