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.
W tym artykule przedstawiono typowe zastosowania planów wdrożenia. Każda z nich opisuje grupy wdrożeń i powiązane z nimi akcje, dzięki czemu można zbudować odpowiednik na płótnie.
Aby dowiedzieć się, jak stworzyć plan, zobacz : Utwórz plan wdrożenia.
Wdroż element zależny od danych, które inny element generuje
To najczęstszy powód, aby skorzystać z planu.
Obszar roboczy
Zespół sprzedaży przechowuje swoje rozwiązanie analityczne w jednej przestrzeni roboczej połączonej z gitami, która mieści cztery elementy:
| Item | Typ | Do czego służy |
|---|---|---|
Sales_Lakehouse |
Lakehouse | Przechowuje tabele sprzedaży. Jest pusty podczas wdrożenia, ponieważ wdrożenie kopiuje definicje elementów, a nie dane. |
Hydrate_TopCustomers |
Notatnik | Zapisuje nieprzetworzone wiersze źródłowe w środowisku lakehouse. |
Publish_TopCustomers |
Notatnik | Przekształca te wiersze w opublikowaną tabelę dbo.top_customers . |
Sales_Warehouse |
Magazyn | Posiada widok dbo.vw_top_customers, który brzmi dbo.top_customers. |
Dlaczego sama kolejność rozmieszczenia nie wystarcza
Fabric wykorzystuje linię przedmiotów, aby wykryć, że widok magazynu odnosi się do stołu nad domem nad jeziorem, więc rozkłada dom nad jeziorem przed magazynem.
Lineage nie pokazuje, że tabela musi zostać wypełniona , zanim widok będzie ważny. Tabela nie jest dostarczana z definicją elementu. Te dwa notatniki generują go w czasie wykonywania:
Wdrożenie tego workspace bez planu powoduje niepowodzenie. Każdy element jest poprawnie kopiowany, ale widok magazynu jest tworzony na tabeli, której nikt jeszcze nie stworzył, a wdrożenie informuje, że nazwa obiektu jest nieprawidłowa. Cel pozostaje częściowo rozmieszczony.
Z tymi przedmiotami nic nie jest nie tak. Brakuje jednak instrukcji uruchamiania notatników między rozstawieniem domku nad jeziorem a rozstawieniem magazynu. Ta instrukcja jest planem.
Plan
Plan przewiduje dwie grupy rozmieszczenia – jedną przy domku nad jeziorem, a drugą dla magazynu. Grupa Lakehouse uruchamia oba notatniki jako działania po wdrożeniu:
| Grupa wdrożeń | Element wdrożony | Działania po rozmieszczeniu | Zależy |
|---|---|---|---|
| Sales_Lakehouse | Sales_Lakehouse (domek nad jeziorem) | 1. Uruchom Hydrate_TopCustomers 2. Uruchom Publish_TopCustomers |
Nic |
| Sprzedaż_Magazyn | Sales_Warehouse (magazyn) | None | Sprzedaż_Lakehouse |
Po wdrożeniu lakehouse składnik Hydrate_TopCustomers zapisuje wiersze źródłowe. Następnie Publish_TopCustomers tworzy dbo.top_customers i czeka, aż endpoint analityki SQL udostępni tabelę. Grupa Lakehouse kończy dopiero po zakończeniu obu akcji. Fabric może wtedy wdrożyć magazyn i utworzyć jego widok.
Notatniki to działania w grupie Lakehouse, a nie oddzielne grupy wdrożenia.
Publish_TopCustomers To zależy od Hydrate_TopCustomers, a grupa magazynowa zależy od ukończonej grupy Lakehouse.
Oto ten sam plan na płótnie:
Zrozum strukturę plan.yml
Budujesz plan na płótnie. Gdy przestrzeń robocza jest połączona z Gitem, plan jest przechowywany jako plan.yml plik w folderze elementu planu wdrożenia, więc jest przeglądany i wersjonowany jak każdy inny element:
$schema: https://developer.microsoft.com/json-schemas/fabric/item/deploymentPlan/definition/plan/1.0.0/schema.json
version: 1.0.0
groups:
- name: Sales_Lakehouse
logicalId: 11111111-1111-1111-1111-111111111111
postActions:
- name: Run Hydrate_TopCustomers
job:
type: Execute
logicalId: 22222222-2222-2222-2222-222222222222
- name: Run Publish_TopCustomers
dependsOn:
- actionName: Run Hydrate_TopCustomers
job:
type: Execute
logicalId: 33333333-3333-3333-3333-333333333333
- name: Sales_Warehouse
logicalId: 44444444-4444-4444-4444-444444444444
dependsOn:
- groupName: Sales_Lakehouse
Plik ma następującą strukturę:
| Element | Purpose |
|---|---|
$schema |
Identyfikuje schemat, który waliduje definicję planu. |
version |
Identyfikuje wersję definicji planu. |
groups |
Zawiera grupy wdrożenia w planie. |
name |
Nadaje grupie lub akcji unikalną nazwę, do której zależności mogą się odwoływać. |
logicalId |
Identyfikuje element Fabric w różnych przestrzeniach roboczych. |
dependsOn |
Deklaruje zależności od innej grupy lub akcji według nazwy. |
preActions i postActions |
Uruchamiaj obsługiwane zadania przed wdrożeniem elementu grupy lub po nim. |
job |
Identyfikuje typ zadania, logiczny identyfikator elementu oraz opcjonalne parametry działania. |
Kilka rzeczy, które warto zauważyć w tej definicji:
- Grupa wymienia jeden przedmiot.
logicalIdjest logicznym identyfikatorem elementu, tym samym identyfikatorem, którego używa integracja z Gitem, więc plan pozostaje ważny, gdy element przemieszcza się między przestrzeniami roboczymi. -
Kolejność grup wyraża się przez
dependsOn, a nie przez pozycję w pliku. Zmiana porządku grup w pliku nic nie zmienia. - Kolejność akcji wyraża się również jako .
dependsOnRun Publish_TopCustomersrozpoczyna się dopiero po zakończeniuRun Hydrate_TopCustomers. -
postActionsuruchom po wdrożeniu elementu grupy. UżywajpreActionsw pracy, która musi się najpierw wykonać, na przykład w przypadku weryfikacji.
Wskazówka
Działanie kończy się, gdy kończy się przebieg elementu, a nie wtedy, gdy usługi podrzędne nadrobią opóźnienie. W tym przykładzie ostatnia komórka Publish_TopCustomers czeka, aż punkt końcowy analizy SQL usługi Lakehouse skataloguje nową tabelę. Umieść takie sprawdzenie gotowości w ramach akcji, ponieważ plan nie czeka za ciebie.
Odśwież treść po wdrożeniu
Wdrożenie aktualizuje definicje elementów. Nie uruchamia niczego, więc model semantyczny lub raport odzwierciedla nową definicję, ale nie nowe dane.
| Grupa wdrożeń | Element wdrożony | Uruchamia się po wdrożeniu elementu | Zależy |
|---|---|---|---|
| Magazyn_Sprzedaży | Sales_Warehouse (magazyn) | None | Nic |
| Sales_Model | Sales_Model (model semantyczny) | Uruchom potok danych, który odświeża model | Sprzedaż_Magazyn |
Dołącz ten plan do wdrożenia pipeline'u wdrożeniowego, aby promowanie na etap pozostawiło cel gotowy do użycia, zamiast wymagać ręcznego odświeżania.
Waliduj przed wdrożeniem czegokolwiek
Akcja przed wdrożeniem jest uruchamiana przed wdrożeniem elementu w swojej grupie, więc można jej użyć jako bramki.
Akcja może uruchomić tylko element, który został już wdrożony, więc samo sprawdzenie jest wdrażane przez wcześniejszą grupę:
| Grupa wdrożeń | Element wdrożony | Jest uruchamiane przed wdrożeniem elementu | Zależy |
|---|---|---|---|
| Przedlotowy | Preflight_Checks (notatnik) | None | Nic |
| First_Real_Item | Pierwszy element wydania | Uruchom Preflight_Checks | Przedlotowy |
Jeśli sprawdzenie się nie powiedzie, wdrożenie zatrzymuje się i nic, co zależy od tej grupy, nie zostanie wdrożone. Użyj tego, aby potwierdzić, że połączenia są prawidłowo rozpoznawane, że wymagana przepustowość jest dostępna lub że system źródłowy jest dostępny przed rozpoczęciem wdrożenia.
Note
Akcja przed wdrożeniem nie może uruchomić elementu, który wdraża grupa, do której on należy, ponieważ ten element jeszcze nie istnieje w lokalizacji docelowej. Wdróż element, który przeprowadza sprawdzenie, we wcześniejszej grupie, jak pokazano tutaj.
Rozkazuj dzieła, których linia rodowa nie może zobaczyć
Dwa przedmioty mogą być całkowicie niezależne pod względem pochodzenia i nadal wymagać kolejności. Plan to sposób, w jaki to wyrażasz.
| Grupa wdrożeń | Element wdrożony | Zależy |
|---|---|---|
| Dane_referencyjne | Element generujący dane referencyjne | Nic |
| Domain_Item | Element, który odczytuje dane referencyjne przez połączenie, a nie bezpośrednio | Dane_referencyjne |
Ponieważ zależność działa przez połączenie, a nie przez referencję do elementu, Fabric nie może jej wywnioskować. Plan określa kolejność.