Wdrożenie magazynu za pomocą rurociągów

Dotyczy: ✅ Magazynu w platformie Microsoft Fabric

Microsoft Fabric pipeline'y zapewniają uproszczony sposób na zmianę schematów magazynowych w przestrzeniach roboczych, takich jak Dev → Test → Production. Potoki mają wbudowane zarządzanie zależnościami, walidację schematu oraz deklaratywną inteligencję wdrożenia.

Important

Ta funkcja jest dostępna w wersji zapoznawczej.

Ten artykuł wyjaśnia proces wdrażania magazynu z użyciem pipeline'ów.

Schemat cyklu wdrożenia potoku dla Fabric Data Warehouse.

Potoki wdrożeniowe zapewniają strukturę cyklu życia niezbędną do bezpiecznego przenoszenia zmian magazynowych między miejscami pracy. Pełnią one rolę centralnej warstwy orkiestracji promocji schematów, pozwalając zespołom standaryzować przepływ zmian w platformie analitycznej, zamiast polegać na wdrożeniach ad hoc. Po utworzeniu pipeline staje się głównym interfejsem do porównywania magazynów, przeglądania zmian i realizacji wdrożeń.

Stwórz potok

Aby utworzyć nowy pipeline, zobacz jak zacząć z pipeline'ami wdrożeniowymi , aby tworzyć i zarządzać pipeline'em wdrożeniowym.

Compare

Zawsze weryfikuj i porównuj zmiany w T-SQL przed wdrożeniem. Potoki wdrożenia oferują prosty ekran Compare w portalu Fabric do przeglądu dotkniętych obiektów magazynu.

Przeglądanie zmian pozwala zespołom zweryfikować gotowość przed promowaniem aktualizacji do środowisk downstream. Proces ten jest szczególnie cenny w sytuacjach korporacyjnych, gdzie wiele zespołów uczestniczy w rozwoju magazynu.

Fabric wykorzystuje DacFx (Data-tier Application Framework) do przeprowadzenia tego porównania. DacFx buduje deklaratywny model schematu obu środowisk i identyfikuje różnice, takie jak nowe tabele, zmodyfikowane kolumny, ograniczenia czy zmiany zależności. Ponieważ to porównanie opiera się na modelu, dokładnie odzwierciedla to, co dzieje się podczas wdrożenia.

Important

Aby porównanie schematów działało, magazyn musi istnieć zarówno w przestrzeni roboczej źródłowej, jak i docelowej. Jeśli docelowy workspace nie zawiera jeszcze magazynu, najpierw stwórz lub wdroż początkową wersję bazową.

Note

Jeśli klauzula COLLATE kolumny wyraźnie określa tę samą kolację co domyślna sortacja magazynu, porównanie nie pokazuje jej jako różnicy, ponieważ jest to równoważne z brakiem określenia sortowania. Tylko kolumny, których sortowanie różni się od domyślnego sortowania magazynu, pojawiają się w porównaniach, gdy ich sortowanie się zmienia. Więcej informacji i przykład można znaleźć w artykule Troubleshoot Git integration for Fabric Data Warehouse development.

Przed wdrożeniem jakichkolwiek zmian skorzystaj z możliwości porównania pipeline'u wdrożenia, aby przeanalizować różnice między przestrzeniami roboczymi magazynu źródłowego i docelowego.

Zrzut ekranu w portalu Fabric z wykorzystaniem pipeline do porównania magazynu w dwóch różnych przestrzeniach roboczych.

Wybierz Porównaj i zobacz zmiany, na przykład utworzenie nowego widoku w magazynie:

Zrzut ekranu porównania magazynu w jednym stanie z magazynem w innym.

Deploy

Po zakończeniu porównania i weryfikacji zmian możesz wdrożyć bezpośrednio z interfejsu pipeline, wybierając produkty magazynowe do promocji.

Zrzut ekranu z portalu Fabric z ekranu Deploy na ten etap w pipeline.

Podczas wdrożenia potoki wdrożeniowe wykorzystują DacFx do generowania inteligentnego planu wdrożenia opartego na różnicach w schematach. Fabric stosuje tylko wymagane zmiany, aby zsynchronizować docelową przestrzeń roboczą ze źródłem pracy.

Zrzut ekranu z portalu Fabric z udanego wdrożenia.

Konfiguracje wdrożenia

Fabric pipeline'y wdrożeniowe wykorzystują technologię wdrożenia DacFx z konfiguracjami dostosowanymi specjalnie do Fabric Data Warehouse. Te konfiguracje zapewniają niezawodne sukcesy wdrożeń, jednocześnie zgodnie z możliwościami platformy Fabric i praktykami operacyjnymi.

  • Blokowanie możliwej utraty danych (BlockOnPossibleDataLoss = true) – Fabric Data Warehouse zapobiega wdrożeniam, które mogłyby spowodować obcięcie, utratę lub utratę danych użytkownika. To ustawienie zapobiega przenikaniu przez CI/CD w zakresie wysokiego ryzyka zmian schematów i sprawia, że ryzyko utraty danych jest decyzją świadomą, a nie cichym niewypłacalnym.

  • Pomijanie skryptów opcji na poziomie bazy danych (ScriptDatabaseOptions = false) – Fabric zarządza wieloma ustawieniami na poziomie bazy danych na poziomie platformy. Instrukcje skryptowe, takie jak podczas ALTER DATABASE ... SET wdrożenia, mogą prowadzić do awarii lub niezamierzonego dryfu konfiguracji. Potoki wdrożeniowe unikają propagowania tych ustawień, dzięki czemu wdrożenia schematów koncentrują się wyłącznie na obsługiwanych obiektach magazynu.

  • Umożliwienie egzekwowania przez silnik dla replikowanych obiektów (DoNotAlterReplicatedObjects = false) – Magazyny często korzystają z wewnętrznych mechanizmów replikacji, na przykład w scenariuszach łączenia lub synchronizacji. Zamiast blokować przedwczesne zmiany schematu, potoki wdrożeniowe pozwalają silnikowi Fabric określić, czy zmiana jest dozwolona. Takie podejście zapobiega niepotrzebnym niepowodzeniom wdrożenia, jednocześnie zachowując zabezpieczenia platformy.

  • Wyłączanie transakcyjnego skryptowania DDL (IncludeTransactionalScripts = false) – Magazyny obecnie nie obsługują opakowania skryptów DDL wewnątrz transakcji. Potoki wdrożeniowe generują więc skrypty nietransakcyjne, aby zapewnić pomyślne zakończenie wdrożeń.

  • Wykorzystanie inteligentnych domyślnych ustawień dla ewolucji schematu (GenerateSmartDefaults = true) – Gdy zmiany schematu wprowadzają bardziej rygorystyczne ograniczenia, takie jak konwersja kolumn do nullowalnych na niezerowe lub dodawanie nowych kolumn z domyślnymi ograniczeniami, pipeline'y wdrożeniowe mogą automatycznie wypełniać wartości bazowe. Takie podejście pomaga wdrożeniom odnieść sukces bez konieczności ręcznego przygotowywania danych i zmniejsza tarcia operacyjne podczas ewolucji schematu.

  • Wyłączenie zasad bezpieczeństwa z wdrożenia (ExcludeObjectTypes = Logins, Users, Permissions) - Obiekty bezpieczeństwa są celowo wyłączane z wdrożeń magazynowych. Promowanie logowania, użytkowników lub uprawnień w różnych środowiskach może wprowadzać ryzyko bezpieczeństwa lub konflikty specyficzne dla środowiska. Zamiast tego zarządzaj kontrolą dostępu osobno, poprzez zarządzanie środowiskiem lub procesy zarządzania tożsamością.

  • Nie upuszczanie obiektów spoza źródła (DropObjectsNotInSource = false) – Obiekty istniejące w celu, ale nie w źródle, nie są automatycznie usuwane. Magazyny, które utrzymują produkcję idealnie synchronizowaną z kontrolą wersyjną, mogą uznać to za ograniczające.

Ograniczenia

  • Domyślnie system blokuje tabelę wypadającym. Proces wdrażania nie usuwa automatycznie obiektów, które istnieją w celu, ale nie są w źródle. Ten projekt ogranicza przypadkową utratę danych i zapobiega nieoczekiwanym usuwaniom danych podczas produkcji.
  • Udane wdrożenie nie zawsze oznacza, że każda wymagana zmiana została zastosowana. Wdrożenie może zgłaszać sukces nawet wtedy, gdy pominie żądaną akcję w tabeli, ponieważ dropy tabel są domyślnie blokowane. W takim przypadku operacja wdrożenia zostaje zakończona, ale cel nadal może oddalić się od kontroli źródła, dopóki wyraźnie nie naprawisz brakującej zmiany.
  • Potoki wdrożeniowe Fabric nie obsługują elementu punktu końcowego analizy SQL. Obecnie proces wdrażania stawia bezpieczeństwo ponad ścisłą parzystość źródeł, nie porzucając obiektów istniejących tylko w celu.
  • Zależności między elementami, sekwencjonowanie elementów i luki synchronizacji między punktem końcowym analizy SQL i magazynem mają wpływ na przepływy pracy potoków wdrażania Fabric.
  • Dzięki pipeline'om Fabric Deployment możesz wdrożyć tylko jeden magazyn naraz. Wybór powiązanych elementów do wdrożenia nie jest obsługiwany.

Rozwiązywanie problemów dotyczących integracji z platformą Git

W przypadku ograniczeń specyficznych dla integracji z Gitem, zobacz Ograniczenia w integracji z Gitem w artykule o integracji z Gitem.

Aby znaleźć rozwiązania problemów, obejścia i poprawki typowych problemów z integracją Git w Fabric Data Warehouse development, zobacz Troubleshoot Git integration for Fabric Data Warehouse development.