Tetiklenen ve sürekli işlem hattı modu karşılaştırması

Bu makalede, işlem hatları için tetiklemeli ve kesintisiz modların operasyonel semantiği açıklanmaktadır.

İşlem hattı modu, hesaplanan tablonun türünden bağımsızdır. Hem malzemeleşmiş görünümler hem de akış tabloları, her iki işlem hattı modunda da güncelleştirilebilir.

Tetiklenen ve sürekli arasında değişiklik yapmak için işlem hattı oluştururken veya düzenlerken işlem hattı ayarlarındaki İşlem Hattı modu seçeneğini kullanın. Bkz. İşlem Hatlarını Yapılandırma.

Uyarı

Databricks SQL'de tanımlanan gerçekleştirilmiş görünümler ve akış tabloları için yenileme işlemleri her zaman tetiklenen işlem hattı modu kullanılarak çalıştırılır.

Tetikleyici işlem hattı modu nedir?

İşlem hattı tetiklenen modunu kullanıyorsa, sistem tüm tabloları veya seçili tabloları başarıyla yeniledikten sonra işlemeyi durdurur ve güncelleştirme başlatıldığında kullanılabilir verilere göre güncelleştirmedeki her tablonun yenilendiğinden emin olur.

Sürekli işlem hattı modu nedir?

İşlem hattı sürekli yürütme kullanıyorsa, Lakeflow Spark Bildirimli İşlem Hatları yeni verileri işlem hattı genelindeki tabloları güncel tutmak için veri kaynaklarına ulaşırken işler.

Sürekli yürütme modunda gereksiz işlemeyi önlemek için, işlem hatları bağımlı Delta tablolarını otomatik olarak izler ve yalnızca bu bağımlı tabloların içeriği değiştiğinde bir güncelleştirme gerçekleştirir.

Veri işlem hattı modu seçme

Aşağıdaki tabloda tetiklenen ve sürekli işlem hattı modları arasındaki farklar vurgulanır:

Önemli sorular Tetiklenmiş Devamlı
Güncelleştirme ne zaman durduruluyor? Tamamlandığında otomatik olarak. El ile durdurulana kadar sürekli olarak çalışır.
Hangi veriler işlenir? Güncelleştirme başladığında kullanılabilir veriler. Yapılandırılan kaynaklara ulaşan tüm veriler.
Bu, hangi veri tazeliği gereksinimleri için en iyisidir? Veri güncelleştirmeleri 10 dakikada bir, saatlik veya günlük olarak çalıştırılır. Veri güncelleştirmeleri her 10 saniye ile birkaç dakika arasında istenir.

Tetiklenen işlem hatları, küme yalnızca işlem hattını güncelleştirmek için yeterince uzun çalıştığından kaynak tüketimini ve giderlerini azaltabilir. Ancak işlem hattı tetiklenene kadar yeni veriler işlenmez. Sürekli işlem hatları her zaman çalışan bir küme gerektirir ve bu daha pahalıdır ancak işleme gecikme süresini azaltır.

Sürekli işlem hatları için tetikleyici aralığını ayarlama

İşlem hatlarını sürekli mod için yapılandırırken, işlem hattının her akış için güncelleştirme başlatma sıklıklarını denetlemek için tetikleyici aralıkları ayarlayabilirsiniz.

Bir tabloyu veya işlem hattının tamamını güncelleştiren bir akışın tetikleyici aralığını denetlemek için pipelines.trigger.interval kullanabilirsiniz. Tetiklenen işlem hattı her tabloyu bir kez işlediğinden, pipelines.trigger.interval yalnızca sürekli işlem hatlarıyla kullanılır.

Databricks, akış ve toplu iş sorgularının farklı varsayılan değerleri olduğundan tek tek tablolarda pipelines.trigger.interval ayarlanmasını önerir. İşlem hattı grafiğinin tamamı için güncellemeleri kontrol etmeniz gerektiğinde, yalnızca o zaman işlem hattındaki değeri ayarlayın.

Python'da pipelines.trigger.interval veya SQL'de spark_conf kullanarak tabloda SET ayarlarsınız:

@dp.table(
  spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
    return (<query>)
SET pipelines.trigger.interval=10 seconds;

CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...

İşlem hattında pipelines.trigger.interval ayarlamak için işlem hattı ayarlarındaki configuration nesnesine ekleyin:

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}