Het oplossen van problemen met SQL Server-inname

Op deze pagina worden veelvoorkomende problemen beschreven met de Microsoft SQL Server-connector in Databricks Lakeflow Connect en hoe u deze kunt oplossen.

Problemen met algemene pijplijnen oplossen

De stappen voor probleemoplossing in deze sectie zijn van toepassing op alle opnamepijplijnen in Lakeflow Connect.

Als een pijplijn mislukt tijdens het uitvoeren, klikt u op de stap die is mislukt en controleert u of het foutbericht voldoende informatie bevat over de aard van de fout.

Gebeurtenislogboeken van pijplijn weergeven in de gebruikersinterface

U kunt de clusterlogboeken ook controleren en downloaden vanaf de pagina met pijplijndetails door te klikken op Details bijwerken in het rechterdeelvenster en vervolgens op Logboeken. Scan de logboeken op fouten of uitzonderingen.

Details van pijplijnupdate weergeven in de gebruikersinterface

Controleren of CDC is ingeschakeld voor een database of tabel

Om te controleren of CDC is ingeschakeld voor de database <database-name>:

select is_cdc_enabled from sys.databases where name='<database-name>';

Controleren of CDC is ingeschakeld voor tabel <schema-name>.<table-name>:

select t.is_tracked_by_cdc
from sys.tables t join sys.schemas s on t.schema_id = s.schema_id
where s.name='<schema-name>' and t.name='<table-name>';

Controleren of wijzigingen bijhouden is ingeschakeld voor een database of tabel

Controleren of wijzigingen bijhouden is ingeschakeld voor database\<database-name\>:

select ctdb.*

from sys.change_tracking_databases ctdb join sys.databases db

    on db.database_id  = ctdb.database_id

where db.name = '<MyDatabaseName>'

Controleren of wijzigingen bijhouden is ingeschakeld voor tabel <schema-name>.<table-name>:

select s.name schema_name, t.name table_name, ct.*

from sys.change_tracking_tables ct join sys.tables t

    on ct.object_id = t.object_id

    join sys.schemas s on t.schema_id = s.schema_id

where s.name = '<MySchemaName>' and t.name = '<MyTableName>'

Time-out tijdens het wachten op tabeltoken

Er kan een time-out optreden voor de opnamepijplijn terwijl wordt gewacht tot informatie wordt verstrekt door de gateway. Dit kan komen doordat:

  • U voert een oudere versie van de gateway uit.
  • Er is een fout opgetreden bij het genereren van de benodigde informatie. Controleer de logboeken van het gatewaystuurprogramma op fouten.

Opmerking

De volledige vernieuwingsstroom vermindert het optreden van time-outfouten tijdens volledige vernieuwingsbewerkingen aanzienlijk. Bekijk het volledige vernieuwingsgedrag (CDC).

standaardauthenticatie: kan geen standaard inloggegevens configureren

Als u deze fout ontvangt, is er een probleem met het detecteren van de huidige gebruikersreferenties. Vervang het volgende:

w = WorkspaceClient()

met:

w = WorkspaceClient(host=input('Databricks Workspace URL: '), token=input('Token: '))

Zie verificatie in de Databricks SDK voor Python-documentatie.

tech.replicant.common.ExtractorException: com.microsoft.sqlserver.jdbc.SQLServerException: Ongeldige kolomnaam 'SERIAL_NUMBER'.

Deze fout kan optreden als u een oudere versie van een interne tabel gebruikt. Voer het volgende uit op de verbonden database:

drop table dbo.replicate_io_audit_ddl_trigger_1;

PERMISSION_DENIED: U bent niet gemachtigd om clusters te maken. Neem contact op met uw beheerder.

Neem contact op met een Databricks-accountbeheerder om u Unrestricted cluster creation machtigingen te verlenen.

DLT-FOUTCODE: INGESTION_GATEWAY_INTERNAL_ERROR

Controleer de stdout bestanden in de stuurprogrammalogboeken.

Naamgevingsconflict van brontabel

Ingestion pipeline error: "org.apache.spark.sql.catalyst.ExtendedAnalysisException: Cannot have multiple queries named `XYZ_snapshot_load` for `XYZ`. Additional queries on that table must be named. Note that unnamed queries default to the same name as the table.

Dit geeft aan dat er een naamconflict is vanwege meerdere brontabellen die zijn genoemd XYZ in verschillende bronschema's die door dezelfde opnamepijplijn worden opgenomen in hetzelfde doelschema.

Maak meerdere gatewaypijplijnparen die deze conflicterende tabellen naar verschillende doelschema's schrijven.

Incompatibele schemawijzigingen

Een incompatibele schemawijziging zorgt ervoor dat de data-invoerpijplijn faalt doordat er een INCOMPATIBLE_SCHEMA_CHANGE-fout optreedt. Als u de replicatie wilt voortzetten, activeert u een volledige vernieuwing van de betrokken tabellen.

Opmerking

Databricks kan niet garanderen dat, wanneer de invoerpijplijn faalt vanwege een incompatibele schemawijziging, alle rijen vóór de schemawijziging zijn verwerkt.

Fouten met TLS-servercertificaten

Zie Problemen met TLS-certificaatvalidatie oplossen voor het oplossen van validatiefouten met TLS-servercertificaten.