Referensi tabel sistem pengoptimalan prediktif

Penting

Tabel sistem ini berada dalam Pratinjau Umum.

Catatan

Untuk memiliki akses ke tabel ini, wilayah Anda harus mendukung pengoptimalan prediktif. Lihat wilayah Azure Databricks.

Artikel ini menguraikan skema tabel riwayat operasi pengoptimalan prediktif dan menyediakan kueri sampel. Pengoptimalan prediktif mengoptimalkan tata letak data Anda untuk performa puncak dan efisiensi biaya. Tabel sistem melacak riwayat operasi fitur ini. Untuk informasi tentang pengoptimalan prediktif, lihat pengoptimalan prediktif untuk tabel terkelola Katalog Unity.

Jalur tabel: Tabel sistem ini terletak di system.storage.predictive_optimization_operations_history.

Pertimbangan pengiriman

  • Tabel sistem pengoptimalan prediktif diperbarui dalam waktu dua jam. Namun, informasi penagihan dapat memakan waktu hingga 24 jam untuk mengisi data.
  • Pengoptimalan prediktif mungkin menjalankan beberapa operasi pada kluster yang sama. Jika demikian, bagian dari DBU yang dikaitkan dengan masing-masing dari beberapa operasi diperkirakan. Inilah sebabnya mengapa usage_unit diatur ke ESTIMATED_DBU. Namun, jumlah total DBU yang dihabiskan untuk kluster akan akurat.

Skema tabel pengoptimalan prediktif

Tabel sistem riwayat operasi pengoptimalan prediktif menggunakan skema berikut:

Nama kolom Jenis data Deskripsi Contoh
account_id string ID akun. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string ID ruang kerja tempat pengoptimalan prediktif melakukan operasi. 1234567890123456
start_time stempel waktu Waktu dimulainya operasi. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-09 10:00:00.000+00:00
end_time stempel waktu Waktu di mana operasi berakhir. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-09 11:00:00.000+00:00
metastore_name string Nama metastore tempat tabel yang sudah dioptimalkan berada. metastore
metastore_id string ID metastore tempat tabel yang dioptimalkan berada. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
catalog_name string Nama katalog tempat tabel yang dioptimalkan berada. catalog
schema_name string Nama skema tempat tabel yang dioptimalkan berada. schema
table_id string ID tabel yang dioptimalkan. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name string Nama tabel yang dioptimalkan. table1
operation_type string Operasi pengoptimalan dilakukan. Harus salah satu dari nilai berikut: COMPACTION, , ANALYZEVACUUM, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DELETEDATA_SKIPPING_COLUMN_SELECTIONCOMPATIBILITY_MODE_REFRESHatau .PURGE COMPACTION
operation_id string ID untuk operasi pengoptimalan. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status string Status operasi pengoptimalan. Harus salah satu nilai berikut: SUCCESSFUL, , FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERRORatau FAILED: PRIVATE_LINK_SETUP_ERROR. SUCCESSFUL
operation_metrics peta [string, string] Detail tambahan tentang optimasi spesifik yang telah dilakukan. Lihat Metrik operasi. {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}
usage_unit string Unit penggunaan yang dikeluarkan. Harus berupa nilai berikut: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity desimal Jumlah unit penggunaan yang digunakan. 2.12

Metrik operasi

Metrik yang direkam dalam kolom operation_metrics bervariasi tergantung pada jenis operasi:

Nama operasi Deskripsi operasi Metrik operasi Deskripsi
COMPACTION Meningkatkan performa kueri dengan mengoptimalkan ukuran file. Lihat Optimalkan tata letak file data. number_of_compacted_files Jumlah file yang dihapus.
amount_of_data_compacted_bytes Jumlah byte yang dihapus.
number_of_output_files Jumlah file baru yang ditambahkan.
amount_of_output_data_bytes Jumlah byte yang ditambahkan.
VACUUM Mengurangi biaya penyimpanan dengan menghapus file data tidak lagi direferensikan oleh tabel. Lihat Menghapus file data yang tidak digunakan dengan vakum. number_of_deleted_files Jumlah file yang dikumpulkan sebagai sampah.
amount_of_data_deleted_bytes Jumlah byte yang dikumpulkan oleh sampah.
ANALYZE Memicu pembaruan statistik secara bertahap untuk meningkatkan kinerja kueri. Lihat ANALYZE TABLE ... STATISTIK KOMPUTASI. amount_of_scanned_bytes Jumlah byte yang dipindai.
number_of_scanned_files Jumlah file yang dipindai.
staleness_percentage_reduced Pengurangan persentase kebasi. Statistik ini dapat berkisar dari 0 hingga 100 berdasarkan frekuensi yang ANALYZE dijalankan.
CLUSTERING Memicu pengklusteran inkremental untuk tabel yang diaktifkan. Lihat Menggunakan pengklusteran cair untuk tabel. number_of_removed_files Jumlah file yang dihapus.
number_of_clustered_files Jumlah file baru yang ditambahkan.
amount_of_data_removed_bytes Jumlah byte yang dihapus.
amount_of_clustered_data_bytes Jumlah byte yang ditambahkan.
AUTO_CLUSTERING_COLUMN_SELECTION Mengevaluasi apakah akan mengembangkan kolom pengklusteran. Lihat pengklusteran cairan otomatis. old_clustering_columns Tata letak data sebelumnya, yang bisa berupa kunci klaster lama atau "Tidak ada" jika tidak dipartisi.
new_clustering_columns Kolom pengelompokan baru.
has_column_selection_changed Indikator apakah kolom klaster berubah.
additional_reason Alasan perubahan atau tidak ada perubahan pada kolom pengelompokan.
DATA_SKIPPING_COLUMN_SELECTION Mendeteksi kolom dengan data yang hilang, melewati statistik akibat beban kerja, dan mengisi data tersebut kembali. Lihat Data Skipping. amount_of_scanned_bytes Jumlah byte yang dipindai.
number_of_scanned_files Jumlah file yang dipindai.
added_data_skipping_columns Kolom yang melewati data ditambahkan.
removed_data_skipping_columns Kolom yang melompati data dihapus.
old_data_skipping_columns Daftar lengkap sebelumnya tentang kolom yang melompati data.
new_data_skipping_columns Daftar lengkap kolom yang melewati data saat ini.
COMPATIBILITY_MODE_REFRESH Mendeteksi apakah Mode Kompatibilitas sudah kedaluarsa dan menyegarkan tabel. Lihat Mode Kompatibilitas. N/A Operasi penyegaran Mode Kompatibilitas.
DELETE Menghapus baris yang telah melewati masa kedaluwarsa waktu hidup otomatis. Lihat Penghapusan baris secara otomatis dengan masa aktif otomatis. number_of_deleted_rows Jumlah baris yang dihapus. Ini adalah 0 saat tidak ada baris yang memenuhi syarat untuk dihapus.
amount_of_data_deleted_bytes Jumlah byte yang dihapus.
PURGE Menulis ulang file data untuk secara fisik menghapus baris yang sudah terhapus dengan vektor penghapusan. Berjalan sebelum VACUUM pada tabel dengan vektor penghapusan diaktifkan. Lihat Penghapusan baris secara otomatis dengan masa aktif otomatis. number_of_purged_rows Jumlah baris yang dibersihkan. Saat itulah 0 tidak ada baris yang memenuhi syarat untuk dibersihkan. Lihat Penghapusan baris secara otomatis dengan masa aktif otomatis.

Contoh kueri

Bagian berikut menyertakan kueri sampel yang dapat Anda gunakan untuk mendapatkan wawasan tentang tabel sistem pengoptimalan prediktif. Agar kueri ini berfungsi, Anda perlu mengganti nilai parameter dengan nilai Anda sendiri.

Artikel ini menyertakan contoh kueri berikut:

Berapa banyak DBU yang diperkirakan telah digunakan oleh pengoptimalan prediktif dalam 30 hari terakhir?

SELECT SUM(usage_quantity)
  FROM system.storage.predictive_optimization_operations_history
  WHERE
    usage_unit = "ESTIMATED_DBU"
    AND timestampdiff(day, start_time, Now()) < 30;

Untuk menemukan nilai yang sama untuk alur ETL tertentu, Anda dapat terlebih dahulu menemukan tabel dalam alur tersebut, lalu mencari DBA:

-- Find all full table names for the pipeline:
WITH pipeline_mapping AS (
  SELECT DISTINCT target_table_full_name AS target_table_name
  FROM system.access.table_lineage
  WHERE entity_type = 'PIPELINE' AND entity_id = :pipeline_id
)
-- Select all operations for any table in that pipeline:
SELECT SUM(usage_quantity)
  FROM system.storage.predictive_optimization_operations_history
  WHERE
    CONCAT_WS('.', catalog_name, schema_name, table_name)
      IN ( SELECT target_table_name FROM pipeline_mapping)
    AND usage_unit = "ESTIMATED_DBU"
    AND timestampdiff(day, start_time, Now()) < 30;

Pada tabel mana pengoptimalan prediktif menghabiskan paling banyak dalam 30 hari terakhir (perkiraan biaya)?

SELECT
  metastore_name,
  catalog_name,
  schema_name,
  table_name,
  SUM(usage_quantity) as totalDbus
FROM system.storage.predictive_optimization_operations_history
WHERE
  usage_unit = "ESTIMATED_DBU"
  AND timestampdiff(day, start_time, Now()) < 30
GROUP BY ALL
ORDER BY totalDbus DESC;

Pada tabel mana pengoptimalan prediktif melakukan operasi terbanyak?

SELECT
  metastore_name,
  catalog_name,
  schema_name,
  table_name,
  operation_type,
  COUNT(DISTINCT operation_id) as operations
FROM system.storage.predictive_optimization_operations_history
GROUP BY ALL
ORDER BY operations DESC;

Untuk katalog tertentu, berapa banyak total byte yang telah dikompresi?

SELECT
  schema_name,
  table_name,
  SUM(operation_metrics["amount_of_data_compacted_bytes"]) as bytesCompacted
FROM system.storage.predictive_optimization_operations_history
WHERE
  metastore_name = :metastore_name
  AND catalog_name = :catalog_name
  AND operation_type = "COMPACTION"
GROUP BY ALL
ORDER BY bytesCompacted DESC;

Tabel mana yang memiliki jumlah byte terbanyak yang dibersihkan?

SELECT
  metastore_name,
  catalog_name,
  schema_name,
  table_name,
  SUM(operation_metrics["amount_of_data_deleted_bytes"]) as bytesVacuumed
FROM system.storage.predictive_optimization_operations_history
WHERE operation_type = "VACUUM"
GROUP BY ALL
ORDER BY bytesVacuumed DESC;

Berapa tingkat keberhasilan operasi yang dijalankan oleh pengoptimalan prediktif?

WITH operation_counts AS (
  SELECT
    COUNT(DISTINCT (CASE WHEN operation_status = "SUCCESSFUL" THEN operation_id END)) as successes,
    COUNT(DISTINCT operation_id) as total_operations
  FROM system.storage.predictive_optimization_operations_history
 )
SELECT successes / total_operations as success_rate
FROM operation_counts;