Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne artikkelen viser mønstre som utplasseringsplaner ofte brukes til. Hver av dem beskriver distribusjonsgruppene og handlingene knyttet til dem, slik at du kan bygge tilsvarende på lerretet.
For hvordan du bygger en plan, se Lag en utplasseringsplan.
Distribuer et element som er avhengig av data et annet element produserer
Dette er den vanligste grunnen til å bruke en plan.
Arbeidsområdet
Et salgsteam oppbevarer analyseløsningen sin i et enkelt git-tilkoblet arbeidsområde som inneholder fire elementer:
| Element | Type | Hva det gjør |
|---|---|---|
Sales_Lakehouse |
Lakehouse | Oppbevarer salgsbordene. Den er tom når den deployeres, fordi en deployering kopierer item-definisjoner, ikke data. |
Hydrate_TopCustomers |
Notebook | Skriver de rå kilderadene inn i hytta ved innsjøen. |
Publish_TopCustomers |
Notebook | Gjør disse radene om til den publiserte dbo.top_customers tabellen. |
Sales_Warehouse |
Lager | Holder visningen dbo.vw_top_customers, som lyder dbo.top_customers. |
Hvorfor ikke bare utplasseringsrekkefølge er nok
Fabric bruker item lineage for å oppdage at lagervisningen refererer til en lakehouse-tabell, så den deployerer lakehouse før lageret.
Lineage viser ikke at tabellen må fylles før visningen er gyldig. Tabellen kommer ikke med gjenstandsdefinisjonen. De to notatbøkene produserer den under kjøring:
Distribuerer du dette arbeidsområdet uten en plan, mislykkes utrullingen. Hvert element kopieres korrekt, men varelagervisningen opprettes mot en tabell som ingen har laget ennå, og distribusjonen rapporterer at objektnavnet er ugyldig. Målet blir delvis utplassert.
Det er ingenting galt med gjenstandene. Det som mangler er instruksjonen om å kjøre notatbøkene mellom utrulling av innsjøhuset og utrulling av lageret. Den instruksjonen er planen.
Planen
Planen har to utplasseringsgrupper, én for innsjøhuset og én for lageret. Lakehouse-gruppen kjører begge notatbøkene som post-deployeringsaksjoner:
| Distribusjonsgruppe | Gjenstand utplassert | Handlinger etter utplassering | Kommer an på |
|---|---|---|---|
| Sales_Lakehouse | Sales_Lakehouse (innsjøhus) | 1. Løp Hydrate_TopCustomers 2. Løp Publish_TopCustomers |
Ingenting |
| Sales_Warehouse | Sales_Warehouse (lager) | Ingen | Sales_Lakehouse |
Etter at innsjøhuset er utplassert, Hydrate_TopCustomers skriver kilderadene. Deretter Publish_TopCustomers oppretter dbo.top_customers og venter til SQL-analyseendepunktet eksponerer tabellen. Lakehouse-gruppen fullfører først etter at begge handlingene er ferdige. Fabric kan deretter distribuere lageret og lage sin visning.
Notatbøkene er handlinger i lakehouse-gruppen, ikke separate deployeringsgrupper.
Publish_TopCustomers Det avhenger av Hydrate_TopCustomers, og lagergruppen avhenger av den ferdige Lakehouse-gruppen.
Her er samme plan på lerretet:
Forstå den plan.yml strukturen
Du bygger en plan på lerretet. Når arbeidsområdet er koblet til Git, lagres planen som en plan.yml fil i mappen til deployeringsplan-elementet, slik at den blir gjennomgått og versjonsbasert som alle andre elementer:
$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
Filen har følgende struktur:
| Element | Formål |
|---|---|
$schema |
Identifiserer skjemaet som validerer plandefinisjonen. |
version |
Identifiserer plandefinisjonsversjonen. |
groups |
Inneholder deployeringsgruppene i planen. |
name |
Gir en gruppe eller handling et unikt navn som avhengigheter kan referere til. |
logicalId |
Identifiserer Fabric-varen på tvers av arbeidsområder. |
dependsOn |
Erklærer avhengigheter av en annen gruppe eller handling ved navn. |
preActions Og postActions |
Kjør støttede jobber før eller etter gruppens gjenstand deployeres. |
job |
Identifiserer jobbtype, elementlogisk ID og valgfrie parametere for en handling. |
Noen ting å merke seg i denne definisjonen:
- En gruppe navngir én gjenstand.
logicalIder elementets logiske ID, samme identifikator som Git-integrasjonen bruker, slik at planen forblir gyldig når elementet flyttes mellom arbeidsområder. -
Gruppeordenen uttrykkes med
dependsOn, ikke etter posisjon i filen. Omorganisering av gruppene i filen endrer ingenting. - Handlingsrekkefølgen uttrykkes også med
dependsOn.Run Publish_TopCustomersstarter først etterRun Hydrate_TopCustomersmål. -
postActionsLøp etter at gruppens gjenstand er utplassert. BrukpreActionsdet til arbeid som må gjøres først, som en valideringssjekk.
Tips
En handling er ferdig når varens kjøring er over, ikke når nedstrømstjenestene tar igjen. I dette eksempelet venter den siste cellen til Publish_TopCustomers lakehouse SQL-analyseendepunkt har katalogisert den nye tabellen. Sett inn en slik beredskapssjekk i handlingen, for planen venter ikke på dine vegne.
Oppdater innholdet etter at det er distribuert
En utrulling oppdaterer varedefinisjoner. Den kjører ingenting, så en semantisk modell eller en rapport reflekterer den nye definisjonen, men ikke nye data.
| Distribusjonsgruppe | Gjenstand utplassert | Kjører etter at gjenstanden er utplassert | Kommer an på |
|---|---|---|---|
| Sales_Warehouse | Sales_Warehouse (lager) | Ingen | Ingenting |
| Sales_Model | Sales_Model (semantisk modell) | Kjør en datapipeline som oppdaterer modellen | Sales_Warehouse |
Legg denne planen til en distribusjonspipeline-utrulling slik at promotering til et stadium etterlater målet klart til bruk i stedet for manuell oppdatering.
Valider før noe deployeres
En pre-deploy-handling kjøres før gjenstanden i gruppen deployeres, så du kan bruke en som port.
En handling kan bare kjøre et element som allerede er distribuert, så selve sjekken blir distribuert av en tidligere gruppe:
| Distribusjonsgruppe | Gjenstand utplassert | Kjører før gjenstanden deployeres | Kommer an på |
|---|---|---|---|
| Forhåndsvisning | Preflight_Checks (notatbok) | Ingen | Ingenting |
| First_Real_Item | Det første punktet i utgivelsen | Løp Preflight_Checks | Forhåndsvisning |
Hvis sjekken feiler, stopper utrullingen og ingenting som avhenger av den gruppen deployeres. Bruk dette for å bekrefte at tilkoblinger løses, at en nødvendig kapasitet kjører, eller at et kildesystem er tilgjengelig før en utgivelse begynner.
Bemerkning
En pre-deploy-handling kan ikke kjøre gjenstanden dens egen gruppe deployer, fordi den gjenstanden ennå ikke eksisterer i målet. Distribuer elementet som utfører sjekken i en tidligere gruppe, som vist her.
Bestillingsarbeid som slekten ikke kan se
To gjenstander kan være helt uavhengige når det gjelder slektslinje, og likevel kreve en bestilling. En plan er måten du uttrykker det på.
| Distribusjonsgruppe | Gjenstand utplassert | Kommer an på |
|---|---|---|
| Reference_Data | Elementet som produserer referansedata | Ingenting |
| Domain_Item | Et element som leser referansedata gjennom en forbindelse i stedet for en direkte referanse | Reference_Data |
Fordi avhengigheten går gjennom en forbindelse i stedet for en gjenstandsreferanse, kan ikke Fabric utlede den. Planen leverer bestillingen.