Tetiklenen ve sürekli işlem hattı modu karşılaştırması
Bu makalede, DLT için tetiklenen ve sürekli işlem hattı modlarının operasyonel semantiği açıklanmaktadır.
İşlem hattı modu, hesaplanan tablonun türünden bağımsızdır. Hem maddi görünümler hem de Akış Tabloları, her iki ardışık düzen modunda da güncellenebilir.
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. DLT işlem hattını yapılandırma.
Not
Databricks SQL'de tanımlanan gerçekleştirilmiş görünümler ve Akış tabloları için yenileme işlemleri her zaman tetiklenmiş işlem hattı modu kullanılarak çalıştırılır.
Tetiklenen 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 DLT, işlem hattı genelinde tabloların güncel kalmasını sağlamak için veri kaynaklarına ulaşan yeni verileri 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ı modları 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ıktan sonra 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 spark_conf
veya SQL'de SET
kullanarak tabloda pipelines.trigger.interval
ayarlarsınız:
@dlt.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"
}
}