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 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?
- 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;