Bagikan melalui


Memantau jalur pipa DLT

Artikel ini menjelaskan penggunaan fitur pemantauan dan pengamatan bawaan untuk alur DLT. Fitur-fitur ini mendukung tugas-tugas seperti:

Untuk memeriksa dan mendiagnosis performa kueri, lihat riwayat kueri akses untuk alur DLT. Fitur ini ada di Pratinjau Umum.

Menambahkan pemberitahuan email untuk peristiwa alur

Anda dapat mengonfigurasi satu atau beberapa alamat email untuk menerima pemberitahuan saat hal berikut ini terjadi:

  • Pembaruan jalur telah berhasil diselesaikan.
  • Pembaruan pipeline gagal, baik karena kesalahan yang dapat diulang atau tidak dapat diulang. Pilih opsi ini untuk menerima pemberitahuan untuk semua kegagalan alur.
  • Pembaruan alur gagal dengan kesalahan yang tidak dapat diulang (fatal). Pilih opsi ini untuk menerima pemberitahuan hanya ketika kesalahan yang tidak dapat diulang terjadi.
  • Sebuah aliran data tunggal gagal.

Untuk mengonfigurasi pemberitahuan email saat Anda membuat atau mengedit alur:

  1. Klik Tambahkan pemberitahuan.
  2. Masukkan satu atau beberapa alamat email untuk menerima pemberitahuan.
  3. Klik kotak centang untuk setiap jenis pemberitahuan untuk dikirim ke alamat email yang dikonfigurasi.
  4. Klik Tambahkan pemberitahuan.

Detail alur apa yang tersedia di UI?

Grafik pipeline muncul segera setelah pembaruan pada alur berhasil dimulai. Panah mewakili dependensi antara himpunan data di alur kerja Anda. Secara default, halaman detail alur memperlihatkan pembaruan terbaru untuk tabel, tetapi Anda dapat memilih pembaruan yang lebih lama dari menu drop-down.

Detailnya termasuk ID alur, kode sumber, biaya komputasi, edisi produk, dan saluran yang dikonfigurasi untuk alur.

Untuk melihat tampilan himpunan data tabular, klik tab Daftar. Tampilan Daftar memungkinkan Anda melihat semua himpunan data dalam alur Anda yang diwakili sebagai baris dalam tabel dan berguna ketika DAG alur Anda terlalu besar untuk divisualisasikan dalam tampilan Grafik. Anda dapat mengontrol himpunan data yang ditampilkan dalam tabel menggunakan beberapa filter seperti nama, jenis, dan status himpunan data. Untuk beralih kembali ke visualisasi DAG, klik Graph.

Pengguna Jalankan sebagai adalah pemilik alur, dan pembaruan alur berjalan dengan izin pengguna ini. Untuk mengubah pengguna run as, klik Izin dan ubah pemilik alur.

Bagaimana Anda dapat melihat detail himpunan data?

Mengklik himpunan data dalam grafik alur atau daftar himpunan data memperlihatkan detail tentang himpunan data. Detailnya termasuk skema himpunan data, metrik kualitas data, dan tautan ke kode sumber yang menentukan himpunan data.

Lihat riwayat pembaruan

Untuk melihat riwayat dan status pembaruan alur, klik menu drop-down riwayat pembaruan di bilah atas.

Pilih pembaruan di menu drop-down untuk melihat grafik, detail, dan peristiwa untuk pembaruan. Untuk kembali ke pembaruan terbaru, klik Tampilkan pembaruan terbaru.

Melihat metrik streaming

Penting

Pemantauan streaming untuk DLT berada dalam Pratinjau Umum.

Anda dapat melihat metrik streaming dari sumber data yang didukung oleh Spark Structured Streaming, seperti tabel Apache Kafka, Amazon Kinesis, Auto Loader, dan Delta, untuk setiap aliran streaming di alur DLT Anda. Metrik ditampilkan sebagai bagan di panel kanan DLT UI dan menyertakan detik backlog, byte backlog, rekaman backlog, dan file backlog. Bagan menampilkan nilai maksimum yang diagregasi menurut menit dan tipsalat memperlihatkan nilai maksimum saat Anda mengarahkan mouse ke atas bagan. Data dibatasi hingga 48 jam terakhir dari waktu saat ini.

Tabel di alur Anda dengan metrik streaming yang tersedia menampilkan ikon DLT Chart Icon ikon saat melihat DAG alur di tampilan Grafik UI. Untuk melihat metrik streaming, klik Ikon Bagan DLT untuk menampilkan bagan metrik streaming di tab Alur di panel kanan. Anda juga dapat menerapkan filter untuk menampilkan hanya tabel dengan metrik streaming dengan mengklik Daftar lalu mengklik Dengan metrik streaming.

Setiap sumber streaming hanya mendukung metrik tertentu. Metrik yang tidak didukung oleh sumber streaming tidak tersedia untuk dilihat di UI. Tabel berikut ini memperlihatkan metrik yang tersedia untuk sumber streaming yang didukung:

sumber backlog byte catatan backlog detik tunggakan berkas tertunda
Kafka
Kinesis
Delta
Pemuat Otomatis
Google Pub/Sub

Apa itu log peristiwa DLT?

Log peristiwa DLT berisi semua informasi yang terkait dengan alur, termasuk log audit, pemeriksaan kualitas data, kemajuan alur, dan silsilah data. Anda dapat menggunakan log peristiwa untuk melacak, memahami, dan memantau status alur data Anda.

Anda dapat melihat entri log peristiwa di antarmuka pengguna DLT, DLT API, atau dengan langsung mengkueri log peristiwa. Bagian ini berfokus pada kueri log peristiwa secara langsung.

Anda juga dapat menentukan tindakan kustom untuk dijalankan saat peristiwa dicatat, misalnya, mengirim pemberitahuan, dengan kait peristiwa.

Penting

Jangan hapus log peristiwa atau katalog induk atau skema tempat log peristiwa diterbitkan. Menghapus log peristiwa dapat mengakibatkan pipeline Anda gagal diperbarui selama pelaksanaan di masa mendatang.

skema log peristiwa

Tabel berikut ini menjelaskan skema log peristiwa. Beberapa bidang ini berisi data JSON yang memerlukan penguraian untuk melakukan beberapa kueri, seperti bidang details. Azure Databricks mendukung operator : untuk mengurai bidang JSON. Lihat : (tanda titik dua) operator.

Lapangan Deskripsi
id Pengidentifikasi unik untuk catatan log peristiwa.
sequence Dokumen JSON yang berisi metadata untuk mengidentifikasi dan mengurutkan peristiwa.
origin Dokumen JSON yang berisi metadata untuk asal peristiwa, misalnya, penyedia cloud, wilayah penyedia cloud, user_id, pipeline_id, atau pipeline_type untuk menunjukkan tempat alur dibuat, baik DBSQL atau WORKSPACE.
timestamp Waktu peristiwa direkam.
message Pesan yang dapat dibaca manusia yang menjelaskan peristiwa tersebut.
level Jenis peristiwa, misalnya, INFO, WARN, ERROR, atau METRICS.
maturity_level Stabilitas skema peristiwa. Nilai yang mungkin adalah:
  • STABLE: Skema stabil dan tidak akan berubah.
  • NULL: Skema stabil dan tidak akan berubah. Nilai mungkin NULL jika rekaman dibuat sebelum bidang maturity_level ditambahkan ( rilis2022,37).
  • EVOLVING: Skema tidak stabil dan dapat berubah.
  • DEPRECATED: Skema tidak digunakan lagi dan runtime DLT dapat berhenti menghasilkan peristiwa ini kapan saja.
error Jika terjadi kesalahan, detail yang menjelaskan kesalahan.
details Dokumen JSON yang berisi detail terstruktur peristiwa. Ini adalah bidang utama yang digunakan untuk menganalisis peristiwa.
event_type Jenis peristiwa.

Mengkueri log peristiwa

Nota

Bagian ini menjelaskan perilaku dan sintaks default untuk bekerja dengan log peristiwa untuk alur yang dikonfigurasi dengan Katalog Unity dan mode penerbitan default.

Secara default, DLT menulis log peristiwa ke tabel Delta tersembunyi di katalog dan skema default yang dikonfigurasi untuk alur. Meskipun disembunyikan, tabel masih dapat dikueri oleh semua pengguna dengan hak istimewa yang cukup. Secara default, hanya pemilik alur yang dapat mengkueri tabel log peristiwa.

Secara bawaan, nama untuk log peristiwa tersembunyi diformat sebagai event_log_{pipeline_id}, di mana ID pipeline adalah UUID yang ditetapkan sistem dengan garis putus-putus digantikan oleh garis bawah.

Anda dapat berinteraksi dengan konfigurasi JSON untuk menerbitkan log peristiwa. Saat menerbitkan log peristiwa, Anda menentukan nama untuk log peristiwa dan dapat secara opsional menentukan katalog dan skema, seperti dalam contoh berikut:

{
  "id": "ec2a0ff4-d2a5-4c8c-bf1d-d9f12f10e749",
  "name": "billing_pipeline",
  "event_log": {
    "catalog": "catalog_name",
    "schema": "schema_name",
    "name": "event_log_table_name"
  }
}

Lokasi log peristiwa juga berfungsi sebagai lokasi skema untuk kueri Auto Loader apa pun di alur. Databricks merekomendasikan untuk membuat tampilan di atas tabel log peristiwa sebelum memodifikasi hak istimewa, karena beberapa pengaturan komputasi mungkin memungkinkan pengguna untuk mendapatkan akses ke metadata skema jika tabel log peristiwa dibagikan secara langsung. Contoh sintaks berikut membuat tampilan pada tabel log peristiwa, dan digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini.

CREATE VIEW event_log_raw
AS SELECT * FROM catalog_name.schema_name.event_log_table_name;

Setiap instans eksekusi alur disebut pembaruan . Anda sering ingin mengekstrak informasi untuk pembaruan terbaru. Jalankan kueri berikut untuk menemukan pengidentifikasi untuk pembaruan terbaru dan simpan dalam tampilan sementara latest_update. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini:

CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;

Di Katalog Unity, tampilan mendukung kueri streaming. Contoh berikut menggunakan Streaming Terstruktur untuk mengkueri tampilan yang ditentukan di atas tabel log peristiwa:

df = spark.readStream.table("event_log_raw")

Pemilik alur dapat menerbitkan log peristiwa sebagai tabel Delta publik dengan mengaktifkan opsi Publish event log to metastore di bagian Tingkat Lanjut dari konfigurasi alur. Anda dapat secara opsional menentukan nama tabel, katalog, dan skema baru untuk log peristiwa.

Informasi silsilah kueri dari log peristiwa

Peristiwa yang berisi informasi tentang garis keturunan memiliki jenis peristiwa flow_definition. Objek details:flow_definition berisi output_dataset dan input_datasets menentukan setiap hubungan dalam grafik.

Anda bisa menggunakan kueri berikut untuk mengekstrak himpunan data input dan output untuk melihat informasi silsilah data:

SELECT
  details:flow_definition.output_dataset as output_dataset,
  details:flow_definition.input_datasets as input_dataset
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'flow_definition'
  AND
  origin.update_id = latest_update.id
output_dataset input_datasets
customers null
sales_orders_raw null
sales_orders_cleaned ["customers", "sales_orders_raw"]
sales_order_in_la ["sales_orders_cleaned"]

Periksa kualitas data dari log peristiwa

Jika Anda menentukan ekspektasi pada himpunan data di alur Anda, metrik kualitas data disimpan di objek details:flow_progress.data_quality.expectations. Peristiwa yang berisi informasi tentang kualitas data memiliki jenis peristiwa flow_progress. Contoh berikut mengkueri metrik kualitas data untuk pembaruan alur terakhir:

SELECT
  row_expectations.dataset as dataset,
  row_expectations.name as expectation,
  SUM(row_expectations.passed_records) as passing_records,
  SUM(row_expectations.failed_records) as failing_records
FROM
  (
    SELECT
      explode(
        from_json(
          details :flow_progress :data_quality :expectations,
          "array<struct<name: string, dataset: string, passed_records: int, failed_records: int>>"
        )
      ) row_expectations
    FROM
      event_log_raw,
      latest_update
    WHERE
      event_type = 'flow_progress'
      AND origin.update_id = latest_update.id
  )
GROUP BY
  row_expectations.dataset,
  row_expectations.name
dataset expectation passing_records failing_records
sales_orders_cleaned valid_order_number 4083 0

Menelusuri peristiwa Auto Loader dari log peristiwa

DLT menghasilkan peristiwa saat Auto Loader memproses file. Untuk peristiwa Auto Loader, event_type adalah operation_progress dan details:operation_progress:type adalah AUTO_LOADER_LISTING atau AUTO_LOADER_BACKFILL. Objek details:operation_progress juga menyertakan bidang status, duration_ms, auto_loader_details:source_path, dan auto_loader_details:num_files_listed.

Contoh berikut mengkueri peristiwa Auto Loader untuk pembaruan terbaru:

SELECT
  timestamp,
  details:operation_progress.status,
  details:operation_progress.type,
  details:operation_progress:auto_loader_details
FROM
  event_log_raw,
  latest_update
WHERE
  event_type like 'operation_progress'
  AND
  origin.update_id = latest.update_id
  AND
  details:operation_progress.type in ('AUTO_LOADER_LISTING', 'AUTO_LOADER_BACKFILL')

Memantau backlog data dengan melakukan kueri pada log peristiwa

DLT melacak berapa banyak data yang ada di backlog di objek details:flow_progress.metrics.backlog_bytes. Peristiwa yang berisi metrik backlog memiliki jenis peristiwa flow_progress. Contoh berikut mengkueri metrik backlog untuk pembaruan alur terakhir:

SELECT
  timestamp,
  Double(details :flow_progress.metrics.backlog_bytes) as backlog
FROM
  event_log_raw,
  latest_update
WHERE
  event_type ='flow_progress'
  AND
  origin.update_id = latest_update.id

Nota

Metrik backlog mungkin tidak tersedia tergantung pada jenis sumber data alur dan versi Databricks Runtime.

Memantau peristiwa penskalaan otomatis yang ditingkatkan dari log peristiwa untuk alur yang tidak memiliki fitur serverless diaktifkan

Untuk alur DLT yang tidak menggunakan komputasi tanpa server, log peristiwa mengambil perubahan ukuran kluster saat penskalaan otomatis yang ditingkatkan diaktifkan di alur Anda. Peristiwa yang berisi informasi tentang penskalakan otomatis yang ditingkatkan memiliki jenis peristiwa autoscale. Informasi permintaan perubahan ukuran kluster disimpan di objek details:autoscale. Contoh berikut mengkueri permintaan pengubahan ukuran kluster penskalaan otomatis yang disempurnakan untuk pembaruan alur terakhir:

SELECT
  timestamp,
  Double(
    case
      when details :autoscale.status = 'RESIZING' then details :autoscale.requested_num_executors
      else null
    end
  ) as starting_num_executors,
  Double(
    case
      when details :autoscale.status = 'SUCCEEDED' then details :autoscale.requested_num_executors
      else null
    end
  ) as succeeded_num_executors,
  Double(
    case
      when details :autoscale.status = 'PARTIALLY_SUCCEEDED' then details :autoscale.requested_num_executors
      else null
    end
  ) as partially_succeeded_num_executors,
  Double(
    case
      when details :autoscale.status = 'FAILED' then details :autoscale.requested_num_executors
      else null
    end
  ) as failed_num_executors
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'autoscale'
  AND
  origin.update_id = latest_update.id

Memantau pemanfaatan sumber daya komputasi

Peristiwa cluster_resources menyediakan metrik tentang jumlah slot tugas dalam kluster, seberapa banyak slot tugas tersebut digunakan, dan berapa banyak tugas yang menunggu untuk dijadwalkan.

Saat penskalaan otomatis yang ditingkatkan diaktifkan, peristiwa cluster_resources juga berisi metrik untuk algoritma penskalaan otomatis, termasuk latest_requested_num_executors, dan optimal_num_executors. Peristiwa juga menunjukkan status algoritma sebagai status yang berbeda seperti CLUSTER_AT_DESIRED_SIZE, SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORS, dan BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATION. Informasi ini dapat dilihat bersama dengan peristiwa penskalaan otomatis untuk memberikan gambaran keseluruhan penskalaan otomatis yang ditingkatkan.

Contoh berikut menanyakan sejarah ukuran antrean tugas untuk pembaruan pipeline terakhir:

SELECT
  timestamp,
  Double(details :cluster_resources.avg_num_queued_tasks) as queue_size
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'cluster_resources'
  AND
  origin.update_id = latest_update.id

Contoh berikut mengkueri riwayat pemanfaatan untuk pembaruan alur terakhir:

SELECT
  timestamp,
  Double(details :cluster_resources.avg_task_slot_utilization) as utilization
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'cluster_resources'
  AND
  origin.update_id = latest_update.id

Contoh berikut mengkueri riwayat jumlah pelaksana, disertai dengan metrik yang hanya tersedia untuk alur penskalaan otomatis yang ditingkatkan, termasuk jumlah pelaksana yang diminta oleh algoritma dalam permintaan terbaru, jumlah optimal pelaksana yang direkomendasikan oleh algoritma berdasarkan metrik terbaru, dan status algoritma penskalaan otomatis:

SELECT
  timestamp,
  Double(details :cluster_resources.num_executors) as current_executors,
  Double(details :cluster_resources.latest_requested_num_executors) as latest_requested_num_executors,
  Double(details :cluster_resources.optimal_num_executors) as optimal_num_executors,
  details :cluster_resources.state as autoscaling_state
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'cluster_resources'
  AND
  origin.update_id = latest_update.id

Audit Alur DLT

Anda dapat menggunakan catatan log peristiwa DLT dan log audit Azure Databricks lainnya untuk mendapatkan gambaran lengkap tentang bagaimana data diperbarui di DLT.

DLT menggunakan kredensial pemilik alur untuk menjalankan pembaruan. Anda dapat mengubah kredensial yang digunakan dengan memperbarui pemilik alur. DLT merekam tindakan pengguna pada pipeline, termasuk pembuatan pipeline, pengeditan konfigurasi, dan pemicu pembaruan.

Lihat peristiwa Katalog Unity untuk referensi peristiwa audit Katalog Unity.

Mengkueri tindakan pengguna di log peristiwa

Anda dapat menggunakan log peristiwa untuk mengaudit peristiwa, misalnya, tindakan pengguna. Peristiwa yang berisi informasi tentang tindakan pengguna memiliki jenis peristiwa user_action.

Informasi tentang tindakan disimpan di objek user_action di bidang details. Gunakan kueri berikut untuk membuat log audit peristiwa pengguna. Untuk membuat tampilan event_log_raw yang digunakan dalam kueri ini, lihat Mengkueri log peristiwa.

SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'
timestamp action user_name
2021-05-20T19:36:03.517+0000 START user@company.com
2021-05-20T19:35:59.913+0000 CREATE user@company.com
2021-05-27T00:35:51.971+0000 START user@company.com

Informasi Pemrosesan Sementara

Anda dapat melihat informasi runtime untuk pembaruan alur, misalnya, versi Databricks Runtime untuk pembaruan:

SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'
dbr_version
11.0