Aracılığıyla paylaş


ANALYZE TABLE

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

ANALYZE TABLE deyimini kullanın:

  1. Belirli bir tablo için depolama ölçümlerini hesapla
  2. Belirli bir tablo veya belirtilen şemadaki tüm tablolar hakkında tahmini istatistikleri toplayın.

Toplam depolama boyutu döndürmek için bir tabloda komutunu çalıştırın COMPUTE STORAGE METRICS .

Ayrıca, tahmini istatistikler sorgu iyileştiricisi tarafından en uygun sorgu planını oluşturmak için kullanılır. Tahmine dayalı iyileştirme, bu bilgileri toplamak için Unity Kataloğu yönetilen tablolarında otomatik olarak çalışır ANALYZE . Databricks, veri bakımını basitleştirmek ve depolama maliyetlerini azaltmak için tüm Unity Kataloğu yönetilen tablolarında tahmine dayalı iyileştirmenin etkinleştirilmesini önerir. Bkz. Unity Kataloğu tarafından yönetilen tablolar için tahmine dayalı optimizasyon.

Sözdizimi

ANALYZE TABLE table_name COMPUTE STORAGE METRICS

ANALYZE TABLE table_name [ PARTITION clause ]
    COMPUTE [ DELTA ] STATISTICS [ NOSCAN | FOR COLUMNS col1 [, ...] | FOR ALL COLUMNS ]

ANALYZE TABLES [ { FROM | IN } schema_name ] COMPUTE STATISTICS [ NOSCAN ]

Parametreler

  • table_name

    Analiz edilecek tabloyu tanımlar. Ad, zamansal belirtim veya seçenek belirtimi veya yolu içermemelidir. Tablo bulunamazsa Azure Databricks bir TABLE_OR_VIEW_NOT_FOUND hatası oluşturur.

  • PARTITION yan tümcesi

    İsteğe bağlı olarak komutu bölümlerin bir alt kümesiyle sınırlar.

    Delta Lake tabloları için bu madde desteklenmez.

  • DELTA

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 14.3 LTS ve üzeri

    Delta tablosundaki istatistik koleksiyonu için yapılandırılan sütunlar için Delta günlüğünde depolanan istatistikleri yeniden derler.

    Anahtar sözcük belirtildiğinde DELTA , sorgu iyileştiricisi için normal istatistikler toplanmaz.

    Databricks, veri atlama işlemi için yeni sütunlar ayarlandıktan sonra, tablodaki tüm satırların istatistiklerini güncellemek amacıyla ANALYZE TABLE table_name COMPUTE DELTA STATISTICS çalıştırılmasını önerir. İyileştirilmiş performans için Delta günlüğü güncelleştirmesi tamamlandıktan sonra sorgu planını güncelleştirmek için komutunu çalıştırın ANALYZE TABLE table_name COMPUTE STATISTICS .

  • [ NOSCAN | FOR COLUMNS col [, ...] | TÜM COLUMNS için ]

    Çözümle seçeneği belirtilmezse, ANALYZE TABLE tablonun satır sayısını ve boyutunu bayt cinsinden toplar.

    • NOSCAN

      Yalnızca tablonun boyutunu bayt cinsinden toplayın (tablonun tamamını taramayı gerektirmez).

    • FOR COLUMNS col [, ...] | TÜM COLUMNS

      Belirtilen her sütun için sütun istatistiklerini veya alternatif olarak her sütun için sütun istatistiklerini ve tablo istatistiklerini toplayın.

      Sütun istatistikleri PARTITION ifadesiyle birlikte kullanıldığında desteklenmez.

  • { KAYNAK | IN } schema_name

    Çözümlenecek şemanın adını belirtir. Şema adı olmadan, ANALYZE TABLES geçerli kullanıcının analiz etme iznine sahip olduğu geçerli şemadaki tüm tabloları toplar.

HESAPLAMA DEPOLAMA ÖLÇÜMLERİ

Şunun için geçerlidir:seçim işareti evet olarak ayarlanmış Databricks Runtime 18.0 ve üzeri

ANALYZE TABLE … COMPUTE STORAGE METRICS komutu, bir tablonun toplam depolama boyutu ölçümlerini hesaplar. Sorgu performansını en iyi duruma getirmenin aksine ANALYZE TABLE … COMPUTE STATISTICS , bu komut maliyet analizi ve iyileştirme için ayrıntılı depolama dökümü sağlar.

Description

Belirli bir tablo için toplam depolama boyutu ölçümlerini hesaplar. Bu komut, her kategori için ilişkili dosya sayısıyla birlikte toplam bayt, etkin bayt, vakumlanabilir bayt ve zaman yolculuğu baytları gibi kapsamlı depolama bilgilerini döndürür.

Büyük veya kullanılmayan tabloları tanımlamak, depolama maliyetlerini iyileştirmek ve toplam depolama boyutunun etkin tablo boyutundan neden farklı olduğunu anlamak için bu komutu kullanın. Bu, özellikle birden çok tablodaki depolama desenlerini çözümlemesi veya zaman içindeki depolama değişikliklerini izlemesi gereken platform yöneticileri için kullanışlıdır.

Çıkış ölçümleri

komut, aşağıdaki ölçümleri tek bir satırda döndürür:

Alan Açıklama
total_bytes Tablonun toplam depolama boyutu. Bu işlem günlüğü boyutu + etkin bayt + vakumlanabilir bayt + zaman yolculuğu baytlarına eşittir.
num_total_files Delta günlük dosyaları, etkin dosyalar, vakumlanabilir dosyalar ve zaman yolculuğu dosyaları da dahil olmak üzere toplam dosya sayısı.
active_bytes Tablo tarafından aktif olarak referans verilen veri dosyalarının boyutu (aynı sizeInBytes gibi).
num_active_files Tablo tarafından aktif olarak başvurulan toplam dosya sayısı.
vacuumable_bytes VACUUM veya tahmine dayalı iyileştirme etkinleştirilerek çalıştırıldığında kaldırılabilir verilerin boyutu.
num_vacuumable_files Vakumlanabilir dosya sayısı.
time_travel_bytes Geri alma işlemleri ve zaman yolculuğu işlemleri için kullanılan geçmişe dönük verilerin boyutu. Tombstoned bayt veya failsafe bytes olarak da bilinir.
num_time_travel_files Zaman yolculuğu için kullanılan dosya sayısı.

Ayrıntılar

  • komutu, depolama bilgilerini hesaplamak için özyinelemeli bir liste yaklaşımı kullanır. Yürütme süresi genellikle dakikalar içindedir, ancak çok büyük tablolar için birkaç saat kadar sürebilir.
  • Bu komut hem Unity Kataloğu yönetilen hem de dış tablolar için çalışır.
  • Depolama ölçümleri komut çalıştırıldığı sırada hesaplanır ve Unity Kataloğu'nda depolanmaz veya DESCRIBE EXTENDED tarafından döndürülmez.
  • Zaman içindeki depolama değişikliklerini izlemek için bu komutu düzenli aralıklarla çalıştırın ve sonuçları bir tabloda depolayın. Veri varlığınız genelindeki depolama desenlerini analiz etmek için bu komutu birden çok tablo arasında döngü halinde çalıştırın.

Tablo türüyle ilgili dikkat edilmesi gerekenler

  • Gerçekleştirilmiş görünümler ve akış tabloları:total_bytes tablonun boyutunu ve ilişkili meta verileri içerir. Ölçüm, active_bytes tablonun vakumlanabilir ve zaman taşınabilir kısımlarını dışlar.
  • Sığ klonlar:total_bytes kaynak tablo dosyaları hariç, yalnızca kopyanın kendi meta verilerini ve delta günlük dosyalarını içerir. active_bytes sıfıra eşittir çünkü kopya kaynak tablonun veri dosyalarına başvurur.
  • Dönüştürülen tablolar: Yakın zamanda dıştan yönetilene dönüştürülen tablolar hem yönetilen hem de dış konumlardaki verileri içerebilir. Örneğin, geri alma penceresi sırasında veriler dış konumda kalır. Bkz . Dış tabloyu yönetilen Unity Kataloğu tablosuna dönüştürme.

Örnekler

Aşağıdaki örneklerde depolama ölçümlerini hesaplamak ve istatistikleri toplamak için nasıl kullanılacağı ANALYZE TABLE gösterilmektedir.

HESAPLAMA DEPOLAMA ÖLÇÜMLERİ örnekleri

> ANALYZE TABLE main.my_schema.my_table COMPUTE STORAGE METRICS;
total_bytes  total_num_files  active_bytes  num_active_files  vacuumable_bytes  num_vacuumable_files  time_travel_bytes  num_time_travel_files
-----------  ---------------  ------------  ----------------  ----------------  --------------------  -----------------  ---------------------
 5368709120             1250    4294967296              1000        805306368                   150         268435456                    100

Çıktı şunları gösterir:

  • Toplam depolama alanı: 1.250 dosyada 5,37 GB
  • Etkin veriler: 1.000 dosyada 4,29 GB (geçerli tablo sürümü)
  • Vakumlanabilir veriler: 150 dosyada 805 MB (ile VACUUMgeri kazanılabilir)
  • Zaman yolculuğu verileri: 100 dosyada 268 MB (geçmiş sorgular için)

Hesaplama İstatistikleri Örnekleri

> CREATE TABLE students (name STRING, student_id INT) PARTITIONED BY (student_id);
> INSERT INTO students PARTITION (student_id = 111111) VALUES ('Mark');
> INSERT INTO students PARTITION (student_id = 222222) VALUES ('John');

> ANALYZE TABLE students COMPUTE STATISTICS NOSCAN;

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics            864 bytes
                  ...                  ...     ...

> ANALYZE TABLE students COMPUTE STATISTICS;

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics    864 bytes, 2 rows
                  ...                  ...     ...

-- Note: ANALYZE TABLE .. PARTITION is not supported for Delta tables.
> ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS;

> DESC EXTENDED students PARTITION (student_id = 111111);
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
 Partition Statistics    432 bytes, 1 rows
                  ...                  ...     ...
         OutputFormat org.apache.hadoop...

> ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name;

> DESC EXTENDED students name;
      info_name info_value
 -------------- ----------
       col_name       name
      data_type     string
        comment       NULL
            min       NULL
            max       NULL
      num_nulls          0
 distinct_count          2
    avg_col_len          4
    max_col_len          4
      histogram       NULL

> ANALYZE TABLES IN school_schema COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED teachers;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           teacher_id                  int    null
                  ...                  ...     ...
           Statistics           1382 bytes
                  ...                  ...     ...

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics            864 bytes
                  ...                  ...     ...

> ANALYZE TABLES COMPUTE STATISTICS;
> DESC EXTENDED teachers;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           teacher_id                  int    null
                  ...                  ...     ...
           Statistics   1382 bytes, 2 rows
                  ...                  ...     ...

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics    864 bytes, 2 rows
                  ...                  ...     ...

> ANALYZE TABLE some_delta_table COMPUTE DELTA STATISTICS;