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:✅ Magazyn w systemie Microsoft Fabric
Ważna
Ta funkcja jest dostępna w wersji zapoznawczej.
Skrypty przed wdrożeniem i po wdrożeniu umożliwiają uruchamianie niestandardowych poleceń Transact-SQL w ramach wdrażania magazynu w Fabric. Użyj skryptów przed wdrożeniem i po wdrożeniu, aby wyczyścić dane, dane referencyjne inicjujące lub zastosować zabezpieczenia SQL, które nie są wyrażone w schemacie magazynu.
W Fabric Data Warehouse skrypt przed wdrożeniem lub po wdrożeniu jest udostępnionym zapytaniem SQL. Te skrypty można utworzyć w projekcie bazy danych SQL i wyznaczyć je z portalu Fabric. Oznaczenie jest przechowywane jako metadane na poziomie hurtowni i zatwierdzane w systemie kontroli wersji jako część pliku .sqlproj hurtowni, dzięki czemu przechodzi bez zmian przez Git i potoki wdrażania bez konieczności ręcznego ponownego stosowania.
W tym artykule wyjaśniono, jakie są skrypty przed wdrożeniem i po wdrożeniu, jak je skonfigurować w portalu Fabric, jak zachowują się przy użyciu potoków kontroli źródła i wdrażania oraz jak tworzyć je w Visual Studio Code i SQL Server Management Studio (SSMS).
Ważna
Przed opublikowaniem należy zawsze przeglądać skrypty i ustawienia wdrożenia. Najpierw przetestuj w środowiskach deweloperskich i testowych, aby zapobiec niezamierzonej utracie danych.
Co to są skrypty przed wdrożeniem i po wdrożeniu?
Gdy połączysz obszar roboczy z systemem kontroli źródła, każdy magazyn będzie widoczny jako projekt bazy danych SQL: skrypt objęty kontrolą źródła zawierający obiekty SQL tworzące schemat magazynu (tabele, widoki, procedury składowane i funkcje). Każdy obiekt jest przechowywany jako .sql plik, który zawiera składnię języka definicji danych (DDL), taką jak CREATE TABLE. Obiekty opisują żądany stan schematu, a proces wdrażania porównuje żądany stan z magazynem docelowym i generuje różnicowy skrypt języka T-SQL, który tworzy, zmienia lub usuwa obiekty, aby obiekt docelowy był zgodny z projektem.
Skrypty przed wdrożeniem i po wdrożeniu rozszerzają ten proces o kod Transact-SQL uruchamiany przed wdrożeniem schematu i po nim:
- Skrypt przed wdrożeniem jest uruchamiany przed zastosowaniem planu wdrożenia schematu.
- Skrypt po wdrożeniu jest uruchamiany po zakończeniu planu wdrożenia schematu.
Skrypt przedwdrożeniowy lub powdrożeniowy jest jednym ze współdzielonych zapytań przechowywanych w folderze Zapytania magazynu. Magazyn obsługuje co najwyżej jeden skrypt przed wdrożeniem i jeden skrypt po wdrożeniu. Oznaczenie jest przechowywane jako metadane na poziomie magazynu, a nie duplikowanie zawartości skryptu, dlatego dodaje niewielkie obciążenie magazynu.
Ponieważ każdy wyznaczony skrypt jest uruchamiany za każdym razem, gdy magazyn jest wdrażany, utwórz Transact-SQL jako idempotentny (bezpieczny do wielokrotnego uruchamiania).
Wskazówka
Gdy skrypt jest idempotentny, możesz go uruchamiać wielokrotnie bez problemów. Możesz wdrażać do wielu baz danych bez konieczności wcześniejszego ustalania ich statusu.
Typowe przypadki użycia
- Zarządzanie odwołaniami i statycznych danych: wstawianie, aktualizowanie lub usuwanie wierszy z tabel odnośników, konfiguracji lub odwołań po wdrożeniu schematu.
- Oczyszczanie danych: usuń nieaktualne lub tymczasowe dane przed zastosowaniem zmian schematu lub po ich zastosowaniu.
- Konfiguracja środowiska: zastosuj ustawienia lub zainicjuj stan, który różni się między środowiskami deweloperskimi, testowymi i produkcyjnymi.
- Inicjowanie pipeline’u opartego na metadanych: przygotuj stan hurtowni wymagany przez kolejne etapy pipeline’u.
-
Zabezpieczenia SQL: dane tabeli magazynu i funkcje zabezpieczeń SQL, takie jak role, użytkownicy i
GRANT/DENYuprawnienia, nie są uwzględniane w projekcie bazy danych SQL. Użyj skryptu po wdrożeniu, aby odtworzyć te obiekty po wdrożeniu, w tym różnice między środowiskami testowymi i produkcyjnymi. Przykłady można znaleźć w temacie Example post-deployment script for SQL security (Przykładowy skrypt po wdrożeniu dla zabezpieczeń SQL).
Struktura i składnia pliku projektu SQL
Projekt magazynu danych SQL odwołuje się do skryptów wykonywanych przed wdrożeniem i po wdrożeniu w pliku projektu (.sqlproj) przy użyciu typów elementów PreDeploy i PostDeploy. Każdy wpis wskazuje pojedynczy udostępniony plik zapytania w projekcie.
Poniższy przykład określa pre-deployment.sql jako skrypt przed wdrożeniem i post-deployment.sql jako skrypt po wdrożeniu:
<ItemGroup>
<PreDeploy Include="pre-deployment.sql" />
<PostDeploy Include="post-deployment.sql" />
</ItemGroup>
Ważna
Fabric Data Warehouse obsługuje tylko jeden plik skryptu przed wdrożeniem i pojedynczy plik skryptu po wdrożeniu. Komponowanie skryptu z wielu plików — na przykład przy użyciu polecenia SQLCMD :r w celu odwołania się do innych plików — nie jest obsługiwane. Jeśli plik .sqlproj zawiera wiele wpisów przed wdrożeniem lub po wdrożeniu, aktualizacja usługi Git zakończy się niepowodzeniem.
Przykładowy skrypt po wdrożeniu dla zabezpieczeń SQL
Ponieważ funkcje zabezpieczeń SQL nie są przechwytywane w projekcie bazy danych SQL, skrypt po wdrożeniu jest typowym sposobem ich odtworzenia po wdrożeniu magazynu. Napisz skrypt, aby można go było uruchomić w każdym wdrożeniu.
Poniższy przykład tworzy niestandardową rolę bazy danych o nazwie DataReaders i przyznaje SELECT uprawnienia do schematu dbo .
-- post-deployment.sql
-- Recreate a role and grant permissions after deployment.
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'DataReaders')
BEGIN
CREATE ROLE DataReaders;
END;
GO
GRANT SELECT ON SCHEMA::dbo TO DataReaders;
GO
Note
Fabric Data Warehouse nie obsługuje każdej instrukcjiTransact-SQL dostępnej w SQL Server. Upewnij się, że instrukcje w Twoich skryptach są obsługiwane przez Fabric Data Warehouse.
Konfigurowanie skryptów przed wdrożeniem i po wdrożeniu w portalu Fabric
W portalu Fabric należy wyznaczyć istniejące udostępnione zapytanie jako skrypt przed wdrożeniem lub po wdrożeniu. Można to zrobić z poziomu Eksplorator obiektów lub z Ustawień elementu magazynu.
Nie można przypisać zapytania współdzielonego jednocześnie jako skryptu przed wdrożeniem i jako skryptu po wdrożeniu.
Z Eksploratora obiektów
- W edytorze magazynu rozwiń folder Queries w Eksplorator obiektów.
- Kliknij prawym przyciskiem myszy udostępnione zapytanie, którego chcesz użyć.
- Jeśli to konieczne, przenieś zapytanie z Moje zapytania do zapytania współdzielone.
- Wybierz Ustaw skrypty wdrożenia. Ta akcja powoduje przejście do okienka ustawień elementu.
- W polach skryptu wstępnego iskryptu po wdrożeniu wybierz Wybierz skrypt.
- Wybierz opcję Ustaw zapytanie jako skrypt przed/po wdrożeniu , a następnie wybierz wspólne zapytanie dla każdego z nich. Każda lista rozwijana wyświetla wszystkie współdzielone zapytania w hurtowni danych.
Z ustawień elementu
- Otwórz ustawienia magazynu.
- Przejdź do sekcji CI/CD .
- W polach skryptu wstępnego iskryptu po wdrożeniu wybierz Wybierz skrypt.
- Wybierz opcję Ustaw zapytanie jako skrypt przed/po wdrożeniu , a następnie wybierz wspólne zapytanie dla każdego z nich. Każde rozwijane menu zawiera listę wszystkich udostępnionych zapytań w magazynie.
Wybrane opcje są przechowywane jako metadane na poziomie magazynu i są synchronizowane między Eksplorator obiektów a ustawieniami elementów.
Jak zachowują się skrypty przedwdrożeniowe i powdrożeniowe podczas wdrażania
Integracja z usługą Git
Po połączeniu obszaru roboczego z repozytorium Git oznaczenia przed wdrożeniem i po wdrożeniu są serializowane do pliku magazynu .sqlproj podczas zatwierdzania. Po zaktualizowaniu magazynu z repozytorium Git platforma Fabric stosuje zmiany w magazynie na żywo i uruchamia skrypty w następującej kolejności:
- Skrypt przed wdrożeniem jest uruchamiany przed zastosowaniem zmian schematu.
- Zostanie zastosowany plan wdrożenia schematu.
- Skrypt po wdrożeniu jest uruchamiany po zakończeniu zmian schematu.
Oznaczenia w obie strony w usłudze Git: konfigurowanie skryptu w portalu i zatwierdzanie go lub tworzenie go w .sqlproj obszarze roboczym i aktualizowanie go powoduje spójny wynik. Powtarzające się zatwierdzenia i aktualizacje nie duplikują ani nie tracą konfiguracji. Ponieważ dozwolone jest tylko jedno wstępne wdrożenie i jeden skrypt po wdrożeniu, konfiguracja utworzona w usłudze Git zastępuje wszelkie istniejące oznaczenia w magazynie podczas aktualizacji.
Za pomocą potoków wdrażania
Potoki wdrożeniowe wykorzystują oznaczenia przed i po wdrożeniu podczas promowania magazynu na etapach rozwoju, testów i produkcji . Wyznaczone skrypty są wykonywane deterministycznie w każdym środowisku docelowym, dzięki czemu można ich używać do stosowania konfiguracji środowiska lub ponownego stosowania zabezpieczeń SQL w miarę przemieszczania się zawartości między etapami.
W obszarach roboczych bez kontroli źródła
Definicja elementu magazynu zawiera oznaczenia przed wdrożeniem i po wdrożeniu nawet wtedy, gdy obszar roboczy nie jest połączony z kontrolą źródła. Eksportowanie magazynu obejmuje konfigurację i importowanie jej przywraca konfigurację bez zmian.
Tworzenie skryptów przed wdrożeniem i po wdrożeniu w projekcie bazy danych SQL
Zamiast portalu Fabric można tworzyć skrypty przed wdrożeniem i po wdrożeniu bezpośrednio w projekcie bazy danych SQL magazynu przy użyciu rozszerzenia SQL Database Projects w Visual Studio Code lub zintegrowanego środowiska projektów SQL w SQL Server Management Studio. Konfiguracja jest wyświetlana w portalu Fabric — zarówno w Eksplorator obiektów, jak i w ustawieniach elementu — po następnej aktualizacji usługi Git.
Visual Studio Code
- Zainstaluj rozszerzenie SQL Database Projects w Visual Studio Code.
- Otwórz projekt bazy danych SQL dla magazynu. Jeśli obszar roboczy jest połączony z usługą Git, sklonuj repozytorium, a następnie otwórz folder projektu magazynu.
- W widoku Projekty bazy danych kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Dodaj skrypt przed wdrożeniem lub Dodaj skrypt po wdrożeniu.
- Podaj nazwę skryptu bez rozszerzenia pliku. Plik skryptu jest dodawany do projektu i otwierany w edytorze.
- Dodaj Transact-SQL do skryptu i zapisz plik. Upewnij się, że plik jest zapisany w folderze
.sharedqueriesna następną aktualizację Gita. - Zatwierdź i prześlij zmiany do repozytorium Git, a następnie zaktualizuj obszar roboczy z systemu kontroli wersji, aby zastosować konfigurację.
SQL Server Management Studio
- Użyj programu SQL Server Management Studio w wersji 22 lub nowszej, który zawiera obsługę projektów SQL Database.
- Otwórz projekt bazy danych SQL dla magazynu.
- W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Dodaj>skrypt. Wybierz pozycję Skrypt przed wdrożeniem lub Skrypt po wdrożeniu.
- Plik skryptu jest dodawany do projektu i otwierany w edytorze zapytań.
- Dodaj Transact-SQL do skryptu i zapisz plik. Upewnij się, że zapisujesz plik w folderze
.sharedqueriesna następną aktualizację Gita. - Zatwierdź i prześlij zmiany do repozytorium Git, a następnie zaktualizuj obszar roboczy z systemu kontroli wersji, aby zastosować konfigurację.
Bezpośrednie edytowanie pliku projektu
W dowolnym narzędziu można określić skrypt, edytując plik .sqlproj i dodając pojedynczy element PreDeploy lub PostDeploy do elementu ItemGroup:
<ItemGroup>
<PreDeploy Include="./sharedqueries/pre-deployment.sql" />
<PostDeploy Include="./sharedqueries/post-deployment.sql" />
</ItemGroup>
Migrowanie z istniejących projektów SQL
Jeśli zmigrujesz element .sqlproj z SQL Server Data Tools (SSDT) lub programu Visual Studio, który już zawiera wpisy <PreDeploy> i <PostDeploy>, proces importu rozpozna te wpisy i zmapuje je do konfiguracji przedwdrożeniowej i powdrożeniowej w usłudze Fabric. Ponieważ Fabric obsługuje tylko jeden skrypt przed wdrożeniem i jeden po wdrożeniu, przed zaimportowaniem upewnij się, że projekt zawiera co najwyżej jeden wpis każdego typu.
Uwagi i ograniczenia
- Magazyn obsługuje tylko jeden skrypt przed wdrożeniem i pojedynczy skrypt po wdrożeniu. Nie obsługuje wielu plików dla jednego skryptu.
- Nie można przypisać tego samego udostępnionego zapytania zarówno jako skryptu przed wdrożeniem, jak i skryptu po wdrożeniu.
- Jeśli usuniesz udostępnione zapytanie wyznaczone jako skrypt przed wdrożeniem lub po wdrożeniu, odpowiednie oznaczenie zostanie automatycznie wyczyszczone.
- Jeśli zmienisz udostępnione zapytanie oznaczone jako skrypt przed wdrożeniem lub po wdrożeniu na zapytanie użytkownika, odpowiednie oznaczenie zostanie automatycznie usunięte.
- Skrypty przed wdrożeniem i po wdrożeniu są uruchamiane w każdym wdrożeniu magazynu. Skrypty Transact-SQL powinny być idempotentne, dzięki czemu powtarzające się przebiegi nie kończą się niepowodzeniem ani nie tworzą zduplikowanych obiektów.
- Skrypty przed wdrożeniem i po wdrożeniu nie są weryfikowane względem modelu bazy danych w czasie kompilacji. Błędy w skryptach ujawniają się podczas wdrażania, a awaria skryptu zatrzymuje wdrażanie.
- Można użyć tylko Transact-SQL obsługiwanych w Fabric Data Warehouse.
- Tożsamość używana do uruchomienia wdrożenia musi mieć uprawnienia wymagane do wykonania treści skryptu.