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.
Belangrijk
De SFTP-connector bevindt zich in openbare preview.
Leer hoe u bestanden kunt opnemen van SFTP-servers met behulp van Lakeflow Connect. De SFTP-connector breidt de functionaliteit voor automatisch laden uit om veilige, incrementele opname te bieden van SFTP-servers met Unity Catalog-governance.
Belangrijkste kenmerken
De SFTP-connector biedt het volgende:
- Verificatie op basis van een persoonlijke sleutel en wachtwoord.
- Incrementele bestandsopname en -verwerking met exactly-once garanties.
- Automatische schemadeductie, evolutie en gegevensredding.
- Unity Catalog-governance voor veilige gegevensinvoer en authenticatiegegevens.
- Ondersteuning voor brede bestandsindelingen:
JSON,CSV,XML,PARQUET,AVRO, ,TEXT, , enBINARYFILEORC. - Ingebouwde ondersteuning voor patroon- en jokertekenkoppeling om eenvoudig gegevenssubsets te targeten.
- Beschikbaarheid voor alle rekentypen, waaronder Lakeflow Spark-declaratieve pijplijnen, Databricks SQL, serverloos en klassiek met Databricks Runtime 17.3 en hoger.
Voordat u begint
Als u de verbinding en de opnamepijplijn wilt maken, moet u het volgende hebben:
- Een werkruimte waarvoor Unity Catalog is ingeschakeld.
-
CREATE CONNECTIONPrivileges. - Compute die gebruikmaakt van Databricks Runtime versie 17.3 of hoger.
SFTP configureren
Controleer eerst of de bron-SFTP-server toegankelijk is voor uw Databricks-clusteromgeving:
- Zorg ervoor dat de externe server beschikbaar is in de VPC die is geconfigureerd met uw werkruimte.
- Zorg ervoor dat uw SSH-regels het IP-bereik van de Databricks-VPC toestaan (als u klassieke rekenkracht gebruikt) of de stabiele IP-adressen (als u serverloze compute gebruikt).
- Stel vanuit het klassieke rekenvlak een stabiel IP-adres in met een load balancer, NAT-gateway, internetgateway of gelijkwaardig, en verbind het met het subnet waar Azure Databricks Compute wordt geïmplementeerd. Hierdoor kan de rekenresource een stabiel openbaar IP-adres delen dat kan worden toegestaan aan de serverzijde van SFTP. Zie Virtuele peernetwerken voor instructies voor het configureren van netwerkinstellingen.
- Zie Privéconnectiviteit met Azure-resources configureren vanuit het serverloze rekenvlak om een stabiel uitgaand IP-adres te verkrijgen.
Maak de verbinding
Maak een Unity Catalog-verbinding om uw SFTP-referenties op te slaan. U moet CREATE CONNECTION bevoegdheden hebben.
De connector ondersteunt de volgende verificatiemethoden:
- PERSOONLIJKE PEM-sleutel
- Verificatie op basis van een wachtwoord
Databricks raadt aan om persoonlijke PEM-sleutelverificatie te gebruiken. Databricks raadt ook aan inloggegevens te gebruiken met zo weinig mogelijk bevoegdheden op de bron SFTP-server (bijvoorbeeld een niet-rootgebruiker die beperkt is tot uitsluitend lezentoegang).
Wanneer u de pijplijn maakt, probeert de connector automatisch een verbinding te vinden die u kunt gebruiken en die overeenkomt met de host. Als er meerdere overeenkomende verbindingen zijn, kiest de connector de eerste verbinding die verbinding maakt met de host. Databricks raadt u echter aan de gebruiker expliciet op te geven. Dit zorgt ervoor dat de connector geen verbinding kiest voor een andere gebruiker met hosttoegang.
PERSOONLIJKE PEM-sleutel (aanbevolen)
Catalogusverkenner
Klik in de Azure Databricks-werkruimte op Externe gegevensverbindingen > catalogiseren>.
Klik op Verbinding maken.
Voer op de pagina Basisbeginselen van de wizard Verbinding instellen een unieke verbindingsnaam in.
Selecteer SFTP voor verbindingstype.
Selecteer pem-persoonlijke sleutel voor verificatietype.
Klik op Volgende.
Voer op de pagina Verificatie voor Host de hostnaam van de refererende server in.
Voer voor Gebruiker de gebruikersidentiteit in die wordt gebruikt voor toegang tot de buitenlandse instantie.
Klik op Volgende.
Voer op de pagina Verbindingsgegevens de persoonlijke sleutel in PEM-indeling in. Geef indien van toepassing ook de wachtwoordzin voor de sleutel op.
Als u de controle van de hostsleutelvingerafdruk wilt overslaan, selecteer Controle van de hostsleutelvingerafdruk afdwingen uit.
Wanneer dit is geselecteerd, wordt de verbinding alleen voortgezet als de openbare sleutel van de server overeenkomt met de verwachte SHA-256-vingerafdruk. Wanneer de verbinding is uitgeschakeld, wordt de verbinding voortgezet, ongeacht de overeenkomst. Neem contact op met de netwerkbeheerder voordat u dit uitschakelt.
Als Vingerafdruk van hostsleutel afdwingen is ingeschakeld, voert u de vingerafdruk van de SFTP-server in.
U kunt de vingerafdruk ophalen van de serverbeheerder of met behulp van CLI-opdrachten. U kunt ook op Test drukken en verbinding>testen maken. Het resulterende foutbericht bevat de vingerafdruk. Voorbeeld:
ECDSA key fingerprint is SHA256:XXX/YYYKlik op Testen en verbinding maken.
Als de verbinding is geslaagd, klikt u op Maken.
SQL
-- Create a connection using a username and SSH private key.
CREATE CONNECTION my_sftp_connection
TYPE sftp
OPTIONS (
host 'my.sftpserver.com',
-- The following credentials can also be used in-line, but Databricks recommends
-- accessing them using the secrets scope.
user secret('my_secret_scope','my_sftp_username'),
pem_private_key secret('my_secret_scope','my_sftp_private_key'),
-- Port for the host
port '22',
-- Passphrase for the private key (optional).
pem_key_passphrase secret('my_secret_scope','my_sftp_private_key_passphrase'),
-- SFTP server fingerprint. You can retrieve this from your server administrator or using CLI commands.
key_fingerprint 'SHA256:ASampleFingerprintValueZy...',
);
Verificatie op basis van een wachtwoord
Catalogusverkenner
Klik in de Azure Databricks-werkruimte op Externe gegevensverbindingen > catalogiseren>.
Klik op Verbinding maken.
Voer op de pagina Basisbeginselen van de wizard Verbinding instellen een unieke verbindingsnaam in.
Selecteer SFTP voor verbindingstype.
Selecteer gebruikersnaam en wachtwoord voor verificatietype.
Klik op Volgende.
Voer op de pagina Verificatie voor Host de hostnaam van de refererende server in.
Voer voor Gebruiker de gebruikersidentiteit in die wordt gebruikt voor toegang tot de buitenlandse instantie.
Voer voor Wachtwoord het wachtwoord in van de externe instantie.
Klik op Volgende.
Als u de controle van de hostsleutelvingerafdruk wilt overslaan, selecteer Controle van de hostsleutelvingerafdruk afdwingen uit.
Wanneer dit is geselecteerd, wordt de verbinding alleen voortgezet als de openbare sleutel van de server overeenkomt met de verwachte SHA-256-vingerafdruk. Wanneer de verbinding is uitgeschakeld, wordt de verbinding voortgezet, ongeacht de overeenkomst. Neem contact op met de netwerkbeheerder voordat u dit uitschakelt.
Als Vingerafdruk van hostsleutel afdwingen is ingeschakeld, voert u de vingerafdruk van de SFTP-server in.
U kunt de vingerafdruk ophalen van de serverbeheerder of met behulp van CLI-opdrachten. U kunt ook op Test drukken en verbinding>testen maken. Het resulterende foutbericht bevat de vingerafdruk. Voorbeeld:
ECDSA key fingerprint is SHA256:XXX/YYYKlik op Testen en verbinding maken.
Als de verbinding is geslaagd, klikt u op Maken.
SQL
-- Create a connection using a username and password.
CREATE CONNECTION my_sftp_connection
TYPE sftp
OPTIONS (
host 'my.sftpserver.com',
user secret('my_secret_scope','my_sftp_username'),
password secret('my_secret_scope','my_sftp_password'),
-- Port for the host.
port '22',
-- SFTP server fingerprint. You can retrieve this from your server administrator or using CLI commands.
key_fingerprint 'SHA256:ASampleFingerprintValueZy...',
);
Bestanden lezen van de SFTP-server
In de volgende voorbeelden ziet u hoe u bestanden kunt lezen van de SFTP-server met behulp van de streamingmogelijkheden van autolaadprogramma's. Zie Algemene patronen voor het laden van gegevens voor meer informatie over het gebruik van automatisch laadprogramma's.
# Run the Auto Loader job to ingest all existing data in the SFTP server.
df = (spark.readStream.format("cloudFiles")
.option("cloudFiles.schemaLocation", "<path to store schema information>") # This is a cloud storage path
.option("cloudFiles.format", "csv") # Or other format supported by Auto Loader
# Specify the absolute path on the SFTP server starting from the root /.
# Example: /home/<username>/data/files or /uploads/csv_files
.load("sftp://<username>@<host>:<port>/<absolute_path_to_files>")
.writeStream
.format("delta")
.option("checkpointLocation", "<path to store checkpoint information>") # This is a cloud storage path.
.trigger(availableNow = True)
.table("<table name>"))
df.awaitTermination()
In de volgende voorbeelden ziet u hoe u bestanden kunt lezen van een SFTP-server met behulp van automatisch laden in Lakeflow Spark-declaratieve pijplijnen:
Python
from pyspark import pipelines as dp
@dp.table
def sftp_bronze_table():
return (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv") # Or other format supported by Auto Loader
# Specify the absolute path on the SFTP server starting from the root /.
# Example: /home/username/data/files or /uploads/csv_files
.load("sftp://<username>@<host>:<port>/<absolute_path_to_files>")))
SQL
CREATE OR REFRESH STREAMING TABLE sftp_bronze_table
AS SELECT * FROM STREAM read_files(
"sftp://<username>@<host>:<port>/<absolute_path_to_files>",
format => "csv"
)
Opties voor automatisch laden configureren. Alle opties worden ondersteund, behalve:
cloudFiles.useNotificationscloudFiles.useManagedFileEventscloudFiles.cleanSource- Cloudspecifieke opties
Beperkingen
- SFTP wordt niet ondersteund op andere opnameoppervlakken, waaronder
COPY INTO,spark.readendbutils.ls. - Terugschrijven naar een SFTP-server wordt niet ondersteund.
- Automatisch laden
cleanSource(bestanden bij bron verwijderen of archiveren na opname) wordt niet ondersteund. - Het FTP-protocol wordt niet ondersteund.
Veelgestelde vragen
Vind antwoorden op veelgestelde vragen over de SFTP-connector.
Hoe gebruik ik jokertekens of bestandsnaampatronen om bestanden te selecteren die moeten worden opgenomen?
De SFTP-connector bouwt voort op het standaardframework voor automatisch laden om te lezen van SFTP-servers. Dit betekent dat alle opties voor automatisch laden worden ondersteund. Gebruik de pathGlobFilter of fileNamePattern opties voor bestandsnaampatronen en jokertekens. Zie opties voor automatisch laden.
Kan de SFTP-connector versleutelde bestanden opnemen? (Wordt PGP ondersteund?)
De connector ontsleutelt niet tijdens de vlucht, maar u kunt de versleutelde bestanden opnemen als binaire bestanden en deze ontsleutelen na opname.
Hoe kan ik incompatibele persoonlijke sleutelindelingen verwerken?
Alleen PEM-indeling wordt ondersteund. U kunt een persoonlijke sleutel genereren in PEM-indeling door een van de volgende handelingen uit te voeren:
(Optie 1) Maak een nieuwe RSA-sleutel in de standaard PEM-indeling:
% ssh-keygen -t rsa -m pem(Optie 2) Converteer de bestaande OpenSSH-indelingssleutel naar PEM-indeling:
% ssh-keygen -p -m pem -f /path/to/key # This updates the key file.