DLT işlem hatlarını izleme
Bu makalede, DLT işlem hatları için yerleşik izleme ve gözlemlenebilirlik özelliklerinin kullanımı açıklanmaktadır. Bu özellikler aşağıdakiler gibi görevleri destekler:
- İşlem hattı güncelleştirmelerinin ilerleme durumunu gözlemleme. Bkz. Kullanıcı arabiriminde hangi işlem hattı ayrıntıları kullanılabilir?.
- İşlem hattı güncelleştirmelerinin başarılı veya başarısız olması gibi işlem hattı olaylarında uyarı. bkz. İşlem hattı olayları için e-posta bildirimleri ekleme.
- Apache Kafka ve Otomatik Yükleyici (Genel Önizleme) gibi akış kaynakları için ölçümleri görüntüleme. bkz. akış ölçümlerini görüntüleme.
- Veri kökeni, veri kalitesi ölçümleri ve kaynak kullanımı gibi işlem hattı güncelleştirmeleriyle ilgili ayrıntılı bilgileri ayıklama. Bkz. DLT olay günlüğü nedir?.
- Belirli olaylar gerçekleştiğinde yapılması gereken özel eylemleri tanımlama. bkz. olay kancalarıyla DLT işlem hatlarının özel izlemesini tanımlama.
Sorgu performansını incelemek ve tanılamak için bkz. DLT işlem hatları için sorgu geçmişine erişme. Bu özellik Genel Önizleme aşamasındadır.
İşlem hattı olayları için e-posta bildirimleri ekleme
Aşağıdaki durumlarda bildirim almak için bir veya daha fazla e-posta adresi yapılandırabilirsiniz:
- İşlem hattı güncellemesi başarıyla tamamlanır.
- İşlem hattı güncellemesi, yeniden denenebilir veya yeniden denenemez bir hatayla başarısız olur. Tüm işlem hattı hataları için bir bildirim almak için bu seçeneği belirleyin.
- İşlem hattı güncelleştirmesi yeniden denenemeyen (önemli) bir hatayla başarısız oluyor. Yalnızca yeniden denenemeyen bir hata oluştuğunda bildirim almak için bu seçeneği belirleyin.
- Tek bir veri akışı başarısız olur.
Bir işlem hattı oluşturduğunuzda veya düzenlediğinizde e-posta bildirimlerini yapılandırmak için:
- Bildirim ekle'ye tıklayın .
- Bildirim almak için bir veya daha fazla e-posta adresi girin.
- Yapılandırılan e-posta adreslerine gönderilecek her bildirim türünün onay kutusuna tıklayın.
- Bildirimekle'ye tıklayın.
Kullanıcı arabiriminde hangi işlem hattı ayrıntıları kullanılabilir?
İşlem hattı grafiği, işlem hattında bir güncelleme başarıyla başlatıldığında görünür. Oklar, işlem hattınızdaki veri kümeleri arasındaki bağımlılıkları temsil eder. Varsayılan olarak, işlem hattı ayrıntıları sayfası tablonun en son güncelleştirmesini gösterir, ancak açılan menüden eski güncelleştirmeleri seçebilirsiniz.
Ayrıntılar arasında işlem hattı kimliği, kaynak kodu, işlem maliyeti, ürün sürümü ve işlem hattı için yapılandırılmış kanal yer alır.
Veri kümelerinin tablosal görünümünü görmek için Liste sekmesine tıklayın. Listesi görünümü, işlem hattınızdaki tüm veri kümelerini bir tabloda satır olarak temsil etmenizi sağlar ve işlem hattı DAG'niz Graph görünümünde görselleştiremeyecek kadar büyük olduğunda kullanışlıdır. Veri kümesi adı, türü ve durumu gibi birden çok filtre kullanarak tabloda görüntülenen veri kümelerini denetleyebilirsiniz. DAG görselleştirmesine geri dönmek için Graph öğesine tıklayın.
Farklı çalıştır kullanıcısı işlem hattı sahibidir ve işlem hattı güncelleştirmeleri bu kullanıcı izinleriyle çalıştırılır.
run as
kullanıcıyı değiştirmek için İzinler'e tıklayın ve pipeline sahibini değiştirin.
Veri kümesi ayrıntılarını nasıl görüntüleyebilirsiniz?
İşlem hattı grafiğinde veya veri kümesi listesinde bir veri kümesine tıklanması, veri kümesiyle ilgili ayrıntıları gösterir. Ayrıntılar veri kümesi şemasını, veri kalitesi ölçümlerini ve veri kümesini tanımlayan kaynak kodun bağlantısını içerir.
güncelleştirme geçmişini görüntüleme
İşlem hattı güncelleştirmelerinin geçmişini ve durumunu görüntülemek için üst çubuktaki güncelleştirme geçmişi açılan menüsüne tıklayın.
Bir güncelleştirmenin grafiğini, ayrıntılarını ve olaylarını görüntülemek için açılan menüden güncelleştirmeyi seçin. En son güncelleştirmeye dönmek için En son güncelleştirmegöster'e tıklayın.
Akış ölçümlerini görüntüleme
Önemli
DLT için akış gözlemlenebilirliği Genel Önizlemeiçindedir.
DLT işlem hattınızdaki her akış akışı için Spark Yapılandırılmış Akış tarafından desteklenen Apache Kafka, Amazon Kinesis, Otomatik Yükleyici ve Delta tabloları gibi veri kaynaklarından akış ölçümlerini görüntüleyebilirsiniz. Ölçümler DLT kullanıcı arabiriminin sağ bölmesinde grafik olarak görüntülenir ve kapsam saniyelerini, kapsam baytlarını, kapsam kayıtlarını ve kapsam dosyalarını içerir. Grafikler dakika cinsinden toplanan en yüksek değeri görüntüler ve grafiğin üzerine geldiğinizde bir araç ipucu maksimum değerleri gösterir. Veriler geçerli saatten itibaren son 48 saatle sınırlıdır.
İşlem hattınızdaki akış ölçümlerini içeren tablolar, kullanıcı arabirimi Graph görünümünde işlem hattı DAG'sini görüntülerken simgesini görüntüler. Akış ölçümlerini görüntülemek için
tıklayarak akış ölçüm grafiğini sağ bölmedeki Akışlar sekmesinde görüntüleyin.
Liste'ne ve ardından akış ölçümleri var'a tıklayarak yalnızca akış ölçümlerine sahip tabloları görüntülemek için filtre uygulayabilirsiniz.
Her akış kaynağı yalnızca belirli ölçümleri destekler. Akış kaynağı tarafından desteklenmeyen ölçümler kullanıcı arabiriminde görüntüleyemez. Aşağıdaki tabloda desteklenen akış kaynakları için kullanılabilecek ölçümler gösterilmektedir:
kaynak | bekleyen baytlar | iş yükü kayıtları | birikim saniyeleri | birikmiş dosyalar |
---|---|---|---|---|
Kafka | ✓ | ✓ | ||
Kinesis | ✓ | ✓ | ||
Delta | ✓ | ✓ | ||
Otomatik Yükleyici | ✓ | ✓ | ||
Google Pub/Sub | ✓ | ✓ |
DLT olay günlüğü nedir?
DLT olay günlüğü, denetim günlükleri, veri kalitesi denetimleri, işlem hattı ilerleme durumu ve veri kökeni gibi işlem hattıyla ilgili tüm bilgileri içerir. Veri işlem hatlarınızın durumunu izlemek, anlamak ve izlemek için olay günlüğünü kullanabilirsiniz.
Olay günlüğü girdilerini DLT kullanıcı arabiriminde, DLT API'sindeveya doğrudan olay günlüğünü sorgulayarak görüntüleyebilirsiniz. Bu bölüm, olay günlüğünü doğrudan sorgulamaya odaklanır.
Olaylar günlüğe kaydedilirken, örneğin uyarılar göndermek gibi, özel eylemler çalıştıracak olay kancalarıtanımlayabilirsiniz.
Önemli
Olay günlüğünü, olay günlüğünün yayımlandığı üst kataloğu veya şemayı silmeyin. Olay günlüğünü silmek, işlem hattınızın gelecekteki çalıştırmalar sırasında güncelleştirilememesine neden olabilir.
Olay günlüğü şeması
Aşağıdaki tabloda olay günlüğü şeması açıklanmaktadır. Bu alanlardan bazıları, details
alanı gibi bazı sorguları gerçekleştirmek için ayrıştırma gerektiren JSON verileri içerir. Azure Databricks, JSON alanlarını ayrıştırmak için :
işlecini destekler. bkz. :
(iki nokta işareti) işleci.
Alan | Açıklama |
---|---|
id |
Olay günlüğü kaydı için benzersiz bir tanımlayıcı. |
sequence |
Olayları tanımlamak ve sıralamak için meta verileri içeren bir JSON belgesi. |
origin |
Olayın kaynağıyla ilgili meta verileri içeren bir JSON belgesi( örneğin, bulut sağlayıcısı, bulut sağlayıcısı bölgesi, user_id , pipeline_id veya pipeline_type işlem hattının nerede oluşturulduğunu göstermek için DBSQL veya WORKSPACE ). |
timestamp |
Olayın kaydedilildiği saat. |
message |
Olayı açıklayan, insan tarafından okunabilen bir ileti. |
level |
Olay türü, örneğin, INFO , WARN , ERROR veya METRICS . |
maturity_level |
Olay şemasının kararlılığı. Olası değerler şunlardır:
|
error |
Bir hata oluştuysa, hatayı açıklayan ayrıntılar. |
details |
Olayın yapılandırılmış ayrıntılarını içeren bir JSON belgesi. Bu, olayları çözümlemek için kullanılan birincil alandır. |
event_type |
Olay türü. |
Olay günlüğünü sorgulama
Not
Bu bölümde Unity Kataloğu ve varsayılan yayımlama modu ile yapılandırılmış işlem hatları için olay günlükleriyle çalışmaya yönelik varsayılan davranış ve söz dizimi açıklanmaktadır.
- Eski yayımlama modunu kullanan Unity Kataloğu işlem hatlarının davranışı için bkz. Unity Kataloğu eski yayımlama modu işlem hatları için olay günlüğüyle çalışma.
- Hive meta veri deposu işlem hatlarının davranışı ve söz dizimi için bkz. Hive meta veri deposu işlem hatları için olay günlüğüyle çalışma.
Varsayılan olarak, DLT olay günlüğünü işlem hattı için yapılandırılan varsayılan katalogda ve şemada gizli bir Delta tablosuna yazar. Gizliyken, tablo yine de tüm yeterince ayrıcalıklı kullanıcılar tarafından sorgulanabilir. Varsayılan olarak, olay günlüğü tablosunu yalnızca işlem hattının sahibi sorgulayabilir.
Varsayılan olarak, gizli olay günlüğünün adı event_log_{pipeline_id}
olarak biçimlendirilir; burada işlem hattı kimliği, sistem tarafından atanan ve tirelerin alt çizgilerle değiştirildiği UUID'dir.
Olay günlüğünü yayımlamak için JSON yapılandırmasıyla etkileşim kurabilirsiniz. Bir olay günlüğü yayımladığınızda, olay günlüğünün adını belirtirsiniz ve isteğe bağlı olarak aşağıdaki örnekte olduğu gibi bir katalog ve şema belirtebilirsiniz:
{
"id": "ec2a0ff4-d2a5-4c8c-bf1d-d9f12f10e749",
"name": "billing_pipeline",
"event_log": {
"catalog": "catalog_name",
"schema": "schema_name",
"name": "event_log_table_name"
}
}
Olay günlüğü konumu, işlem hattındaki tüm Otomatik Yükleyici sorguları için şema konumu olarak da hizmet eder. Databricks, ayrıcalıkları değiştirmeden önce olay günlüğü tablosu üzerinde bir görünüm oluşturmanızı önerir. Bazı işlem ayarları, olay günlüğü tablosu doğrudan paylaşılırsa kullanıcıların şema meta verilerine erişmesine izin verebilir. Aşağıdaki örnek söz dizimi, olay günlüğü tablosunda bir görünüm oluşturur ve bu makalede yer alan örnek olay günlüğü sorgularında kullanılır.
CREATE VIEW event_log_raw
AS SELECT * FROM catalog_name.schema_name.event_log_table_name;
İşlem hattı çalışması her örneğine güncelleştirmedenir. Genellikle en son güncelleştirmeye ilişkin bilgileri ayıklamak istersiniz. En son güncelleştirmenin tanımlayıcısını bulmak ve geçici latest_update
görünüme kaydetmek için aşağıdaki sorguyu çalıştırın. Bu görünüm, bu makalede yer alan örnek olay günlüğü sorgularında kullanılır:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;
Unity Kataloğu'nda görünümler akış sorgularını destekler. Aşağıdaki örnek, bir olay günlüğü tablosunun üzerinde tanımlanan bir görünümü sorgulamak için Yapılandırılmış Akış'ı kullanır:
df = spark.readStream.table("event_log_raw")
İşlem hattının sahibi, işlem hattı yapılandırmasının Gelişmiş bölümündeki Publish event log to metastore
seçeneğini değiştirerek olay günlüğünü genel Delta tablosu olarak yayımlayabilir. İsteğe bağlı olarak olay günlüğü için yeni bir tablo adı, katalog ve şema belirtebilirsiniz.
Olay günlüğü üzerinden sorgu köken bilgilerini alın
Köken hakkında bilgi içeren olaylar flow_definition
olay türüne sahiptir.
details:flow_definition
nesnesi output_dataset
içerir ve input_datasets
grafikteki her ilişkiyi tanımlar.
Köken bilgilerini görmek üzere giriş ve çıkış veri kümelerini ayıklamak için aşağıdaki sorguyu kullanabilirsiniz:
SELECT
details:flow_definition.output_dataset as output_dataset,
details:flow_definition.input_datasets as input_dataset
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_definition'
AND
origin.update_id = latest_update.id
output_dataset |
input_datasets |
---|---|
customers |
null |
sales_orders_raw |
null |
sales_orders_cleaned |
["customers", "sales_orders_raw"] |
sales_order_in_la |
["sales_orders_cleaned"] |
Olay günlüğünden veri kalitesini sorgulama
İşlem hattınızdaki veri kümeleriyle ilgili beklentileri tanımlarsanız, veri kalitesi ölçümleri details:flow_progress.data_quality.expectations
nesnesinde depolanır. Veri kalitesi hakkında bilgi içeren olaylar flow_progress
olay türüne sahiptir. Aşağıdaki örnek, son işlem hattı güncelleştirmesi için veri kalitesi ölçümlerini sorgular:
SELECT
row_expectations.dataset as dataset,
row_expectations.name as expectation,
SUM(row_expectations.passed_records) as passing_records,
SUM(row_expectations.failed_records) as failing_records
FROM
(
SELECT
explode(
from_json(
details :flow_progress :data_quality :expectations,
"array<struct<name: string, dataset: string, passed_records: int, failed_records: int>>"
)
) row_expectations
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_progress'
AND origin.update_id = latest_update.id
)
GROUP BY
row_expectations.dataset,
row_expectations.name
dataset |
expectation |
passing_records |
failing_records |
---|---|---|---|
sales_orders_cleaned |
valid_order_number |
4083 | 0 |
Olay günlüğünden Otomatik Yükleyici olaylarını sorgulayın
DLT, Otomatik Yükleyici dosyaları işlediğinde olaylar oluşturur. Otomatik Yükleyici olayları için event_type
operation_progress
ve details:operation_progress:type
AUTO_LOADER_LISTING
veya AUTO_LOADER_BACKFILL
.
details:operation_progress
nesnesi status
, duration_ms
, auto_loader_details:source_path
ve auto_loader_details:num_files_listed
alanlarını da içerir.
Aşağıdaki örnek, en son güncelleştirme için Otomatik Yükleyici olaylarını sorgular:
SELECT
timestamp,
details:operation_progress.status,
details:operation_progress.type,
details:operation_progress:auto_loader_details
FROM
event_log_raw,
latest_update
WHERE
event_type like 'operation_progress'
AND
origin.update_id = latest.update_id
AND
details:operation_progress.type in ('AUTO_LOADER_LISTING', 'AUTO_LOADER_BACKFILL')
Olay günlüğünü sorgulayarak veri birikimini izleyin
DLT, details:flow_progress.metrics.backlog_bytes
nesnesindeki birikmiş veri miktarını izler. Geribildirim ölçümlerini içeren olaylar, olay türü flow_progress
olanlardır. Aşağıdaki örnek, son işlem hattı güncelleştirmesi için kapsam ölçümlerini sorgular:
SELECT
timestamp,
Double(details :flow_progress.metrics.backlog_bytes) as backlog
FROM
event_log_raw,
latest_update
WHERE
event_type ='flow_progress'
AND
origin.update_id = latest_update.id
Not
gerçekleşmemiş işler ölçümleri, işlem hattının veri kaynağı türüne ve Databricks Çalışma Zamanı sürümüne bağlı olarak kullanılamayabilir.
Sunucusuz özelliği etkinleştirilmemiş iş hatları için olay günlüğünden geliştirilmiş otomatik ölçeklendirme etkinliklerini izleme
Sunucusuz işlem kullanmayan DLT işlem hatları için, işlem hatlarınızda gelişmiş otomatik ölçeklendirme etkinleştirildiğinde olay günlüğü kümeyi yeniden boyutlandırıyor. Gelişmiş otomatik ölçeklendirme hakkında bilgi içeren olayların olay türü autoscale
. Küme yeniden boyutlandırma isteği bilgileri details:autoscale
nesnesinde depolanır. Aşağıdaki örnek, son işlem hattı güncelleştirmesi için gelişmiş otomatik ölçeklendirme kümesi yeniden boyutlandırma isteklerini sorgular:
SELECT
timestamp,
Double(
case
when details :autoscale.status = 'RESIZING' then details :autoscale.requested_num_executors
else null
end
) as starting_num_executors,
Double(
case
when details :autoscale.status = 'SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as succeeded_num_executors,
Double(
case
when details :autoscale.status = 'PARTIALLY_SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as partially_succeeded_num_executors,
Double(
case
when details :autoscale.status = 'FAILED' then details :autoscale.requested_num_executors
else null
end
) as failed_num_executors
FROM
event_log_raw,
latest_update
WHERE
event_type = 'autoscale'
AND
origin.update_id = latest_update.id
İşlem kaynağı kullanımını izleme
cluster_resources
olayları kümedeki görev yuvası sayısı, bu görev yuvalarının ne kadarının kullanıldığı ve zamanlamayı bekleyen görev sayısıyla ilgili ölçümler sağlar.
İyileştirilmiş otomatik ölçeklendirme etkinleştirildiğinde, cluster_resources
olayları latest_requested_num_executors
ve optimal_num_executors
dahil olmak üzere otomatik ölçeklendirme algoritması için ölçümler de içerir. Olaylar ayrıca algoritmanın durumunu CLUSTER_AT_DESIRED_SIZE
, SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORS
ve BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATION
gibi farklı durumlar olarak gösterir.
Bu bilgiler, gelişmiş otomatik ölçeklendirmenin genel bir resmini sağlamak için otomatik ölçeklendirme olaylarıyla birlikte görüntülenebilir.
Aşağıdaki örnek, son işlem hattı güncelleştirmesi için görev kuyruğu boyut geçmişini sorgular:
SELECT
timestamp,
Double(details :cluster_resources.avg_num_queued_tasks) as queue_size
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Aşağıdaki örnek, son işlem hattı güncelleştirmesinin kullanım geçmişini sorgular:
SELECT
timestamp,
Double(details :cluster_resources.avg_task_slot_utilization) as utilization
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Aşağıdaki örnek, yalnızca en son istekte algoritma tarafından istenen yürütücü sayısı, algoritma tarafından en son ölçümlere göre önerilen en uygun yürütücü sayısı ve otomatik ölçeklendirme algoritması durumu gibi gelişmiş otomatik ölçeklendirme işlem hatlarında kullanılabilen ölçümlerle birlikte yürütücü sayısı geçmişini sorgular:
SELECT
timestamp,
Double(details :cluster_resources.num_executors) as current_executors,
Double(details :cluster_resources.latest_requested_num_executors) as latest_requested_num_executors,
Double(details :cluster_resources.optimal_num_executors) as optimal_num_executors,
details :cluster_resources.state as autoscaling_state
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
DLT işlem hatlarını denetleme
DLT'de verilerin nasıl güncelleştirilmekte olduğunu tam olarak görmek için DLT olay günlüğü kayıtlarını ve diğer Azure Databricks denetim günlüklerini kullanabilirsiniz.
DLT, güncelleştirmeleri çalıştırmak için işlem hattı sahibinin kimlik bilgilerini kullanır. İşlem hattı sahibini güncelleştirerek kullanılan kimlik bilgilerini değiştirebilirsiniz. DLT işlem hattı oluşturma, yapılandırma düzenlemeleri ve güncelleştirmeleri tetikleme gibi işlem hattındaki eylemler için kullanıcıyı kaydeder.
Unity Kataloğu denetim olayları için bir referans olarak Unity Kataloğu olaylarını görün.
Olay günlüğünde kullanıcı eylemlerini sorgulama
Olay günlüğünü kullanarak olayları, örneğin kullanıcı eylemlerini denetleyebilirsiniz. Kullanıcı eylemleri hakkında bilgi içeren olaylar user_action
olay türüne sahiptir.
Eylem hakkındaki bilgiler details
alanındaki user_action
nesnesinde depolanır. Kullanıcı olaylarının denetim günlüğünü oluşturmak için aşağıdaki sorguyu kullanın. Bu sorguda kullanılan event_log_raw
görünümünü oluşturmak için bkz: Olay günlüğünüsorgulama.
SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'
timestamp |
action |
user_name |
---|---|---|
2021-05-20T19:36:03.517+0000 | START |
user@company.com |
2021-05-20T19:35:59.913+0000 | CREATE |
user@company.com |
2021-05-27T00:35:51.971+0000 | START |
user@company.com |
Çalışma zamanı bilgileri
İşlem hattı güncelleştirmesi için çalışma zamanı bilgilerini, örneğin güncelleştirmenin Databricks Runtime sürümünü görüntüleyebilirsiniz:
SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'
dbr_version |
---|
11.0 |