Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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_unitdiatur keESTIMATED_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 nilai berikut: COMPACTION, , VACUUM, ANALYZE, CLUSTERINGAUTO_CLUSTERING_COLUMN_SELECTION, , DATA_SKIPPING_COLUMN_SELECTION, atau COMPATIBILITY_MODE_REFRESH. |
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 atau FAILED: INTERNAL_ERROR. |
SUCCESSFUL |
operation_metrics |
map[string, string] | Detail tambahan tentang pengoptimalan spesifik yang 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 | Satuan penggunaan yang ditanggung oleh operasi ini. Harus berupa nilai berikut: ESTIMATED_DBU. |
ESTIMATED_DBU |
usage_quantity |
desimal | Jumlah unit penggunaan yang digunakan oleh operasi ini. | 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 oleh operasi ini. |
amount_of_data_compacted_bytes |
Jumlah byte yang dihapus oleh operasi ini. | ||
number_of_output_files |
Jumlah file baru yang ditambahkan oleh operasi ini. | ||
amount_of_output_data_bytes |
Jumlah byte yang ditambahkan oleh operasi ini. | ||
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 sampah yang dikumpulkan oleh operasi ini. |
amount_of_data_deleted_bytes |
Jumlah byte sampah yang dikumpulkan oleh operasi ini. | ||
ANALYZE |
Memicu pembaruan statistik secara bertahap untuk meningkatkan kinerja kueri. Lihat ANALYZE TABLE. | amount_of_scanned_bytes |
Jumlah byte yang dipindai oleh operasi ini. |
number_of_scanned_files |
Jumlah file yang dipindai oleh operasi ini. | ||
staleness_percentage_reduced |
Pengurangan persentase kedaluarsa setelah operasi ini. Statistik ini dapat berkisar antara 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 oleh operasi ini. |
number_of_clustered_files |
Jumlah file baru yang ditambahkan oleh operasi ini. | ||
amount_of_data_removed_bytes |
Jumlah byte yang dihapus oleh operasi ini. | ||
amount_of_clustered_data_bytes |
Jumlah byte yang ditambahkan oleh operasi ini. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Mengevaluasi apakah akan mengembangkan kolom pengklusteran. Lihat pengklusteran cairan otomatis. | old_clustering_columns |
Tata letak data sebelumnya, yang dapat berupa kunci pengklusteran lama atau "Tidak Ada" jika tidak dipartisi. |
new_clustering_columns |
Kolom pengklusteran baru yang diterapkan oleh operasi ini. | ||
has_column_selection_changed |
Apakah operasi ini telah mengubah kolom pengklusteran. | ||
additional_reason |
Alasan perubahan atau tidak ada perubahan dalam kolom pengklusteran. | ||
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 oleh operasi ini. |
number_of_scanned_files |
Jumlah file yang dipindai oleh operasi ini. | ||
added_data_skipping_columns |
Kolom lompati data yang baru ditambahkan diterapkan oleh operasi ini. | ||
removed_data_skipping_columns |
Kolom lompati data dihapus oleh operasi ini. | ||
old_data_skipping_columns |
Daftar lengkap kolom lompat data sebelumnya. | ||
new_data_skipping_columns |
Daftar lengkap kolom yang melewatkan data saat ini. | ||
COMPATIBILITY_MODE_REFRESH |
Mendeteksi apakah Mode Kompatibilitas sudah kedaluarsa dan menyegarkan tabel. Lihat Mode Kompatibilitas. | N/A | Operasi refresh Mode Kompatibilitas. |
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?
- Pada tabel mana pengoptimalan prediktif menghabiskan paling banyak dalam 30 hari terakhir (perkiraan biaya)?
- Pada tabel mana pengoptimalan prediktif melakukan operasi terbanyak?
- Untuk katalog tertentu, berapa banyak total byte yang telah dikompresi?
- Tabel mana yang memiliki byte paling banyak divakum?
- Berapa tingkat keberhasilan operasi yang dijalankan oleh pengoptimalan prediktif?
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;