Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Verilerin temizlenmesi ve doğrulanması, bir göl evindeki veri varlıklarının kalitesini sağlamak için gereklidir. Bu makalede, veri kalitesini kolaylaştırmak için tasarlanmış Azure Databricks ürün teklifleri ve özel kurallar uygulamak için iş mantığı tanımlamaya yönelik öneriler sağlanır.
Azure Databricks'te şema uygulaması
Delta Lake, yazmada şema ve kısıtlama denetimlerini zorunlu kılmak için semantik sağlar ve bu da göl evindeki tablolar için veri kalitesiyle ilgili garantiler sağlar.
Şema zorlaması, bir tabloya yazılan verilerin önceden tanımlanmış bir şemaya bağlı kalmasını sağlar. Şema doğrulama kuralları işleme göre farklılık gösterir. Şema uygulaması için bkz..
Delta, şema evrimi işlemek için şema değişiklikleri yapmak ve tabloları geliştirmek için mekanizmalar sağlar. Bırakılan alanları veya başarısız işlem hatlarını önlemek için şema evrimini ne zaman kullanacağınızı dikkatle göz önünde bulundurmanız önemlidir. Şemaları el ile veya otomatik olarak güncelleştirme hakkında ayrıntılı bilgi için bkz. Tablo şemasını güncelleştirme.
Tablo kısıtlamaları
Kısıtlamalar, bilgilendirme birincil anahtarı ve yabancı anahtar kısıtlamaları veya zorunlu kısıtlamalar biçiminde olabilir. Bakınız ADD CONSTRAINT maddesi.
Azure Databricks'teki tablo kısıtlamaları ya uygulanır ya da bilgilendirici niteliktedir.
Zorunlu kısıtlamalar NOT NULL ve CHECK kısıtlamalarını içerir.
Bilgilendirme kısıtlamaları birincil anahtar ve yabancı anahtar kısıtlamalarını içerir.
Bkz. Azure Databricks'te kısıtlamalar.
Null veya eksik değerleri işlemek
NOT NULL Delta tablolarında zorunlu kılınabilir. Var olan bir tabloda yalnızca sütunda var olan hiçbir kayıt null değilse etkinleştirilebilir ve null değerleri olan yeni kayıtların tabloya eklenmesini engeller.
Örüntü uygulama
Normal ifadeler (regex), bir veri alanında beklenen desenleri zorlamak için kullanılabilir. Bu özellikle belirli biçimlere veya desenlere uyması gereken metinsel verilerle ilgilenirken kullanışlıdır.
Regex kullanarak bir deseni uygulamak için SQL'de REGEXP veya RLIKE işlevlerini kullanabilirsiniz. Bu işlevler, bir veri alanını belirtilen bir regex desenine göre eşleştirmenize olanak sağlar.
SQL'de desen zorlaması için regex ile kısıtlamanın CHECK nasıl kullanılacağına ilişkin bir örnek aşağıda verilmişti:
CREATE TABLE table_name (
column_name STRING CHECK (column_name REGEXP '^[A-Za-z0-9]+$')
);
Değer uygulama
Kısıtlamalar, tablodaki sütunlarda değer aralıklarını zorunlu kılmak için kullanılabilir. Bu, yalnızca belirtilen aralıktaki geçerli değerlerin eklenmesine veya güncelleştirilmesini sağlar.
Değer aralığı kısıtlamasını zorlamak için SQL'de CHECK kısıtlamasını kullanabilirsiniz.
CHECK kısıtlaması, tablodaki her satır için doğru olması gereken bir koşul tanımlamanızı sağlar.
Aşağıda, sütunda değer aralığını zorlamak için kısıtlamanın CHECK nasıl kullanılacağına ilişkin bir örnek verilmişti:
CREATE TABLE table_name (
column_name INT CHECK (column_name >= 0 AND column_name <= 100)
);
Lakeflow Spark Bildirimli İşlem Hatlarını kullanarak beklentileri tanımlayın ve yapılandırın.
Lakeflow Spark Bildirimli İşlem Hatları, gerçekleştirilmiş görünümleri veya akış tablolarını bildirirken beklentileri tanımlamanıza olanak tanır. Beklentileri, ihlaller hakkında sizi uyarmak, ihlal eden kayıtları çıkarmak veya iş yüklerini ihlallere göre başarısız olacak şekilde yapılandırmayı seçebilirsiniz. bkz. İşlem hattı beklentileriyle veri kalitesini yönetme.
Veri izleme
Azure Databricks, hesabınızdaki tüm tablolardaki verilerin istatistiksel özelliklerini ve kalitesini izlemenize olanak tanıyan veri kalitesi izleme hizmetleri sağlar. Bkz. Veri profili oluşturma.
Veri türlerini atama
Bir tabloya veri eklerken veya güncelleştirirken, Azure Databricks veri türlerini bilgi kaybı olmadan güvenli bir şekilde gerçekleştirebildiği durumlarda dönüştürür.
Dönüştürme davranışları hakkında ayrıntılı bilgi için aşağıdaki makalelere bakın.
Özel iş mantığı
Hatalı kayıtları karantinaya alan ve aşağı akış tablolarına yayılmasını engelleyen özel mantık tanımlamak için filtreleri ve WHERE yan tümcelerini kullanabilirsiniz.
CASE WHEN ... OTHERWISE yan tümceleri, beklentileri ihlal eden kayıtlara tahmin edilebilir yollarla nazik bir şekilde iş mantığı uygulamak için koşullu mantık tanımlamanızı sağlar.
DECLARE current_time = now()
INSERT INTO silver_table
SELECT * FROM bronze_table
WHERE event_timestamp <= current_time AND quantity >= 0;
INSERT INTO quarantine_table
SELECT * FROM bronze_table
WHERE event_timestamp > current_time OR quantity < 0;
Not
Databricks, özellikle Yapılandırılmış Akış kullanırken filtrelenmiş verilerin her zaman ayrı bir yazma işlemi olarak işlenmesini önerir. Birden çok tabloya yazmak için .foreachBatch kullanmak tutarsız sonuçlara yol açabilir.
Örneğin, değerleri kodlama NULL özelliği olmayan bir yukarı akış sisteminiz olabilir ve bu nedenle yer tutucu değer -1 eksik verileri temsil etmek için kullanılır. Azure Databricks'teki tüm aşağı akış sorguları için -1 içeren kayıtları yoksaymak üzere özel bir mantık yazmak yerine, bu kayıtları dinamik olarak dönüştürmek için bir CASE WHEN ifadesi kullanabilirsiniz.
INSERT INTO silver_table
SELECT
* EXCEPT weight,
CASE
WHEN weight = -1 THEN NULL
ELSE weight
END AS weight
FROM bronze_table;