Membangun alur data end-to-end di Databricks
Artikel ini memperlihatkan kepada Anda cara membuat dan menyebarkan alur pemrosesan data end-to-end, termasuk cara menyerap data mentah, mengubah data, dan menjalankan analisis pada data yang diproses.
Catatan
Meskipun artikel ini menunjukkan cara membuat alur data lengkap menggunakan notebook Databricks dan pekerjaan Azure Databricks untuk mengatur alur kerja, Databricks merekomendasikan penggunaan Delta Live Tables, antarmuka deklaratif untuk membangun alur pemrosesan data yang andal, dapat dipertahankan, dan dapat diuji.
Apa itu alur data?
Alur data menerapkan langkah-langkah yang diperlukan untuk memindahkan data dari sistem sumber, mengubah data tersebut berdasarkan persyaratan, dan menyimpan data dalam sistem target. Alur data mencakup semua proses yang diperlukan untuk mengubah data mentah menjadi data yang disiapkan yang dapat dikonsumsi pengguna. Misalnya, alur data mungkin menyiapkan data sehingga analis data dan ilmuwan data dapat mengekstrak nilai dari data melalui analisis dan pelaporan.
Alur kerja ekstraksi, transformasi, dan pemuatan (ETL) adalah contoh umum dari alur data. Dalam pemrosesan ETL, data diserap dari sistem sumber dan ditulis ke area penahapan, diubah berdasarkan persyaratan (memastikan kualitas data, mendeduplikasi rekaman, dan sebagainya), dan kemudian ditulis ke sistem target seperti gudang data atau data lake.
Langkah-langkah alur data
Untuk membantu Anda mulai membuat alur data di Azure Databricks, contoh yang disertakan dalam artikel ini memandu membuat alur kerja pemrosesan data:
- Gunakan fitur Azure Databricks untuk menjelajahi himpunan data mentah.
- Buat buku catatan Databricks untuk menyerap data sumber mentah dan menulis data mentah ke tabel target.
- Buat buku catatan Databricks untuk mengubah data sumber mentah dan menulis data yang diubah ke tabel target.
- Buat buku catatan Databricks untuk mengkueri data yang diubah.
- Mengotomatiskan alur data dengan pekerjaan Azure Databricks.
Persyaratan
- Anda masuk ke Azure Databricks dan di ruang kerja Ilmu Data & Teknik.
- Anda memiliki izin untuk membuat kluster atau akses ke kluster.
- (Opsional) Untuk menerbitkan tabel ke Unity Catalog, Anda harus membuat katalog dan skema di Unity Catalog.
Contoh: Himpunan data Million Song
Himpunan data yang digunakan dalam contoh ini adalah subset dari Himpunan Data Jutaan Lagu, kumpulan fitur dan metadata untuk trek musik kontemporer. Himpunan data ini tersedia dalam himpunan data sampel yang disertakan di ruang kerja Azure Databricks Anda.
Langkah 1: Membuat kluster
Untuk melakukan pemrosesan dan analisis data dalam contoh ini, buat kluster untuk menyediakan sumber daya komputasi yang diperlukan untuk menjalankan perintah.
Catatan
Karena contoh ini menggunakan himpunan data sampel yang disimpan di DBFS dan merekomendasikan tabel yang bertahan ke Katalog Unity, Anda membuat kluster yang dikonfigurasi dengan mode akses pengguna tunggal. Mode akses pengguna tunggal menyediakan akses penuh ke DBFS sekaligus memungkinkan akses ke Unity Catalog. Lihat Praktik terbaik untuk DBFS dan Katalog Unity.
- Klik Hitung di bilah sisi.
- Pada halaman Komputasi, klik Buat Kluster.
- Pada halaman Kluster Baru, masukkan nama unik untuk kluster.
- Dalam mode Akses, pilih Pengguna Tunggal.
- Di Akses pengguna tunggal atau perwakilan layanan, pilih nama pengguna Anda.
- Biarkan nilai yang tersisa dalam status defaultnya, dan klik Buat Kluster.
Untuk mempelajari selengkapnya tentang kluster Databricks, lihat Komputasi.
Langkah 2: Jelajahi data sumber
Untuk mempelajari cara menggunakan antarmuka Azure Databricks untuk menjelajahi data sumber mentah, lihat Menjelajahi data sumber untuk alur data. Jika Anda ingin langsung menyerap dan menyiapkan data, lanjutkan ke Langkah 3: Serap data mentah.
Langkah 3: Menyerap data mentah
Dalam langkah ini, Anda memuat data mentah ke dalam tabel untuk membuatnya tersedia untuk diproses lebih lanjut. Untuk mengelola aset data pada platform Databricks seperti tabel, Databricks merekomendasikan Unity Catalog. Namun, jika Anda tidak memiliki izin untuk membuat katalog dan skema yang diperlukan untuk menerbitkan tabel ke Katalog Unity, Anda masih bisa menyelesaikan langkah-langkah berikut dengan menerbitkan tabel ke metastore Apache Hive.
Untuk menyerap data, Databricks merekomendasikan penggunaan Auto Loader. Auto Loader secara otomatis mendeteksi dan memproses file baru saat tiba di penyimpanan objek cloud.
Anda dapat mengonfigurasi Auto Loader untuk secara otomatis mendeteksi skema data yang dimuat, memungkinkan Anda menginisialisasi tabel tanpa secara eksplisit mendeklarasikan skema data dan mengembangkan skema tabel saat kolom baru diperkenalkan. Ini menghilangkan kebutuhan untuk melacak dan menerapkan perubahan skema secara manual dari waktu ke waktu. Databricks merekomendasikan inferensi skema saat menggunakan Auto Loader. Namun, seperti yang terlihat dalam langkah eksplorasi data, data lagu tidak berisi informasi header. Karena header tidak disimpan dengan data, Anda harus secara eksplisit menentukan skema, seperti yang ditunjukkan pada contoh berikutnya.
Di bar samping, klik Baru dan pilih Buku Catatan dari menu. Dialog Buat Notebook muncul.
Masukkan nama untuk buku catatan, misalnya,
Ingest songs data
. Secara default:- Python adalah bahasa yang dipilih.
- Buku catatan dilampirkan ke kluster terakhir yang Anda gunakan. Dalam hal ini, kluster yang Anda buat di Langkah 1: Buat kluster.
Masukkan yang berikut ini ke dalam sel pertama buku catatan:
from pyspark.sql.types import DoubleType, IntegerType, StringType, StructType, StructField # Define variables used in the code below file_path = "/databricks-datasets/songs/data-001/" table_name = "<table-name>" checkpoint_path = "/tmp/pipeline_get_started/_checkpoint/song_data" schema = StructType( [ StructField("artist_id", StringType(), True), StructField("artist_lat", DoubleType(), True), StructField("artist_long", DoubleType(), True), StructField("artist_location", StringType(), True), StructField("artist_name", StringType(), True), StructField("duration", DoubleType(), True), StructField("end_of_fade_in", DoubleType(), True), StructField("key", IntegerType(), True), StructField("key_confidence", DoubleType(), True), StructField("loudness", DoubleType(), True), StructField("release", StringType(), True), StructField("song_hotnes", DoubleType(), True), StructField("song_id", StringType(), True), StructField("start_of_fade_out", DoubleType(), True), StructField("tempo", DoubleType(), True), StructField("time_signature", DoubleType(), True), StructField("time_signature_confidence", DoubleType(), True), StructField("title", StringType(), True), StructField("year", IntegerType(), True), StructField("partial_sequence", IntegerType(), True) ] ) (spark.readStream .format("cloudFiles") .schema(schema) .option("cloudFiles.format", "csv") .option("sep","\t") .load(file_path) .writeStream .option("checkpointLocation", checkpoint_path) .trigger(availableNow=True) .toTable(table_name) )
Jika Anda menggunakan Katalog Unity, ganti
<table-name>
dengan katalog, skema, dan nama tabel untuk berisi rekaman yang diserap (misalnya,data_pipelines.songs_data.raw_song_data
). Jika tidak, ganti<table-name>
dengan nama tabel untuk berisi rekaman yang diserap, misalnya,raw_song_data
.Ganti
<checkpoint-path>
dengan jalur ke direktori di DBFS untuk mempertahankan file titik pemeriksaan, misalnya,/tmp/pipeline_get_started/_checkpoint/song_data
.Klik , dan pilih Jalankan Sel. Contoh ini mendefinisikan skema data menggunakan informasi dari
README
, menyerap data lagu dari semua file yang terkandung dalamfile_path
, dan menulis data ke tabel yang ditentukan olehtable_name
.
Langkah 4: Siapkan data mentah
Untuk menyiapkan data mentah untuk analisis, langkah-langkah berikut mengubah data lagu mentah dengan memfilter kolom yang tidak perlu dan menambahkan bidang baru yang berisi tanda waktu untuk pembuatan rekaman baru.
Di bar samping, klik Baru dan pilih Buku Catatan dari menu. Dialog Buat Notebook muncul.
Masukkan nama untuk buku catatan. Contohnya,
Prepare songs data
. Ubah bahasa default ke SQL.Masukkan yang berikut ini di sel pertama buku catatan:
CREATE OR REPLACE TABLE <table-name> ( artist_id STRING, artist_name STRING, duration DOUBLE, release STRING, tempo DOUBLE, time_signature DOUBLE, title STRING, year DOUBLE, processed_time TIMESTAMP ); INSERT INTO <table-name> SELECT artist_id, artist_name, duration, release, tempo, time_signature, title, year, current_timestamp() FROM <raw-songs-table-name>
Jika Anda menggunakan Unity Catalog, ganti
<table-name>
dengan katalog, skema, dan nama tabel untuk berisi rekaman yang difilter dan diubah (misalnya,data_pipelines.songs_data.prepared_song_data
). Jika tidak, ganti<table-name>
dengan nama tabel untuk berisi rekaman yang difilter dan diubah (misalnya,prepared_song_data
).Ganti
<raw-songs-table-name>
dengan nama tabel yang berisi rekaman lagu mentah yang diserap pada langkah sebelumnya.Klik , dan pilih Jalankan Sel.
Langkah 5: Mengkueri data yang diubah
Dalam langkah ini, Anda memperluas alur pemrosesan dengan menambahkan kueri untuk menganalisis data lagu. Kueri ini menggunakan rekaman yang disiapkan yang dibuat pada langkah sebelumnya.
Di bar samping, klik Baru dan pilih Buku Catatan dari menu. Dialog Buat Notebook muncul.
Masukkan nama untuk buku catatan. Contohnya,
Analyze songs data
. Ubah bahasa default ke SQL.Masukkan yang berikut ini di sel pertama buku catatan:
-- Which artists released the most songs each year? SELECT artist_name, count(artist_name) AS num_songs, year FROM <prepared-songs-table-name> WHERE year > 0 GROUP BY artist_name, year ORDER BY num_songs DESC, year DESC
Ganti
<prepared-songs-table-name>
dengan nama tabel yang berisi data yang disiapkan. Contohnya,data_pipelines.songs_data.prepared_song_data
.Klik di menu tindakan sel, pilih Tambahkan Sel Di Bawah ini dan masukkan yang berikut ini di sel baru:
-- Find songs for your DJ list SELECT artist_name, title, tempo FROM <prepared-songs-table-name> WHERE time_signature = 4 AND tempo between 100 and 140;
Ganti
<prepared-songs-table-name>
dengan nama tabel yang disiapkan yang dibuat di langkah sebelumnya. Contohnya,data_pipelines.songs_data.prepared_song_data
.Untuk menjalankan kueri dan melihat output, klik Jalankan semua.
Langkah 6: Membuat pekerjaan Azure Databricks untuk menjalankan alur
Anda dapat membuat alur kerja untuk mengotomatiskan menjalankan langkah-langkah penyerapan, pemrosesan, dan analisis data menggunakan pekerjaan Azure Databricks.
- Di ruang kerja Ilmu Data & Teknik Anda, lakukan salah satu hal berikut ini:
- Klik Alur Kerja di bar samping dan klik .
- Di bar samping, klik Baru dan pilih Pekerjaan.
- Dalam kotak dialog tugas pada tab Tugas, ganti Tambahkan nama untuk pekerjaan Anda... dengan nama pekerjaan Anda. Misalnya, "Alur kerja Lagu".
- Di Nama tugas, masukkan nama untuk tugas pertama, misalnya,
Ingest_songs_data
. - Di Jenis, pilih jenis tugas Buku Catatan .
- Di Sumber, pilih Ruang Kerja.
- Gunakan browser file untuk menemukan buku catatan penyerapan data, klik nama buku catatan, dan klik Konfirmasi.
- Di Kluster, pilih Shared_job_cluster atau kluster yang Anda buat di langkah tersebut
Create a cluster
. - Klik Buat.
- Klik di bawah tugas yang baru saja Anda buat dan pilih Notebook.
- Di Nama tugas, masukkan nama untuk tugas, misalnya,
Prepare_songs_data
. - Di Jenis, pilih jenis tugas Buku Catatan .
- Di Sumber, pilih Ruang Kerja.
- Gunakan browser file untuk menemukan buku catatan persiapan data, klik nama buku catatan, dan klik Konfirmasi.
- Di Kluster, pilih Shared_job_cluster atau kluster yang Anda buat di langkah tersebut
Create a cluster
. - Klik Buat.
- Klik di bawah tugas yang baru saja Anda buat dan pilih Notebook.
- Di Nama tugas, masukkan nama untuk tugas, misalnya,
Analyze_songs_data
. - Di Jenis, pilih jenis tugas Buku Catatan .
- Di Sumber, pilih Ruang Kerja.
- Gunakan browser file untuk menemukan buku catatan analisis data, klik nama buku catatan, dan klik Konfirmasi.
- Di Kluster, pilih Shared_job_cluster atau kluster yang Anda buat di langkah tersebut
Create a cluster
. - Klik Buat.
- Untuk menjalankan alur kerja, Klik . Untuk melihat detail eksekusi, klik tautan di kolom Waktu mulai untuk eksekusi dalam tampilan eksekusi pekerjaan. Klik setiap tugas untuk melihat detail untuk tugas yang dijalankan.
- Untuk melihat hasil saat alur kerja selesai, klik tugas analisis data akhir. Halaman Output muncul dan menampilkan hasil kueri.
Langkah 7: Menjadwalkan pekerjaan alur data
Catatan
Untuk menunjukkan penggunaan pekerjaan Azure Databricks untuk mengatur alur kerja terjadwal, contoh memulai ini memisahkan langkah-langkah penyerapan, persiapan, dan analisis ke dalam buku catatan terpisah, dan setiap buku catatan kemudian digunakan untuk membuat tugas dalam pekerjaan. Jika semua pemrosesan terkandung dalam satu buku catatan, Anda dapat dengan mudah menjadwalkan buku catatan langsung dari UI buku catatan Azure Databricks. Lihat Membuat dan mengelola pekerjaan buku catatan terjadwal.
Persyaratan umum adalah menjalankan alur data secara terjadwal. Untuk menentukan jadwal pekerjaan yang menjalankan alur:
- Klik Alur Kerja di bilah samping.
- Di kolom Nama, klik nama pekerjaan. Panel samping menampilkan detail Pekerjaan.
- Klik Tambahkan pemicu di panel Detail pekerjaan dan pilih Terjadwal dalam Jenis pemicu.
- Tentukan periode, waktu mulai, dan zona waktu. Secara opsional pilih kotak centang Perlihatkan Sintaks Cron untuk menampilkan dan mengedit jadwal dalam Sintaks Quartz Cron.
- Klik Simpan.
Pelajari lebih lanjut
- Untuk mempelajari selengkapnya tentang buku catatan Databricks, lihat Pengenalan buku catatan Databricks.
- Untuk mempelajari selengkapnya tentang Pekerjaan Azure Databricks, lihat Apa itu Pekerjaan Azure Databricks?.
- Untuk mempelajari selengkapnya tentang Delta Lake, lihat Apa itu Delta Lake?.
- Untuk mempelajari selengkapnya tentang alur pemrosesan data dengan Tabel Langsung Delta, lihat Apa itu Tabel Langsung Delta?.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk