Share via


Lakehouse-gegevens met gesynchroniseerde tabellen gebruiken

Belangrijk

nl-NL: Lakebase Autoscaling is beschikbaar in de volgende regio's: eastus, eastus2, centralus, southcentralus, westus, westus2, canadacentral, brazilsouth, northeurope, uksouth, westeurope, australiaeast, centralindia, southeastasia.

Lakebase Autoscaling is de nieuwste versie van Lakebase, met automatisch schalen van rekenkracht, schaal-tot-nul, branching-functionaliteit en direct herstellen. Als u een door Lakebase ingericht gebruiker bent, raadpleegt u Lakebase Ingericht.

Met gesynchroniseerde tabellen kunt u lakehouse-gegevens bedienen via Lakebase Postgres. Unity Catalog-tabellen worden gesynchroniseerd met Postgres, zodat toepassingen rechtstreeks met lage latentie query's kunnen uitvoeren op Lakehouse-gegevens. Dit proces wordt vaak omgekeerde ETL genoemd. Lakehouse is geoptimaliseerd voor analyses en verrijking, terwijl Lakebase is ontworpen voor operationele workloads die snelle query's in opzoekstijl en transactionele consistentie vereisen.

Architectuurdiagram met gegevensstroom van Lakehouse naar Lakebase naar toepassingen

Wat zijn gesynchroniseerde tabellen?

Met gesynchroniseerde tabellen kunt u gegevens van Unity Catalog analyseren via Lakebase Postgres, zodat deze beschikbaar zijn voor toepassingen die query's met lage latentie (sub-10 ms) en volledige ACID-transacties nodig hebben. Ze overbruggen de kloof tussen analytische opslag en operationele systemen door uw gegevens gereed te houden voor realtime toepassingen.

Ondersteunde bronnen

Gesynchroniseerde tabellen ondersteunen de volgende Unity Catalog-brontypen:

  • Beheerde en externe Delta-tabellen
  • Beheerde en externe Iceberg-tabellen
  • Weergaven en gematerialiseerde weergaven

Hoe werkt het?

Met Databricks gesynchroniseerde tabellen maakt u een beheerde kopie van uw Unity Catalog-gegevens in Lakebase. Wanneer u een gesynchroniseerde tabel maakt, krijgt u het volgende:

  1. Een gesynchroniseerde tabel in Unity Catalog die verwijst naar de synchronisatiepijplijn
  2. Een Postgres-tabel in Lakebase (alleen-lezen, doorzoekbaar door uw toepassingen)

Diagram met de relatie met drie tabellen in gesynchroniseerde tabellen

U kunt bijvoorbeeld gouden tabellen, ontworpen functies of ML-uitvoer synchroniseren van analytics.gold.user_profiles naar een nieuwe gesynchroniseerde tabel analytics.gold.user_profiles_synced. In Postgres wordt de naam van het Unity Catalog-schema de Postgres-schemanaam, dus dit wordt weergegeven als "gold"."user_profiles_synced":

SELECT * FROM "gold"."user_profiles_synced" WHERE "user_id" = 12345;

Toepassingen maken verbinding met standaardPostgres-stuurprogramma's en voeren een query uit op de gesynchroniseerde gegevens naast hun eigen operationele status.

Waarschuwing

Hoewel het mogelijk is om een gesynchroniseerde tabel rechtstreeks in Postgres te wijzigen, raadt Azure Databricks ten zeerste aan om alleen leesquery's uit te voeren om de gegevensintegriteit met de bron te beveiligen. Zie Ondersteunde bewerkingen voor ondersteunde bewerkingen voor gesynchroniseerde tabellen.

Synchronisatiepijplijnen maken gebruik van beheerde Lakeflow Spark-declaratieve pijplijnen om continu de gesynchroniseerde Tabel van Unity Catalog en de Postgres-tabel bij te werken met wijzigingen uit de brontabel. Elke synchronisatie kan maximaal 16 verbindingen met uw Lakebase-database gebruiken.

Lakebase Postgres ondersteunt maximaal 1.000 gelijktijdige verbindingen met transactionele garanties, zodat toepassingen verrijkte gegevens kunnen lezen terwijl ook inserts, updates en verwijderingen in dezelfde database worden verwerkt.

Synchronisatiemodi

Kies de juiste synchronisatiemodus op basis van uw toepassingsbehoeften:

Mode Beschrijving Wanneer gebruiken prestatie
Snapshot Eenmalige kopie van alle gegevens Bronwijzigingen >10% rijen per cyclus, of bron biedt geen ondersteuning voor CDF (weergaven, Iceberg-tabellen) 10x efficiënter bij het wijzigen van >10% brongegevens
Geactiveerd Geplande updates die op aanvraag of met intervallen worden uitgevoerd Bronrijen worden op een bekend ritme gewijzigd. Invoegingen, updates en verwijderingen worden bij elke update doorgegeven. Goede balans tussen kosten en vertraging. Duur indien deze bij intervallen van 5 minuten worden uitgevoerd <
Continue Realtime streamen met seconden latentie Wijzigingen moeten in Lakebase bijna in realtime worden weergegeven Laagste vertraging, hoogste kosten. Minimumintervallen van 15 seconden

Voor trigger- en continue modi moet de Change Data Feed (CDF) ingeschakeld zijn in uw brontabel. Als CDF niet is ingeschakeld, ziet u een waarschuwing in de gebruikersinterface met de exacte ALTER TABLE opdracht die moet worden uitgevoerd. Voor meer informatie over wijzigingenfeeds verwijzen wij naar Delta Lake-wijzigingenfeed gebruiken op Databricks.

Voorbeelden van gebruikssituaties

U kunt gesynchroniseerde tabellen gebruiken voor gebruiksscenario's voor datatoepassingen, zoals:

  • Personalisatie-engines die nieuwe gebruikersprofielen leveren aan Databricks Apps
  • Toepassingen die modelvoorspellingen of functiewaarden leveren die zijn berekend in lakehouse
  • Klantgerichte dashboards die prestatie-indicatoren in real time leveren
  • Fraudeopsporingsdiensten die risicoscores leveren voor directe actie
  • Ondersteuningstools die verrijkte klantgegevens uit lakehouse-data aanbieden

Een gesynchroniseerde tabel maken (UI)

De ui-werkstroom wordt hieronder beschreven.

Vereiste voorwaarden

U hebt het volgende nodig:

  • Een Databricks-werkruimte waarvoor Lakebase is ingeschakeld.
  • Een Lakebase-project (zie Een project maken).
  • Een Unity Catalog-tabel die moet worden gesynchroniseerd.
  • Machtigingen voor het maken van gesynchroniseerde tabellen. U hebt USE_SCHEMA en CREATE_TABLE nodig voor elk schema dat u gebruikt. De catalogus- en schemaopties in de stroom Gesynchroniseerde tabellen maken bevatten alleen schema's waarin uw identiteit deze bevoegdheden heeft.

Zie Gegevenstypen en -compatibiliteit encapaciteitsplanning voor meer informatie over capaciteitsplanning en gegevenstypecompatibiliteit.

Stap 1: Selecteer uw brontabel

Ga naar Catalogus in de zijbalk van de werkruimte en selecteer de Unity Catalog-tabel die u wilt synchroniseren.

Catalogusverkenner met een geselecteerde tabel

Stap 2: Wijzigingengegevensfeed inschakelen (indien nodig)

Als u van plan bent om Triggered of continue synchronisatiemodi te gebruiken, moet de Change Data Feed voor de brontabel zijn ingeschakeld. Controleer of cdf al is ingeschakeld voor uw tabel of voer deze opdracht uit in een SQL-editor of -notebook:

ALTER TABLE your_catalog.your_schema.your_table
SET TBLPROPERTIES (delta.enableChangeDataFeed = true)

Vervang your_catalog.your_schema.your_table door de werkelijke tabelnaam.

Stap 3: Gesynchroniseerde tabel maken

Klik opGesynchroniseerde tabel> vanuit de tabeldetailsweergave.

Dropdown-menu knop aanmaken met de optie Gesynchroniseerde tabel

Stap 4: Configureren

In het dialoogvenster Gesynchroniseerde tabel maken :

De catalogus- en schemalijsten bevatten alleen Unity Catalog-schema's waarbij de huidige gebruiker USE_SCHEMA en CREATE_TABLE bevoegdheden heeft. Als u geen schema ziet dat u verwacht, bevestigt u uw machtigingen bij de catalogusbeheerder.

  1. Tabelnaam: Voer een naam in voor de gesynchroniseerde tabel (deze wordt gemaakt in dezelfde catalogus en hetzelfde schema als de brontabel). Hiermee maakt u zowel een gesynchroniseerde Unity Catalog-tabel als een Postgres-tabel die u kunt opvragen.
  2. Database-type: Kies Serverloos Lakebase (Automatisch schalen).
  3. Synchronisatiemodus: Kies Momentopname, Geactiveerd of Doorlopend op basis van uw behoeften (zie de synchronisatiemodi hierboven).
  4. Configureer je selectie van projecten, vertakkingen en databases.
  5. Controleer of de primaire sleutel juist is (meestal automatisch gedetecteerd).

Als u Triggered- of Continue-modus hebt gekozen en de Change Data Feed nog niet hebt ingeschakeld, ziet u een waarschuwing met de exacte opdracht die moet worden uitgevoerd. Zie Gegevenstypen en compatibiliteit voor vragen over compatibiliteit van gegevenstypen.

Klik op Maken om de gesynchroniseerde tabel te maken.

Stap 5: Bewaken

Controleer na het maken de gesynchroniseerde tabel in Catalog. Op het tabblad Overzicht ziet u de synchronisatiestatus, configuratie, pijplijnstatus en tijdstempel van laatste synchronisatie. Gebruik Nu Synchroniseren voor handmatig vernieuwen.

Volgende synchronisaties plannen of activeren

De eerste momentopname wordt automatisch uitgevoerd bij het maken. Voor momentopname- en geactiveerde modi moeten volgende synchronisaties expliciet worden geactiveerd. Continue modus is zelfbeheerd.

Pijplijntaak databasetabelsynchronisatie

De Database Table Sync pipeline-taak in Lakeflow Jobs voert de pijplijn van een gesynchroniseerde tabel uit als een werkstroomstap. Configureer de taak met een trigger voor tabelupdate of een planning.

Trigger voor updates van de brontabel

De taak wordt geactiveerd wanneer de bron-Unity Catalog-tabel wordt bijgewerkt. Met Triggered modus worden alleen nieuwe wijzigingen incrementeel toegepast, waardoor bijna real-time actualisering mogelijk is zonder de altijd-aan kosten van de continue modus.

  1. Klik in de zijbalk op Werkstromen.
  2. Klik op Taak maken of open een bestaande taak.
  3. Klik op het tabblad Taken op + Een ander taaktype toevoegen.
  4. Selecteer onder Opname en transformatie de pijplijn voor databasetabelsynchronisatie.
  5. Selecteer in het veld Pijplijn de pijplijn die is gekoppeld aan de gesynchroniseerde tabel.
  6. Klik onder Planningen en triggers op Trigger toevoegen.
  7. Selecteer Tabelupdate als triggertype.
  8. Selecteer onder Tabellen de bron Unity Catalog-tabel die u wilt bewaken.
  9. Klik op Opslaan.

Triggeren volgens een schema

Hiermee wordt de synchronisatie uitgevoerd met een vaste frequentie. Geschikt voor de momentopnamemodus , waarbij een nachtelijke of wekelijkse volledige vernieuwing doorgaans het meest efficiënte patroon is.

  1. Volg stap 1 tot en met 5 hierboven om een databasetabelsynchronisatiepijplijntaak toe te voegen aan een taak.
  2. Klik onder Planningen en triggers op Trigger toevoegen.
  3. Selecteer Gepland als het triggertype.
  4. Stel uw cron-planning en -tijdzone in en klik vervolgens op Opslaan.

De SDK gebruiken

Activeer een synchronisatieuitvoering via een programma, bijvoorbeeld aan het einde van een upstream-notebook of pijplijn:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# Get the pipeline ID from the synced table
table = w.database.get_synced_database_table(name="catalog.schema.synced_table")
pipeline_id = table.data_synchronization_status.pipeline_id

# Trigger a sync run
w.pipelines.start_update(pipeline_id=pipeline_id)

Gegevenstypen en compatibiliteit

Unity Catalog-gegevenstypen worden toegewezen aan Postgres-typen bij het maken van gesynchroniseerde tabellen. Complexe typen (ARRAY, MAP, STRUCT) worden opgeslagen als JSONB in Postgres.

Bronkolomtype Postgres-kolomtype
BIGINT BIGINT
BINARY BYTEA
BOOLEAN BOOLEAN
DATE DATE
DECIMAL(p,s) NUMERIEK
Dubbel DUBBELE PRECISIE
FLOAT WERKELIJK
INT GEHEEL GETAL
INTERVAL INTERVAL
SMALLINT SMALLINT
STRING Tekst
TIMESTAMP TIJDSTEMPEL MET TIJDZONE
TIMESTAMP_NTZ TIJDSTEMPEL ZONDER TIJDZONE
TINYINT SMALLINT
ARRAY-elementType<> JSONB
MAP<keyType, valueType> JSONB
STRUCT<fieldName:fieldType[, ...]> JSONB

Opmerking

GEOGRAFIE, GEOMETRIE, VARIANT en OBJECTtypen worden niet ondersteund.

Ongeldige tekens verwerken

Bepaalde tekens, zoals null-bytes (0x00), zijn toegestaan in kolommen van Unity Catalog STRING, ARRAY, MAP of STRUCT, maar worden niet ondersteund in Postgres TEXT- of JSONB-kolommen. Dit kan synchronisatiefouten veroorzaken met fouten zoals:

ERROR: invalid byte sequence for encoding "UTF8": 0x00
ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text

Oplossingen:

  • Tekenreeksvelden opschonen: verwijder niet-ondersteunde tekens voordat u synchroniseert. Voor null-bytes in tekenreekskolommen:

    SELECT REPLACE(column_name, CAST(CHAR(0) AS STRING), '') AS cleaned_column FROM your_table
    
  • Converteren naar BINAIR: Voor STRING-kolommen waarbij onbewerkte bytes nodig zijn, moet u naar BINAIR type converteren.

Capaciteitsplanning

Houd rekening met de volgende resourcevereisten bij het plannen van de implementatie van gesynchroniseerde tabellen:

  • Verbindingsgebruik: elke gesynchroniseerde tabel maakt gebruik van maximaal 16 verbindingen met uw Lakebase-database, die tellen mee voor de verbindingslimiet van het exemplaar.
  • Groottelimieten: de totale limiet voor de grootte van logische gegevens voor alle gesynchroniseerde tabellen is 8 TB. Afzonderlijke tabellen hebben geen limieten, maar Databricks raadt aan niet meer dan 1 TB te overschrijden voor tabellen waarvoor vernieuwingen zijn vereist.
  • Naamgevingsvereisten: database-, schema- en tabelnamen mogen alleen alfanumerieke tekens en onderstrepingstekens ([A-Za-z0-9_]+) bevatten.
  • Schemaontwikkeling: Alleen wijzigingen in additief schema (zoals het toevoegen van kolommen) worden ondersteund voor geactiveerde en continue modi.
  • Updatesnelheid:: Voor Lakebase Autoscaling ondersteunt de synchronisatiepijplijn doorlopende en geactiveerde schrijfbewerkingen op ongeveer 150 rijen per seconde per capaciteitseenheid (CU) en Snapshot-schrijfbewerkingen met maximaal 2.000 rijen per seconde per CU.

Bewerkingen die zijn toegestaan voor gesynchroniseerde tabellen in Postgres

Azure Databricks raadt aan alleen de volgende bewerkingen uit te voeren in Postgres voor gesynchroniseerde tabellen om onbedoelde overschrijven of inconsistenties van gegevens te voorkomen:

  • Query's met het kenmerk Alleen-lezen
  • Indexen maken
  • De tabel verwijderen (om ruimte vrij te maken na het verwijderen van de gesynchroniseerde tabel uit Unity Catalog)

Hoewel het mogelijk is om gesynchroniseerde tabellen in Postgres op andere manieren te wijzigen, wordt de synchronisatiepijplijn beïnvloed.

Een gesynchroniseerde tabel verwijderen

Als u een gesynchroniseerde tabel wilt verwijderen, moet u deze verwijderen uit zowel Unity Catalog als Postgres:

  1. Verwijderen uit Unity Catalog: Zoek in Catalogus de gesynchroniseerde tabel, klik op het Kebabmenu-pictogram en selecteer Verwijderen. Hierdoor worden gegevens niet vernieuwd, maar blijft de tabel in Postgres.

  2. Drop from Postgres: Maak verbinding met uw Lakebase-database en verwijder de tabel om ruimte vrij te maken.

    DROP TABLE your_database.your_schema.your_table;
    

U kunt de SQL-editor of externe hulpprogramma's gebruiken om verbinding te maken met Postgres.

Meer informatie

Opdracht Beschrijving
Een project maken Een Lakebase-project instellen
Verbinding maken met uw database Meer informatie over verbindingsopties voor Lakebase
Database registreren in Unity Catalog Uw Lakebase-gegevens zichtbaar maken in Unity Catalog voor geïntegreerde governance en query's voor meerdere bronnen
Integratie van Unity Catalog Inzicht in governance en machtigingen

Andere opties

Zie Partner Connect reverse ETL-oplossingen zoals Census of Hightouch voor het synchroniseren van gegevens in niet-Databricks-systemen.