Aracılığıyla paylaş


Kopyalama etkinliğinde veri tutarlılığı doğrulaması

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!

Verileri kaynaktan hedef depoya taşıdığınızda, kopyalama etkinliği verilerin yalnızca kaynaktan hedef depoya başarıyla kopyalanmadığından, aynı zamanda kaynak ve hedef depo arasında tutarlı olduğu doğrulandığından emin olmak için daha fazla veri tutarlılığı doğrulaması yapmanız için bir seçenek sağlar. Veri taşıma sırasında tutarsız dosyalar bulunduktan sonra kopyalama etkinliğini durdurabilir veya tutarsız dosyaları atlamak için hataya dayanıklılık ayarını etkinleştirerek geri kalanını kopyalamaya devam edebilirsiniz. Kopyalama etkinliğinde oturum günlüğü ayarını etkinleştirerek atlanan dosya adlarını alabilirsiniz. Daha fazla ayrıntı için kopyalama etkinliğindeki oturum günlüğüne başvurabilirsiniz.

Desteklenen veri depoları ve senaryolar

  • Veri tutarlılığı doğrulaması FTP, SFTP, HTTP, Snowflake, Office 365 ve Azure Databricks Delta Lake dışındaki tüm bağlayıcılar tarafından desteklenir.
  • Hazırlama kopyalama senaryosunda veri tutarlılığı doğrulaması desteklenmez.
  • İkili dosyaları kopyalarken veri tutarlılığı doğrulaması yalnızca kopyalama etkinliğinde 'PreserveHierarchy' davranışı ayarlandığında kullanılabilir.
  • Veri tutarlılığı doğrulaması etkinken tek kopya etkinliğinde birden çok ikili dosyayı kopyalarken, tutarsız dosyaları atlamak için hataya dayanıklılık ayarını etkinleştirerek kopyalama etkinliğini durdurma veya geri kalan dosyaları kopyalamaya devam etme seçeneğiniz vardır.
  • Veri tutarlılığı doğrulaması etkinken tek kopya etkinliğinde bir tablo kopyalanırken, kaynaktan okunan satır sayısı hedefe kopyalanan satır sayısından ve atlanan uyumsuz satır sayısından farklıysa kopyalama etkinliği başarısız olur.

Yapılandırma

Aşağıdaki örnek, Kopyalama Etkinliği'nde veri tutarlılığı doğrulamasını etkinleştirmek için bir JSON tanımı sağlar:

{
  "name":"CopyActivityDataConsistency",
  "type":"Copy",
  "typeProperties": { 
    "source": { 
        "type": "BinarySource", 
        "storeSettings": { 
            "type": "AzureDataLakeStoreReadSettings", 
            "recursive": true 
        } 
    }, 
    "sink": { 
        "type": "BinarySink", 
        "storeSettings": { 
            "type": "AzureDataLakeStoreWriteSettings" 
        } 
    }, 
    "validateDataConsistency": true, 
    "skipErrorFile": { 
        "dataInconsistency": true 
    }, 
    "logSettings": {
        "enableCopyActivityLog": true,
        "copyActivityLogSettings": {
            "logLevel": "Warning",
            "enableReliableLogging": false
        },
        "logLocationSettings": {
            "linkedServiceName": {
               "referenceName": "ADLSGen2",
               "type": "LinkedServiceReference"
            },
            "path": "sessionlog/"
        }
    }
} 
Özellik Açıklama İzin verilen değerler Zorunlu
validateDataConsistency Bu özellik için true değerini ayarlarsanız, ikili dosyaları kopyalarken kopyalama etkinliği kaynaktan hedef depoya kopyalanan her ikili dosyanın dosya boyutunu, lastModifiedDate ve MD5 sağlama toplamını denetleyecek ve kaynak ile hedef depo arasındaki veri tutarlılığını güvence altına alacaktır. Tablosal verileri kopyalarken kopyalama etkinliği, iş tamamlandıktan sonra toplam satır sayısını denetler ve kaynaktan okunan toplam satır sayısının hedefe kopyalanan satır sayısıyla ve atlanan uyumsuz satır sayısıyla aynı olduğundan emin olur. Bu seçenek etkinleştirildiğinde kopyalama performansının etkilendiğini unutmayın. True
False (varsayılan)
Hayır
dataInconsistency Tutarsız dosyaları atlamak isteyip istemediğinizi belirlemek için skipErrorFile özellik paketi içindeki anahtar-değer çiftlerinden biri.
-True: Tutarsız dosyaları atlayarak geri kalanını kopyalamak istiyorsunuz.
- Yanlış: Tutarsız dosya bulunduktan sonra kopyalama etkinliğini durdurmak istiyorsunuz.
Bu özelliğin yalnızca ikili dosyaları kopyaladığınızda ve validateDataConsistency değerini True olarak ayarladığınızda geçerli olduğunu unutmayın.
True
False (varsayılan)
Hayır
logSettings Oturum günlüğünün atlanan dosyaları günlüğe kaydetmesini sağlamak için belirtilebilen bir özellik grubu. Hayır
linkedServiceName Oturum günlüğü dosyalarını depolamak için Azure Blob Depolama veya Azure Data Lake Storage 2. Nesil bağlı hizmeti. Günlük dosyalarını depolamak için kullandığınız örneğe başvuran veya AzureBlobFS türü bağlı hizmetin adlarıAzureBlobStorage. Hayır
yol Günlük dosyalarının yolu. Günlük dosyalarını depolamak istediğiniz yolu belirtin. Yol sağlamazsanız, hizmet sizin için bir kapsayıcı oluşturur. Hayır

Not

  • İkili dosyaları Azure Blob veya Azure Data Lake Storage 2. Nesil'dan veya Azure Blob'a kopyalarken hizmet, Azure Blob API'sinden ve Azure Data Lake Storage 2. Nesil API'sinden yararlanarak düzey MD5 sağlama toplamı doğrulamasını engeller. Dosyalardaki ContentMD5 Azure Blob'da varsa veya veri kaynağı olarak Azure Data Lake Storage 2. Nesil, hizmet dosyaları okuduktan sonra dosya düzeyinde MD5 sağlama toplamı doğrulaması yapar. Dosyaları Azure Blob'a kopyaladıktan veya veri hedefi olarak Azure Data Lake Storage 2. Nesil, hizmet ContentMD5'i Azure Blob'a veya veri tutarlılığı doğrulaması için aşağı akış uygulamaları tarafından daha fazla gerçekleştirilen Azure Data Lake Storage 2. Nesil yazar.
  • Hizmet, herhangi bir depolama deposu arasında ikili dosyaları kopyalarken dosya boyutu doğrulaması yapar.

İzleme

Kopyalama etkinliğinden çıktı

Kopyalama etkinliği tamamen çalıştırıldıktan sonra, her kopyalama etkinliği çalıştırmasının çıkışından veri tutarlılığı doğrulamasının sonucunu görebilirsiniz:

"output": {
            "dataRead": 695,
            "dataWritten": 186,
            "filesRead": 3,  
            "filesWritten": 1, 
            "filesSkipped": 2, 
            "throughput": 297,
            "logFilePath": "myfolder/a84bf8d4-233f-4216-8cb5-45962831cd1b/",
            "dataConsistencyVerification": 
           { 
                "VerificationResult": "Verified", 
                "InconsistentData": "Skipped" 
           } 
        }

Veri tutarlılığı doğrulamasının ayrıntılarını "dataConsistencyVerification özelliği" bölümünden görebilirsiniz.

VerificationResult değeri:

  • Doğrulandı: Kopyalanan verilerinizin kaynak ve hedef depo arasında tutarlı olduğu doğrulandı.
  • NotVerified: Kopyalama etkinliğinde validateDataConsistency özelliğini etkinleştirmediğiniz için kopyaladığınız verilerin tutarlı olduğu doğrulanmadı.
  • Desteklenmeyen: Bu kopya çifti için veri tutarlılığı doğrulaması desteklenmediğinden kopyaladığınız verilerin tutarlı olduğu doğrulanmadı.

InconsistentData değeri:

  • Bulundu: Kopyalama etkinliği tutarsız veriler buldu.
  • Atlandı: Kopyalama etkinliği tutarsız verileri buldu ve atladı.
  • Hiçbiri: Kopyalama etkinliği tutarsız veri bulamadı. Bunun nedeni, verilerinizin kaynak ve hedef depo arasında tutarlı olduğu doğrulanmış olması veya kopyalama etkinliğinde validateDataConsistency'i devre dışı bırakmış olmanız olabilir.

Kopyalama etkinliğinden oturum günlüğü

Tutarsız dosyayı günlüğe kaydedecek şekilde yapılandırıyorsanız, günlük dosyasını şu yoldan bulabilirsiniz: https://[your-blob-account].blob.core.windows.net/[path-if-configured]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].csv. Günlük dosyaları csv dosyalarıdır.

Günlük dosyasının şeması aşağıdaki gibidir:

Sütun Açıklama
Zaman damgası Hizmetin tutarsız dosyaları atladığında zaman damgası.
Level Bu öğenin günlük düzeyi. Dosya atlayan öğe için 'Uyarı' düzeyindedir.
OperationName Her dosyadaki kopyalama etkinliği işlem davranışı. Atlanacak dosyayı belirtmek için 'FileSkip' olur.
OperationItem Atlanacak dosya adı.
İleti Dosyaların neden atlandığını göstermek için daha fazla bilgi.

Günlük dosyası örneği aşağıdaki gibidir:

Timestamp, Level, OperationName, OperationItem, Message
2020-02-26 06:22:56.3190846, Warning, FileSkip, "sample1.csv", "File is skipped after read 548000000 bytes: ErrorCode=DataConsistencySourceDataChanged,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Source file 'sample1.csv' is changed by other clients during the copy activity run.,Source=,'." 

Yukarıdaki günlük dosyasından kaynak ve hedef depo arasında tutarlı olduğu doğrulanamadığından sample1.csv atlandığını görebilirsiniz. Kopyalama etkinliği aynı anda kopyalanırken sample1.csv neden diğer uygulamalar tarafından değiştirildiği için tutarsız hale geldiği hakkında daha fazla bilgi edinebilirsiniz.

Diğer Kopyalama Etkinliği makalelerine bakın: