Aracılığıyla paylaş


LIVE şeması (eski)

Bu makalede, LIVE sanal şemasının eski söz dizimine ve davranışına genel bir bakış sağlanır.

Sanal LIVE şema, Lakeflow Spark Bildirimli İşlem Hatlarının eski bir özelliğidir ve kullanım dışı olarak kabul edilir. Bu modla oluşturulan işlem hatları için eski yayımlama modunu ve LIVE sanal şemasını kullanmaya devam edebilirsiniz.

Databricks, tüm işlem hatlarının yeni yayımlama moduna geçirilmesini önerir. Geçiş için iki seçeneğiniz vardır:

Bu yöntemlerin her ikisi de tek yönlü geçişlerdir. Tabloları geri eski moda taşıyamazsınız.

Azure Databricks'in gelecekteki bir sürümünde eski LIVE sanal şeması ve eski yayımlama modu desteği kaldırılacaktır.

Uyarı

Eski yayımlama modu işlem hatları, Lakeflow Spark Bildirimli İşlem Hatları ayarları kullanıcı arabiriminin Özet alanında gösterilir. target alanı işlem hattının JSON belirtiminde ayarlandıysa, işlem hattının eski yayımlama modunu kullandığını da onaylayabilirsiniz.

Eski yayımlama moduyla yeni işlem hatları oluşturmak için işlem hattı yapılandırma kullanıcı arabirimini kullanamazsınız. Eski LIVE söz dizimini kullanarak yeni işlem hatlarını dağıtmanız gerekiyorsa Databricks hesap temsilcinize başvurun.

LIVE sanal şeması nedir?

Uyarı

LIVE Sanal şema artık Lakeflow Spark Bildirimli İşlem Hatları için varsayılan yayımlama modunda veri kümesi bağımlılığını analiz etmek için gerekli değildir.

Şema LIVE , Bir işlem hattında oluşturulan veya güncelleştirilen tüm veri kümeleri için sanal bir sınır tanımlayan Lakeflow Spark Bildirimli İşlem Hatları'nda bir programlama kavramıdır. Tasarım gereği, LIVE şeması yayımlanmış bir şemadaki veri kümelerine doğrudan bağlı değildir. Bunun yerine LIVE şeması, kullanıcı veri kümelerini şemaya yayımlamak istemese bile işlem hattındaki mantığın planlanmasını ve çalıştırılmasını sağlar.

Eski yayımlama modu işlem hatlarında, okuma işlemleri için geçerli işlem hattındaki diğer veri kümelerine başvurmak için LIVE anahtar sözcüğünü kullanabilirsiniz, örneğin SELECT * FROM LIVE.bronze_table. Yeni Lakeflow Spark Bildirimli İşlem Hatları için varsayılan yayınlama modunda, bu söz dizimi uyarı vermeden göz ardı edilir, yani vasıflandırılmamış tanımlayıcılar geçerli şemayı kullanır. Bkz. Hedef kataloğu ve şemayı ayarlama.

Pipeline'lar için eski yayımlama modu

Sanal LIVE şema, Lakeflow Spark Bildirimli İşlem Hatları için eski yayımlama moduyla birlikte kullanılır. 5 Şubat 2025'den önce oluşturulan tüm tablolar varsayılan olarak eski yayımlama modunu kullanır.

Aşağıdaki tabloda, eski yayımlama modunda bir işlem hattında oluşturulan veya güncelleştirilen tüm gerçekleştirilmiş görünümler ve akış tabloları için davranış açıklanmaktadır:

Depolama seçeneği Depolama konumu veya kataloğu Hedef şema Davranış
Hive metastore Belirtilmemiş Belirtilmemiş Veri kümesi meta verileri ve veriler, DBFS kök dizininde depolanır. Hive meta veri deposuna kayıtlı veritabanı nesnesi yok.
Hive metastore Bulut nesne depolaması için bir URI veya dosya yolu. Belirtilmemiş Veri seti meta verileri ve veriler belirtilen depolama konumunda saklanır. Hive meta veri deposuna kayıtlı veritabanı nesnesi yok.
Hive metastore Belirtilmemiş Hive meta veri deposunda var olan veya yeni bir şema. Veri kümesi meta verileri ve veriler, DBFS kök dizininde depolanır. İşlem hattındaki tüm gerçekleştirilmiş görünümler ve akış tabloları Hive meta veri deposunda belirtilen şemada yayımlanır.
Hive metastore Bulut nesne depolaması için bir URI veya dosya yolu. Hive meta veri deposunda var olan veya yeni bir şema. Veri seti meta verileri ve veriler belirtilen depolama konumunda saklanır. İşlem hattındaki tüm gerçekleştirilmiş görünümler ve akış tabloları Hive meta veri deposunda belirtilen şemada yayımlanır.
Unity Kataloğu Mevcut bir Unity Kataloğu. Belirtilmemiş Veri kümesi meta verileri ve verileri, hedef katalogla ilişkili varsayılan depolama konumunda depolanır. Unity Kataloğu'na kayıtlı veritabanı nesnesi yok.
Unity Kataloğu Mevcut bir Unity Kataloğu. Unity Kataloğu'nda var olan veya yeni bir şema. Veri kümesi meta verileri ve verileri, hedef şema veya katalogla ilişkili varsayılan depolama konumunda depolanır. İşlem hattındaki tüm gerçekleştirilmiş görünümler ve akış tabloları Unity Kataloğu'nda belirtilen şemada yayımlanır.

LIVE şemasından kaynak kodunu güncelleştirme

Yeni varsayılan yayımlama moduyla çalışacak şekilde yapılandırılmış işlem hatları, LIVE şema söz dizimini sessizce yoksayar. Varsayılan olarak, tüm tablo okumaları işlem hattı yapılandırmasında belirtilen kataloğu ve şemayı kullanır.

Eski LIVE sanal şema davranışı da okumaları işlem hattı yapılandırmasında belirtilen kataloğa ve şemaya yönlendirdiği için, mevcut işlem hatlarının çoğunda bu davranış değişikliğinin hiçbir etkisi yoktur.

Önemli

Varsayılan çalışma alanı kataloğunu ve şemasını kullanan eski kodların okunabilmesi için kod güncellemeleri gereklidir. Aşağıdaki malzeme edilmiş görünüm tanımını göz önünde bulundurun:

CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data

Eski yayımlama modunda, raw_data tablosundan nitelenmemiş bir okuma, çalışma alanı varsayılan kataloğunu ve şemasını (örneğin, main.default.raw_data) kullanır. Yeni varsayılan işlem hattı modunda, varsayılan olarak kullanılan katalog ve şema, işlem hattı yapılandırmasında yapılandırılanlardır. Bu kodun beklendiği gibi çalışmaya devam ettiğinden emin olmak için başvuruyu aşağıdaki örnekte olduğu gibi tablonun tam tanımlayıcısını kullanacak şekilde güncelleştirin:

CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data

Unity Kataloğu'nun eski yayımlama modu işlem hatları için olay günlüğü ile çalışmak

Önemli

event_log TVF, Unity Kataloğu'na tablo yayımlayan eski yayımlama modu işlem hatlarında kullanılabilir. Yeni işlem hatları için varsayılan davranış, olay günlüğünü işlem hattı için yapılandırılan hedef kataloğa ve şemaya yayımlar. Olay günlüğünü sorgulamak için 'e bakın.

Hive meta veri deposu ile yapılandırılan tabloların da farklı olay günlüğü desteği ve davranışı vardır. Bkz. Hive metastore işlem hatları için olay günlüğüyle çalışmak.

İşlem hattınız tabloları eski yayımlama moduyla Unity Kataloğu'na yayımlıyorsa, işlem hattının olay günlüğünü getirmek için event_logtablo değerli işlevi (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, 04c78631-3dd7-4856-b2a6-7d84e9b2638bkimliğine sahip işlem hattının olay günlüğü kayıtlarını almak için:

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

my_catalog.my_schema.table1tablosunu oluş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, bir SQL ambarı ile bağlantılı SQL düzenleyicisini kullanabilirsiniz.

İşlem hattının sahibi, işlem hattının olaylarını sorgulamayı basitleştirmek için event_log TVF üzerinden 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.

Uyarı

  • event_log TVF yalnızca işlem hattı sahibi tarafından çağrılabilir.
  • Birden çok işlem hattının olay günlüklerine erişmek için event_log tablo değerli işlevini bir işlem hattında veya sorguda kullanamazsınız.
  • event_log tablo değerli işlevi üzerinde oluşturulan bir görünümü diğer kullanıcılarla paylaşamazsınız.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

<pipeline-ID>'yi işlem hattının benzersiz tanımlayıcısıyla değiştirin. Kimliği Lakeflow Spark Bildirimli İşlem Hatları kullanıcı arabirimindeki İşlem hattı ayrıntıları panelinde bulabilirsiniz.

İşlem hattı çalıştırmasının her örneğine güncelleştirmeadı 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 latest_update_id 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;