Aracılığıyla paylaş


Delta Live Tables veri hatlarını izleme

Bu makalede veri kökeni, güncelleştirme geçmişi ve veri kalitesi raporlama gibi Delta Live Tables işlem hatları için yerleşik izleme ve gözlemlenebilirlik özelliklerini nasıl kullanabileceğiniz açıklanmaktadır.

İşlem hattı ayrıntıları kullanıcı arabirimi aracılığıyla izleme verilerinin çoğunu el ile gözden geçirebilirsiniz. Bazı görevleri gerçekleştirmek, olay günlüğü meta verilerini sorgulayarak daha kolaydır. Bkz . Delta Live Tables olay günlüğü nedir?.

Kullanıcı arabiriminde hangi işlem hattı ayrıntıları kullanılabilir?

İşlem hattı grafı, bir işlem hattı güncelleştirmesinin başarıyla başlatılmasıyla birlikte görüntülenir. 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.

Görüntülenen ayrıntılar arasında işlem hattı kimliği, kaynak kitaplıkları, 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. Liste 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 Graf görünümünde görselleştirilemeyecek 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 Graf'a tıklayın.

Farklı çalıştır kullanıcısı işlem hattı sahibidir ve işlem hattı güncelleştirmeleri bu kullanıcının izinleriyle çalışır. Kullanıcıyı değiştirmek için İzinler'e run as tıklayın ve işlem hattı 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örüntüler. 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.

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ştirmeyi göster'e tıklayın.

İşlem hattı olayları için bildirim alma

İşlem hattı güncelleştirmesinin başarıyla tamamlanması veya işlem hattı güncelleştirmesinin başarısız olması gibi işlem hattı olaylarına yönelik gerçek zamanlı bildirimler almak için, bir işlem hattı oluştururken veya düzenlerken İşlem hattı olayları için e-posta bildirimleri ekleyin .

Delta Live Tables olay günlüğü nedir?

Delta Live Tabloları 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 takip etmek, anlamak ve izlemek için olay günlüğünü kullanabilirsiniz.

Delta Live Tabloları kullanıcı arabiriminde, Delta Live Tabloları API'sinde veya olay günlüğünü doğrudan sorgulayarak olay günlüğü girdilerini görüntüleyebilirsiniz. Bu bölüm, olay günlüğünü doğrudan sorgulamaya odaklanır.

Olaylar günlüğe kaydedilirken çalıştırılacak özel eylemler de tanımlayabilirsiniz; örneğin, olay kancalarıyla uyarı gönderme.

Olay günlüğü şeması

Aşağıdaki tabloda olay günlüğü şeması açıklanmaktadır. Bu alanlardan bazıları, alan gibi details 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şleci 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_idveya 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, ERRORveya METRICS.
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ü.
maturity_level Olay şemasının kararlılığı. Olası değerler:

- STABLE: Şema kararlıdır ve değişmez.
- NULL: Şema kararlıdır ve değişmez. Değer, kayıt alan eklenmeden maturity_level önce oluşturulduysa (NULLsürüm 2022.37) olabilir.
- EVOLVING: Şema kararlı değil ve değişebilir.
- DEPRECATED: Şema kullanım dışıdır ve Delta Live Tables çalışma zamanı bu olayı üretmeyi istediği zaman durdurabilir.

Olay günlüğünü sorgulama

Olay günlüğünün konumu ve olay günlüğünü sorgulama arabirimi, işlem hattınızın Hive meta veri deposunu veya Unity Kataloğu'nu kullanacak şekilde yapılandırılıp yapılandırılmadığına bağlıdır.

Hive meta veri deposu

İşlem hattınız Hive meta veri deposunda tablo yayımlıyorsa, olay günlüğü konumun storage altında depolanır/system/events. Örneğin, işlem hattı storage ayarınızı olarak /Users/username/datayapılandırdıysanız, olay günlüğü DBFS yolunda /Users/username/data/system/events depolanır.

Ayarı yapılandırmadıysanız storage , varsayılan olay günlüğü konumu DBFS'dedir /pipelines/<pipeline-id>/system/events . Örneğin, işlem hattınızın kimliği ise 91de5e48-35ed-11ec-8d3d-0242ac130003depolama konumu olur /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events.

Olay günlüğünü sorgulamayı basitleştirmek için bir görünüm oluşturabilirsiniz. Aşağıdaki örnek adlı event_log_rawgeçici bir görünüm oluşturur. Bu görünüm, bu makalede yer alan örnek olay günlüğü sorgularında kullanılır:

CREATE OR REPLACE TEMP VIEW event_log_raw AS SELECT * FROM delta.`<event-log-path>`;

değerini olay günlüğü konumuyla değiştirin <event-log-path> .

İşlem hattı çalıştırmasının her örneğine güncelleştirme adı verilir. 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 görünüme kaydetmek için aşağıdaki sorguyu latest_update_id ç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;

Azure Databricks not defterinde veya SQL düzenleyicisinde olay günlüğünü sorgulayabilirsiniz. Örnek olay günlüğü sorgularını çalıştırmak için bir not defteri veya SQL düzenleyicisi kullanın.

Unity Kataloğu

İşlem hattınız Unity Kataloğu'na tablo yayımlıyorsa, işlem hattının event_log olay günlüğünü getirmek için tablo değerli işlevini (TVF) kullanmanız gerekir. İşlem hattı kimliğini veya tablo adını TVF'ye geçirerek işlem hattının olay günlüğünü alırsınız. Örneğin, kimliğine 04c78631-3dd7-4856-b2a6-7d84e9b2638bsahip işlem hattının olay günlüğü kayıtlarını almak için:

SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")

tablosunu my_catalog.my_schema.table1oluşturan veya sahip olan işlem hattının olay günlüğü kayıtlarını almak için:

SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))

TVF'yi çağırmak için paylaşılan küme veya SQL ambarı kullanmanız gerekir. Örneğin, paylaşılan kümeye bağlı bir not defterini veya SQL ambarı ile bağlantılı SQL düzenleyicisini kullanabilirsiniz.

İşlem hattına yönelik olayları sorgulamayı basitleştirmek için işlem hattının sahibi TVF üzerinden event_log bir görünüm oluşturabilir. Aşağıdaki örnek, işlem hattı için olay günlüğü üzerinde bir görünüm oluşturur. Bu görünüm, bu makalede yer alan örnek olay günlüğü sorgularında kullanılır.

Not

event_log TVF yalnızca işlem hattı sahibi tarafından çağrılabilir ve TVF üzerinden event_log oluşturulan bir görünüm yalnızca işlem hattı sahibi tarafından sorgulanabilir. Görünüm diğer kullanıcılarla paylaşılamaz.

CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

değerini Delta Live Tables işlem hattının benzersiz tanımlayıcısıyla değiştirin <pipeline-ID> . Kimliği Delta Live Tables kullanıcı arabirimindeki İşlem hattı ayrıntıları panelinde bulabilirsiniz.

İşlem hattı çalıştırmasının her örneğine güncelleştirme adı verilir. 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 görünüme kaydetmek için aşağıdaki sorguyu latest_update_id ç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;

Olay günlüğünden köken bilgilerini sorgulama

Köken hakkında bilgi içeren olaylar olay türüne flow_definitionsahiptir. details:flow_definition nesnesi, grafikteki her ilişkiyi output_dataset ve input_datasets tanımlamasını içerir.

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 nesnesinde details:flow_progress.data_quality.expectations depolanır. Veri kalitesi hakkında bilgi içeren olaylar olay türüne flow_progresssahiptir. 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üğünü sorgulayarak veri kapsamlarını izleme

Delta Live Tables, nesnedeki kapsam details:flow_progress.metrics.backlog_bytes içinde ne kadar veri bulunduğunu izler. Kapsam ölçümlerini içeren olaylar olay türüne flow_progresssahiptir. 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

kapsam ölçümleri, işlem hattının veri kaynağı türüne ve Databricks Runtime sürümüne bağlı olarak kullanılamayabilir.

Olay günlüğünden Gelişmiş Otomatik Ölçeklendirme olaylarını izleme

İş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 olay türüne autoscalesahiptir. Küme yeniden boyutlandırma isteği bilgileri nesnesinde details:autoscale 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.

Gelişmiş Otomatik Ölçeklendirme etkinleştirildiğinde, cluster_resources olaylar otomatik ölçeklendirme algoritması için ve optimal_num_executorsgibi latest_requested_num_executorsölçümler de içerir. Olaylar ayrıca algoritmanın durumunu , SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORSve BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATIONgibi farklı durumlar olarak CLUSTER_AT_DESIRED_SIZEgösterir. Bu bilgiler, Gelişmiş Otomatik Ölçeklendirme'nin 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, en son istekte algoritma tarafından istenen yürütücü sayısı, algoritma tarafından en son ölçümlere göre önerilen en iyi yürütücü sayısı ve otomatik ölçeklendirme algoritması durumu dahil olmak üzere yalnızca 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

Delta Live Tables işlem hatlarını denetleme

Delta Live Tabloları olay günlüğü kayıtlarını ve diğer Azure Databricks denetim günlüklerini kullanarak Delta Live Tablolarında verilerin nasıl güncelleştirilmekte olduğunu tam olarak görebilirsiniz.

Delta Live Tabloları, 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. Delta Live Tabloları işlem hattı oluşturma, yapılandırma düzenlemeleri ve güncelleştirmeleri tetikleme gibi kullanıcının işlem hattındaki eylemlerini kaydeder.

Unity Kataloğu denetim olaylarının başvurusu için bkz. Unity Kataloğu olayları.

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 olay türüne user_actionsahiptir.

Eylem hakkındaki bilgiler alandaki nesnede details depolanıruser_action. Kullanıcı olaylarının denetim günlüğünü oluşturmak için aşağıdaki sorguyu kullanın. Bu sorguda kullanılan görünümü oluşturmak event_log_raw 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