Udostępnij za pośrednictwem


Rozwiązywanie problemów z wydajnością procesu kopiowania

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Wskazówka

Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia ADF można zaktualizować do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analiz w czasie rzeczywistym oraz raportowania.

W tym artykule opisano sposób rozwiązywania problemów z wydajnością działania kopiowania w Azure Data Factory.

Po uruchomieniu działania kopiowania można zebrać wyniki przebiegu i statystyki wydajności w widoku monitorowania działania kopiowania. Na poniższym obrazie przedstawiono przykład.

Monitorowanie szczegółów przebiegu działania kopiowania

Porady dotyczące dostrajania wydajności

W niektórych scenariuszach po uruchomieniu działania kopiowania u góry zobaczysz "Porady dotyczące dostrajania wydajności" , jak pokazano na poprzedniej ilustracji. Porady informują o wąskim gardle zidentyfikowanym przez usługę dla tego konkretnego wykonywania kopiowania, wraz z sugestiami na temat zwiększenia przepustowości kopiowania. Spróbuj dokonać zalecanej zmiany, a następnie ponownie uruchom kopię.

Obecnie porady dotyczące dostrajania wydajności zawierają sugestie dotyczące następujących przypadków:

Kategoria Porady dotyczące dostrajania wydajności
Specyficzne dla repozytorium danych Ładowanie danych do Azure Synapse Analytics: sugerujemy użycie PolyBase lub instrukcji COPY, jeśli nie są używane.
  Kopiowanie danych z/do Azure SQL Database: gdy DTU jest wykorzystywane w wysokim stopniu, zaleca się uaktualnienie do wyższej warstwy.
  Kopiowanie danych z/do Azure Cosmos DB: gdy jednostka RU jest w wysokim wykorzystaniu, sugeruje uaktualnienie do większej jednostki RU.
Kopiowanie danych z tabeli SAP: podczas kopiowania dużej ilości danych zalecamy użycie opcji partycji łącznika SAP w celu włączenia równoległego ładowania i zwiększenia maksymalnej liczby partycji.
  Pozyskiwanie danych z usługi Amazon Redshift: sugerujemy użycie polecenia UNLOAD, jeśli nie jest używane.
Dławienie przepustowości magazynu danych Jeśli wiele operacji odczytu/zapisu jest ograniczanych przez magazyn danych podczas kopiowania, sugeruje sprawdzanie i zwiększanie dozwolonej liczby żądań dla magazynu danych lub zmniejszenie współbieżnego obciążenia.
Czas Wykonywania Integracji (Integration Runtime) Jeśli używasz Self-hosted Integration Runtime (IR) i działanie kopiowania czeka długo w kolejce, dopóki środowisko IR nie będzie mieć dostępnego zasobu do wykonania, sugeruje skalowanie w poziomie/w górę środowiska IR.
  Jeśli używasz Azure Integration Runtime, który znajduje się w nieoptymalnym regionie, co skutkuje powolnym odczytem/zapisem, sugeruję skonfigurowanie środowiska IR w innym regionie.
Odporność na uszkodzenia Jeśli skonfigurujesz odporność na uszkodzenia i pomijanie niezgodnych wierszy powoduje niską wydajność, sugeruje, aby zapewnić zgodność danych źródłowych i ujścia.
Kopia etapowa Jeśli kopia etapowa jest skonfigurowana, ale nie jest pomocna dla pary źródła-ujścia, zaproponuj jego usunięcie.
Wznów Gdy działanie kopiowania zostanie wznowione z ostatniego punktu awarii, ale nastąpi zmiana ustawienia jednostki DIU po oryginalnym uruchomieniu, zwróć uwagę, że nowe ustawienie jednostki DIU nie zostanie zastosowane.

Omówienie szczegółów wykonywania działania kopiowania

Szczegóły wykonania i czasy trwania w dolnej części widoku monitorowania działania kopiowania opisują kluczowe etapy, które przechodzi działanie kopiowania (zobacz przykład na początku tego artykułu), co jest szczególnie przydatne przy rozwiązywaniu problemów z wydajnością kopiowania. Wąskim gardłem przebiegu kopiowania jest ten z najdłuższym czasem trwania. Zapoznaj się z poniższą tabelą dotyczącą definicji każdego etapu i dowiedz się, jak Rozwiązywać problemy z działaniami kopiowania na Azure IR oraz Rozwiązywać problemy z działaniami kopiowania w środowisku lokalnym IR, korzystając z takich informacji.

Etap opis
Kolejka Czas, który upłynął do momentu, gdy działanie kopiowania rzeczywiście zaczyna się w środowisku Integration Runtime.
Skrypt wstępny Upłynął czas między rozpoczęciem działania kopiowania na IR a kończeniem działania kopiowania, które kończy wykonanie skryptu precopy w magazynie danych 'sink'. Skorzystaj z podczas konfigurowania skryptu precopy dla ujść bazy danych, na przykład podczas zapisywania danych w Azure SQL Database, aby dokonać czyszczenia przed skopiowaniem nowych danych.
Przenoszenie Upływający czas między końcem poprzedniego kroku a środowiskiem IR przesyłającym wszystkie dane ze źródła do ujścia.
Zwróć uwagę, że podkroki w obszarze transferu są uruchamiane równolegle, a niektóre operacje nie są teraz wyświetlane, na przykład analizowanie/generowanie formatu pliku.

- Czas pierwszego bajtu: czas, który upłynął między końcem poprzedniego kroku a czasem odebrania pierwszego bajtu przez środowisko IR z magazynu danych źródłowych. Dotyczy źródeł innych niż pliki.
- Źródło listy: ilość czasu poświęcanego na wyliczanie plików źródłowych lub partycji danych. Ten ostatni dotyczy konfigurowania opcji partycji dla źródeł baz danych, na przykład podczas kopiowania danych z baz danych, takich jak Oracle/SAP HANA/Teradata/Netezza/etc.
- Odczyt ze źródła: ilość czasu poświęcanego na pobieranie danych ze źródłowego magazynu danych.
- Zapisywanie w docelowym magazynie danych: ilość czasu poświęcanego na zapisywanie danych w docelowym magazynie danych. Pamiętaj, że niektóre łączniki nie mają tej metryki w tej chwili, w tym Wyszukiwanie AI platformy Azure, Azure Data Explorer, Azure Table Storage, Oracle, SQL Server, Common Data Service, Dynamics 365, Dynamics CRM, Salesforce/Salesforce Service Cloud.

Rozwiązywanie problemów z działaniem kopiowania w Azure IR

Wykonaj kroki dostrajania wydajności, aby zaplanować i przeprowadzić test wydajnościowy dla danego scenariusza.

Jeśli wydajność aktywności kopiowania nie spełnia Twoich oczekiwań, aby rozwiązać problemy z pojedynczą aktywnością kopiowania uruchomioną na Azure Integration Runtime, jeśli zobaczysz porady dotyczące dostrajania wydajności wyświetlane w widoku monitorowania, zastosuj sugestię i spróbuj ponownie. W przeciwnym razie zapoznaj się ze szczegółami wykonywania działania kopiowania, sprawdź, który etap ma najdłuższy czas trwania, i zastosuj poniższe wskazówki, aby zwiększyć wydajność kopiowania:

  • Czas trwania skryptu wstępnego kopiowania: oznacza to, że wykonywanie skryptu wstępnego kopiowania w docelowej bazie danych trwa długo. Dostosuj określoną logikę skryptu precopy, aby zwiększyć wydajność. Jeśli potrzebujesz dalszej pomocy dotyczącej ulepszania skryptu, skontaktuj się z zespołem bazy danych.

  • "Transfer — czas do pierwszego bajtu" — ma długi czas trwania: zapytanie źródłowe potrzebuje dużo czasu, aby zwrócić jakiekolwiek dane. Może to oznaczać, że przetwarzanie zapytania w źródle trwa długo, ponieważ źródło jest zajęte innymi zadaniami lub zapytanie nie jest optymalne lub dane są przechowywane w taki sposób, że pobieranie danych trwa długo. Rozważ, czy inne zapytania są uruchomione w tym samym źródle w tym samym czasie, lub jeśli istnieją jakieś aktualizacje, które można wprowadzić w zapytaniu, aby umożliwić szybsze pobieranie danych. Jeśli istnieje zespół zarządzający źródłem danych, skontaktuj się z nim, aby zmodyfikować zapytanie lub sprawdzić wydajność źródła.

  • "Transfer — wyświetlanie listy źródła" przez długi czas trwania: oznacza to, że wyliczanie plików źródłowych lub źródłowych partycji danych bazy danych działa wolno.

    • Podczas kopiowania danych ze źródła opartego na plikach, jeśli korzystasz z filtra symboli wieloznacznych na ścieżce folderu lub nazwie pliku (wildcardFolderPath lub wildcardFileName), lub korzystasz z filtra czasu ostatniej modyfikacji pliku (modifiedDatetimeStart lub modifiedDatetimeEnd), zwróć uwagę, że taki filtr spowoduje, że aktywność kopiowania wymieni wszystkie pliki w określonym folderze na stronie klienta, a następnie zastosuje filtr. Takie wyliczenie plików może stać się wąskim gardłem, szczególnie wtedy, gdy tylko niewielki zestaw plików spełnia regułę filtru.

      • Sprawdź, czy można kopiować pliki na podstawie ścieżki lub nazwy pliku partycjonowanego typu data/godzina. Taka metoda nie powoduje obciążenia po stronie źródła listowania.

      • Sprawdź, czy zamiast tego możesz użyć natywnego filtru magazynu danych, w szczególności "prefix" dla usługi Amazon S3/Azure Blob Storage/Azure Files i "listAfter/listBefore" dla usługi ADLS Gen1. Te filtry są filtrami po stronie serwera przechowywania danych i mają wydajniejsze działanie.

      • Rozważ podzielenie pojedynczego dużego zestawu danych na kilka mniejszych zestawów danych i pozwolić, aby te zadania kopiowania były uruchamiane współbieżnie, z których każda zajmuje się częścią danych. Możesz to zrobić za pomocą polecenia Lookup/GetMetadata + ForEach + Copy. Zapoznaj się z szablonami rozwiązań Kopiowanie plików z wielu kontenerów lub Migracja danych z Amazon S3 do ADLS Gen2 jako przykładami ogólnymi.

    • Sprawdź, czy usługa zgłasza błąd ograniczania przepustowości w źródle lub czy magazyn danych jest w stanie wysokiego wykorzystania. Jeśli tak, zmniejsz obciążenia w magazynie danych lub spróbuj skontaktować się z administratorem magazynu danych, aby zwiększyć limit przepustowości lub dostępny zasób.

    • Użyj środowiska Azure IR w tym samym lub bliskim regionie magazynu danych źródłowych.

  • "Transfer - odczyt ze źródła" miał długi czas trwania operacji:

    • Zastosuj najlepsze rozwiązanie dotyczące ładowania danych specyficznych dla łącznika, jeśli ma zastosowanie. Na przykład podczas kopiowania danych z usługi Amazon Redshift skonfiguruj opcję używania redshift UNLOAD.

    • Sprawdź, czy usługa zgłasza błąd ograniczania przepustowości w źródle lub czy magazyn danych jest w wysokim wykorzystaniu. Jeśli tak, zmniejsz obciążenia w magazynie danych lub spróbuj skontaktować się z administratorem magazynu danych, aby zwiększyć limit przepustowości lub dostępny zasób.

    • Sprawdź wzorzec źródła i ujścia kopii:

    • Użyj środowiska Azure IR w tym samym lub bliskim regionie magazynu danych źródłowych.

  • "Transfer - zapisywanie do ujścia" napotkało na długi czas trwania operacji

    • Zastosuj najlepsze rozwiązanie dotyczące ładowania danych specyficznych dla łącznika, jeśli ma zastosowanie. Na przykład podczas kopiowania danych do Azure Synapse Analytics użyj instrukcji PolyBase lub COPY.

    • Sprawdź, czy usługa zgłasza błąd ograniczania przepustowości odbiornika lub czy magazyn danych jest intensywnie wykorzystywany. Jeśli tak, zmniejsz obciążenia w magazynie danych lub spróbuj skontaktować się z administratorem magazynu danych, aby zwiększyć limit przepustowości lub dostępny zasób.

    • Sprawdź wzorzec źródła i ujścia kopii:

      • Jeśli wzorzec kopiowania obsługuje więcej niż cztery jednostki integracji danych (DIU) — zapoznaj się ze szczegółami w tej sekcji — zazwyczaj możesz spróbować zwiększyć liczbę jednostek, aby uzyskać lepszą wydajność.

      • W przeciwnym razie stopniowo dostrajaj kopie równoległe. Zbyt wiele równoległych kopii może nawet zaszkodzić wydajności.

    • Operuj środowiskiem Azure IR w tym samym lub bliskim regionie docelowego magazynu danych.

Rozwiązywanie problemów z procesem kopiowania w lokalnym środowisku IR

Wykonaj kroki dostrajania wydajności, aby zaplanować i przeprowadzić test wydajnościowy dla danego scenariusza.

Jeśli wydajność kopiowania nie spełnia Twoich oczekiwań, a w widoku monitorowania kopiowania zobaczysz wskazówki dotyczące dostrajania wydajności pojedynczej aktywności kopiowania na platformie Azure Integration Runtime, zastosuj sugestię i spróbuj ponownie. W przeciwnym razie zapoznaj się ze szczegółami wykonywania działania kopiowania, sprawdź, który etap ma najdłuższy czas trwania, i zastosuj poniższe wskazówki, aby zwiększyć wydajność kopiowania:

  • "Kolejka" doświadczyła długiego czasu oczekiwania: oznacza to, że działanie kopiowania czeka długo w kolejce, dopóki lokalny IR nie będzie mieć dostępnych zasobów do wykonania. Sprawdź pojemność i użycie IR oraz skaluj w górę lub poziomo zgodnie z obciążeniem.

  • "Transfer — czas do pierwszego bajtu" — wydłużony czas pracy: oznacza to, że zapytanie źródłowe długo zwraca jakiekolwiek dane. Sprawdź i zoptymalizuj zapytanie lub serwer. Jeśli potrzebujesz dalszej pomocy, skontaktuj się z zespołem magazynu danych.

  • "Transfer — wyświetlanie listy źródła" przez długi czas trwania: oznacza to, że wyliczanie plików źródłowych lub źródłowych partycji danych bazy danych działa wolno.

    • Sprawdź, czy maszyna IR na własnym serwerze ma małe opóźnienia w połączeniu ze źródłowym repozytorium danych. Jeśli źródło znajduje się w Azure, możesz użyć tego narzędzia tego narzędzia aby sprawdzić opóźnienie z lokalnej maszyny IR do regionu Azure — im mniejsze, tym lepiej.

    • Podczas kopiowania danych ze źródła opartego na plikach, jeśli korzystasz z filtra symboli wieloznacznych na ścieżce folderu lub nazwie pliku (wildcardFolderPath lub wildcardFileName), lub korzystasz z filtra czasu ostatniej modyfikacji pliku (modifiedDatetimeStart lub modifiedDatetimeEnd), zwróć uwagę, że taki filtr spowoduje, że aktywność kopiowania wymieni wszystkie pliki w określonym folderze na stronie klienta, a następnie zastosuje filtr. Takie wyliczenie plików może stać się wąskim gardłem, szczególnie wtedy, gdy tylko niewielki zestaw plików spełnia regułę filtru.

      • Sprawdź, czy można kopiować pliki na podstawie ścieżki lub nazwy pliku partycjonowanego typu data/godzina. Taka metoda nie powoduje obciążenia po stronie źródła listowania.

      • Sprawdź, czy zamiast tego możesz użyć natywnego filtru magazynu danych, w szczególności "prefix" dla usługi Amazon S3/Azure Blob Storage/Azure Files i "listAfter/listBefore" dla usługi ADLS Gen1. Te filtry są filtrami po stronie serwera przechowywania danych i mają wydajniejsze działanie.

      • Rozważ podzielenie pojedynczego dużego zestawu danych na kilka mniejszych zestawów danych i pozwolić, aby te zadania kopiowania były uruchamiane współbieżnie, z których każda zajmuje się częścią danych. Możesz to zrobić za pomocą polecenia Lookup/GetMetadata + ForEach + Copy. Zapoznaj się z szablonami rozwiązań Kopiowanie plików z wielu kontenerów lub Migracja danych z Amazon S3 do ADLS Gen2 jako przykładami ogólnymi.

    • Sprawdź, czy usługa zgłasza błąd ograniczania przepustowości w źródle lub czy magazyn danych jest w stanie wysokiego wykorzystania. Jeśli tak, zmniejsz obciążenia w magazynie danych lub spróbuj skontaktować się z administratorem magazynu danych, aby zwiększyć limit przepustowości lub dostępny zasób.

  • "Transfer - odczyt ze źródła" miał długi czas trwania operacji:

    • Sprawdź, czy maszyna IR na własnym serwerze ma małe opóźnienia w połączeniu ze źródłowym repozytorium danych. Jeśli źródło znajduje się w Azure, możesz użyć tego narzędzia, aby sprawdzić opóźnienie z maszyny z własnym węzłem IR do regionów Azure — im mniejsze, tym lepiej.

    • Sprawdź, czy samodzielnie hostowana maszyna IR ma wystarczającą przepustowość łącza przychodzącego, aby efektywnie odczytywać i przesyłać dane. Jeśli źródłowy magazyn danych znajduje się w Azure, możesz użyć narzędzia this aby sprawdzić szybkość pobierania.

    • Sprawdź trend użycia procesora CPU i pamięci środowiska IR na własnym serwerze, na stronie przeglądu Twojej fabryki danych lub obszaru roboczego usługi Synapse w portalu Azure -> ->. Rozważ skalowanie IR pionowo/poziomo, jeśli użycie procesora jest duże lub ilość dostępnej pamięci jest niska.

    • Zastosuj najlepsze rozwiązanie dotyczące ładowania danych specyficznych dla łącznika, jeśli ma to zastosowanie. Na przykład:

    • Sprawdź, czy usługa zgłasza błąd ograniczania przepustowości w źródle lub czy magazyn danych jest w wysokim wykorzystaniu. Jeśli tak, zmniejsz obciążenia w magazynie danych lub spróbuj skontaktować się z administratorem magazynu danych, aby zwiększyć limit przepustowości lub dostępny zasób.

    • Sprawdź wzorzec źródła i ujścia kopii:

  • "Transfer - zapisywanie do ujścia" napotkało na długi czas trwania operacji

    • Zastosuj najlepsze rozwiązanie dotyczące ładowania danych specyficznych dla łącznika, jeśli ma zastosowanie. Na przykład podczas kopiowania danych do Azure Synapse Analytics użyj instrukcji PolyBase lub COPY.

    • Sprawdź, czy maszyna hostowana lokalnie IR ma niskie opóźnienia w połączeniu z docelowym magazynem danych. Jeśli sygnał znajduje się w Azure, możesz użyć tego narzędzia this tool, aby sprawdzić opóźnienie z maszyny z własnym środowiskiem IR do regionu Azure – im mniej, tym lepiej.

    • Sprawdź, czy maszyna IR hostowana lokalnie ma wystarczającą przepustowość wyjściową, aby efektywnie przesyłać i zapisywać dane. Jeśli magazyn danych docelowych znajduje się w Azure, możesz użyć tego narzędzia, aby sprawdzić szybkość przesyłania.

    • Sprawdź, czy trend użycia procesora i pamięci własnego środowiska IR w portalu Azure -> fabryki danych lub obszaru roboczego usługi Synapse -> strony przeglądu. Rozważ skalowanie IR pionowo/poziomo, jeśli użycie procesora jest duże lub ilość dostępnej pamięci jest niska.

    • Sprawdź, czy usługa zgłasza błąd ograniczania przepustowości odbiornika lub czy magazyn danych jest intensywnie wykorzystywany. Jeśli tak, zmniejsz obciążenia w magazynie danych lub spróbuj skontaktować się z administratorem magazynu danych, aby zwiększyć limit przepustowości lub dostępny zasób.

    • Rozważ stopniowe optymalizowanie kopii równoległych. Zbyt wiele równoległych kopii może nawet zaszkodzić wydajności.

Wydajność łącznika i technologii IR

W tej sekcji zawarto przewodniki dotyczące rozwiązywania problemów z wydajnością dla określonego typu łącznika lub środowiska Integration Runtime.

Czas wykonywania działania różni się w zależności od użycia środowiska Azure IR lub środowiska IR w sieci wirtualnej Azure.

Czas wykonywania działania różni się, gdy zestaw danych jest oparty na różnych Integration Runtime.

  • Objawy: po prostu przełączenie listy rozwijanej Połączona usługa w zestawie danych wykonuje te same działania potoku, ale ma drastycznie różne czasy wykonywania. Gdy zestaw danych jest oparty na zarządzanym środowisku uruchomieniowym Managed Virtual Network Integration, zajmuje przeciętnie więcej czasu niż uruchomienie na podstawie domyślnego środowiska uruchomieniowego Integration.

  • Cause: Sprawdzanie szczegółów przebiegów potoku, widać, że powolny potok działa w środowisku IR zarządzanej sieci wirtualnej, podczas gdy normalny jest uruchomiony w środowisku Azure IR. Zgodnie z projektem, zarządzana sieć wirtualna IR ma dłuższy czas oczekiwania w kolejce niż Azure IR, ponieważ nie rezerwujemy jednego węzła obliczeniowego na wystąpienie usługi. Dlatego każde działanie kopiowania wymaga czasu na rozgrzewanie, co ma miejsce głównie podczas dołączania do sieci wirtualnej, a nie Azure IR.

Niska wydajność podczas ładowania danych do Azure SQL Database

  • Symptoms: Kopiowanie danych do Azure SQL Database okazuje się powolne.

  • Cause: Główna przyczyna problemu wynika z wąskiego gardła w Azure SQL Database. Poniżej przedstawiono niektóre możliwe przyczyny:

    • Poziom usługi Azure SQL Database nie jest wystarczająco wysoki.

    • Azure SQL Database użycie jednostek DTU wynosi blisko 100%. Możesz monitorować wydajność i rozważyć uaktualnienie warstwy Azure SQL Database.

    • Indeksy nie są prawidłowo ustawiane. Usuń wszystkie indeksy przed załadowaniem danych i utwórz je ponownie po zakończeniu ładowania.

    • WriteBatchSize nie jest wystarczająco duży, aby dopasować rozmiar wiersza schematu. Spróbuj zwiększyć parametry związane z problemem.

    • Zamiast wstawiania zbiorczego używana jest procedura składowana, która prawdopodobnie będzie miała gorzej wydajność.

Przekroczenie limitu czasu lub niska wydajność podczas analizowania dużego pliku Excel

  • Objawy:

    • Podczas tworzenia zestawu danych Excel i importowania schematu z połączenia/magazynu, podglądu danych, list lub podczas odświeżania arkuszy może wystąpić błąd przekroczenia limitu czasu, jeśli plik Excel jest dużych rozmiarów.

    • Gdy używasz działania kopiowania do kopiowania danych z dużego pliku Excel (>= 100 MB) do innego magazynu danych, może wystąpić problem z niską wydajnością lub OOM.

  • Przyczyna:

    • W przypadku operacji, takich jak importowanie schematu, wyświetlanie podglądu danych i wyświetlanie listy arkuszy w zestawie danych programu Excel. Limit czasu wynosi 100 s i jest statyczny. W przypadku dużego pliku Excel te operacje mogą nie zostać zakończone w ramach wartości limitu czasu.

    • Działanie kopiowania odczytuje cały plik Excel do pamięci, a następnie lokalizuje określony arkusz i komórki do odczytywania danych. To zachowanie jest spowodowane podstawowym zestawem SDK używanym przez usługę.

  • Rozwiązanie:

    • W przypadku importowania schematu można wygenerować mniejszy przykładowy plik, który jest podzbiorem oryginalnego pliku, i wybrać opcję "importuj schemat z przykładowego pliku" zamiast "importuj schemat z połączenia/magazynu".

    • Dla listy arkuszy w rozwijanym menu arkusza możesz wybrać "Edytuj" i wpisać nazwę lub indeks arkusza.

    • Aby skopiować duży plik Excel (>100 MB) do innego magazynu, możesz użyć źródła Przepływ danych Excel, które umożliwia strumieniowe odczytywanie i zapewnia lepszą wydajność.

Problem z funkcją OOM podczas odczytywania dużych plików JSON/Excel/XML

  • Symptoms: Podczas odczytywania dużych plików JSON/Excel/XML występuje problem braku pamięci w trakcie wykonywania zadania.

  • Przyczyna:

    • W przypadku dużych plików XML: Problem OOM podczas odczytywania dużych plików XML jest zaprojektowany. Przyczyną jest to, że cały plik XML musi być odczytywany do pamięci, ponieważ jest to pojedynczy obiekt, a następnie schemat jest wnioskowany, a dane są pobierane.
    • Do dużych plików Excel: Problem z funkcją OOM podczas odczytywania dużych plików Excel wynika z zamierzonego działania. Przyczyną jest to, że używany zestaw SDK (POI/NPOI) musi odczytać cały plik programu Excel do pamięci, a następnie wywnioskować schemat i pobrać dane.
    • W przypadku dużych plików JSON: Problem z OOM przy odczycie dużych plików JSON jest zamierzonym działaniem, gdy plik JSON jest pojedynczym obiektem.
  • Zalecenie: Zastosuj jedną z następujących opcji, aby rozwiązać problem.

    • Opcja 1: Zarejestruj samodzielnie hostowane środowisko uruchomieniowe integracji online za pomocą zaawansowanego komputera (o wysokiej wydajności CPU/pamięci), aby odczytywać dane z dużego pliku za pośrednictwem aktywności kopiowania.
    • Opcja 2: Użyj zoptymalizowanego klastra pamięci o dużym rozmiarze (na przykład 48 rdzeni), aby odczytywać dane z dużego pliku za pomocą aktywności przepływu mapowania danych.
    • Opcja-3: Podziel duży plik na małe, a następnie użyj działania kopiowania lub mapowania przepływu danych, aby odczytać folder.
    • Option-4: Jeśli jesteś zablokowany lub napotkasz problem z OOM podczas kopiowania folderu XML/Excel/JSON, użyj działania foreach oraz działania przepływu danych do kopiowania/mapowania w swoim potoku, aby obsłużyć każdy pojedynczy plik lub podfolder.
    • Opcja-5: Inne:
      • W przypadku formatu XML użyj działania notesu z klastrem zoptymalizowanym pod kątem pamięci, aby odczytywać dane z plików, jeśli każdy plik ma ten sam schemat. Obecnie platforma Spark ma różne implementacje do obsługi kodu XML.
      • W przypadku formatu JSON użyj różnych formularzy dokumentów (na przykład Pojedynczy dokument, Dokument na wiersz i Tablica dokumentów) w ustawieniach JSON w obszarze mapowania źródła przepływu danych. Jeśli zawartość pliku JSON to Dokument na wiersz, zużywa mało pamięci.

Inne zasoby

Poniżej przedstawiono odwołania do monitorowania wydajności i dostrajania dla niektórych obsługiwanych magazynów danych:

Zobacz inne artykuły dotyczące działań kopiowania: