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.
SQL Server yardımcı program nesneleri betiği için bileşenler, parametreler ve sorun gidermeyi kapsayan başvuru malzemelerine erişim.
Genel Bakış
Sürüm tabanlı yardımcı araçlar saklı yordamları ve işlevlerini yükleyen betik, SQL Server veritabanınızı Lakeflow Connect'te alım için ayarlamanızı sağlar. Kurulum görevleri şunlardır:
- İzin yönetimi
- Değişiklik İzleme (CT) Kurulumu
- Veri yakalama (CDC) kurulumunu değiştirme
- Platform tespiti
- Şema değişikliği izleme için DDL destek nesnesi oluşturma
Sürüm bilgileri
- Güncel Sürüm: 1.7
- Ana Sürüm: 1
- Minör Versiyon: 7
- Sürüm İşlevi:
lakeflowUtilityVersion()
1.7 sürümünde ne yenilik var
Öne Çıkanlar
- Şema evriminde veri kaybı hatasını düzeltir. Önceki sürümlerde, önceden var olan (Lakeflow olmayan) yakalama örneğine sahip bir tabloya sütun eklemek yeni sütunu olarak
NULLalabilirdi. Bu durum düzeltilmiş ve birkaç ilgili şema evrim hatası (bkz. Hata düzeltmeleri). - DDL destek nesneleri artık değişiklik takibi için isteğe bağlı olarak sunulmuştur. DDL denetim tablosu ve tetikleyicisi artık otomatik şema evrimi için gerekli değildir ve varsayılan olarak kapalıdır.
@CreateDdlSupportingObjects = 1Sadece hâlâ istiyorsan takınlakeflowSetupChangeTracking. - Daha güvenilir şema evrimi. Kısıtlama değişiklikleri, kırılmaz olanlar, örneğin yabancı anahtarlar, gereksiz tam yenilemeleri tetiklememesi için sınıflandırılır.
Hata düzeltmeleri
- Dinamik veri maskeleme, büyük harf duyarlı veya ikili derlemeler ve önceden var olan bir yakalama örneği olduğunda yeniden başlatma döngüsü veya kesintili alım gibi birkaç
ADD COLUMNşema evrim hatasını düzeltti. - Varsayılan olmayan sunucu derleme ile veritabanlarında derleme çatışması hataları düzeltildi.
- Varsayılan
SETolmayan seçeneklerle bir oturumdan çalıştırıldığında başarısız olabilen DDL tetikleyicileri düzeltildi. - Ana veritabanından gerekli sunucu kapsamlı izinleri vermek için düzeltildi
lakeflowFixPermissions. - Kaldırma (
CLEANUPmod) düzeltildi, DDL tetikleyicileri engelleyebilecekALTER TABLEyetim kaldı ve bu tetikleyiciler .
Diğer değişiklikler
- Eklendi
@AllowDisablePreExistingCaptureInstanceslakeflowSetupChangeDataCapture. Lakeflow1Connect'in bir tablonun önceden var olan (Lakeflow olmayan) CDC yakalama örneğini devralıp yönetmesine izin verecek şekilde ayarlayın, yerinde bırakmak yerine.
Temel bileşenler
Functions
lakeflowDetectPlatform()
SQL Server platform türünü algılar.
Şunu döndürür: 'AZURE_SQL_DATABASE', 'AZURE_SQL_MANAGED_INSTANCE', 'AMAZON_RDS', 'ON_PREMISES', veya 'UNKNOWN'
lakeflowUtilityVersion()
Yardımcı program nesnelerinin sürümünü algılar.
Dönüşler: '1.7'
Saklanan prosedürler
lakeflowFixPermissions
Alma işlemleri için kullanıcılara gerekli izinleri verir.
Parametreler:
| Parametre | Description |
|---|---|
@User (NVARCHAR(128)) |
Gerekli. Yetki vermek için kullanıcı adı |
@Tables (NVARCHAR(MAX)) |
Optional. Tablo düzeyinde izin kapsamını denetler |
@Tables parametre seçenekleri:
| Seçenek | Description |
|---|---|
NULL |
Yalnızca sistem düzeyinde izinler verme (varsayılan) |
'ALL' |
Veritabanındaki tüm kullanıcı tablolarında izinler verme |
'SCHEMAS:Schema1,Schema2' |
Verilen şemalardaki tüm tablolara izin ver |
'Schema.Table1,Schema.Table2' |
Belirli tablolarda izin verme |
| Joker karakter desteği | Örnek: 'Sales.*,HR.Employees' |
Ne yapar:
- Gerekli sistem görünümlerinde (
SELECT,sys.objects,sys.tables,sys.columnsvb.) verir. - Sistem saklı yordamlarında (
EXECUTE,sp_tables,sp_columns_100) izin verir - İsteğe bağlı olarak parametresine göre kullanıcı tablolarında
SELECTverir@Tables - Platforma özgü farklılıkları işler (Azure SQL Veritabanı, Yönetilen Örnek, RDS, Şirket içi)
lakeflowSetupChangeTracking
Veritabanı ve tablo seviyelerinde değişiklik izlemeyi etkinleştirir, isteğe bağlı DDL desteği (isteğe bağlı).
Parametreler:
| Parametre | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Optional. CT'yi etkinleştirmek için tablolar |
@User (NVARCHAR(128)) |
Optional. Yetkilerin verileceği kullanıcı |
@Retention (NVARCHAR(50)) |
Optional. CT saklama süresi (varsayılan: '2 DAYS') |
@Mode (NVARCHAR(10)) |
Optional.
'INSTALL' (varsayılan) veya 'CLEANUP' |
@CreateDdlSupportingObjects (BİR) |
Optional. Varsayılan 0. DDL denetim tablosunu oluşturmak ve şema değişimi (DDL) takibi için tetikleyici oluşturmak için ayarlandı 1 . Kurulum doğrulaması, bu değerin boru hattı yapılandırmanıza uymasını bekler. Değerler eşleşmiyorsa, kurulum doğrulaması hata raporu verir. |
@Tables parametre seçenekleri:
| Seçenek | Description |
|---|---|
NULL |
Sadece veritabanı düzeyinde CT kur, tablo etkinleştirme yok (ayrıca DDL destek nesneleri oluşturuyor )@CreateDdlSupportingObjects = 1 |
'ALL' |
Birincil anahtarlarla tüm kullanıcı tablolarında CT'yi etkinleştirme |
'SCHEMAS:Schema1,Schema2' |
Belirtilen şemalardaki tablolarda CT'yi etkinleştirme |
'Schema.Table1,Schema.Table2' |
Belirli tablolarda CT'yi etkinleştirme |
| Joker karakter desteği | Örnek: 'Sales.*,HR.Employees' |
Ne yapar:
- Henüz etkinleştirilmemişse veritabanı düzeyinde değişiklik izlemeyi etkinleştirir
- Ne
@CreateDdlSupportingObjects = 1zaman , versiyonlu bir DDL denetim tablosu (lakeflowDdlAudit_1_7) oluşturur ve şema değişikliklerini yakalamak için bir tetikleyici oluşturur - Belirtilen tablolarda CT'ye olanak tanır (birincil anahtar içermeyen tabloları atlar)
- Belirtilen kullanıcıya
VIEW CHANGE TRACKINGizinler verir. -
CLEANUPmodu: DDL destek nesnelerini kaldırır
Önemli davranışlar:
- Birincil anahtar içermeyen tabloları otomatik olarak atlar (bunlar için CDC önerilir)
- Akıllı bulma
'ALL'parametresiyle - Idempotent: Birden çok kez çalıştırmak güvenlidir
lakeflowSetupChangeDataCapture
DDL desteği ve yakalama örneği yönetimi ile veritabanı ve tablo düzeylerinde CDC'yi etkinleştirir.
Parametreler:
| Parametre | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Optional. CDC'yi etkinleştirmek için tablolar |
@User (NVARCHAR(128)) |
Optional. Yetkilerin verileceği kullanıcı |
@Mode (NVARCHAR(10)) |
Optional.
'INSTALL' (varsayılan) veya 'CLEANUP' |
@AllowDisablePreExistingCaptureInstances (BİR) |
Optional.
0 (varsayılan) şema değişikliği işleme sırasında önceden var, Lakeflow olmayan yakalama örneklerini dokunulmadan bırakır. Lakeflow Connect'in önceden var olan yakalama örneklerini sahiplenip devre dışı bırakmasına izin verecek şekilde ayarlandı 1 . |
@Tables parametre seçenekleri:
| Seçenek | Description |
|---|---|
NULL |
Yalnızca veritabanı düzeyinde CDC ve DDL desteğini ayarlama |
'ALL' |
Tüm kullanıcı tablolarında CDC'yi etkinleştirme |
'SCHEMAS:Schema1,Schema2' |
Belirtilen şemalardaki tablolarda CDC'yi etkinleştirme |
'Schema.Table1,Schema.Table2' |
Belirli tablolarda CDC'yi etkinleştirme |
Ne yapar:
- Henüz etkinleştirilmemişse, CDC'yi veritabanı düzeyinde etkinleştirir
- Yakalama örneği izleme tablosu oluşturur (
lakeflowCaptureInstanceInfo_1_7) - Yakalama örneği yönetimi için yardımcı yordamlar oluşturur:
lakeflowDisableOldCaptureInstance_1_7lakeflowMergeCaptureInstances_1_7lakeflowRefreshCaptureInstance_1_7
- Otomatik şema değişikliği işleme için tetikleyici
ALTER TABLEoluşturur - Belirtilen tablolarda CDC'yi etkinleştirir
- Belirtilen kullanıcıya gerekli CDC izinlerini verir
-
CLEANUPmodu: Tüm CDC DDL destek nesnelerini kaldırır
Önemli davranışlar:
- Birincil anahtarı olan veya olmayan tablolarla çalışır
- Şema değişikliklerinde yakalama örneği rotasyonunu otomatik olarak yönetir
- Idempotent: Birden çok kez çalıştırmak güvenlidir
Platform desteği
- Şirket içi SQL Server (EngineEdition 1-4)
- Azure SQL Veritabanı (EngineEdition 5)
- Azure SQL Yönetilen Örnek ("EngineEdition 8")
- SQL Server için Amazon RDS (sunucu adı deseni tarafından algılandı)
Önkoşullar
- Betiği yürüten kullanıcının
db_ownerrolüne üye olması gerekir - CT kurulumu için: Değişim takibi platformda mevcut olmalıdır
- CDC kurulumu için: Değişiklik verisi kaydı platformda mevcut olmalıdır.
Yükleme yönergeleri
Betiği indirme ve çalıştırma
Betiğin en son sürümünü indirin:
Betiği Çalıştırın:
- İndirilen betiği SQL Server Management Studio (SSMS), Azure Data Studio veya tercih ettiğiniz SQL istemcisinde açın.
- SQL Server örneğine bağlanın.
- Yardımcı program nesnelerini yüklemek istediğiniz hedef veritabanına bağlandığınızdan emin olun.
- Scripti çalıştırın.
Yüklemeyi doğrulayın:
-- Verify installation SELECT dbo.lakeflowUtilityVersion() AS UtilityVersion; SELECT dbo.lakeflowDetectPlatform() AS Platform;
Alternatif: Komut satırını kullanarak çalıştırma
Eğer sqlcmd kullanmayı tercih ediyorsanız:
sqlcmd -S YourServerName -d YourDatabase -E -i utility_script.sql
Uyarı
Yerine YourServerName ve YourDatabase değerlerini gerçek sunucu ve veritabanı adlarınızla değiştirin. Windows kimlik doğrulaması kullanmıyorsanız yerine -U username -P password kullanın-E.
Örnek: İzinleri düzeltme (yalnızca sistem)
-- Grant system permissions only
EXEC dbo.lakeflowFixPermissions
@User = 'myuser';
Örnek: İzinleri düzeltme (tablo erişimiyle)
-- Grant system permissions plus access to all tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'ALL';
-- Grant permissions for specific schemas
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'SCHEMAS:Sales,HR,Production';
-- Grant permissions for specific tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'Sales.Orders,HR.Employees';
Örnekler: Değişiklik takibi kurulumu
Yalnızca veritabanı düzeyinde
-- Setup CT infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = NULL,
@User = 'myuser';
Tüm tablolarda etkinleştir
-- Enable CT on all user tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
Şema tabanlı kurulum
-- Enable CT on all tables in specific schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'myuser',
@Retention = '3 DAYS';
Belirli tablolar
-- Enable CT on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'dbo.Table1,Sales.Orders,HR.Employees',
@User = 'myuser';
DDL destek nesneleri oluştur
-- Enable CT and create the DDL audit table and trigger for schema-change capture
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser',
@CreateDdlSupportingObjects = 1;
Örnekler: CDC kurulumu
Yalnızca veritabanı düzeyinde
-- Setup CDC infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = NULL,
@User = 'myuser';
Tüm tablolarda etkinleştir
-- Enable CDC on all user tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Belirli tablolar
-- Enable CDC on specific tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'dbo.Table1,Sales.Orders',
@User = 'myuser';
Önceden var olan yakalama örneklerinin sahipliğini ele alın
-- Allow Lakeflow to disable pre-existing (non-Lakeflow) capture instances
-- during schema change handling
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser',
@AllowDisablePreExistingCaptureInstances = 1;
Örnek: Karma yaklaşım
-- Step 1: Enable CT on tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
-- Step 2: Enable CDC on remaining tables (without primary keys)
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Örnek: Temizleme
-- Remove CT DDL support objects
EXEC dbo.lakeflowSetupChangeTracking
@Mode = 'CLEANUP';
-- Remove CDC DDL support objects
EXEC dbo.lakeflowSetupChangeDataCapture
@Mode = 'CLEANUP';
DDL destek nesneleri oluşturuldu
Değişiklik izleme veya CDC kullanmanıza bağlı olarak aşağıdaki DDL destek nesneleri oluşturulur.
Değişiklik izleme için
| Nesne türü | İsim | Description |
|---|---|---|
| Tablo | lakeflowDdlAudit_1_7 |
DDL değişiklik geçmişini depolar |
| Tetikleyici | lakeflowDdlAuditTrigger_1_7 |
Olayları yakalar ALTER TABLE |
CDC için
| Nesne türü | İsim | Description |
|---|---|---|
| Tablo | lakeflowCaptureInstanceInfo_1_7 |
Yakalamaları izler |
| Procedure | lakeflowDisableOldCaptureInstance_1_7 |
Eski yakalama örneğini kaldırır |
| Procedure | lakeflowMergeCaptureInstances_1_7 |
Örnekler arasındaki verileri birleştirir |
| Procedure | lakeflowRefreshCaptureInstance_1_7 |
Yeni yakalama örneği oluşturur |
| Tetikleyici | lakeflowAlterTableTrigger_1_7 |
Şema değişikliklerini işler |
Değişiklik izleme sınırlamaları
- Birincil anahtarlar gerektirir: Birincil anahtar içermeyen tablolar değişiklik izlemeyi kullanamaz.
- Betik, PK'ları olmayan tabloları otomatik olarak atlar ve bunun yerine CDC kullanılmasını önerir.
Platforma özgü davranış
- Azure SQL Veritabanı: Sistem saklı yordamlarına varsayılan olarak erişilebilir (
EXECUTEizin gerekmez). - Sunucu kapsamlı görünümler:
sys.change_tracking_databasesgibi görünümler için Azure SQL Veritabanı'nda sınırlı erişim.
Yükseltme süreci
Yükseltme için, utility object script'i tekrar çalıştırın, ardından kurulum prosedürlerini tekrar çalıştırın. Script, yardımcı işlevleri yeniden oluşturur ve önceki sürümlerden sadece eski replicant-prefix nesneleri kaldırır. Mevcut Lakeflow DDL destek nesnelerinizi yerinde bırakıyor, böylece mevcut DDL tetikleyicisi, kurulum prosedürlerini yeniden çalıştırana kadar şema değişikliklerini yakalamaya devam ediyor. Talimatlar için bkz. Adım 1: Yardımcı nesneleri kurulum veya yükseltme.
Yükseltme sırasında ne olur:
- Script tarafından tanımlanan yardımcı fonksiyonlar ve kurulum prosedürleri bırakılır ve yeniden oluşturulur.
- Önceki sürümlerden eski
replicant-prefik nesneler kaldırılmıştır. - Mevcut Lakeflow DDL destek nesneleri (
lakeflowDdlAudit_*,lakeflowDdlAuditTrigger_*,lakeflowCaptureInstanceInfo_*, ve ilgili prosedürler ile tetikleyiciler) yerinde bırakılır. Kurulum prosedürlerini yeniden çalıştırmak onları yeni sürüme geçirir. Yakalama örneği nesneleri, tekrar çalıştırdığınızdalakeflowSetupChangeDataCapturehareket eder. DDL denetim tablosu ve tetikleyici sadece tekrar çalıştırdığınızdalakeflowSetupChangeTracking@CreateDdlSupportingObjects = 1hareket eder çünkü bunlar isteğe bağlıdır. - Değişiklik izleme ve CDC tablolarınızda etkin kalır. Yükseltme bunları devre dışı bırakmaz.
- CDC yakalama örnekleri yükseltme betiğinden etkilenmez.
Yükseltme betiğini çalıştırdıktan sonra, yeni sürüm için DDL destek nesnelerini yeniden oluşturmak için kurulum yordamlarını yeniden çalıştırın:
-
lakeflowSetupChangeTracking: ile@CreateDdlSupportingObjects = 1, DDL denetim tablosunu taşır ve tetikleyici ile ileriye doğrulakeflowDdlAudit_1_7. Kurulumunuz DDL şema değişimi yakalama kullanıyorsa (birlakeflowDdlAudittablosu var) veya nesneler eski sürümde kalıyorsa bu bayrağı geçirin. -
lakeflowSetupChangeDataCapture: ile ilgili yordamlarılakeflowCaptureInstanceInfo_1_7ve tetikleyicileri yeniden oluşturur.
Her iki yordam da bir kez etkilidir ve özgün kurulum parametreleriyle yeniden çalıştırılması güvenlidir.
Uyarı
Utility object script'in önceki sürümüne dönmek için Databricks Destek ile iletişime geçin.
Sürüm oluşturma düzeni: objectName_majorVersion_minorVersion. Geçerli nesneler son eki _1_7 kullanır.
En iyi yöntemler
- Her zaman
db_ownerveya eşdeğer ayrıcalıklara sahip bir kullanıcı olarak çalıştırın. - Önce üretim dışı veritabanlarında test edin.
- Kapsamlı kapsam için karma yaklaşımı kullanın.
- Düzgün kullanıcı erişimi sağlamak için kurulumdan sonra komutunu çalıştırın
lakeflowFixPermissions. - Alma sıklığınıza göre saklama sürelerini göz önünde bulundurun.
Sorun giderme
"Bu betiği yürüten kullanıcı 'db_owner' rol üyesi değil"
Çözüm: db_owner rolüne sahip bir kullanıcı olarak çalıştır
"Değişiklik izleme katalogda etkin değil"
Çözüm: CT'yi veritabanı düzeyinde etkinleştirin veya yordamın otomatik olarak işlemesine izin verin
"Değişiklik veri yakalaması katalogda etkin değil"
Çözüm: CDC'yi veritabanı düzeyinde etkinleştirin veya yordamın bunu otomatik olarak işlemesine izin verin
Eksik birincil anahtarlar nedeniyle tablolar atlandı
Çözüm: Bunun yerine bu tablolar için kullanın lakeflowSetupChangeDataCapture
Doğrulama entegrasyonu
Aşağıdaki yardımcı program nesneleri Java doğrulama çerçevesi tarafından doğrulanır:
| Nesne | Description |
|---|---|
SqlServerUtilityObjectsSetupValidator |
Yardımcı program nesnelerinin yüklenmesini doğrular |
SqlServerChangeDataManagementSetupValidator |
CT/CDC kurulumunu doğrular |
SqlServerDdlSupportObjectsSetupValidator |
DDL destek nesnelerini doğrular |
SqlServerPermissionsSetupValidator |
İzinleri doğrular |
Geçiş notları
Önceki DDL sürümlerinden (yardımcı program nesnelerinin başlangıcı öncesi dönemi) yükseltme yapıyorsanız:
- Komut dosyası, eski nesneleri otomatik olarak temizler.
- El ile temizleme gerekmez.
- Sürüm 1.1 tüm işlevleri birleşik yordamlarda birleştirir.
Ek kaynaklar
- Yardımcı program nesneleri betiğini kullanarak SQL Server'ı veri alımına hazırlayın
- Microsoft SQL Server'ı Azure Databricks'e alım için yapılandırma
- Microsoft SQL Server veritabanı kullanıcı gereksinimleri
- SQL Server belgelerinde veri değişikliklerini izleme ( SQL Server)
- SQL Server belgelerinde Değişiklik İzleme (SQL Server) hakkında
- Veri değişiklik yakalama (CDC) nedir? SQL Server belgelerinde