Ten artykuł zawiera informacje na temat często zadawanych pytań dotyczących eksportowania danych tabeli Microsoft Dataverse do usług Azure Synapse Analytics i Azure Data Lake.
Czy mogę ręcznie wykonywać zadania, takie jak tworzenie, aktualizowanie, usuwanie lub ustawianie zasad automatycznego usuwania dla plików danych w połączonej usłudze Azure Storage?
Pliki danych nie powinny być modyfikowane przez klienta i żadne pliki klienta nie powinny być umieszczane w folderach danych.
Uwaga / Notatka
Aby usunąć nieaktualne i stagnacyjne dane w usłudze Data Lake bez przerywania usługi Azure Synapse Link, rozważ użycie funkcji Zapytanie i analizowanie aktualizacji przyrostowych
Jak mogę uzyskać dostęp do relacji tabel?
Aby uzyskać dostęp do relacji wiele-do-wielu, relacja jest dostępna jako tabela, którą można wybrać na stronie Dodawanie tabel dla nowego linku i ze strony Zarządzanie tabelami dla istniejącego linku.
Uwaga / Notatka
Dane relacji są domyślnie zapisywane w trybie dołączania, gdy używa się formatu CSV.
Jak uzyskać szacowane koszty przed dodaniem usługi Azure Synapse Link?
Usługa Azure Synapse Link to bezpłatna funkcja usługi Dataverse. Korzystanie z usługi Azure Synapse Link dla usługi Dataverse nie powoduje naliczania dodatkowych opłat w obszarze Dataverse. Rozważ jednak potencjalne koszty usługi platformy Azure:
- Magazyn danych w usłudze Azure Data Lake Storage Gen2: Azure Storage Data Lake Gen2 — cennik | Microsoft Azure
- Koszt użycia danych (na przykład obszar roboczy usługi Synapse): cennik — Azure Synapse Analytics | Microsoft Azure Aby uzyskać kompleksowe informacje dotyczące usługi Microsoft Cost Management, przejdź do: Planowanie zarządzania kosztami platformy Azure — Microsoft Cost Management | Microsoft Learn
Co się stanie po dodaniu kolumny?
Po dodaniu nowej kolumny do tabeli w źródle zostanie ona również dodana na końcu pliku w lokalizacji docelowej w odpowiedniej partycji pliku. Chociaż wiersze, które istniały przed dodaniu kolumny, nie są wyświetlane w nowej kolumnie, nowe lub zaktualizowane wiersze pokazują nowo dodaną kolumnę.
Dlaczego nowo dodane kolumny nie są wyświetlane w usłudze Data Lake?
Po dodaniu nowej kolumny do tabeli w źródle nowe metadane (kolumna) są synchronizowane z usługą Data Lake tylko w ramach następnej zmiany danych w tej tabeli. Usługa Azure Synapse Link synchronizuje zmiany metadanych wraz ze zmianami danych — nie wyzwala niezależnej synchronizacji dla zmiany tylko metadanych. W efekcie:
- Jeśli co najmniej jeden wiersz zostanie utworzony lub zaktualizowany po dodaniu kolumny, podczas kolejnej synchronizacji różnicowej zostanie uwzględniona nowa kolumna i od tego czasu będzie ona dostępna w repozytorium data lake.
- Jeśli żadna zmiana danych nie nastąpi po dodaniu kolumny, nowa kolumna pozostaje tylko w źródle i nie jest synchronizowana automatycznie.
Aby natychmiast wprowadzić nową kolumnę, gdy nie jest oczekiwana żadna zmiana danych, należy ponownie zsynchronizować tabele, których dotyczy problem. To zachowanie dotyczy wszystkich typów profilów.
Uwaga / Notatka
Jest to oczekiwane zachowanie. Zmiana tylko metadanych, taka jak dodanie kolumny bez towarzyszącej zmiany danych, nie powoduje samodzielnego wyzwolenia synchronizacji. Kolumna jest eksportowana z kolejną zmianą danych lub po ręcznym ponownym zsynchronizowaniu tabeli.
Co się stanie po usunięciu kolumny?
Gdy usuniesz kolumnę z tabeli w źródle, kolumna nie zostanie usunięta z miejsca docelowego. Zamiast tego wiersze nie są już aktualizowane i są oznaczone jako null przy zachowaniu poprzednich wierszy.
Co się stanie, jeśli zmienię typ danych kolumny?
Zmiana typu danych kolumny jest zmianą powodującą niezgodność i wymaga odłączenia i ponownego połączenia.
Co się stanie, gdy usunę wiersz?
Usuwanie wiersza jest obsługiwane inaczej w zależności od wybranej opcji zapisu danych:
- Aktualizacja w miejscu z formatem CSV: jest to tryb domyślny. Po usunięciu wiersza tabeli w tym trybie wiersz zostanie również usunięty z odpowiedniej partycji danych w usłudze Azure Data Lake. Innymi słowy, dane są trwale usuwane z miejsca docelowego.
- Tryb tylko dopisywania z formatem CSV i przyrostową aktualizacją folderu: w tym trybie, gdy wiersz tabeli Dataverse zostanie usunięty, nie jest on natychmiast trwale usuwany z miejsca docelowego. Zamiast tego wiersz jest dodawany i ustawiany jako
isDeleted=Truew odpowiedniej partycji danych w Azure Data Lake. Usługa Azure Synapse Link trwale usuwa usunięty rekord po upływie 30 dni. - Eksport do formatu Delta Lake: Azure Synapse Link wykonuje usuwanie logiczne danych podczas następnego cyklu synchronizacji Delta, a następnie usuwanie fizyczne po 30 dniach od tego momentu.
Aby zachować usunięte rekordy przez dłużej niż 30 dni, włącz długoterminowe przechowywanie dla tabeli.
Dlaczego nie widzę nagłówka kolumny w wyeksportowanym pliku?
Usługa Azure Synapse Link jest zgodna z usługą Common Data Model, aby umożliwić udostępnianie danych i ich znaczenia w aplikacjach i procesach biznesowych, takich jak Microsoft Power Apps, Power BI, Dynamics 365 i Azure. W każdym folderze CDM metadane, takie jak nagłówek kolumny, są przechowywane w pliku model.json. Więcej informacji: Common Data Model i Azure Data Lake Storage Gen2 | Microsoft Learn
Dlaczego plik Model.json zwiększa lub zmienia długość typów danych i nie zachowuje tego, co jest zdefiniowane w usłudze Dataverse?
Model.json zachowuje długość bazy danych dla rozmiaru kolumny. Usługa Dataverse ma pojęcie długości bazy danych dla każdej kolumny. Jeśli utworzysz kolumnę o rozmiarze 200, a później zmniejszysz ją do 100, usługa Dataverse nadal zezwala na obecność istniejących danych w usłudze Dataverse. Robi to, utrzymując DBLength do 200 i MaxLength do 100. To, co widzisz w Model.json, to DBLength i jeśli używasz tego dla procesów typu downstream, nigdy nie przydzielisz mniej miejsca dla kolumn usługi Dataverse.
Uwaga / Notatka
Pola typu Memo są definiowane jako varchar(max) z domyślną maksymalną długością 9999.
Jakie formaty daty i godziny można oczekiwać w wyeksportowanych tabelach usługi Dataverse?
Istnieją trzy formaty daty i godziny, które można oczekiwać w wyeksportowanych tabelach usługi Dataverse.
| Nazwa kolumny | Forma | Typ danych | Example |
|---|---|---|---|
| SinkCreatedOn i SinkModifiedOn | M/d/rrrr H:mm:ss tt | data/godzina | 28.06.2021 16:34:35 |
| CreatedOn | rrrr-MM-dd'T'HH:mm:ss.sssssssXXX | datetimeOffset | 2018-05-25T16:21:09.0000000+00:00 |
| Wszystkie inne kolumny | rrrr-MM-dd'T'HH:mm:ss'Z' | data/godzina | 2021-06-25T16:21:12Z |
Uwaga / Notatka
Typ danych CreatedOn został zmieniony z datetime na datetimeOffset w dniu 29.07.2022. Aby edytować format typu danych tabeli utworzonej przed zmianą, upuść i przeczytaj tabelę.
Możesz wybrać różne zachowania kolumn dla kolumny Data i godzina w usłudze Dataverse, która aktualizuje format typu danych. Więcej informacji: Zachowanie i format kolumny Data i godzina
Dlaczego widzę nazwy plików 1.csv lub 1_001.csv zamiast zwykłych nazw plików podzielonych na partycje daty i godziny dla niektórych tabel usługi Dataverse?
Takie zachowanie jest oczekiwane w przypadku wybrania trybu eksportu tylko załączników i posiadania tabel bez prawidłowej kolumny CreatedOn. Obiekty blob są zorganizowane w pliki takie jak 1.csv, 2.csv (wykorzystujące niestandardowe partycjonowanie z powodu braku ważnej daty utworzenia). Gdy dowolna partycja zbliża się do 95% maxBlockPerBlobLimit, system automatycznie generuje nowy plik — zilustrowany tutaj jako 1_001.csv.
Kiedy należy używać rocznej lub miesięcznej strategii partycji?
W przypadku tabel Dataverse, w których ilość danych jest duża w ciągu roku, zalecamy użycie partycji miesięcznych. Daje to mniejsze pliki i lepszą wydajność. Ponadto, jeśli wiersze w tabelach Dataverse są często aktualizowane, podział na wiele mniejszych plików pomaga zwiększyć wydajność w przypadku bezpośrednich scenariuszy aktualizacji. Usługa Delta Lake jest dostępna tylko w przypadku partycji rocznej ze względu na lepszą wydajność w porównaniu z formatem CSV.
Jaki jest tryb tylko dodawania oraz jaka jest różnica między trybem tylko dodawania a trybem aktualizacji na miejscu?
W trybie Tylko dołączanie dane przyrostowe z tabel Dataverse są dołączane do odpowiednich partycji plików w jeziorze danych. Aby uzyskać więcej informacji: Zaawansowane opcje konfiguracji w usłudze Azure Synapse Link
Kiedy używam trybu wyłącznie dołączania w celu uzyskania historycznego widoku zmian?
Tryb Tylko dołączanie tylko jest zalecaną opcją zapisu danych w tabeli Dataverse w data lake, zwłaszcza gdy ilość danych jest duża w przypadku partycji, która często zmienia dane. Ponownie jest to często używana i zdecydowanie zalecana opcja dla klientów korporacyjnych. Ponadto można użyć tego trybu w scenariuszach, w których celem jest przyrostowe przeglądanie zmian z usługi Dataverse i przetwarzanie zmian w scenariuszach ETL, AI i ML. Tryb dołączania zawiera tylko historię zmian, a nie najnowsze zmiany czy aktualizacje w miejscu, i umożliwi oglądanie serii okresów ze scenariuszy opartych na wartościach AI, takich jak tworzenie przewidywanie lub prognozowanie na podstawie wartości historycznych.
Jak pobrać najnowszy wiersz każdego rekordu i wykluczyć usunięte wiersze podczas eksportowania danych w trybie tylko dołączania nowych danych?
W trybie tylko dołączania należy zidentyfikować najnowszą wersję rekordu o tym samym identyfikatorze, używając VersionNumber i SinkModifiedOn, a następnie zastosować isDeleted=0 na najnowszej wersji.
Dlaczego podczas eksportowania danych przy użyciu trybu dołączania widzę zduplikowane numery wersji?
W przypadku trybu tylko dołączania, tylko jeśli usługa Azure Synapse Link dla usługi Dataverse nie otrzyma potwierdzenia z usługi Azure Data Lake, że dane zostały zatwierdzone z jakiegokolwiek powodu, takiego jak opóźnienia sieci, usługa Azure Synapse Link ponawia próby w tych scenariuszach i ponownie zatwierdza dane. Konsumpcja następcza powinna być odporna na ten scenariusz przez filtrację danych za pomocą SinkModifiedOn.
Dlaczego synchronizacja nie powiedzie się w przypadku tabeli zawierającej kolumnę o tej samej nazwie co zarezerwowana kolumna systemowa?
Usługa Azure Synapse Link dodaje zestaw zarezerwowanych kolumn systemowych do każdej tabeli, którą zapisuje w jeziorze danych.
versionnumber jest jedną z tych kolumn i służy do śledzenia wersji wierszy. Więcej informacji: Praca z danymi i metadanymi
Kolumna zarezerwowana jest dodawana tylko wtedy, gdy kolumna tej nazwy jeszcze nie istnieje w tabeli źródłowej. Jeśli tabela źródłowa zawiera już kolumnę o tej samej nazwie, istniejąca kolumna i jej wartości są przechowywane. Ponieważ te wartości nie są w formacie oczekiwanym przez kolumnę zarezerwowaną, synchronizacja może zakończyć się niepowodzeniem, najczęściej podczas synchronizacji początkowej.
Jest to oczekiwane zachowanie i nie jest rozwiązywane automatycznie. Pojedyncza kolumna nie może przechowywać zarówno wartości źródłowej, jak i wartości systemowej, więc w zależności od tego, która kolumna jest przechowywana, druga zostanie trwale utracona, co spowoduje pozostawienie niespójnych danych w jeziorze.
Aby rozwiązać ten problem, wykonaj jedną z następujących czynności:
- Jeśli synchronizacja tej tabeli nie jest wymagana, wyklucz tabelę, której dotyczy problem, z profilu usługi Azure Synapse Link.
- Zmień nazwę kolumny powodującej konflikt w źródle, aby nie była już zgodna z nazwą kolumny zarezerwowanej.
Uwaga / Notatka
Ten konflikt jest najczęściej spotykany w tabelach aplikacji finansowych i operacyjnych, które definiują własną kolumnę śledzenia wersji. Tabela WHSWorkUserSession jest typowym przykładem.
Dlaczego dostrzegam różnice w kolumnach "SinkModifiedOn" i "ModifiedOn"?
Jest to oczekiwane zachowanie.
ModifiedOn to data i godzina ostatniej zmiany rekordu w usłudze Dataverse, natomiast SinkModifiedOn data i godzina zapisu rekordu w usłudze Data Lake.
SinkModifiedOn zazwyczaj jest późniejsza niż ModifiedOn, a różnica zależy od czynników, takich jak rozmiar partii, obciążenie systemu i liczba przetwarzanych rekordów.
W przypadku tabel wyeksportowanych w formacie Delta Lake lub w trybie CSV tylko do dopisywania / przyrostowym znaczniki SinkCreatedOn i SinkModifiedOn odzwierciedlają ten sam czas zapisu. Z tego powodu różnica między trybami SinkCreatedOn i CreatedOn w tych trybach nie jest wiarygodnym wskaźnikiem opóźnienia synchronizacji i nie powinna być interpretowana jako taka.
Important
W przypadku długotrwałych transakcji w aplikacjach finansowych i operacyjnych rekord może być synchronizowany wiele razy, aby zapewnić brak utraty danych. W tym scenariuszu SinkModifiedOn odzwierciedla czas ostatniej synchronizacji, a nie pierwszy. Jeśli na przykład rekord jest synchronizowany 10 razy w ciągu godziny, SinkModifiedOn pokazuje czas 10. synchronizacji, mimo że dane były dostępne w jeziorze od pierwszej synchronizacji. Należy zachować ostrożność podczas tworzenia raportów opóźnień na podstawie różnicy między SinkModifiedOn i ModifiedOn, ponieważ może to dać mylące wrażenie rzeczywistej dostępności danych.
Które tabele usługi Dataverse nie są obsługiwane do eksportowania?
Każda tabela, która nie ma włączonego śledzenia zmian, nie jest obsługiwana oprócz następujących tabel systemowych:
- Załącznik
- Kalendarz
- Reguła kalendarza
Niektóre tabele usługi Dataverse, takie jak postcomment, postregarding, postlike, post i postrole, nie są dostępne dla klientów w celu włączenia synchronizacji przez Azure Synapse Link.
W niektórych przypadkach te tabele mogą pojawić się po włączeniu długoterminowego przechowywania usługi Dataverse . W takim przypadku może zostać wyeksportowany podzbiór lub wszystkie rekordy z tych tabel. Jest to oczekiwane zachowanie w scenariuszach przechowywania długoterminowego.
Important
- Te tabele nie powinny być wybierane do synchronizacji.
- Obecność ich nie wskazuje na pełne wsparcie synchronizacji przyrostowej.
Uwaga / Notatka
Tabelę inspekcji do eksportu można dodać przy użyciu usługi Azure Synapse Link dla usługi Dataverse. Jednak eksportowanie tabeli inspekcji jest obsługiwane tylko w przypadku profilów Delta Lake.
Dlaczego nie widzę wszystkich moich notatek (rekordów adnotacji) w usłudze Data Lake?
Usługa Azure Synapse Link nie synchronizuje zawartości pliku przechowywanej w tabeli annotation (Uwagi). W rekordzie notatki plik dołączony do notatki jest przechowywany w kolumnie documentbody, a zawartość tego pliku nie jest synchronizowana z jeziorem danych. Jest to zachowanie wynikające z ustawienia fabrycznego. W efekcie:
-
annotationrekordy, które mają wartość w kolumniedocumentbody(notatki z załącznikiem pliku) nie są eksportowane do usługi Data Lake. -
annotationrekordy bez wartości wdocumentbody(notatki bez załączonego pliku) są synchronizowane zgodnie z oczekiwaniami.
Korzystam z funkcji eksportu do Delta Lake. Czy mogę zatrzymać zadanie Apache Spark lub zmienić czas wykonywania?
Zadanie konwersji usługi Delta Lake jest wyzwalane, gdy nastąpiła zmiana danych w skonfigurowanym interwale czasu. Nie ma możliwości zatrzymania lub wstrzymania puli zadań platformy Apache Spark. Można jednak zmodyfikować interwał czasu po utworzeniu łącza w obszarze Zarządzaj tabelami > Zaawansowane interwał czasu.
Czy usługa Azure Synapse Link obsługuje kolumny odnośników?
Kolumny wyszukiwania składają się z identyfikatora i wartości. Wartości wyszukiwania zmieniają się tylko w tabeli głównej. Aby lepiej odzwierciedlić wartość kolumny odnośnikowej, zalecamy połączenie z oryginalną tabelą główną w celu uzyskania najnowszej wartości.
Czy usługa Azure Synapse Link obsługuje kolumny obliczeniowe?
W usłudze Dataverse kolumny obliczeniowe przechowują tylko definicję formuły, a rzeczywista wartość pochodzi z kolumn bazowych. W związku z tym kolumny obliczeniowe są obsługiwane tylko wtedy, gdy wszystkie przywoływane kolumny znajdują się w tej samej wyeksportowanych tabelach. Usługa Azure Synapse Link synchronizuje dane na podstawie śledzenia zmian usługi Dataverse. Podczas synchronizacji przyrostowej rekord jest ponownie eksportowany tylko wtedy, gdy zmienia się jego wersja. Jeśli wartość kolumny obliczeniowej zmieni się bez odpowiedniej zmiany wersji rekordu, zaktualizowana wartość nie zostanie zsynchronizowana z usługą Data Lake, dopóki rekord nie zostanie zaktualizowany i jego wersja ulegnie zmianie. Jeśli na przykład kolumna obliczeniowa zwróci wartość NULL podczas synchronizacji początkowej, NULL zostanie zapisana w usłudze Data Lake. Jeśli dane wejściowe używane przez obliczenie zmienią się później, ale wersja rekordu nie ulegnie zmianie, usługa Azure Synapse Link nie wykryje ponownie obliczonej wartości, a usługa Data Lake będzie nadal pokazywać NULLwartość . Po zaktualizowaniu rekordu i zmianie jego wersji platforma Azure Synapse Link ponownie eksportuje rekord z najnowszą wartością kolumny obliczeniowej.
Dlaczego wartości w niektórych kolumnach są eksportowane jako null, mimo że synchronizacja zakończyła się pomyślnie?
Jeśli tabela zostanie pomyślnie zsynchronizowana, ale określone kolumny zawierają wartości null dla każdego wiersza, sprawdź, czy zabezpieczenia na poziomie kolumn są włączone w tych kolumnach. Zabezpieczenia na poziomie kolumny ograniczają dostęp do poszczególnych kolumn i dotyczą kolumn walutowych i innych typów kolumn. Więcej informacji: Zabezpieczenia na poziomie kolumny
Usługa Azure Synapse Link odczytuje dane usługi Dataverse jako użytkownik aplikacji. Gdy kolumna jest zabezpieczona, użytkownik aplikacji musi mieć dostęp do odczytu do tej kolumny za pośrednictwem profilu zabezpieczeń kolumny. Jeśli użytkownik aplikacji nie zostanie dodany do profilu, który zabezpiecza kolumnę, synchronizacja zakończy się pomyślnie, a wszystkie inne kolumny zostaną wyeksportowane zgodnie z oczekiwaniami, ale zabezpieczona kolumna zostanie wyeksportowana jako null.
Aby rozwiązać ten problem, dodaj użytkownika aplikacji usługi Azure Synapse Link Dynamics365Athena2 do profilu zabezpieczeń kolumny, który zabezpiecza kolumny, których dotyczy problem, i przyznaj mu uprawnienie Odczyt. Więcej informacji: Aby kontrolować dostęp, dodaj zespoły lub użytkowników do profilu zabezpieczeń dla kolumny
Uwaga / Notatka
Po przyznaniu dostępu do odczytu wartości zostaną wyeksportowane przy kolejnej zmianie danych w odpowiednich wierszach. Wiersze, które nie są aktualizowane, nadal będą mieć wartość null, dopóki rekord się nie zmieni lub nie zsynchronizujesz ponownie tabeli.
Które tabele usługi Dataverse domyślnie używają trybu dołączania?
Wszystkie tabele, które nie mają pola createdOn, są domyślnie synchronizowane przy użyciu trybu tylko dołączania. Obejmuje to tabele relacji i tabelę ActivityParty.
Dlaczego widzę komunikat o błędzie — nie można wyświetlić zawartości katalogu w ścieżce?
- Dane w usłudze Dataverse są przechowywane w połączonym kontenerze danych magazynowych. Aby wykonywać operacje odczytu i zapytań za pośrednictwem obszaru roboczego Synapse, musisz mieć rolę „Współautor danych w usłudze Blob Storage” na połączonym koncie magazynu.
- Jeśli zdecydujesz się wyeksportować dane z formatem usługi Delta Lake, plik CSV zostanie oczyszczony po konwersji usługi Delta Lake. Musisz wykonywać zapytania dotyczące danych przy użyciu tabel niepodzielonych na partycje za pomocą obszaru roboczego usługi Synapse.
Dlaczego widzę komunikat o błędzie — nie można załadować zbiorczo, ponieważ plik jest niekompletny lub nie można go odczytać (tylko plik CSV)?
Dane usługi Dataverse mogą stale zmieniać się dzięki tworzeniu, aktualizowaniu i usuwaniu transakcji. Ten błąd jest spowodowany zmianą bazowego pliku podczas odczytywania z niego danych. W przypadku tabel z ciągłymi zmianami należy więc zmienić potok potoku, tak aby w przypadku danych migawkowych (tabel partycji) wykorzystywać je do przetwarzania. Więcej informacji: Rozwiązywanie problemów z bezserwerową pulą SQL
Czy w przypadku korzystania z usługi Azure Synapse Link istnieją limity rozmiaru na rekord?
Tak. Usługa Azure Synapse Link odczytuje wiersze za pośrednictwem usługi Dataverse, więc każdy limit poszczególnych rekordów usługi Dataverse ma zastosowanie do synchronizacji. Najczęstszym limitem jest limit 200 MiB na nieskompresowanym rozmiarze pojedynczego rekordu zwróconego przez serwer.
Ten limit ma zwykle zastosowanie do tabel, które przechowują dużą zawartość dowolną lub dane binarne. Przykład:
-
emailprzechowuje pełną treść wiadomości. -
activitypointerzawiera długie opisy. -
activitymimeattachmentprzechowuje pliki śródwierszowe i dołączone.
Jest to limit platformy Dataverse i nie można go zgłaszać na żądanie. Usługa nie obcina ani nie modyfikuje danych klientów. Aby rozwiązać ten problem, zmniejsz nadmierny rekord w usłudze Dataverse, usuwając je, usuwając duże pole lub przenosząc zawartość z usługi Dataverse.
Jak mogę używać usługi Azure Synapse Link do archiwizowania danych krytycznych?
Usługa Azure Synapse Link dla usługi Dataverse jest przeznaczona do celów analitycznych. Zalecamy klientom używanie długoterminowego przechowywania do celów archiwalnych. Więcej informacji: Omówienie długoterminowego przechowywania danych w usłudze Dataverse
Dlaczego nie widzę żadnych zmian danych w usłudze Data Lake, gdy rekordy zostały usunięte w usłudze Dataverse?
W przypadku dowolnego bezpośredniego wywołania SQL w celu usunięcia rekordu usługa Azure Synapse Link dla Dataverse nie jest wyzwalana, ponieważ BPO.Delete nie jest wywoływane. Aby uzyskać przykładową funkcję, przejdź do tematu Jak wyczyścić dziedziczony dostęp.
Dlaczego otrzymuję błąd konwersji typu dla kolumn sygnatury czasowej podczas odczytywania plików Parquet na platformie Apache Spark 3.5 lub nowszej?
Zarówno w profilach usługi Bring Your Own Lake, jak i w profilach zarządzanej usługi data lake, sygnatury czasowe w plikach Parquet są przechowywane w formacie INT64. Podczas odczytywania tych plików Parquet za pośrednictwem platformy Apache Spark 3.5 lub nowszej mogą wystąpić błędy w potokach podrzędnych, takich jak operacje kopiowania potoków usługi Azure Synapse. To zachowanie występuje, ponieważ funkcja INT96 nie jest już trybem domyślnym dla sygnatur czasowych na platformie Spark 3.5.
Może zostać wyświetlony błąd podobny do następującego:
TypeConversionNotSupportedDataTypes, Exception occurred when converting value "1774478519775185" for column name 'SinkCreatedOn' from type 'Int64'
Aby rozwiązać ten problem, dodaj funkcję SQL w docelowej bazie danych SQL, aby przekonwertować wartości znacznika czasu z INT64 na odpowiedni format daty/godziny. Możesz też zaktualizować potoki podrzędne, aby używały formatu INT64.