Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Verbind uw on-premises resources met Azure Databricks zonder binnenkomende firewalltoegang te openen. Een on-premises tunnelhost opent een uitgaande SSH-verbinding met virtuele proxymachines (VM's) in Azure, zodat Azure Databricks klassieke en serverloze rekenkracht uw on-premises resources kan bereiken.
Hoe werkt het?
Met een omgekeerde SSH-tunnel kan een on-premises tunnelhost uitgaande SSH-verbindingen openen met cloudproxy-VM's in Azure. Azure Databricks maakt verbinding met de proxy-VM's via een load balancer en verkeer stroomt terug via de tunnel naar de on-premises resource. Voor het on-premises netwerk is alleen uitgaande SSH (poort 22) vereist voor Azure, zodat er geen binnenkomende poorten vereist zijn.
In een omgekeerde tunnel initieert de on-premises host de uitgaande verbinding (on-premises naar de cloud) om te voorkomen dat firewallbeperkingen worden versoepeld en loopt het retourverkeer terug (cloud naar on-premises) via het tot stand gebrachte pad.
Klassieke berekening bereikt de proxy-VM's via peering. Serverloze compute bereikt deze via een privé-eindpuntverbinding met behulp van de privéconnectiviteitsservice van uw cloudprovider.
Opmerking
Dit is een zelfbeheerde oplossing. U richt de proxy-VM's en de on-premises tunnelhost in en onderhoudt deze.
Vereiste en optionele onderdelen
Opmerking
Voor deze installatie is een speciaal netwerkcircuit tussen uw cloudomgeving en uw on-premises netwerk vereist. Met dit circuit kan de on-premises tunnelhost uitgaande SSH initiëren naar de privé-IP-adressen van de proxy-VM's. Veelvoorkomende opties zijn ExpressRoute of een VPN-tunnel.
Vereist (minimale werkinstelling):
- Een on-premises tunnelhost die
autosshuitvoert om de uitgaande SSH-verbinding tot stand te brengen. - Eén proxy-VM in de cloud die
socatdraait om de tunnel te accepteren en de resourcepoort bloot te stellen op de netwerkinterface. - Een netwerkpad van Azure Databricks naar de proxy-VM:
- Classic compute: peering tussen het Azure Databricks VNet en het VNet van de proxyhub.
- Serverloze berekening: een privé-eindpuntverbinding met behulp van de privéverbindingsservice van uw cloudprovider en een netwerkverbindingsconfiguratie (NCC) met een regel voor privé-eindpunten.
- Beide rekentypen: configureer beide paden.
Eén proxy-VM zonder load balancer is voldoende voor ontwikkeling en testen.
Optioneel (voegt robuustheid voor hoge beschikbaarheid en productie toe):
- Aanvullende proxy-VM's voor redundantie.
- Een load balancer voor de proxy-VM's. Biedt een stabiel eindpunt en automatische failover wanneer een tunnel mislukt.
- Een HTTP-statuscontroleservice op elke proxy-VM. Hierdoor kan de load balancer fouten op tunnelniveau detecteren, niet alleen vm- of poortbeschikbaarheid.
Azure Databricks raadt deze configuratie aan, maar pas deze aan uw omgevings- en beveiligingsvereisten aan.
Tunnelproxyhub
De proxyhub bestaat uit de volgende onderdelen.
-
Proxy-VM's (ten minste twee voor hoge beschikbaarheid). Elke proxy-VM voert drie services uit:
-
sshd: De SSH-daemon accepteert binnenkomende omgekeerde tunnels van de on-premises tunnelhost en plaatst de tunnellistener op
localhost(bijvoorbeeldlocalhost:13306voor MySQL). -
socat: Verbindt de netwerkinterface van de virtuele machine met de tunnellistener (bijvoorbeeld
NIC:3306 → localhost:13306), zodat verkeer van Azure Databricks het tunnel-eindpunt kan bereiken. - HTTP-statuscontroleservice: retourneert HTTP 200 wanneer de tunnel actief is en HTTP 503 als dat niet het is. Een gewone TCP-test detecteert alleen of socat luistert; Een HTTP-test op toepassingsniveau detecteert een dode tunnel, zelfs wanneer socat nog steeds wordt uitgevoerd.
-
sshd: De SSH-daemon accepteert binnenkomende omgekeerde tunnels van de on-premises tunnelhost en plaatst de tunnellistener op
-
Load balancer:
- Front-end: privé-IP in het proxysubnet.
- Back-endpool: alle proxy-VM's.
- Taakverdelingsregel: TCP op de resourcepoort (bijvoorbeeld poort 3306 voor MySQL).
- Statustest: HTTP GET op basis van het eindpunt van de statuscontrole op elke proxy-VM. Een aanbevolen startpunt is een interval van 5 seconden, met twee opeenvolgende fouten om een VM als ongezond te markeren — pas dit aan naar uw hersteltolerantie.
- Privéconnectiviteitsservice (vereist voor serverloze berekening): gekoppeld aan de front-end van de load balancer met een toegewezen NAT-subnet. Azure maakt gebruik van een Private Link Service (PLS).
-
On-premises tunnelhost: voert één
autosshproces per proxy-VM uit. Eénautosshverbinding ondersteunt meerdere-Rdoorstuurpoorten (één SSH-verbinding, meerdere tunnels) voor configuraties met meerdere resources. Systeemservices gebruiken metRestart=always. Interactieve tunnels worden beëindigd bij afmelding en zijn niet geschikt voor productie.
Azure Databricks configureren
Maak een verbinding met uw on-premises resource met behulp van het front-end-IP-adres van de load balancer. Selecteer het tabblad voor uw rekentype.
Opmerking
In de volgende voorbeelden wordt MySQL gebruikt. Voor andere databases vervangt u het verbindingstype, de poort en de Maven-coördinaat van het JDBC-stuurprogramma.
Klassieke rekenkracht
Controleer voordat u verbinding maakt of peering tussen het VNet van de proxyhub en uw Azure Databricks werkruimte-VNet actief is. Gebruik vervolgens het front-end-IP-adres van de load balancer in uw verbindingsconfiguratie:
CREATE CONNECTION mysql_onprem TYPE mysql
OPTIONS (
host '<lb-frontend-ip>',
port '3306',
user '<db-user>',
password '<db-password>'
);
CREATE FOREIGN CATALOG onprem_catalog
USING CONNECTION mysql_onprem
OPTIONS (database '<db-name>');
Query's mislukken in de modus Voor gedeelde toegang omdat classloaderisolatie voorkomt dat uitvoerders toegang hebben tot JDBC-stuurprogramma's op basis van Maven. Gebruik de toegangsmodus voor één gebruiker om te controleren of het stuurprogramma beschikbaar is in het hele cluster. Voordat u de verbinding maakt, voegt u het JDBC-stuurprogramma toe aan de allowlist voor Unity Catalog:
ALTER METASTORE ADD ALLOWLIST maven ('mysql:mysql-connector-java:8.0.33');
Serverloze rekenkracht
Als accountbeheerder gaat u naar de accountconsole.
Klik in de zijbalk op Beveiliging.
Klik op Netwerkconnectiviteitsconfiguraties en maak een NCC voor uw werkruimteregio.
Voeg in de NCC een privé-eindpuntregel toe en voer de serviceresource-id in.
Koppel de NCC aan uw werkruimte en wacht 10 tot 15 minuten voor de propagatie.
Keur de privé-eindpuntverbinding in de privéconnectiviteitsdienst goed.
az network private-link-service connection update \ --service-name <pls-name> \ --resource-group <rg> \ --name "<connection-name>" \ --connection-status ApprovedMaak de verbinding met behulp van het privé-eindpuntdomein:
CREATE CONNECTION mysql_onprem_serverless TYPE mysql OPTIONS ( host '<pe-domain>', port '3306', user '<db-user>', password '<db-password>' );
De knop Test Connection in de Azure Databricks-gebruikersinterface werkt niet voor privé-eindpuntverbindingen. Sla deze over en maak de verbinding rechtstreeks.
Lakeflow Connect CDC
De Lakeflow Connect-gateway wordt uitgevoerd op klassieke compute in uw werkruimte-VNet en bereikt de proxy-VM's via peering. Gebruik het front-end privé-IP-adres van de load balancer als de verbindingshost, niet het IP-adres van een afzonderlijke proxy-VM. Zie Hoge beschikbaarheid en tolerantie voor pijplijnen.
Voordat u een CDC-pijplijn maakt, moet u de volgende stappen voor uw database-engine uitvoeren:
Logboekregistratie van wijzigingen inschakelen: configureer uw database voor het vastleggen van wijzigingen op rijniveau (bijvoorbeeld binaire logboekregistratie in MySQL, logische replicatie in PostgreSQL of aanvullende logboekregistratie in Oracle).
Replicatiemachtigingen verlenen: geef de pijplijngebruiker de machtigingen op die nodig zijn om wijzigingslogboeken te lezen en momentopnamen uit te voeren. Raadpleeg de connectordocumentatie voor uw specifieke database.
Logboekretentie instellen: Logboekretentie configureren tot ten minste zeven dagen. Als de CDC-gateway offline is op het moment dat logboeken verlopen, moet de pijplijn opnieuw een momentopname maken van alle brontabellen.
Zie de documentatie van de Lakeflow Connect-connector voor specifieke engineconfiguraties.
Hoge beschikbaarheid en tolerantie voor pijplijnen
Met twee of meer proxy-VM's in de back-endpool wordt de service niet onderbroken door een tunnelfout op één exemplaar. Als een tunnel mislukt, retourneert de statuscontroleservice HTTP 503. De load balancer stopt vervolgens met het routeren van nieuwe verbindingen naar die VIRTUELE machine binnen ongeveer 10 seconden.
Opmerking
Gebruik het front-end-IP-adres van de load balancer in uw verbindingsreeks, niet het IP-adres van een afzonderlijke proxy-VM. Als een tunnel uitvalt, wordt verkeer door de load balancer automatisch omgeleid zonder handmatige tussenkomst of uitvaltijd van pijplijnen.
| Faalscenario | Zonder toepassingsstatuscontrole | Met toepassingsstatuscontrole |
|---|---|---|
| Proxy-VM reageert niet meer | Load balancer detecteert een failover | "Load balancer detecteert en leidt tot failover" |
| Poortstuurserver stopt | Load balancer detecteert → failover | Load balancer detecteert → automatisch omschakelen |
| SSH-tunnel mislukt, poort doorsturen actief | Load balancer kan → onregelmatige fouten niet detecteren | De load balancer detecteert een (HTTP 503) → failover |
Voor CdC-pijplijnen van Lakeflow Connect stelt u de retentie van binaire logboeken in op ten minste 7 dagen. Wanneer de CDC-gateway offline is en de binaire logs verlopen, moet de pijplijn een volledige snapshot van alle brontabellen uitvoeren.
Bekende beperkingen
Deze oplossing heeft de volgende beperkingen.
- Elke on-premises resource vereist een afzonderlijke poorttoewijzing op elke proxy-VM. Gebruik voor meerdere resources van hetzelfde type op dezelfde standaardpoort verschillende poorten op de netwerkinterface van de proxy-VM (bijvoorbeeld 3306, 3307 of 3308) of gebruik afzonderlijke proxy-VM's.
- U moet de proxy-VM's en de on-premises tunnelhost inrichten en onderhouden.
- Een load balancer blokkeert standaard uitgaande internetverbinding voor VM's in de back-endpool. Installeer vereiste pakketten voordat u VM's toevoegt aan de pool.
- De knop Test Connection in de Azure Databricks-gebruikersinterface werkt niet voor privé-eindpuntverbindingen.
- In de modus Gedeelde toegang zijn Maven JDBC-bibliotheken alleen beschikbaar op het stuurprogrammaknooppunt. Gebruik de toegangsmodus voor één gebruiker voor JDBC-workloads.