Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✅ Magazynu w platformie Microsoft Fabric
Ten artykuł wyjaśnia zalety tworzenia i wdrażania Fabric Data Warehouse z wbudowaną integracją Git w Fabric.
Important
Ta funkcja jest dostępna w wersji zapoznawczej.
Dzięki integracji z Gitem w Fabric zespoły mogą stosować nowoczesne praktyki kontroli wersji do rozwoju magazynowego. Programiści mogą izolować zmiany w gałęziach, śledzić ewolucję schematu poprzez commity, współpracować poprzez pull requesty oraz synchronizować aktualizacje między repozytoriami Git a przestrzeniami roboczymi Fabric.
Typowe scenariusze obejmują:
- Bezpieczne tworzenie zmian schematu w gałęziach i przestrzeniach roboczych
- Wersjonowanie obiektów magazynowych w Git
- Współpraca w wielu oddziałach i przestrzeniach roboczych
- Promowanie zweryfikowanych zmian między gałęziami
- Utrzymanie zgodności elementów w przestrzeni roboczej (magazyn i inne) ze źródłem prawdy w Git
Aby zachować spójność, możliwość śledzenia i niezawodność w cyklu rozwoju magazynu, musisz rozumieć te procesy pracy.
Gdy podłączasz Fabric Data Warehouse workspace do Gita, zatwierdzasz definicje magazynu jako projekt bazy danych. Projekt ten staje się autorytatywnym odzwierciedleniem schematu magazynu w kontroli źródeł i stanowi podstawę dla bieżących działań rozwojowych. W eksploratorze kontroli wersji schemat pojawia się jako pojedyncze .sql pliki.
Korzystając z integracji i Fabric Data Warehouse Fabric Git, możesz:
- Rozwijaj Fabric Data Warehouse z integracją z Gitem.
- Wdroż Fabric Data Warehouse za pomocą pipeline'ów wdrożeniowych.
- Wdrażaj i wdrażaj nieprzerwanie, korzystając z portalu Fabric, Gita, własnego IDE lub lokalnego środowiska programistycznego, potoków wdrożeniowych Fabric lub zewnętrznych systemów ciągłej integracji/wdrywania ciągłego (CI/CD), w tym potoków w usługach Azure DevOps lub GitHub.
Porównanie
Podczas tego procesu synchronizacji Fabric wykorzystuje inkrementalne wdrożenie schematu opartego na DacFx do wprowadzania zmian. To podejście stosuje tylko istotne różnice schematu do magazynu, zamiast aktualizować całą definicję magazynu.
Ekstrakcja inkrementalna pomaga ograniczyć niepotrzebne zmiany w kontroli źródeł, utrzymać czystsze różnice w schematach między gałęziami oraz wspierać efektywne procesy rozgałęziania i fuzji. Ponieważ proces ekstrakcji jest świadomy schematu, umożliwia również niezawodne porównanie i walidację między stanem przestrzeni roboczej a definicjami śledzonymi przez Git.
Standaryzacja sposobu wyodrębniania i przechowywania schematów magazynowych poprawia spójność w różnych środowiskach programistycznych. Definicje schematów pozostają stabilne w różnych gałęziach, różnice lepiej odzwierciedlają celowe zmiany w rozwoju, a kontrola wersji źródłowej staje się niezawodnym punktem odniesienia dla wdrożeń, współpracy i zarządzania cyklem życia.
Sam XMLA.json plik jest wyłączany podczas procesów integracji z Gitem. Fabric wyklucza ten plik z commitów i aktualizacji, więc domyślne metadane semantyczne model nie są przypadkowo przechowywane w Gicie. Podczas synchronizacji przestrzeni roboczej z Gitem jest to XMLA.json ignorowane, co pomaga uniknąć konfliktów, niezamierzonych nadpisów i szumów podczas przełączania gałęzi lub aktualizacji z Gita.
Ograniczenia kontroli źródła
Funkcje bezpieczeństwa SQL, takie jak uprawnienia, wymagają oddzielnego podejścia eksportu i migracji.
Zależności między elementami między magazynami a endpointami analityki SQL nie są obecnie wspierane w procesach programistycznych. W rezultacie scenariusze oparte na skoordynowanych zmianach w tych elementach mogą nie działać wiarygodnie.
Selektywne commity na poziomie magazynu nie są obecnie wspierane. Zmiany są dokonywane na poziomie przedmiotów magazynowych, a nie na bardziej szczegółowych poziomach obiektów.
Wsparcie dla kontroli wersji dla punktów końcowych analityki SQL nie jest obecnie dostępne. To ograniczenie może ograniczać zarządzanie cyklem życia od początku do końca, gdy rozwiązania obejmują zarówno magazyny, jak i punkty końcowe analityki SQL.
Ograniczenia integracji z usługą Git
- Gdy dwa lub więcej elementów magazynowych odnosi się do siebie, tworzą one cykliczne zależności. System wykrywa to odniesienie kołowe podczas operacji synchronizacji między rozgałęzieniem lub Git-to-workspace, co powoduje ich niepowodzenie. Unikaj cyklicznych zależności między elementami.
- Obecnie nie twórz przepływu danych Gen2 z miejscem docelowym danych wyjściowych w magazynie. Nowy element o nazwie
DataflowsStagingWarehousepojawia się w repozytorium i blokuje zatwierdzanie i aktualizowanie z usługi Git. - Zależności między elementami, sekwencjonowanie elementów i przerwy synchronizacji między punktem końcowym analizy SQL i magazynem wpływają na "rozgałęzianie do nowego lub istniejącego obszaru roboczego" i "przełączanie się do innej gałęzi" przepływów pracy podczas opracowywania i ciągłej integracji.
- Jeśli obiekt odwołuje się do innego obiektu w tym samym magazynie za pomocą trzyczęściowego nazewnictwa (
database.schema.object), zatwierdzenie lub aktualizacja z Gita może zakończyć się niepowodzeniem. Więcej informacji i obejście znajdziesz w artykule Odniesienia do obiektów magazynu z użyciem trzyczęściowej nazwy. - Jeśli zmienisz kolumnę, która została
IDENTITYzdefiniowana, zatwierdzenie lub aktualizacja z Gita może zawiódć, dopókiIDENTITY_INSERTnie zostanie włączone dla tabeli. - Jeśli repozytorium zawiera plik,
.sqlprojktóry przypina starsząMicrosoft.Build.Sqlwersję SDK, zatwierdzenie lub aktualizacja z Gita może zawiódć, ponieważ starsze SDK nie rozpoznaje nowszej składni magazynowej, takiej jakIDENTITYkolumny iCLUSTER BY. Więcej informacji i obejście znajdziesz w Out-of-date .sqlproj w repozytorium Gita. - Jeśli obiekt odwołuje się do dwóch lub więcej tabel w innym magazynie, nie kwalifikując każdej kolumny aliasem, zatwierdzenie lub aktualizacja z Gita może się nie powieść. Więcej informacji i obejście można znaleźć w artykule Kolumny niekwalifikowane w obiektach, które odnoszą się do dwóch lub więcej tabel w innym magazynie.
- Jeśli twoje skrypty odwołują się do dwóch lub więcej różnych obiektów w tym samym schemacie innego magazynu i zapisują nazwę schematu z niespójną wielką literą, zatwierdzenie lub aktualizacja z Gita może się nie powieść. Więcej informacji i obejście można znaleźć w artykule Niespójna wielka litera nazw schematów.
- Niejednoznaczne błędy kolumn, których lista kandydatów zawiera separator,
::mogą wystąpić podczas zatwierdzania lub aktualizacji z Gita, nawet gdy nie ma rzeczywistej niejednoznaczności. Więcej informacji i obejść zobacz: Niejednoznaczne błędy kolumn z duplikatami obiektów kandydatów.
Niewspierane scenariusze
Następujące przepływy pracy ciągłej integracji/ciągłego wdrażania nie są oficjalnie obsługiwane, gdy magazyny w różnych obszarach roboczych mają różne sortowania. Mimo że te operacje mogą zakończyć się powodzeniem bez błędów, mogą powodować błędy metadanych.
We wszystkich tych scenariuszach, jeśli wystąpi niezgodność sortowania, użyj skryptu Python scripts/dw-collation-error-update-tmsl/pbi_interactive.py z repozytorium GitHub w przyborniku Fabric, aby zaktualizować sortowanie zestawu danych (TMSL), aby pasowało do sortowania hurtowni.
| Scenario | Description | Ryzyko |
|---|---|---|
| Pipeline do wdrożenia | Promowanie zawartości magazynu przez etapy potoku (na przykład Dev → Test → Prod), w których docelowy magazyn został utworzony z innym porządkowaniem niż magazyn źródłowy, nie jest obsługiwane. | Wdrożenie może zakończyć się pomyślnie, ale porządkowanie zbioru danych nie będzie zaktualizowane tak, aby pasowało do porządkowania docelowego magazynu. |
| Rozgałęzianie do nowego lub istniejącego obszaru roboczego | Używanie integracji z usługą Git do rozgałęziania z istniejącego obszaru roboczego do nowego lub istniejącego obszaru roboczego, w którym magazyn ma inne sortowanie, nie jest obsługiwane. | Zawartość magazynu jest synchronizowana, ale metadane sortowania nie są uzgadniane. |
| Przełączanie gałęzi w obszarze roboczym | Przełączanie się do gałęzi powiązanej z magazynem o innym porządku sortowania w obszarze roboczym połączonym z Git nie jest obsługiwane. | Zsynchronizowana zawartość może zachowywać założenia dotyczące sortowania, które nie są zgodne z bieżącym magazynem. |
| Scalanie zmian między obszarami roboczymi za pomocą gałęzi | Scalanie gałęzi Git między obszarami roboczymi, gdzie repozytoria mają różne porządkowanie, nie jest obsługiwane. | Scalanie może zakończyć się powodzeniem na poziomie usługi Git, ale wynikowe sortowanie zestawu danych nie odzwierciedla sortowania magazynu docelowego. |