Udostępnij za pośrednictwem


Logowanie sesji w działanie Kopiuj

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ą !

Skopiowane nazwy plików można rejestrować w działanie Kopiuj. Może to pomóc w zapewnieniu, że dane nie tylko zostaną pomyślnie skopiowane ze źródła do miejsca docelowego, ale także zweryfikuj spójność między źródłem i miejscem docelowym.

Po włączeniu ustawienia odporności na uszkodzenia w działanie Kopiuj pomijania uszkodzonych danych można również rejestrować pominięte pliki i pominięte wiersze. Więcej szczegółów można uzyskać od odporności na uszkodzenia w działaniu kopiowania.

Biorąc pod uwagę możliwość pobrania wszystkich nazw plików skopiowanych przez usługę Azure Data Factory (ADF) działanie Kopiuj za pośrednictwem włączania dziennika sesji, pomocne będzie wykonanie następujących scenariuszy:

  • Po użyciu działań kopiowania usługi ADF w celu skopiowania plików z jednego magazynu do innego znajdziesz nieoczekiwane pliki w magazynie docelowym. Możesz zeskanować dzienniki sesji działanie Kopiuj, aby zobaczyć, które działanie faktycznie skopiowało pliki i kiedy. Dzięki temu podejściu można łatwo znaleźć główną przyczynę i naprawić konfiguracje w usłudze ADF.
  • Po skopiowaniu plików z jednego magazynu do innego za pomocą działań kopiowania usługi ADF pliki kopiowane do miejsca docelowego nie są oczekiwane z magazynu źródłowego. Dzienniki sesji działanie Kopiuj można skanować, aby uzyskać sygnaturę czasową zadań kopiowania, a także metadane plików, gdy działania kopiowania usługi ADF odczytują je z magazynu źródłowego. Dzięki temu podejściu można sprawdzić, czy pliki zostały zaktualizowane przez inne aplikacje w magazynie źródłowym po skopiowaniu przez usługę ADF.

Konfiguracja za pomocą narzędzia Azure Data Factory Studio

Aby skonfigurować rejestrowanie działanie Kopiuj, najpierw dodaj działanie Kopiuj do potoku, a następnie użyj karty Ustawienia, aby skonfigurować rejestrowanie i różne opcje rejestrowania. Pokazuje, jak skonfigurować rejestrowanie dla działanie Kopiuj na karcie ustawień.

Aby następnie monitorować dziennik, możesz sprawdzić dane wyjściowe uruchomienia potoku na karcie Monitorowanie programu ADF Studio w obszarze uruchomienia potoku. W tym miejscu wybierz przebieg potoku, który chcesz monitorować, a następnie umieść kursor nad obszarem obok pozycji Nazwa działania, gdzie znajdziesz ikony zawierające linki przedstawiające dane wejściowe potoku, dane wyjściowe (po zakończeniu) i inne szczegóły.

Pokazuje, jak znaleźć dane wyjściowe działanie Kopiuj w programie ADF Studio.

Wybierz ikonę danych wyjściowych, aby wyświetlić szczegóły rejestrowania zadania, a następnie zanotuj lokalizację rejestrowania na wybranym koncie magazynu, gdzie można wyświetlić szczegóły wszystkich zarejestrowanych działań.

Przedstawia dane wyjściowe działanie Kopiuj z włączonym rejestrowaniem.

Zobacz poniżej, aby uzyskać szczegółowe informacje o formacie danych wyjściowych dziennika.

Konfiguracja przy użyciu formatu JSON

W poniższym przykładzie przedstawiono definicję JSON umożliwiającą włączenie dziennika sesji w działaniu kopiowania:

{
  "name": "CopyActivityLog",
  "type": "Copy",
  "typeProperties": {
    "source": {
      "type": "BinarySource",
      "storeSettings": {
        "type": "AzureDataLakeStoreReadSettings",
        "recursive": true
      },
      "formatSettings": {
        "type": "BinaryReadSettings"
      }
    },
    "sink": {
      "type": "BinarySink",
      "storeSettings": {
        "type": "AzureBlobFSWriteSettings"
      }
    },
    "skipErrorFile": {
      "fileForbidden": true,
      "dataInconsistency": true
    },
    "validateDataConsistency": 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
enableCopyActivityLog Po ustawieniu wartości true będzie można rejestrować skopiowane pliki, pomijane pliki lub pomijane wiersze. Prawda
False (domyślnie)
Nie.
logLevel "Informacje" będą rejestrować wszystkie skopiowane pliki, pomijane pliki i pomijane wiersze. "Ostrzeżenie" spowoduje pominięcie plików i tylko pominięte wiersze. Informacje
Ostrzeżenie (ustawienie domyślne)
Nie.
enableReliableLogging Jeśli to prawda, działanie Kopiuj w trybie niezawodnym będzie opróżniać dzienniki natychmiast po skopiowaniu każdego pliku do miejsca docelowego. Podczas kopiowania wielu plików z włączonym trybem niezawodnego rejestrowania w działanie Kopiuj należy oczekiwać, że będzie to miało wpływ na przepływność, ponieważ dla każdego skopiowanego pliku wymagane są operacje podwójnego zapisu. Jedno żądanie przechodzi do magazynu docelowego, a drugie do magazynu magazynu dzienników. Działanie Kopiuj w trybie najlepszego nakładu pracy opróżnia dzienniki z partią rekordów w danym okresie, a przepływność kopiowania będzie znacznie mniej wpływać. Kompletność i terminy rejestrowania nie są gwarantowane w tym trybie, ponieważ istnieje kilka możliwości, że ostatnia partia zdarzeń dziennika nie została opróżniona do pliku dziennika, gdy działanie Kopiuj się nie powiódł. W tym scenariuszu zobaczysz, że kilka plików skopiowanych do miejsca docelowego nie jest rejestrowanych. Prawda
False (domyślnie)
Nie.
logLocationSettings Grupa właściwości, których można użyć do określenia lokalizacji do przechowywania dzienników sesji. 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.

Monitorowanie

Dane wyjściowe z działanie Kopiuj

Po całkowitym uruchomieniu działania kopiowania można zobaczyć ścieżkę plików dziennika z danych wyjściowych każdego działanie Kopiuj uruchomienia. Pliki dziennika można znaleźć w ścieżce: https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt. Wygenerowane pliki dziennika mają rozszerzenie .txt, a ich dane są w formacie CSV.

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

Uwaga

Gdy właściwość jest ustawiona enableCopyActivityLog na Enabled, nazwy plików dziennika są generowane przez system.

Schemat pliku dziennika

W poniższej tabeli przedstawiono schemat pliku dziennika.

Kolumna opis
Sygnatura czasowa Sygnatura czasowa, gdy usługa ADF odczytuje, zapisuje lub pomija obiekt.
Poziom Poziom dziennika tego elementu. Może to być "Ostrzeżenie" lub "Informacje".
OperationName Usługa ADF działanie Kopiuj zachowanie operacyjne dla każdego obiektu. Może to być "FileRead", FileWrite", "FileSkip" lub "TabularRowSkip".
OperationItem Nazwy plików lub pominięte wiersze.
Komunikat Więcej informacji o tym, czy plik został odczytany z magazynu źródłowego, czy zapisany w magazynie docelowym. Może to być również przyczyną pomijania pliku lub wierszy.

Oto przykład pliku dziennika:

Timestamp, Level, OperationName, OperationItem, Message
2020-10-19 08:39:13.6688152,Info,FileRead,"sample1.csv","Start to read file: {""Path"":""sample1.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:39: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=,'." 
2020-10-19 08:40:13.6688152,Info,FileRead,"sample2.csv","Start to read file: {""Path"":""sample2.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:40:13.9003981,Info,FileWrite,"sample2.csv","Start to write file from source file: sample2.csv."
2020-10-19 08:45:17.6508407,Info,FileRead,"sample2.csv","Complete reading file successfully. "
2020-10-19 08:45:28.7390083,Info,FileWrite,"sample2.csv","Complete writing file from source file: sample2.csv. File is successfully copied."

W powyższym pliku dziennika można zobaczyć, 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 o tym, dlaczego sample1.csv staje się niespójna, ponieważ została zmieniona przez inne aplikacje, gdy usługa ADF działanie Kopiuj jest kopiowana w tym samym czasie. Można również zobaczyć, sample2.csv został pomyślnie skopiowany ze źródła do magazynu docelowego.

Do dalszej analizy plików dziennika można użyć wielu aparatów analizy. Poniżej przedstawiono kilka przykładów, aby użyć zapytania SQL do analizowania pliku dziennika przez zaimportowanie pliku dziennika csv do bazy danych SQL, gdzie nazwa tabeli może być SessionLogDemo.

  • Nadaj mi skopiowaną listę plików.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
  • Nadaj mi listę plików skopiowaną w określonym zakresie czasu.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
  • Nadaj mi określony plik z skopiowanym czasem i metadanymi.
select * from SessionLogDemo where OperationItem='<file name>'
  • Nadaj mi listę plików z ich metadanymi skopiowanymi w zakresie czasu.
select * from SessionLogDemo where OperationName='FileRead' and Message like 'Start to read%' and OperationItem in (select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%')
  • Nadaj mi pominiętą listę plików.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
  • Daj mi powód, dla którego określony plik został pominięty.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
  • Nadaj mi listę plików pominiętych z tego samego powodu: "plik obiektu blob nie istnieje".
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
  • Nadaj mi nazwę pliku, która wymaga najdłuższego czasu do skopiowania.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc

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