Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Microsoft Fabric
Dataflow Gen2: błąd zapisu do Lakehouse - typy kolumn i schemat tabeli
Błąd zapisu Dataflow Gen2 do Lakehouse pojawia się zwykle wtedy, gdy zapytanie działa w edytorze, a dopiero zapis do tabeli odrzuca dane albo publikację. Przyczyną są typy kolumn albo schemat tabeli docelowej. Zebraliśmy to, co o typach i schemacie mówią lekcja o Fabric i dokumentacja Microsoft, oraz zamiany typów sprawdzone w Excelu.
Przepływ uruchomiony poleceniem Zapisz i uruchom kończy się w oknie Ostatnie uruchomienia stanem innym niż Powodzenie, a w szczegółach uruchomienia błąd dotyczy działania zapisu, na przykład sprzedaz_WriteToDataDestination. Dokumentacja Microsoft podaje przykład takiego błędu z kodem E104100: DataFormat.Error z komunikatem, który w polskim brzmieniu silnika Power Query to „Nie można wstawić danych o wartości null do kolumny, która nie dopuszcza wartości null.” (ang. „We can't insert null data into a non-nullable column.”).
Drugi objaw pojawia się przy publikacji: po zmianie zapytania przepływ z ustawieniem Poprawiony schemat nie daje się opublikować, bo schemat zapytania nie zgadza się ze schematem tabeli. Trzeci jest cichy: przy schemacie dynamicznym tabela zostaje usunięta i utworzona od nowa, a relacje i miary dodane wcześniej do tej tabeli mogą zniknąć.
Tabela w Lakehouse ma ustalone typy kolumn, a zapytanie Power Query może mieć kolumny bez typu. Kolumna niestandardowa dodana bez podania typu ma typ Dowolny, w nagłówku z ikoną ABC123: w naszym teście w Excelu Table.Schema pokazał dla niej Any.Type. Według tabeli obsługiwanych typów w dokumentacji Microsoft Lakehouse nie przyjmuje typów Any, Binary, Duration, Time i DateTimeZone ani wartości złożonych, czyli list, rekordów i tabel.
Drugi mechanizm to schemat. Przy ustawieniach automatycznych Fabric sam dopasowuje mapowanie kolumn, a przy każdym odświeżeniu usuwa tabelę i tworzy ją od nowa. Po wyłączeniu przełącznika Użyj ustawień automatycznych wybierasz między opcjami Schemat dynamiczny i Poprawiony schemat. Opcje schematu działają tylko z metodą Zastąp: przy metodzie Dołącz zmiana schematu nie jest możliwa.
Trzeci przypadek dokumentacja opisuje osobno: kolumna, w której są wartości null, bywa wykryta jako niedopuszczająca null i w takiej postaci trafia do tabeli docelowej. Pierwszy pusty wiersz przerywa wtedy zapis.
_WriteToDataDestination wskaże, czy chodzi o typ, wartość null czy schemat.Table.AddColumn(Źródło, "Wartość brutto", each [Wartość netto] * 1.23, type number). W Excelu taka kolumna dostała typ Number.Type, a ta sama formuła bez typu Any.Type.DateTimeZone.RemoveZone zostawia czas lokalny, a DateTimeZone.RemoveZone(DateTimeZone.ToUtc([Kolumna])) czas UTC. Czas trwania przelicz na liczbę, na przykład minut, funkcją Duration.TotalMinutes, a samą godzinę zapisz jako tekst: Time.ToText([Godzina], "HH:mm"). W Excelu wyniki wyniosły 12:00 i 10:00 dla czasu ze strefą +02:00, 90 dla półtorej godziny i 06:30 dla godziny.Table.TransformColumnTypes(#"Poprzedni krok", {{"Sklep", type nullable text}}), i dodać miejsce docelowe ponownie. Kolumna IsNullable w wyniku Table.Schema pokazuje, czy typ dopuszcza null: w naszym teście po takim kroku wyniosła true.Uruchom przepływ ponownie poleceniem Zapisz i uruchom i sprawdź w Ostatnich uruchomieniach, czy stan to Powodzenie. Na ekranie mapowania kolumn każda kolumna powinna mieć konkretny typ, tak jak w lekcji o Fabric, gdzie typy Tekst, Data, Pełna liczba i Liczba dziesiętna przeniosły się do tabeli bez zmian. Liczbę wierszy w tabeli porównaj z oczekiwaną zapytaniem w punkcie końcowym analizy SQL.
Żeby problem nie wracał, kończ każde zapytanie wynikowe krokiem ustawiającym typy wszystkich kolumn i nie zostawiaj kolumn z ikoną ABC123. Jeśli do tabeli w Lakehouse dodajesz relacje albo miary, wybierz Poprawiony schemat, a zmiany kolumn w zapytaniu planuj razem ze zmianą tabeli.

Wróć do listy: 88 najczęstszych pytań i problemów związanych z Power Query
Szkolenie Power BI - Desktop, DAX i Online --> Pięć dni od pierwszego raportu do publikacji w usłudze Power BI: Power Query, model danych z wielu tabel, DAX, wizualizacje i Copilot. To szkolenie ma terminy gwarantowane.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...