Weryfikacja spójności danych w działaniu kopiowania

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Podczas przenoszenia danych ze źródłowego do magazynu docelowego działanie kopiowania umożliwia przeprowadzenie dalszej weryfikacji spójności danych, aby upewnić się, że dane nie tylko zostały pomyślnie skopiowane ze źródła do magazynu docelowego, ale także zweryfikowane, aby były spójne między magazynem źródłowym i docelowym. Po znalezieniu niespójnych plików podczas przenoszenia danych można przerwać działanie kopiowania lub kontynuować kopiowanie reszty, włączając ustawienie odporności na uszkodzenia, aby pominąć niespójne pliki. Nazwy pominiętych plików można uzyskać, włączając ustawienie dziennika sesji w działaniu kopiowania. Więcej szczegółów można znaleźć w działaniu kopiowania w dzienniku sesji.

Obsługiwane magazyny danych i scenariusze

  • Weryfikacja spójności danych jest obsługiwana przez wszystkie łączniki z wyjątkiem ftp, SFTP, HTTP, Snowflake, Office 365 i Azure Databricks Delta Lake.
  • Weryfikacja spójności danych nie jest obsługiwana w scenariuszu przejściowym kopiowania.
  • Podczas kopiowania plików binarnych weryfikacja spójności danych jest dostępna tylko wtedy, gdy zachowanie "PreserveHierarchy" jest ustawione w działaniu kopiowania.
  • Podczas kopiowania wielu plików binarnych w jednym działaniu kopiowania z włączoną weryfikacją spójności danych możesz przerwać działanie kopiowania lub kontynuować kopiowanie reszty, włączając ustawienie odporności na uszkodzenia, aby pominąć niespójne pliki.
  • Podczas kopiowania tabeli w działaniu pojedynczej kopii z włączoną weryfikacją spójności danych działanie kopiowania kończy się niepowodzeniem, jeśli liczba wierszy odczytanych ze źródła różni się od liczby wierszy skopiowanych do miejsca docelowego oraz liczby niezgodnych wierszy, które zostały pominięte.

Konfigurowanie

W poniższym przykładzie przedstawiono definicję JSON umożliwiającą weryfikację spójności danych w działaniu kopiowania:

{
  "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/"
        }
    }
} 
Właściwości opis Dozwolone wartości Wymagania
validateDataConsistency Jeśli dla tej właściwości ustawiono wartość true, podczas kopiowania plików binarnych działanie kopiowania sprawdzi rozmiar pliku, właściwość lastModifiedDate i sumę kontrolną MD5 dla każdego pliku binarnego skopiowanego ze źródła do magazynu docelowego, aby zapewnić spójność danych między magazynem źródłowym i docelowym. Podczas kopiowania danych tabelarycznych działanie kopiowania sprawdzi łączną liczbę wierszy po zakończeniu zadania, zapewniając, że łączna liczba wierszy odczytanych ze źródła jest taka sama jak liczba wierszy skopiowanych do miejsca docelowego oraz liczba pominiętych wierszy niezgodnych. Należy pamiętać, że wydajność kopiowania ma wpływ na włączenie tej opcji. Prawda
False (domyślnie)
Nie.
dataInconsistency Jedna z par klucz-wartość w worku właściwości skipErrorFile, aby określić, czy chcesz pominąć niespójne pliki.
-True: chcesz skopiować resztę, pomijając niespójne pliki.
- Fałsz: chcesz przerwać działanie kopiowania po znalezieniu niespójnego pliku.
Należy pamiętać, że ta właściwość jest prawidłowa tylko w przypadku kopiowania plików binarnych i ustawiania wartości validateDataConsistency jako True.
Prawda
False (domyślnie)
Nie.
log Ustawienia Grupa właściwości, które można określić, aby umożliwić dziennikowi sesji rejestrowanie pominiętych plików. Nie.
linkedServiceName Połączona usługa usługi Azure Blob Storage lub Azure Data Lake Storage Gen2 do przechowywania plików dziennika sesji. Nazwy połączonej AzureBlobStorage usługi lub AzureBlobFS , która odwołuje się do wystąpienia używanego do przechowywania plików dziennika. Nie.
path Ścieżka plików dziennika. Określ ścieżkę do przechowywania plików dziennika. Jeśli nie podasz ścieżki, usługa utworzy kontener. Nie.

Uwaga

  • Podczas kopiowania plików binarnych z lub do usługi Azure Blob lub Azure Data Lake Storage Gen2 usługa blokuje weryfikację sumy kontrolnej MD5 poziomu przy użyciu interfejsu API obiektów blob platformy Azure i interfejsu API usługi Azure Data Lake Storage Gen2. Jeśli usługa ContentMD5 na plikach istnieje w usłudze Azure Blob lub Azure Data Lake Storage Gen2 jako źródła danych, usługa wykonuje weryfikację sumy kontrolnej MD5 na poziomie pliku po odczytaniu plików. Po skopiowaniu plików do usługi Azure Blob lub Azure Data Lake Storage Gen2 jako miejsca docelowego danych usługa zapisuje zawartośćMD5 w usłudze Azure Blob lub Azure Data Lake Storage Gen2, co może być dalej używane przez aplikacje podrzędne na potrzeby weryfikacji spójności danych.
  • Usługa wykonuje weryfikację rozmiaru pliku podczas kopiowania plików binarnych między dowolnymi magazynami magazynu.

Monitorowanie

Dane wyjściowe z działania kopiowania

Po całkowitym uruchomieniu działania kopiowania można zobaczyć wynik weryfikacji spójności danych z danych wyjściowych każdego uruchomienia działania kopiowania:

"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" 
           } 
        }

Szczegółowe informacje na temat weryfikacji spójności danych można znaleźć w sekcji "dataConsistencyVerification property" (Właściwość dataConsistencyVerification).

Wartość elementu VerificationResult:

  • Zweryfikowano: skopiowane dane zostały zweryfikowane tak, aby były spójne między magazynem źródłowym i docelowym.
  • Powiadomienie: skopiowane dane nie zostały zweryfikowane, aby były spójne, ponieważ nie włączono funkcji validateDataConsistency w działaniu kopiowania.
  • Nieobsługiwane: skopiowane dane nie zostały zweryfikowane tak, aby były spójne, ponieważ weryfikacja spójności danych nie jest obsługiwana dla tej konkretnej pary kopiowania.

Wartość niespójnych danych:

  • Znaleziono: Działanie kopiowania znalazło niespójne dane.
  • Pominięto: działanie kopiowania znalazło i pominięto niespójne dane.
  • Brak: Działanie kopiowania nie znalazło żadnych niespójnych danych. Może to być spowodowane tym, że dane zostały zweryfikowane tak, aby były spójne między magazynem źródłowym i docelowym lub dlatego, że wyłączono funkcję validateDataConsistency w działaniu kopiowania.

Dziennik sesji z działania kopiowania

Jeśli skonfigurujesz rejestrowanie niespójnego pliku, możesz znaleźć plik dziennika z tej ścieżki: https://[your-blob-account].blob.core.windows.net/[path-if-configured]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].csv. Pliki dziennika to pliki csv.

Schemat pliku dziennika jest następujący:

Kolumna opis
Sygnatura czasowa Sygnatura czasowa pomija niespójne pliki.
Poziom Poziom dziennika tego elementu. Znajduje się on na poziomie "Ostrzeżenie" dla elementu pokazującego pomijanie pliku.
OperationName Działanie operacyjne działania kopiowania w każdym pliku. Jest to "FileSkip", aby określić plik, który ma zostać pominięty.
OperationItem Nazwa pliku, która ma zostać pominięta.
Wiadomość Więcej informacji ilustrujących, dlaczego pliki są pomijane.

Przykład pliku dziennika jest następujący:

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=,'." 

W powyższym pliku dziennika widać, że plik sample1.csv został pominięty, ponieważ nie można go zweryfikować, aby był spójny między magazynem źródłowym i docelowym. Możesz uzyskać więcej informacji na temat tego, dlaczego plik sample1.csv staje się niespójny, ponieważ został on zmieniony przez inne aplikacje, gdy działanie kopiowania jest kopiowane w tym samym czasie.

Zobacz inne artykuły dotyczące działania kopiowania: