Aracılığıyla paylaş


Azure Data Factory'de Veri yakalama kaynağını değiştirme sorunlarını giderme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, Azure Data Factory'de değişiklik verileri yakalama kaynağıyla ilgili sık karşılaşılan sorunları gidermeye yönelik öneriler sağlanmaktadır.

Sorun: SQL kaynağımda yerel CDC'yi etkinleştirme sorunu.

SQL'deki kaynaklar için iki tablo kümesi kullanılabilir: yerel SQL CDC etkinleştirilmiş tablolar ve zamana dayalı artımlı sütunlar içeren tablolar.

SQL veritabanınızdaki belirli bir kaynak tablo için yerel CDC'yi yapılandırmak için bu adımları izleyin.

Kimliği Birincil Anahtar olarak olan aşağıdaki tabloya sahip olduğunuzu düşünün. Şemada birincil anahtar varsa, supports_net_changes varsayılan olarak true olarak ayarlanır. Aksi takdirde, Sorgu 3'teki betiği kullanarak yapılandırın.

Sorgu 1


CREATE TABLE Persons (
	ID int,
	LastName varchar(255) NOT NULL,
	FirstName varchar(255),
	Age int,
	Last_login DATETIME,
    	PRIMARY KEY (ID));

Not

Şu anda ADF CDC kaynağı yalnızca ekleme, güncelleştirme ve silme işlemleri için net değişiklikleri yükler.

CDC'yi veritabanı düzeyinde etkinleştirmek için aşağıdaki sorguyu yürütebilirsiniz:

Sorgu 2

EXEC sys.sp_cdc_enable_db

CDC'yi tablo düzeyinde etkinleştirmek için aşağıdaki sorguyu yürütebilirsiniz:

Sorgu 3

EXEC sys.sp_cdc_enable_table  
	@source_schema = N'dbo'  
	, @source_name = N'Persons'  
	, @role_name = N'cdc_admin'  
	, @supports_net_changes = 1
        , @captured_column_list = N'ID';

Sorun: CDC kaynak yapılandırma işleminde tablolar seçilemez.

SQL kaynağınızda net_changed etkinleştirilmiş SQL Server CDC yoksa veya zaman tabanlı artımlı sütun yoksa, kaynağınızdaki tablolar seçim için kullanılamaz.

Sorun: Hata ayıklama kümesi sıcak havuzda kullanılamıyor.

Hata ayıklama kümesi sıcak havuzda kullanılamaz. 1+ dakika sırasıyla bir bekleme süresi olacaktır.

Sorun: Silme işlemlerini izlemede sorun.

Şu anda CDC kaynağı, aşağıdaki havuz türleri için silme işlemlerini destekler - Azure SQL Veritabanı & Delta. Bunu sütun eşleme sayfasında başarmak için, kaynaktaki bir satırın havuzdaki bir satırla eşleşip eşleşmediğini belirlemek için kullanılabilecek anahtarlar sütununu seçin. 

Sorun: Hedef SQL tablosunda kimlik sütunları olduğunda CDC kaynağım başarısız oluyor.

Hedef havuz tablonuzda kimlik sütunları olduğunda CDC çalıştırırken aşağıdaki hata alınıyor,

IDENTITY_INSERT KAPALI olarak ayarlandığında 'TableName' tablosuna kimlik sütunu için açık değer eklenemez.

SQL tabanlı hedefinizde kimlik sütunu olup olmadığını belirlemek için aşağıdaki sorguyu çalıştırın.

Sorgu 4

SELECT * 
FROM sys.identity_columns 
WHERE OBJECT_NAME(object_id) = 'TableName'

Bu kullanıcıyı çözmek için şu adımlardan birini izleyebilir:

  1. Veritabanı düzeyinde aşağıdaki sorguyu çalıştırarak IDENTITY_INSERT ON olarak ayarlayın ve CDC Eşleyicisi'ni yeniden çalıştırın

Sorgu 5

SET IDENTITY_INSERT dbo.TableName ON; 

(Veya)

  1. Kullanıcı, eklemeleri gerçekleştirirken belirli kimlik sütununu eşlemeden kaldırabilir.

Sorun: Şirket içinde barındırılan tümleştirme çalışma zamanını kullanma sorunu.

Şu anda CDC kaynağında şirket içinde barındırılan tümleştirme çalışma zamanı desteklenmez. Şirket içi bir kaynağa bağlanmaya çalışıyorsanız yönetilen sanal ağ ile Azure tümleştirme çalışma zamanını kullanın.