Aracılığıyla paylaş


Yapılandırılmış Akış durumu bilgilerini okuma

Databricks Runtime 14.3 LTS ve üzeri sürümlerde, özel veya yalıtım olmayan erişim moduyla yapılandırılmış işlem üzerinde, DataFrame işlemleri veya SQL tablo-değer işlevleri kullanarak Yapılandırılmış Akış durumu verilerini ve meta verilerini sorgulayabilirsiniz. Yapılandırılmış Akış durum bilgisi olan sorguların durum bilgilerini gözlemlemek için bu işlevleri kullanabilirsiniz. Bu, izleme ve hata ayıklama için yararlı olabilir.

Durum verilerini veya meta verileri sorgulamak için akış sorgusunun denetim noktası yoluna okuma erişiminiz olmalıdır. Bu makalede açıklanan işlevler, durum verilerine ve meta verilerine salt okunur erişim sağlar. Durum bilgilerini sorgulamak için yalnızca toplu okuma semantiği kullanabilirsiniz.

Not

DLT işlem hatları, akış tabloları veya gerçekleştirilmiş görünümler için durum bilgilerini sorgulayamazsınız. Sunucusuz bilişim veya standart erişim moduyla yapılandırılmış bilişim kullanarak durum bilgilerini sorgulayamazsınız.

Yapılandırılmış Akış durum deposunu oku

Desteklenen herhangi bir Databricks Runtime'da yürütülen Yapılandırılmış Akış sorguları için durum deposu bilgilerini okuyabilirsiniz. Aşağıdaki sözdizimini kullanın:

Python

df = (spark.read
  .format("statestore")
  .load("/checkpoint/path"))

SQL

SELECT * FROM read_statestore('/checkpoint/path')

Aşağıdaki isteğe bağlı yapılandırmalar desteklenir:

Seçenek Tür Varsayılan değer Açıklama
batchId Uzun en son işlem kimliği Okunacak hedef toplu işlemi temsil eder. Sorgunun önceki bir durumu için durum bilgilerini sorgulamak için bu seçeneği belirtin. Toplu işlem gerçekleştirilmelidir ancak henüz temizlenmemelidir.
operatorId Uzun 0 Okunacak hedef işleci temsil eder. Bu seçenek, sorgu birden çok durum bilgisi olan işleç kullandığında kullanılır.
storeName String Varsayılan Okunacak hedef durum deposu adını temsil eder. Durumlu bir işleç birden fazla durum deposu örneği kullandığında bu seçenek kullanılır. Akış buharı birleşimi için storeName veya joinSide belirtilmelidir, ancak ikisi birden belirtilmez.
joinSide Dize ("sol" veya "sağ") Okunacak hedef tarafı temsil eder. Bu seçenek, kullanıcılar stream-stream birleştirmesinden durumu okumak istediğinde kullanılır.

Döndürülen veriler aşağıdaki şemaya sahiptir:

Sütun Tür Açıklama
key Yapı (durum anahtarından türetilen başka tür) Durum denetim noktasında durum bilgisi olan işleç kaydının anahtarı.
value Yapı (durum değerinden türetilen başka bir tür) Durum denetim noktasında durum bilgisi olan işleç kaydının değeri.
partition_id Tamsayı Durum kontrol noktasının, durum bilgisi olan işleç kaydını içeren bölümü.

Yapılandırılmış Akış durumu meta verilerini okuma

Önemli

Durum meta verilerini kaydetmek için Databricks Runtime 14.2 veya üzerinde akış sorguları çalıştırmanız gerekir. Durum meta verileri dosyaları geriye dönük uyumluluğu bozmaz. Databricks Runtime 14.1 veya altında bir akış sorgusu çalıştırmayı seçerseniz, mevcut durum meta veri dosyaları yoksayılır ve yeni durum meta veri dosyaları yazılmaz.

Databricks Runtime 14.2 veya üzeri üzerinde çalıştırılan Yapılandırılmış Akış sorguları için durum meta verileri bilgilerini okuyabilirsiniz. Aşağıdaki sözdizimini kullanın:

Python

df = (spark.read
  .format("state-metadata")
  .load("<checkpointLocation>"))

SQL

SELECT * FROM read_state_metadata('/checkpoint/path')

Döndürülen veriler aşağıdaki şemaya sahiptir:

Sütun Tür Açıklama
operatorId Tamsayı Durumlu akış işlecinin tamsayı kimliği.
operatorName Tamsayı Durumlu akış operatörünün adı.
stateStoreName Dize İşlecin durum deposunun adı.
numPartitions Tamsayı Durum deposunun bölüm sayısı.
minBatchId Uzun Sorgulamak için mevcut olan en düşük toplu kimlik.
maxBatchId Uzun Durumu sorgulamak için kullanılabilir en yüksek toplu iş kimliği.

Dikkat

minBatchId ve maxBatchId tarafından verilen yığın kimliği değerleri, denetim noktasının yazıldığı zamandaki durumu yansıtır. Eski toplu işlemler mikro toplu iş yürütmesi ile otomatik olarak temizlenir, bu nedenle burada sağlanan değerin hala kullanılabilir olması garanti değildir.