Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anslut dina lokala resurser till Azure Databricks utan att öppna inkommande brandväggsåtkomst. En lokal tunnelvärd öppnar en utgående SSH-anslutning till virtuella proxydatorer i Azure, vilket gör att Azure Databricks klassisk och serverlös beräkning kan nå dina lokala resurser.
Så här fungerar det
Med en omvänd SSH-tunnel kan en lokal tunnelvärd öppna utgående SSH-anslutningar till virtuella molnproxydatorer i Azure. Azure Databricks ansluter till de virtuella proxydatorerna via en lastbalanserare och trafiken flödar tillbaka genom tunneln till den lokala resursen. Det lokala nätverket kräver endast utgående SSH (port 22) till Azure, så inga inkommande portar behövs.
I en omvänd tunnel initierar den lokala värden anslutningen till molnet för att undvika att brandväggsbegränsningarna måste lättas på, och returtrafiken flödar tillbaka från molnet till den lokala värden över den etablerade sökvägen.
Klassisk beräkning når de virtuella proxydatorerna via peering. Serverlös beräkning når dem via en privat slutpunktsanslutning med hjälp av molnleverantörens privata anslutningstjänst.
Note
Det här är en självhanterad lösning. Du tillhandahåller och underhåller proxy-VM:erna och den lokala tunnelvärden.
Obligatoriska och valfria komponenter
Note
Den här konfigurationen kräver en dedikerad nätverkskrets mellan din molnmiljö och ditt lokala nätverk. Med den här kretsen kan den på plats tunnelvärden initiera utgående SSH till de virtuella proxydatorernas privata IP-adresser. Vanliga alternativ är ExpressRoute eller en VPN-tunnel.
Obligatoriskt (lägsta arbetskonfiguration):
- En lokal tunnelhost som körs
autosshför att upprätta den utgående SSH-anslutningen. - En virtuell proxydator i molnet som kör
socatför att exponera resursporten och acceptera tunneln i sitt nätverksgränssnitt. - En nätverkssökväg från Azure Databricks till den virtuella proxydatorn:
- Classic compute: peering mellan Azure Databricks VNet och proxyhub VNet.
- Serverlös beräkning: en privat slutpunktsanslutning med molnleverantörens privata anslutningstjänst och en NCC (Network Connectivity Configuration) med en privat slutpunktsregel.
- Båda beräkningstyperna: konfigurera båda sökvägarna.
En enda virtuell proxydator utan lastbalanserare räcker för utveckling och testning.
Valfritt (ger hög tillgänglighet och produktionstålighet):
- Ytterligare virtuella proxydatorer för redundans.
- En lastbalanserare som frontar de virtuella proxydatorerna. Ger en stabil slutpunkt och automatisk redundans när en tunnel misslyckas.
- En HTTP-hälsokontrolltjänst på varje virtuell proxydator. På så sätt kan lastbalanseraren identifiera fel på tunnelnivå, och inte bara kontrollera tillgängligheten av virtuella datorer eller portar.
Azure Databricks rekommenderar den här konfigurationen, men anpassar den efter miljö- och säkerhetskrav.
Tunnel-proxy-hubben
Proxyhubben består av följande komponenter.
-
Virtuella proxydatorer (minst två för hög tillgänglighet). Varje virtuell proxydator kör tre tjänster:
-
sshd: SSH-daemon accepterar inkommande omvända tunnlar från den lokala tunnelvärden och placerar tunnellyssnaren på
localhost(till exempellocalhost:13306för MySQL). -
socat: Överbryggar den virtuella datorns nätverksgränssnitt till tunnellyssnaren (till exempel
NIC:3306 → localhost:13306), så att trafik från Azure Databricks kan nå tunnelslutpunkten. - HTTP-hälsokontrolltjänst: Returnerar HTTP 200 när tunneln är aktiv och HTTP 503 när den inte är det. En vanlig TCP-avsökning identifierar bara om socat lyssnar. en HTTP-avsökning på programnivå identifierar en död tunnel även när socat fortfarande körs.
-
sshd: SSH-daemon accepterar inkommande omvända tunnlar från den lokala tunnelvärden och placerar tunnellyssnaren på
-
Lastbalanserare:
- Klientdel: Privat IP-adress i proxyundernätet.
- Backend-pool: Alla virtuella proxydatorer.
- Belastningsutjämningsregel: TCP på resursporten (till exempel port 3306 för MySQL).
- Hälsokontroll: HTTP GET mot hälsokontrollens slutpunkt på varje proxy-VM. En rekommenderad startpunkt är ett intervall på 5 sekunder med 2 fel i följd för att markera en virtuell dator som inte felfri – justera till återställningstoleransen.
- Privat anslutningstjänst (krävs för serverlös beräkning): Ansluten till lastbalanserarens klientdel med ett dedikerat NAT-undernät. Azure använder en Private Link Service (PLS).
-
Lokal tunnelvärd: Kör en
autosshprocess per proxy-VM. En endaautosshanslutning stöder flera-Rportvidare (en SSH-anslutning, flera tunnlar) för installationer med flera resurser. Använd systembaserade tjänster medRestart=always. "Interaktiva" tunnlar avslutas vid utloggning och lämpar sig inte för produktion.
Konfigurera Azure Databricks
Skapa en anslutning till din lokala resurs med lastbalanserarens klientdels-IP. Välj fliken för din beräkningstyp.
Note
I följande exempel används MySQL. För andra databaser ersätter du maven-koordinaten för anslutningstyp, port och JDBC-drivrutin.
Klassisk beräkning
Innan du ansluter, kontrollerar du att peering mellan proxyhubben VNet och ditt Azure Databricks arbetsyte VNet är aktivt. Använd sedan den privata IP-adressen för lastbalanserarens klientdel i anslutningskonfigurationen:
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>');
Frågor misslyckas i läget för delad åtkomst eftersom klasslastarisolering hindrar utförare från att komma åt Maven-baserade JDBC-drivrutiner. Använd åtkomstläge för en användare för att kontrollera att drivrutinen är tillgänglig i hela klustret. Innan du skapar anslutningen lägger du till JDBC-drivrutinen i unity-katalogens tillåtna lista:
ALTER METASTORE ADD ALLOWLIST maven ('mysql:mysql-connector-java:8.0.33');
Serverlös beräkning
Som kontoadministratör går du till kontokonsolen.
I sidofältet klickar du på Säkerhet.
Klicka på Nätverksanslutningskonfigurationer och skapa en NCC för din arbetsyteregion.
I NCC lägger du till en privat slutpunktsregel och anger tjänstens resurs-ID.
Koppla NCC till din arbetsyta och vänta 10–15 minuter på spridning.
Godkänn den privata slutpunktsanslutningen för den privata anslutningstjänsten:
az network private-link-service connection update \ --service-name <pls-name> \ --resource-group <rg> \ --name "<connection-name>" \ --connection-status ApprovedSkapa anslutningen med den privata slutpunktsdomänen:
CREATE CONNECTION mysql_onprem_serverless TYPE mysql OPTIONS ( host '<pe-domain>', port '3306', user '<db-user>', password '<db-password>' );
Knappen Testanslutning i Azure Databricks-användargränssnittet fungerar inte för privata slutpunktsanslutningar. Hoppa över den och skapa anslutningen direkt.
Lakeflow Connect CDC
Lakeflow Connect-gatewayen körs på klassisk beräkning i ditt virtuella arbetsytenätverk och når de virtuella proxydatorerna via peering. Använd den privata IP-adressen för lastbalanserarens klientdel som anslutningsvärd, inte IP-adressen för en enskild virtuell proxydator. Se Hög tillgänglighet och pipelines motståndskraft.
Slutför följande steg för databasmotorn innan du skapar en CDC-pipeline:
Aktivera ändringsloggning: Konfigurera databasen för att logga ändringar på radnivå (till exempel binär loggning i MySQL, logisk replikering i PostgreSQL eller tilläggsloggning i Oracle).
Bevilja replikeringsbehörigheter: Ge pipelineanvändaren de behörigheter som krävs för att läsa ändringsloggar och utföra ögonblicksbilder. Se dokumentationen för anslutningen för din specifika databas.
Ange loggkvarhållning: Konfigurera loggkvarhållning till minst sju dagar. Om CDC-gatewayen är offline när loggarna upphör att gälla måste pipelinen utföra en fullständig ögonblicksbild av alla källtabeller.
För motorspecifik konfiguration, se dokumentationen för Lakeflow Connect-anslutningsappen.
Hög tillgänglighet och pipelineresiliens
Med två eller flera virtuella proxydatorer i serverdelspoolen avbryter inte ett tunnelfel på en enda instans tjänsten. Om en tunnel misslyckas returnerar hälsokontrolltjänsten HTTP 503. Lastbalanseraren slutar sedan dirigera nya anslutningar till den virtuella datorn inom cirka 10 sekunder.
Note
Använd lastbalanserarens klientdels-IP i din reťazec pripojenia, inte IP-adressen för en enskild virtuell proxydator. Om en tunnel sjunker omdirigerar lastbalanseraren automatiskt trafiken utan manuella åtgärder eller avbrott i pipelinen.
| Scenario för misslyckande | Utan hälsokontroll för applikationer | Med programhälsokontroll |
|---|---|---|
| Den virtuella proxydatorn slutar svara | Lastbalanserare identifierar → failöver | Lastbalanserare identifierar → failöver |
| Portvidare stoppas | Lastbalanserare identifierar → failover | Lastbalanserare identifierar → failover |
| SSH-tunneln misslyckades, port forwarding är aktiv | Lastbalanseraren kan inte identifiera → tillfälliga fel | Lastbalanseraren identifierar (HTTP 503) → failover |
För Lakeflow Connect CDC-pipelines ska du ange kvarhållning av binär logg till minst 7 dagar. Om CDC-gatewayen är offline när de binära loggarna upphör att gälla måste pipelinen utföra en fullständig ögonblicksbild av alla källtabeller.
Kända begränsningar
Den här lösningen har följande begränsningar.
- Varje lokal resurs kräver en distinkt portmappning på varje virtuell proxydator. För flera resurser av samma typ på samma standardport använder du olika portar på den virtuella proxydatorns nätverksgränssnitt (till exempel 3306, 3307 eller 3308) eller använder separata virtuella proxydatorer.
- Du måste etablera och underhålla de virtuella proxydatorerna och den lokala tunnelvärden.
- En lastbalanserare blockerar standardutgående Internetanslutning för virtuella datorer i serverdelspoolen. Installera nödvändiga paket innan du lägger till virtuella datorer i poolen.
- Knappen Testanslutning i Azure Databricks-användargränssnittet fungerar inte för privata slutpunktsanslutningar.
- I läget Delad åtkomst är Maven JDBC-bibliotek endast tillgängliga på drivrutinsnoden. Använd åtkomstläge för en användare för JDBC-arbetsbelastningar.