Bagikan melalui


Pantau alur Delta Live Tables

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

Menambahkan pemberitahuan email untuk peristiwa alur

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

  • Pembaruan alur berhasil diselesaikan.
  • Pembaruan alur gagal, baik dengan 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.
  • Satu aliran data 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 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.

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 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 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.

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
customers null
sales_orders_raw null
sales_orders_cleaned ["customers", "sales_orders_raw"]
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
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 penskalaan otomatis yang ditingkatkan dari log peristiwa untuk alur tanpa mengaktifkan tanpa server

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 autoscaleperistiwa . Informasi permintaan mengubah ukuran kluster disimpan dalam 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

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