Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostęp do materiałów referencyjnych dla skryptu obiektów narzędzi programu SQL Server, w tym składników, parametrów i rozwiązywania problemów.
Przegląd
Skrypt instaluje wersjonowane procedury składowane i funkcje narzędziowe, aby skonfigurować bazę danych SQL Server na potrzeby pozyskiwania danych w Lakeflow Connect. Zadania konfiguracji obejmują:
- Zarządzanie uprawnieniami
- Konfiguracja śledzenia zmian (CT)
- Zmienianie konfiguracji przechwytywania danych (CDC)
- Wykrywanie platformy
- Obsługa tworzenia obiektów WDL na potrzeby śledzenia zmian schematu
Informacje o wersji
- Bieżąca wersja: 1.1
- Wersja główna: 1
- Wersja mniejsza: 1
- Funkcja wersji:
lakeflowUtilityVersion_1_1()
Najważniejsze składniki
Functions
lakeflowDetectPlatform()
Wykrywa typ platformy programu SQL Server.
Zwraca: 'AZURE_SQL_DATABASE', 'AZURE_SQL_MANAGED_INSTANCE', 'AMAZON_RDS', 'ON_PREMISES', lub 'UNKNOWN'
lakeflowUtilityVersion_1_1()
Wykrywa wersję obiektów narzędziowych.
Zwroty: '1.1'
Procedury przechowywane
lakeflowFixPermissions
Przyznaje użytkownikom wymagane uprawnienia do operacji pozyskiwania.
Parametry:
| Parameter | Description |
|---|---|
@User (NVARCHAR(128)) |
To jest wymagane. Nazwa użytkownika, któremu należy udzielić uprawnień |
@Tables (NVARCHAR(MAX)) |
Opcjonalny. Steruje zakresem uprawnień na poziomie tabeli |
@Tables opcje parametrów:
| Option | Description |
|---|---|
NULL |
Przyznawanie tylko uprawnień na poziomie systemu (ustawienie domyślne) |
'ALL' |
Udzielanie uprawnień do wszystkich tabel użytkowników w bazie danych |
'SCHEMAS:Schema1,Schema2' |
Udzielanie uprawnień do wszystkich tabel w określonych schematach |
'Schema.Table1,Schema.Table2' |
Udzielanie uprawnień do określonych tabel |
| Obsługa symboli wieloznacznych | Przykład: 'Sales.*,HR.Employees' |
Co to robi:
- Przyznaje
SELECTuprawnienia do wymaganych widoków systemowych (sys.objects,sys.tables,sys.columns, itd.) - Dotacje
EXECUTEna systemowe procedury składowane (sp_tables,sp_columns_100itp.) - Opcjonalnie przyznaje
SELECTdla tabel użytkownika na podstawie parametru@Tables - Obsługuje różnice specyficzne dla platformy (Azure SQL Database, Wystąpienie zarządzane, RDS, lokalnie)
lakeflowSetupChangeTracking
Umożliwia śledzenie zmian na poziomach bazy danych i tabel przy użyciu obsługi języka DDL.
Parametry:
| Parameter | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Opcjonalny. Tabele umożliwiające włączenie funkcji CT |
@User (NVARCHAR(128)) |
Opcjonalny. Użytkownik musi udzielić uprawnień |
@Retention (NVARCHAR(50)) |
Opcjonalny. Okres przechowywania CT (wartość domyślna: '2 DAYS') |
@Mode (NVARCHAR(10)) |
Opcjonalny.
'INSTALL' (wartość domyślna) lub 'CLEANUP' |
@Tables opcje parametrów:
| Option | Description |
|---|---|
NULL |
Konfigurowanie tylko obsługi protokołu CT na poziomie bazy danych i języka DDL (bez włączania tabeli) |
'ALL' |
Włącz CT we wszystkich tabelach użytkowników z kluczami podstawowymi |
'SCHEMAS:Schema1,Schema2' |
Włącz funkcję CT w tabelach w zdefiniowanych schematach |
'Schema.Table1,Schema.Table2' |
Włączanie funkcji CT w określonych tabelach |
| Obsługa symboli wieloznacznych | Przykład: 'Sales.*,HR.Employees' |
Co to robi:
- Włącza śledzenie zmian na poziomie bazy danych, jeśli nie jest jeszcze włączone
- Tworzy wersjonowaną tabelę inspekcji DDL (
lakeflowDdlAudit_1_2) - Tworzy wyzwalacz inspekcji DDL w celu przechwytywania zmian schematu
- Włącza funkcję CT w określonych tabelach (pomija tabele bez kluczy podstawowych)
- Przyznaje
VIEW CHANGE TRACKINGuprawnienia określonemu użytkownikowi -
CLEANUPtryb: Usuwa obiekty obsługi DDL
Ważne zachowania:
- Automatycznie pomija tabele bez kluczy podstawowych (zalecane jest użycie usługi CDC)
- Inteligentne odnajdywanie za pomocą parametru
'ALL' - Idempotentne: Bezpieczne uruchamianie wiele razy
lakeflowSetupChangeDataCapture
Włącza usługę CDC na poziomach bazy danych i tabel z obsługą języka DDL i zarządzaniem wystąpieniami przechwytywania.
Parametry:
| Parameter | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Opcjonalny. Tabele umożliwiające włączenie usługi CDC na |
@User (NVARCHAR(128)) |
Opcjonalny. Użytkownik musi udzielić uprawnień |
@Mode (NVARCHAR(10)) |
Opcjonalny.
'INSTALL' (wartość domyślna) lub 'CLEANUP' |
@Tables opcje parametrów:
| Option | Description |
|---|---|
NULL |
Konfigurowanie tylko usługi CDC i DDL na poziomie bazy danych |
'ALL' |
Włączanie usługi CDC we wszystkich tabelach użytkowników |
'SCHEMAS:Schema1,Schema2' |
Włącz CDC w tabelach w określonych schematach |
'Schema.Table1,Schema.Table2' |
Włączanie usługi CDC dla określonych tabel |
Co to robi:
- Włącza usługę CDC na poziomie bazy danych, jeśli nie została jeszcze włączona
- Tworzy tabelę śledzenia instancji przechwytywania (
lakeflowCaptureInstanceInfo_1_2) - Tworzy procedury pomocnicze do zarządzania wystąpieniami przechwytywania:
lakeflowDisableOldCaptureInstance_1_2lakeflowMergeCaptureInstances_1_2lakeflowRefreshCaptureInstance_1_2
- Tworzy
ALTER TABLEwyzwalacz do automatycznej obsługi zmian schematu - Włącza usługę CDC w określonych tabelach
- Przyznaje wymagane uprawnienia CDC do określonego użytkownika
-
CLEANUPTryb: Usuwa wszystkie objekty wspierające DDL CDC
Ważne zachowania:
- Działa z tabelami, które mają klucze podstawowe lub ich nie mają
- Automatycznie zarządza rotacją instancji przechwytywania w przypadku zmian schematu
- Idempotentne: Bezpieczne uruchamianie wiele razy
Wsparcie platform
- Lokalny program SQL Server (engineEdition 1-4)
- Azure SQL Database (engineEdition 5)
- Azure SQL Managed Instance (EngineEdition 8)
- Usługa Amazon RDS dla programu SQL Server (wykryta przez wzorzec nazwy serwera)
Wymagania wstępne
- Użytkownik wykonujący skrypt musi być członkiem
db_ownerroli - W przypadku konfiguracji CT: śledzenie zmian musi być dostępne na platformie
- W przypadku konfiguracji usługi CDC: przechwytywanie zmian danych musi być dostępne na platformie
Instrukcje instalacji
Pobieranie i uruchamianie skryptu
Pobierz skrypt: utility_script.sql
Uruchamianie skryptu
- Otwórz pobrany skrypt w programie SQL Server Management Studio (SSMS), Azure Data Studio lub preferowanym kliencie SQL.
- Połącz się z instancją SQL Server.
- Upewnij się, że masz połączenie z docelową bazą danych, w której chcesz zainstalować obiekty narzędzi.
- Uruchom skrypt.
Weryfikowanie instalacji
-- Verify installation SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion; SELECT dbo.lakeflowDetectPlatform() AS Platform;
Alternatywna: uruchom polecenie przy użyciu wiersza polecenia
Jeśli wolisz użyć sqlcmd:
sqlcmd -S YourServerName -d YourDatabase -E -i lakeflow_utility_objects.sql
Uwaga / Notatka
Zastąp YourServerName i YourDatabase rzeczywistymi nazwami swojego serwera i bazy danych. Użyj -U username -P password zamiast -E , jeśli nie używasz uwierzytelniania systemu Windows.
Przykład: Napraw uprawnienia (tylko system)
-- Grant system permissions only
EXEC dbo.lakeflowFixPermissions
@User = 'myuser';
Przykład: naprawić uprawnienia (z dostępem do tabeli)
-- Grant system permissions plus access to all tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'ALL';
-- Grant permissions for specific schemas
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'SCHEMAS:Sales,HR,Production';
-- Grant permissions for specific tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'Sales.Orders,HR.Employees';
Przykłady: Konfiguracja śledzenia zmian
Tylko na poziomie bazy danych
-- Setup CT infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = NULL,
@User = 'myuser';
Włącz we wszystkich tabelach
-- Enable CT on all user tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
Konfiguracja oparta na schemacie
-- Enable CT on all tables in specific schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'myuser',
@Retention = '3 DAYS';
Określone tabele
-- Enable CT on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'dbo.Table1,Sales.Orders,HR.Employees',
@User = 'myuser';
Przykłady: konfiguracja usługi CDC
Tylko na poziomie bazy danych
-- Setup CDC infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = NULL,
@User = 'myuser';
Włącz we wszystkich tabelach
-- Enable CDC on all user tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Określone tabele
-- Enable CDC on specific tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'dbo.Table1,Sales.Orders',
@User = 'myuser';
Przykład: Podejście hybrydowe
-- Step 1: Enable CT on tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
-- Step 2: Enable CDC on remaining tables (without primary keys)
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Przykład: Oczyszczanie
-- Remove CT DDL support objects
EXEC dbo.lakeflowSetupChangeTracking
@Mode = 'CLEANUP';
-- Remove CDC DDL support objects
EXEC dbo.lakeflowSetupChangeDataCapture
@Mode = 'CLEANUP';
Utworzone obiekty obsługi języka DDL
Następujące obiekty wsparcia DDL są tworzone w zależności od tego, czy używasz śledzenia zmian, czy CDC.
Śledzenie zmian
| Typ obiektu | Name | Description |
|---|---|---|
| Tabela | lakeflowDdlAudit_1_2 |
Przechowuje historię zmian DDL |
| Wyzwalacz | lakeflowDdlAuditTrigger_1_2 |
Przechwytuje ALTER TABLE zdarzenia |
Dla CDC
| Typ obiektu | Name | Description |
|---|---|---|
| Tabela | lakeflowCaptureInstanceInfo_1_2 |
Śledzi wystąpienia przechwytywania |
| Procedure | lakeflowDisableOldCaptureInstance_1_2 |
Usuwa stare wystąpienie przechwytywania |
| Procedure | lakeflowMergeCaptureInstances_1_2 |
Łączy dane między instancjami |
| Procedure | lakeflowRefreshCaptureInstance_1_2 |
Tworzy nowe wystąpienie przechwytywania |
| Wyzwalacz | lakeflowAlterTableTrigger_1_2 |
Obsługuje zmiany schematu |
Ograniczenia śledzenia zmian
- Wymaga kluczy podstawowych: tabele bez kluczy podstawowych nie mogą używać śledzenia zmian.
- Skrypt automatycznie pomija tabele bez zestawów PKs i zaleca użycie usługi CDC.
Zachowanie specyficzne dla platformy
- Azure SQL Database: systemowe procedury składowane są domyślnie dostępne (nie są wymagane żadne
EXECUTEuprawnienia). - Ograniczony dostęp do widoków z zakresem serwera w usłudze Azure SQL Database, takich jak
sys.change_tracking_databases.
Ścieżka aktualizacji
- Skrypt automatycznie odrzuca wszystkie poprzednie wersje po uruchomieniu.
- Schemat przechowywania wersji:
objectName_majorVersion_minorVersion - Bieżące obiekty używają
_1_1sufiksu do śledzenia wersji.
Najlepsze rozwiązania
- Zawsze uruchamiaj jako
db_ownerlub użytkownika z równoważnymi uprawnieniami. - Najpierw przetestuj bazy danych nieprodukcyjnych.
- Użyj podejścia hybrydowego do kompleksowego pokrycia.
- Uruchom polecenie
lakeflowFixPermissionspo skonfigurowaniu, aby zapewnić odpowiedni dostęp użytkownika. - Rozważ okresy przechowywania na podstawie częstotliwości pozyskiwania.
Rozwiązywanie problemów
"Użytkownik wykonujący ten skrypt nie jest członkiem roli "db_owner"
Rozwiązanie: Wykonaj jako użytkownik z rolą db_owner
"Śledzenie zmian nie jest włączone w katalogu"
Rozwiązanie: Włącz ct na poziomie bazy danych lub pozwól, aby procedura obsłużyła ją automatycznie
"Przechwytywanie zmian danych nie jest włączone w wykazie"
Rozwiązanie: włącz usługę CDC na poziomie bazy danych lub pozwól, aby procedura obsłużyła ją automatycznie
"Tabele pominięte z powodu braku kluczy podstawowych"
Rozwiązanie: Zamiast tego użyj dla lakeflowSetupChangeDataCapture tych tabel
Integracja walidacji
Następujące obiekty narzędzi są weryfikowane przez strukturę weryfikacji języka Java:
| Object | Description |
|---|---|
SqlServerUtilityObjectsSetupValidator |
Weryfikuje instalację obiektów narzędziowych |
SqlServerChangeDataManagementSetupValidator |
Weryfikuje konfigurację CT/CDC |
SqlServerDdlSupportObjectsSetupValidator |
Sprawdza poprawność obiektów obsługi języka DDL |
SqlServerPermissionsSetupValidator |
Weryfikuje uprawnienia |
Uwagi dotyczące migracji
W przypadku uaktualniania ze starszych wersji obiektów obsługi DDL (z okresu przed erą obiektów narzędziowych):
- Skrypt automatycznie czyści starsze obiekty.
- Nie jest wymagane czyszczenie ręczne.
- Wersja 1.1 konsoliduje wszystkie funkcje w ujednolicone procedury.
Dodatkowe zasoby
- Przygotuj SQL Server do przetwarzania danych za pomocą skryptu narzędziowego
- Skonfiguruj Microsoft SQL Server dla potrzeby przetwarzania w Azure Databricks
- Wymagania użytkownika bazy danych programu Microsoft SQL Server
- Śledzenie zmian danych (SQL Server) w dokumentacji programu SQL Server
- Informacje o usłudze Change Tracking (SQL Server) w dokumentacji programu SQL Server
- Co to jest przechwytywanie danych zmian (CDC)? w dokumentacji programu SQL Server