Ga naar de inhoud
R Roesli.
Ga terug
lakehouse

Ontbrekende of verouderde Lakehouse-tabellen in het Fabric SQL endpoint oplossen

Een praktische diagnoseflow voor Fabric Lakehouse-tabellen die ontbreken of verouderd zijn in het SQL analytics endpoint, met ondersteunde refreshopties.

Een Delta-tabel kan in Spark bevraagbaar zijn en toch ontbreken of verouderd zijn in het SQL analytics endpoint. De eerste vraag is niet “welke refreshknop is kapot?” maar “is dit een managed Delta table onder Tables?”

Bestanden en tabellen zijn verschillend:

Parquet-bestanden onder Files worden niet automatisch SQL-tabellen.

De validatieworkspace was blog_lakehouse_troubleshooting, met een sales_lakehouse en het bijbehorende SQL analytics endpoint op trial capacity.

Gebruik deze volgorde

  1. Bevestig dat het object een Delta-tabel onder Tables is.
  2. Bevraag het in Spark.
  3. Inspecteer het SQL analytics endpoint.
  4. Start een ondersteunde metadatarefresh.
  5. Controleer compatibiliteit, locks en synchronisatievertraging.

1. Bewijs dat de tabel bestaat

Koppel het Lakehouse aan een notebook:

spark.sql("SHOW TABLES").show(truncate=False)
spark.table("sales_orders").limit(10).show()

Inspecteer de tabel:

spark.sql("DESCRIBE DETAIL sales_orders").show(truncate=False)

Als spark.table("sales_orders") mislukt, is dit nog geen endpoint-syncprobleem. Herstel de registratie of schrijf een managed Delta table:

orders_df.write \
    .format("delta") \
    .mode("overwrite") \
    .saveAsTable("sales_orders")

Gebruik MSCK REPAIR TABLE niet als generieke reparatie voor Fabric-metadata. Het hoort bij partition-discoverypatronen en repareert geen ontbrekende of ongeldige Delta-tabel.

2. Refresh het endpoint

Open het SQL analytics endpoint van het Lakehouse:

  1. Selecteer Query SQL analytics endpoint.
  2. Selecteer in Explorer Refresh.
  3. Wacht tot de synchronisatie klaar is.
  4. Open of refresh de node Tables.

Voer daarna uit:

select top (10) *
from dbo.sales_orders;

Fabric synchroniseert normaal automatisch. Een handmatige refresh is nuttig wanneer een schemawijziging belangrijk is voordat het achtergrondproces klaar is.

3. Refresh één tabel

Voor SQL analytics endpoints die zijn gemaakt na het inschakelen van New metadata sync (preview):

exec sys.sp_dw_refresh_ext_table 'dbo.sales_orders';

Gebruik dit voor één specifieke tabel. Gebruik voor toegevoegde of verwijderde tabellen en kolommen de portalrefresh of de gedocumenteerde REST API.

4. Inspecteer de synchronisatie

Met New metadata sync ingeschakeld:

select
    object_id,
    last_update_time_utc,
    latest_log_version,
    latest_checkpoint_version,
    is_blocked
from sys.dm_db_external_tables_log_status;

last_update_time_utc toont de laatste geslaagde update, latest_log_version de verwerkte positie in de Delta log, en is_blocked = 1 geeft aan dat de laatste update was geblokkeerd.

5. Maak refresh onderdeel van een pipeline

Als downstream queries het resultaat van een ingestion job moeten zien:

  1. rond ingestion en transformatie af;
  2. voeg één Refresh SQL analytics endpoint-activity toe;
  3. selecteer de workspace en endpoint ID; en
  4. start de semantic-modelrefresh of downstream queries pas na succes.

Eén refresh aan het einde is veiliger dan meerdere refreshes tussen writes. Actieve writers kunnen locks vasthouden en de refresh af en toe laten mislukken.

Veelvoorkomende oorzaken

De data staat onder Files

Lees de bestanden met Spark en schrijf een managed Delta table naar Tables.

Delta-features worden niet ondersteund

Controleer de Delta- en datatypebeperkingen van het SQL analytics endpoint. New metadata sync ondersteunt geen verouderde multi-part checkpoints.

Workspace discovery is druk

Metadata discovery werkt op workspaceniveau. Veel Lakehouses kunnen de latency verhogen.

Een writer houdt nog een lock vast

Rond notebooks of pipelines af die naar de tabel schrijven en refresh daarna één keer.

De client heeft het schema gecachet

Refresh het endpoint en maak daarna opnieuw verbinding of refresh de metadata in de querytool.

Herstelvolgorde

Begin niet met het verwijderen van de tabel:

  1. valideer hem in Spark;
  2. refresh het endpoint;
  3. refresh waar ondersteund de afzonderlijke tabel;
  4. inspecteer de status-DMV;
  5. controleer Delta-compatibiliteit en locks; en
  6. maak de Spark-tabel alleen opnieuw als registratie of storage echt ongeldig is.

Bronnen

Het nuttige onderscheid is simpel: bewijs eerst dat de tabel klopt en gebruik daarna de ondersteunde refreshopties van Fabric. Iedere vertraging als corruptie behandelen creëert een tweede probleem.


Deel deze post:

Lees verder

Vorige post
Azure Databricks Unity Catalog-data in Fabric gebruiken met shortcuts
Volgende post
Bouw een medallion Lakehouse in Microsoft Fabric van raw tot gold
Community

Praat mee

Meld je aan met GitHub om een reactie achter te laten.

GitHub

Reacties laden…

Meld je aan met GitHub om te reageren