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:
Fileskan ondersteunde bestandsindelingen bevatten.- Het SQL analytics endpoint ontdekt Delta-tabellen onder het
Lakehouse-onderdeel
Tables.
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
- Bevestig dat het object een Delta-tabel onder
Tablesis. - Bevraag het in Spark.
- Inspecteer het SQL analytics endpoint.
- Start een ondersteunde metadatarefresh.
- 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:
- Selecteer Query SQL analytics endpoint.
- Selecteer in Explorer Refresh.
- Wacht tot de synchronisatie klaar is.
- 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:
- rond ingestion en transformatie af;
- voeg één Refresh SQL analytics endpoint-activity toe;
- selecteer de workspace en endpoint ID; en
- 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:
- valideer hem in Spark;
- refresh het endpoint;
- refresh waar ondersteund de afzonderlijke tabel;
- inspecteer de status-DMV;
- controleer Delta-compatibiliteit en locks; en
- 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.
Reacties laden…