Azure Synapse Link for Dataverse — często zadawane pytania

W tym artykule przedstawiono informacje na temat często zadawanych pytań dotyczących eksportowania danych tabeli Microsoft Dataverse do Azure Data Lake i Azure Synapse Analytics.

Czy mogę ręcznie wykonać zadania, takie jak tworzenie, aktualizowanie, usuwanie lub ustawianie zasad automatycznego usuwania plików danych w połączonym magazynie Azure?

Pliki danych nie powinny być modyfikowane przez klienta i żadne pliki klienta nie powinny być umieszczane w folderach danych.

Uwaga

Aby usunąć nieaktualne i nieaktualne dane Azure Synapse Link w danych bez przerywania pracy, należy rozważyć użycie zapytania funkcji i analizować aktualizacje aktualizacje dotyczące aktualizacjach.

Jak mogę uzyskać dostęp do mojego relacje stołu?

Aby uzyskać dostęp do relacje wiele-do-wielu, relacja będzie dostępna jako tabela do wybrania na stronie Dodawanie tabel dla nowego łącza i z Zarządzaj tabelami dla istniejącego łącza.

Uwaga

Wszystkie relacje są domyślnie zapisane w formacie CSV w trybie dołączania.

Azure Synapse Link jest bezpłatną funkcją Dataverse. Korzystanie z usługi Azure Synapse Link for Dataverse nie wiąże się z dodatkowymi opłatami w Dataverse. Należy jednak wziąć pod uwagę potencjalne koszty usługi Azure:

Co się dzieje po dodaniu kolumny?

Kiedy dodajesz nową kolumnę do tabeli w źródle, jest ona również dodawana na końcu pliku w miejscu docelowym w odpowiedniej partycji plików. Podczas gdy wiersze, które istniały przed dodaniem kolumny, nie są wyświetlane w nowej kolumnie, nowe lub zaktualizowane wiersze pokazują nowo dodaną kolumnę.

Co się dzieje 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 oznaczone jako null podczas przetwarzania poprzednich wierszy.

Co się dzieje w przypadku zmiany typu danych kolumny?

Zmiana typu danych kolumny jest zmianą powodującą niezgodność i wymaga odłączenia i ponownego połączenia.

Co się dzieje po usunięciu wiersza?

Usuwanie wiersza jest obsługiwane w inny sposób w zależności od dostępnych opcji zapisu danych:

  • Aktualizacja w miejscu o formacie CSV: Jest to tryb domyślny. Gdy wiersz tabeli jest usuwany w tym trybie, jest także usuwany z odpowiednich partycji danych w katalogu danych Azure Data Lake. Innymi słowy, dane są usuwane z miejsca docelowego.
  • Tryb dołączania tylko do pliku CSV i aktualizacji folderu folderów pochyłych: Dataverse W tym trybie po usunięciu wiersza tabeli nie jest on na pewno usuwany z miejsca docelowego. Zamiast tego wiersz jest dodawany i ustawiany jako isDeleted=True w pliku z odpowiadającą partycją danych w Azure Data Lake.
  • Eksportowanie do formatu Delta Lake: Azure Synapse Link powoduje usunięcie danych podczas następnego cyklu synchronizacji, a po 30 dniach usuwanie jest czynnością twardej.

Dlaczego nie widzę nagłówka kolumny w wyeksportowanym pliku?

Azure Synapse Link jest zgodny z Common Data Model, aby umożliwić udostępnianie danych i ich znaczenia między aplikacjami i procesami biznesowymi, takimi 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 oraz Azure Data Lake Storage Gen2 | Microsoft Learn

Dlaczego plik Model.json zwiększa lub zmienia długość typów danych i nie zachowuje danych zdefiniowanych w Dataverse?

Element Model.json zapewnia długość bazy danych dla rozmiaru kolumny. Dataverse ma koncept długości bazy danych dla każdej kolumny. Jeśli utworzono kolumnę o rozmiarze 200 i później zmniejszono jej do 100, Dataverse jednak w dalszym ciągu umożliwia prezentowanie istniejących danych w Dataverse. Trzeba zachowywać do DBLength 200 i MaxLength 100. Co widać w Model.json to DBLength a użycie go do procesów nigdy nie będzie zapewniać mniejszej przestrzeni dla kolumn Dataverse .

Uwaga

Pola notatek są definiowane varchar(max) jako maksymalna długość domyślna 9999.

Jakich formatów daty i godziny można się spodziewać w wyeksportowanych tabelach Dataverse?

Istnieją trzy formaty daty i godziny, których można się spodziewać w wyeksportowanych tabelach Dataverse.

Nazwa kolumny Formatuj Typ danych Przykład
SinkCreatedOn i SinkModifiedOn M/d/rrrr H:mm:ss tt datetime 6/28/2021 4:34:35 PM
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' datetime 2021-06-25T16:21:12Z

Uwaga

Typ danych CreatedOn został zmieniony z datetime na datetimeOffset 29.07.2022. Aby edytować format typu danych tabeli utworzonej przed zmianą, upuść i przeczytaj tabelę.

Użytkownik może wybrać inne zachowania kolumn dla kolumny Data i godzina w Dataverse, w której aktualizuje format typu danych. Więcej informacji: Zachowanie i format kolumny Data i godzina

Dlaczego w niektórych tabelach Dataverse widzę nazwy plików 1.csv lub 1_001.csv zamiast zwykłych nazw plików partycjonowanych datą i czasem?

Takie zachowanie jest oczekiwane w przypadku wybrania trybu eksportu tylko załączników i posiadania tabel bez prawidłowej kolumny CreatedOn. Bloby 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 - tutaj zilustrowany jako 1_001.csv.

Kiedy należy użyć strategii partycji rocznie lub miesięcznej?

W przypadku tabel Dataverse, w których wielkość danych jest duża w ciągu roku, zaleca się użycie partycji miesięcznych. W wyniku tego będą mniejsze pliki i lepsza wydajność. Ponadto jeśli wiersze w tabelach Dataverse są często aktualizowane, podział na wiele mniejszych plików pomaga zwiększyć wydajność w przypadku scenariuszy aktualizacji w miejscu. Delta Lake jest dostępne tylko z partycjami rocznie ze względu na doskonałą wydajność w porównaniu z formatem CSV.

Czym jest tryb tylko dołączania i jaka jest różnica między trybem dołączania a trybem aktualizacji na miejscu?

W trybie tylko dołączania, rosnące dane z tabel Dataverse są dołączane do odpowiedniej partycji pliku w bazie lake. Więcej informacji: Zaawansowana konfiguracja opcji w Azure Synapse Link

W jaki sposób używać trybu tylko dodawanie, aby uzyskać historię zmian?

Tryb Tylko dodawanie 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. Jest to często używana i zalecana opcja dla klientów korporacyjnych. Ponadto można korzystać z tego trybu w sytuacjach, gdy zamiarem jest przejrzenie zmian i przetwarzanie zmian z Dataverse i wprowadzanie 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ć najbardziej aktualny wiersz z każdego rekordu i wykluczyć usunięte wiersze podczas eksportowania danych w trybie tylko dołączania?

W trybie dołączania tylko należy zidentyfikować najnowszą wersję rekordu z tym samym identyfikatorem za pomocą VersionNumber i SinkModifiedOn, a następnie zastosować isDeleted=0 w najnowszej wersji.

Dlaczego podczas eksportowania danych w trybie tylko dołączania są widzę zduplikowane numery wersji?

W przypadku trybu „tylko dołączanie”, jeśli Azure Synapse Link for Dataverse nie otrzyma potwierdzenia od Azure Data Lake, że dane zostały zatwierdzone z jakiegokolwiek powodu, takiego jak opóźnienia w sieci, Azure Synapse Link spróbuje ponownie w tych scenariuszy i ponownie zatwierdzi dane. Należy przefiltrować ten scenariusz, filtrując przy użyciu danych SinkModifiedOn.

Dlaczego widzę różnice w kolumnach Sinkmodifiedon i Modifiedon?

Jest to oczekiwane. Modifiedon to data i/lub data zmiany rekordu Dataverse; Sinkmodifiedon to data i godzina modyfikacji rekordu w danych.

Które tabele Dataverse nie są obsługiwane w przypadku eksportu?

Poza poniższymi tabelami systemowymi nie jest obsługiwana żadna tabela, która nie ma włączonego śledzenia:

  • Załącznik
  • Kalendarz
  • Calendarrule

Uwaga

Możesz dodać tabelę kontroli do eksportu za pomocą Azure Synapse Link for Dataverse. Jednak eksport tabeli audytu jest obsługiwany tylko w profilach Delta Lake.

Używam funkcji eksportu do delta lake, czy mogę zatrzymać zadanie Apache Spark lub zmienić czas wykonania?

Zadanie konwersji Delta Lake jest uruchamiane w przypadku zmiany danych w skonfigurowanym przedziale czasu. Nie ma opcji zatrzymania lub wstrzymania puli Apache Spark. Interwał czasowy po utworzeniu linku można jednak zmodyfikować w sekcji Zarządzaj tabelami > Zaawansowany interwał czasowy.

Kolumny odnośników składają się z identyfikatora i wartości. Wartości odnośników zmieniają się tylko w tabeli głównej. Aby lepiej odzwierciedlić wartość kolumny odnośnika, zalecamy połączenie z oryginalną tabelą główną w celu uzyskania najnowszej wartości.

W Dataverse kolumny wyliczane przechowują tylko informacje o formule, a rzeczywista wartość zależy od kolumny tabeli bazowej. Tak więc kolumny obliczane są obsługiwane tylko wtedy, gdy wszystkie kolumny znajdują się w tej samej wyeksportowanej tabeli.

W jakich tabelach Dataverse dołączenie jest używane wyłącznie domyślnie?

Wszystkie tabele, które nie mają pola createdOn są domyślnie synchronizowane w trybie append only. Uwzględnia to tabele relacji oraz tabelę ActivityParty.

Dlaczego pojawia się komunikat o błędzie — Nie można wyświetlić zawartości katalogu na ścieżce?

  • Dane Dataverse są przechowywane w połączonym kontenerze magazynu. 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 wybierzesz opcję eksportowania danych przy użyciu formatu Tym, który chcesz wyeksportować, plik CSV zostanie wyeksportowany po konwersji tych plików. Dane w tabelach non_partitioned są non_partitioned za pośrednictwem obszaru roboczego Syn workspace.

Dlaczego jest wyświetlany komunikat o błędzie — nie można załadować zbiorczego, ponieważ plik jest niekompletny lub nie można go odczytać (tylko plik CSV)?

Dane Dataverse mogą ciągle się zmieniać, tworząc, aktualizując i usuwając transakcje. Ten błąd jest powodowany zmianą pliku źródłowego 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 dotyczących bezserwerowej puli SQL

Azure Synapse Link for Dataverse jest przeznaczony do celów analitycznych. Zalecamy klientom korzystanie z długoterminowego przechowywania do celów archiwizacji. Więcej informacji: Omówienie długoterminowego przechowywania danych w usłudze Dataverse

Dlaczego nie widzę żadnych zmian danych w data lake, gdy rekordy zostały usunięte w Dataverse?

W przypadku każdego bezpośredniego wywołania SQL w celu usunięcia rekordu usługa Azure Synapse Link for Dataverse nie jest wyzwalana, ponieważ usługa BPO.Delete nie jest wywoływana. Aby zapoznać się z przykładową funkcją, przejdź do Jak wyczyścić odziedziczony dostęp.