Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Access-Referenzmaterial für das Skript für SQL Server-Hilfsobjekte, einschließlich Komponenten, Parametern und Problembehandlung.
Überblick
Das Skript installiert gespeicherte Prozeduren und Funktionen des versionsierten Hilfsprogramms, um Ihre SQL Server-Datenbank für die Aufnahme in Lakeflow Connect einzurichten. Zu den Setup-Aufgaben gehören:
- Berechtigungsverwaltung
- Setup der Änderungsnachverfolgung (CT)
- Ändern der Datenerfassungseinrichtung (CDC)
- Plattformerkennung
- DDL unterstützt die Objekterstellung für die Schemaänderungsnachverfolgung
Versionsinformationen
- Aktuelle Version: 1.1
- Hauptversion: 1
- Nebenversion: 1
- Version-Funktion:
lakeflowUtilityVersion_1_1()
Wichtige Komponenten
Funktionen
lakeflowDetectPlatform()
Erkennt den SQL Server-Plattformtyp.
Gibt zurück: 'AZURE_SQL_DATABASE', 'AZURE_SQL_MANAGED_INSTANCE', 'AMAZON_RDS', 'ON_PREMISES' oder 'UNKNOWN'
lakeflowUtilityVersion_1_1()
Erkennt die Version der Dienstobjekte.
Rückgabewert: '1.1'
Gespeicherte Prozeduren
lakeflowFixPermissions
Erteilt Benutzern erforderliche Berechtigungen für Datenaufnahmevorgänge.
Parameters:
| Parameter | Description |
|---|---|
@User (NVARCHAR(128)) |
Erforderlich. Benutzername, dem Berechtigungen erteilt werden sollen |
@Tables (NVARCHAR(MAX)) |
Wahlfrei. Steuert den Berechtigungsbereich auf Tabellenebene |
@Tables Parameteroptionen:
| Option | Description |
|---|---|
NULL |
Nur Berechtigungen auf Systemebene gewähren (Standard) |
'ALL' |
Erteilen von Berechtigungen für alle Benutzertabellen in der Datenbank |
'SCHEMAS:Schema1,Schema2' |
Erteilen von Berechtigungen für alle Tabellen in angegebenen Schemas |
'Schema.Table1,Schema.Table2' |
Erteilen von Berechtigungen für bestimmte Tabellen |
| Unterstützung für Wildcards | Beispiel: 'Sales.*,HR.Employees' |
Funktionsweise:
- Berechtigungen
SELECTfür erforderliche Systemansichten (sys.objects,sys.tables,sys.columns, usw.) - Finanzhilfen für gespeicherte Systemprozeduren
EXECUTE(sp_tables,sp_columns_100usw.) - Optional kann
SELECTauf Benutzertabellen basierend auf dem Parameter@Tablesgewährt werden - Behandelt plattformspezifische Unterschiede (Azure SQL-Datenbank, verwaltete Instanz, RDS, lokal)
lakeflowSetupChangeTracking
Ermöglicht die Änderungsnachverfolgung auf Datenbank- und Tabellenebene mit DDL-Unterstützung.
Parameters:
| Parameter | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Wahlfrei. Tabellen zum Aktivieren von CT on |
@User (NVARCHAR(128)) |
Wahlfrei. Benutzer, dem Berechtigungen erteilt werden sollen |
@Retention (NVARCHAR(50)) |
Wahlfrei. CT-Aufbewahrungszeitraum (Standard: '2 DAYS') |
@Mode (NVARCHAR(10)) |
Wahlfrei.
'INSTALL' (Standard) oder 'CLEANUP' |
@Tables Parameteroptionen:
| Option | Description |
|---|---|
NULL |
Einrichten der CT- und DDL-Unterstützung auf Datenbankebene (keine Tabellenaktivierung) |
'ALL' |
CT auf allen Benutzertabellen mit Primärschlüsseln aktivieren |
'SCHEMAS:Schema1,Schema2' |
Aktivieren von CT für Tabellen in angegebenen Schemas |
'Schema.Table1,Schema.Table2' |
Aktivieren von CT für bestimmte Tabellen |
| Unterstützung für Wildcards | Beispiel: 'Sales.*,HR.Employees' |
Funktionsweise:
- Aktiviert die Änderungsnachverfolgung auf Datenbankebene, wenn sie noch nicht aktiviert ist.
- Erstellt eine versionsierte DDL-Überwachungstabelle (
lakeflowDdlAudit_1_2) - Erstellt einen DDL-Audit-Trigger zum Erfassen von Schemaänderungen
- Aktiviert CT für angegebene Tabellen (überspringt Tabellen ohne Primärschlüssel)
- Erteilt
VIEW CHANGE TRACKINGberechtigungen für den angegebenen Benutzer -
CLEANUPmode: Entfernt DDL-Supportobjekte
Wichtige Verhaltensweisen:
- Automatisches Überspringen von Tabellen ohne Primärschlüssel (CDC wird für diese empfohlen)
- Intelligente Ermittlung mit dem
'ALL'Parameter - Idempotent: Sicher, mehrmals auszuführen
lakeflowSetupChangeDataCapture
Aktiviert CDC auf Datenbank- und Tabellenebene mit DDL-Unterstützung und Erfassungsinstanzverwaltung.
Parameters:
| Parameter | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Wahlfrei. Tabellen zum Aktivieren von CDC auf |
@User (NVARCHAR(128)) |
Wahlfrei. Benutzer, dem Berechtigungen erteilt werden sollen |
@Mode (NVARCHAR(10)) |
Wahlfrei.
'INSTALL' (Standard) oder 'CLEANUP' |
@Tables Parameteroptionen:
| Option | Description |
|---|---|
NULL |
Einrichten Sie die CDC- und DDL-Unterstützung auf Datenbankebene |
'ALL' |
Aktivieren von CDC für alle Benutzertabellen |
'SCHEMAS:Schema1,Schema2' |
Aktivieren von CDC für Tabellen in angegebenen Schemas |
'Schema.Table1,Schema.Table2' |
Aktivieren von CDC für bestimmte Tabellen |
Funktionsweise:
- Aktiviert CDC auf Datenbankebene, falls noch nicht aktiviert
- Erstellt eine Erfassungsinstanz-Überwachungstabelle (
lakeflowCaptureInstanceInfo_1_2) - Erstellt Hilfsprozeduren für die Aufzeichnungsinstanzverwaltung:
lakeflowDisableOldCaptureInstance_1_2lakeflowMergeCaptureInstances_1_2lakeflowRefreshCaptureInstance_1_2
- Erstellt einen Trigger für die
ALTER TABLEautomatische Behandlung von Schemaänderungen - Aktiviert CDC für angegebene Tabellen
- Erteilt dem angegebenen Benutzer erforderliche CDC-Berechtigungen.
-
CLEANUPmodus: Entfernt alle CDC-DDL-Unterstützungsobjekte.
Wichtige Verhaltensweisen:
- Funktioniert mit Tabellen mit oder ohne Primärschlüssel
- Behandelt automatisch die Rotation der Aufzeichnungsinstanz bei Änderungen am Schema.
- Idempotent: Sicher, mehrmals auszuführen
Plattformunterstützung
- Lokaler SQL-Server (EngineEdition 1-4)
- Azure SQL-Datenbank (EngineEdition 5)
- Azure SQL Managed Instance (EngineEdition 8)
- Amazon RDS für SQL Server (vom Servernamenmuster erkannt)
Voraussetzungen
- Der Benutzer, der das Skript ausführt, muss Mitglied der
db_ownerRolle sein. - Für die CT-Einrichtung: Die Änderungsverfolgung muss auf der Plattform verfügbar sein.
- Für das CDC-Setup muss Change Data Capture auf der Plattform verfügbar sein.
Installationsanweisungen
Herunterladen und Ausführen des Skripts
Herunterladen des Skripts: utility_script.sql
Ausführen des Skripts
- Öffnen Sie das heruntergeladene Skript in SQL Server Management Studio (SSMS), Azure Data Studio oder Ihrem bevorzugten SQL-Client.
- Stellen Sie eine Verbindung mit Ihrer SQL Server-Instanz her.
- Vergewissern Sie sich, dass Sie mit der Zieldatenbank verbunden sind, in der Sie die Hilfsprogrammobjekte installieren möchten.
- Führen Sie das Skript aus.
Überprüfen der Installation
-- Verify installation SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion; SELECT dbo.lakeflowDetectPlatform() AS Platform;
Alternative: Ausführen mit der Befehlszeile
Wenn Sie sqlcmd verwenden möchten:
sqlcmd -S YourServerName -d YourDatabase -E -i lakeflow_utility_objects.sql
Hinweis
Ersetzen Sie YourServerName und YourDatabase durch die tatsächlichen Server- und Datenbanknamen. Verwenden Sie -U username -P password anstelle von -E, wenn Sie keine Windows-Authentifizierung verwenden.
Beispiel: Beheben von Berechtigungen (nur System)
-- Grant system permissions only
EXEC dbo.lakeflowFixPermissions
@User = 'myuser';
Beispiel: Beheben von Berechtigungen (mit Tabellenzugriff)
-- 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';
Beispiele: Einrichtung der Änderungsnachverfolgung
Nur Datenbankebene
-- Setup CT infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = NULL,
@User = 'myuser';
Aktivieren für alle Tabellen
-- Enable CT on all user tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
Schemabasiertes Setup
-- Enable CT on all tables in specific schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'myuser',
@Retention = '3 DAYS';
Bestimmte Tabellen
-- Enable CT on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'dbo.Table1,Sales.Orders,HR.Employees',
@User = 'myuser';
Beispiele: CDC-Setup
Nur Datenbankebene
-- Setup CDC infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = NULL,
@User = 'myuser';
Aktivieren für alle Tabellen
-- Enable CDC on all user tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Bestimmte Tabellen
-- Enable CDC on specific tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'dbo.Table1,Sales.Orders',
@User = 'myuser';
Beispiel: Hybrid-Ansatz
-- 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';
Beispiel: Bereinigung
-- Remove CT DDL support objects
EXEC dbo.lakeflowSetupChangeTracking
@Mode = 'CLEANUP';
-- Remove CDC DDL support objects
EXEC dbo.lakeflowSetupChangeDataCapture
@Mode = 'CLEANUP';
DDL-Unterstützungsobjekte erstellt
Die folgenden DDL-Unterstützungsobjekte werden erstellt, je nachdem, ob Sie die Änderungsnachverfolgung oder CDC verwenden.
Zur Änderungsnachverfolgung
| Objekttyp | Name | Description |
|---|---|---|
| Table | lakeflowDdlAudit_1_2 |
Speichert den DDL-Änderungsverlauf |
| Auslöser | lakeflowDdlAuditTrigger_1_2 |
ALTER TABLE Erfasst Ereignisse |
Für CDC
| Objekttyp | Name | Description |
|---|---|---|
| Table | lakeflowCaptureInstanceInfo_1_2 |
Erfasst Erfassungsinstanzen |
| Procedure | lakeflowDisableOldCaptureInstance_1_2 |
Entfernt alte Aufnahmeinstanz |
| Procedure | lakeflowMergeCaptureInstances_1_2 |
Führt Daten zwischen Instanzen zusammen. |
| Procedure | lakeflowRefreshCaptureInstance_1_2 |
Erstellt eine neue Aufnahmeinstanz |
| Auslöser | lakeflowAlterTableTrigger_1_2 |
Behandelt Schemaänderungen |
Einschränkungen für die Änderungsnachverfolgung
- Erfordert Primärschlüssel: Tabellen ohne Primärschlüssel können die Änderungsnachverfolgung nicht verwenden.
- Das Skript überspringt Automatisch Tabellen ohne PKs und empfiehlt stattdessen die Verwendung von CDC.
Plattformspezifisches Verhalten
- Azure SQL-Datenbank: Auf gespeicherte Systemprozeduren kann standardmäßig zugegriffen werden (keine
EXECUTEZuschüsse erforderlich). - Serverbasierte Ansichten: Beschränkter Zugriff in der Azure SQL-Datenbank für Ansichten wie
sys.change_tracking_databases.
Upgradepfad
- Das Skript legt automatisch alle vorherigen Versionen ab, wenn sie ausgeführt werden.
- Versionsverwaltungsschema:
objectName_majorVersion_minorVersion - Aktuelle Objekte verwenden
_1_1Suffix für die Versionsnachverfolgung.
Bewährte Methoden
- Führen Sie immer eine Ausführung als
db_owneroder einen Benutzer mit entsprechenden Berechtigungen aus. - Testen Sie zuerst Nichtproduktionsdatenbanken.
- Verwenden Sie den Hybridansatz für eine umfassende Abdeckung.
- Führen Sie
lakeflowFixPermissionsnach dem Setup aus, um den ordnungsgemäßen Benutzerzugriff sicherzustellen. - Berücksichtigen Sie Aufbewahrungszeiträume basierend auf Ihrer Aufnahmehäufigkeit.
Problembehandlung
"Der Benutzer, der dieses Skript ausführt, ist kein Rollenmitglied "db_owner".
Lösung: Als Benutzer mit db_owner Rolle ausführen
"Die Änderungsnachverfolgung ist im Katalog nicht aktiviert"
Lösung: Aktivieren Sie CT auf Datenbankebene oder lassen Sie die Prozedur sie automatisch aktivieren.
"Change Data Capture ist für den Katalog nicht aktiviert"
Lösung: Aktivieren sie CDC auf Datenbankebene, oder lassen Sie die Prozedur automatisch verarbeiten.
"Aufgrund fehlender Primärschlüssel wurden Tabellen übersprungen"
Lösung: Stattdessen für diese Tabellen verwenden lakeflowSetupChangeDataCapture
Validierungsintegration
Die folgenden Hilfsobjekte werden vom Java-Validierungsframework überprüft:
| Object | Description |
|---|---|
SqlServerUtilityObjectsSetupValidator |
Überprüft die Installation von Hilfsprogrammobjekten. |
SqlServerChangeDataManagementSetupValidator |
Überprüft die CT/CDC-Einrichtung |
SqlServerDdlSupportObjectsSetupValidator |
Überprüft DDL-Unterstützungsobjekte |
SqlServerPermissionsSetupValidator |
Überprüft Berechtigungen |
Migrationshinweise
Wenn Sie von älteren Versionen von DDL-Unterstützungsobjekten (vor der Ära der Dienstprogramme) upgraden:
- Das Skript bereinigt automatisch ältere Objekte.
- Es ist keine manuelle Bereinigung erforderlich.
- Version 1.1 konsolidiert alle Funktionen in einheitliche Prozeduren.
Weitere Ressourcen
- SQL Server mithilfe des Dienstprogramm-Objektskripts für die Datenaufnahme vorbereiten
- Konfigurieren von Microsoft SQL Server für die Aufnahme in Azure Databricks
- Microsoft SQL Server-Datenbankbenutzeranforderungen
- Nachverfolgen von Datenänderungen (SQL Server) in der SQL Server-Dokumentation
- Informationen zur Änderungsnachverfolgung (SQL Server) in der SQL Server-Dokumentation
- Was ist Change Data Capture (CDC)? in der SQL Server-Dokumentation