Bagikan melalui


Pantau alur Delta Live Tables

Artikel ini menjelaskan cara menggunakan fitur pemantauan dan pengamatan bawaan untuk alur Tabel Langsung Delta, termasuk silsilah data, riwayat pembaruan, dan pelaporan kualitas data.

Anda dapat meninjau sebagian besar data pemantauan secara manual melalui antarmuka pengguna detail alur. Beberapa tugas lebih mudah dicapai dengan mengkueri metadata log peristiwa. Lihat Apa itu log peristiwa Delta Live Tables?.

Detail alur apa yang tersedia di UI?

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

Detail yang ditampilkan termasuk ID alur, pustaka 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 saat 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 Grafik.

Jalankan sebagai pengguna 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 menampilkan detail tentang himpunan data. Detailnya termasuk skema himpunan data, metrik kualitas data, dan tautan kembali 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.

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

Mendapatkan pemberitahuan untuk peristiwa alur

Untuk menerima pemberitahuan real time untuk peristiwa alur seperti keberhasilan penyelesaian pembaruan alur atau kegagalan pembaruan alur, tambahkan Tambahkan pemberitahuan email untuk peristiwa alur saat Anda membuat atau mengedit alur.

Apa itu log peristiwa Tabel Langsung Delta?

Log peristiwa Delta Live Tables 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 Delta Live Tables, API Delta Live Tables, 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 hook peristiwa.

Skema log peristiwa

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

Bidang Deskripsi
id Pengidentifikasi unik untuk catatan log peristiwa.
sequence Dokumen JSON yang berisi metadata untuk mengidentifikasi dan memesan peristiwa.
origin Dokumen JSON yang berisi metadata untuk asal peristiwa, misalnya, penyedia cloud, wilayah penyedia cloud, user_id, , pipeline_idatau pipeline_type untuk menunjukkan tempat alur dibuat, baik DBSQL atau WORKSPACE.
timestamp Waktu peristiwa direkam.
message Pesan yang dapat dibaca manusia yang menggambarkan peristiwa tersebut.
level Jenis peristiwa, misalnya, INFO, , WARN, ERRORatau METRICS.
error Jika terjadi kesalahan, detail yang menjelaskan kesalahan.
details Dokumen JSON yang berisi detail terstruktur dari peristiwa tersebut. Ini adalah bidang utama yang digunakan untuk menganalisis peristiwa.
event_type Jenis kejadian.
maturity_level Stabilitas skema peristiwa. Nilai yang mungkin adalah:

* STABLE: Skema stabil dan tidak akan berubah.
* NULL: Skema stabil dan tidak akan berubah. Nilainya mungkin NULL jika rekaman dibuat sebelum maturity_level bidang ditambahkan (rilis 2022.37).
* EVOLVING: Skema tidak stabil dan dapat berubah.
* DEPRECATED: Skema tidak digunakan lagi dan runtime Tabel Langsung Delta dapat berhenti menghasilkan peristiwa ini kapan saja.

Mengkueri log peristiwa

Lokasi log peristiwa dan antarmuka untuk mengkueri log peristiwa bergantung pada apakah alur Anda dikonfigurasi untuk menggunakan metastore Apache Hive atau Katalog Unity.

Metastore Apache Hive

Jika alur Anda menerbitkan tabel ke metastore Apache Hive, log peristiwa disimpan di /system/events bawah storage lokasi. Misalnya, jika Anda telah mengonfigurasi pengaturan storagealur Anda sebagai /Users/username/data, log peristiwa disimpan di /Users/username/data/system/events jalur di DBFS.

Jika Anda belum mengonfigurasi storage pengaturan, lokasi log peristiwa default ada /pipelines/<pipeline-id>/system/events di DBFS. Misalnya, jika ID alur Anda adalah 91de5e48-35ed-11ec-8d3d-0242ac130003, lokasi penyimpanan adalah /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events.

Anda dapat membuat tampilan untuk menyederhanakan kueri log peristiwa. Contoh berikut membuat tampilan sementara yang disebut event_log_raw. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini:

CREATE OR REPLACE TEMP VIEW event_log_raw AS SELECT * FROM delta.`<event-log-path>`;

Ganti <event-log-path> dengan lokasi log peristiwa.

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 latest_update_id tampilan sementara. 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;

Anda bisa mengkueri log peristiwa di buku catatan Azure Databricks atau editor SQL. Gunakan buku catatan atau editor SQL untuk menjalankan contoh kueri log peristiwa.

Katalog Unity

Jika alur Anda menerbitkan tabel ke Unity Catalog, Anda harus menggunakan event_log fungsi bernilai tabel (TVF) untuk mengambil log peristiwa untuk alur. Anda mengambil log peristiwa untuk alur dengan meneruskan ID alur atau nama tabel ke TVF. Misalnya, untuk mengambil rekaman log peristiwa untuk alur dengan ID 04c78631-3dd7-4856-b2a6-7d84e9b2638b:

SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")

Untuk mengambil rekaman log peristiwa untuk alur yang membuat atau memiliki tabel my_catalog.my_schema.table1:

SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))

Untuk memanggil TVF, Anda harus menggunakan kluster bersama atau gudang SQL. Misalnya, Anda dapat menggunakan notebook yang dilampirkan ke kluster bersama atau menggunakan editor SQL yang tersambung ke gudang SQL.

Untuk menyederhanakan kueri peristiwa untuk alur, pemilik alur dapat membuat tampilan melalui event_log TVF. Contoh berikut membuat tampilan di atas log peristiwa untuk alur. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini.

Catatan

event_log TVF hanya dapat dipanggil oleh pemilik alur dan tampilan yang dibuat melalui event_log TVF hanya dapat dikueri oleh pemilik alur. Tampilan tidak dapat dibagikan dengan pengguna lain.

CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

Ganti <pipeline-ID> dengan pengidentifikasi unik untuk alur Tabel Langsung Delta. Anda dapat menemukan ID di panel Detail alur di UI Tabel Langsung Delta.

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 latest_update_id tampilan sementara. 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;

Informasi silsilah kueri dari log peristiwa

Peristiwa yang berisi informasi tentang tindakan pengguna 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
1 customers null
2 sales_orders_raw null
3 sales_orders_cleaned ["customers", "sales_orders_raw"]
4 sales_order_in_la ["sales_orders_cleaned"]

Kualitas data kueri dari log peristiwa

Jika Anda menentukan ekspektasi pada himpunan data di alur Anda, metrik kualitas data disimpan dalam details:flow_progress.data_quality.expectations objek. Peristiwa yang berisi informasi tentang kualitas data memiliki jenis peristiwa flow_progress. Contoh berikut menanyakan 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
1 sales_orders_cleaned valid_order_number 4083 0

Memantau backlog data dengan mengkueri log peristiwa

Tabel Langsung Delta melacak berapa banyak data yang ada di backlog dalam details:flow_progress.metrics.backlog_bytes objek. Peristiwa yang berisi metrik backlog memiliki jenis flow_progressperistiwa . 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

Catatan

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

Memantau peristiwa Autoscaling yang Ditingkatkan dari log peristiwa

Log peristiwa menangkap perubahan ukuran kluster saat Enhanced Autoscaling diaktifkan di alur Anda. Peristiwa yang berisi informasi tentang Enhanced Autoscaling memiliki jenis peristiwa autoscale. Informasi permintaan mengubah ukuran kluster disimpan dalam objek details:autoscale. Contoh berikut mengkueri permintaan pengubahan ukuran kluster Enhanced Autoscaling 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

cluster_resources peristiwa menyediakan metrik pada jumlah slot tugas dalam kluster, berapa banyak slot tugas tersebut yang digunakan, dan berapa banyak tugas yang menunggu untuk dijadwalkan.

Saat Penskalaan Otomatis yang Ditingkatkan diaktifkan, cluster_resources peristiwa 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_EXECUTORSdan 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 mengkueri riwayat ukuran antrean tugas untuk pembaruan alur 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

Mengaudit alur Tabel Langsung Delta

Anda bisa menggunakan catatan log peristiwa Delta Live Tables dan log audit Azure Databricks lainnya untuk mendapatkan gambaran lengkap tentang bagaimana data diperbarui di Delta Live Tables.

Delta Live Tables menggunakan kredensial pemilik alur untuk menjalankan pembaruan. Anda dapat mengubah kredensial yang digunakan dengan memperbarui pemilik alur. Delta Live Tables mencatat tindakan yang dilakukan pengguna di alur, termasuk pembuatan alur, pengeditan terhadap konfigurasi, dan pemicuan 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 dalam user_action objek di lapangan details. Gunakan kueri berikut untuk membuat log audit peristiwa pengguna. Untuk membuat tampilan yang event_log_raw 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
1 2021-05-20T19:36:03.517+0000 START user@company.com
2 2021-05-20T19:35:59.913+0000 CREATE user@company.com
3 2021-05-27T00:35:51.971+0000 START user@company.com

Informasi runtime

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
1 11.0