Query's uitvoeren op SQL Server met Azure Databricks
In dit artikel wordt beschreven hoe u Azure Databricks kunt verbinden met Microsoft SQL Server om gegevens te lezen en te schrijven.
Belangrijk
De configuraties die in dit artikel worden beschreven, zijn experimenteel. Experimentele functies worden geleverd als zodanig en worden niet ondersteund door Databricks via technische ondersteuning van klanten. Als u volledige ondersteuning voor queryfederatie wilt krijgen, moet u in plaats daarvan Lakehouse Federation gebruiken, zodat uw Azure Databricks-gebruikers kunnen profiteren van de syntaxis van Unity Catalog en hulpprogramma's voor gegevensbeheer.
Een verbinding met SQL Server configureren
In Databricks Runtime 11.3 LTS en hoger kunt u het sqlserver
trefwoord gebruiken om het meegeleverde stuurprogramma te gebruiken om verbinding te maken met SQL Server. Wanneer u met DataFrames werkt, gebruikt u de volgende syntaxis:
Python
remote_table = (spark.read
.format("sqlserver")
.option("host", "hostName")
.option("port", "port") # optional, can use default port 1433 if omitted
.option("user", "username")
.option("password", "password")
.option("database", "databaseName")
.option("dbtable", "schemaName.tableName") # (if schemaName not provided, default to "dbo")
.load()
)
Scala
val remote_table = spark.read
.format("sqlserver")
.option("host", "hostName")
.option("port", "port") // optional, can use default port 1433 if omitted
.option("user", "username")
.option("password", "password")
.option("database", "databaseName")
.option("dbtable", "schemaName.tableName") // (if schemaName not provided, default to "dbo")
.load()
Wanneer u met SQL werkt, geeft u sqlserver
in de USING
component op en geeft u opties door tijdens het maken van een tabel, zoals wordt weergegeven in het volgende voorbeeld:
DROP TABLE IF EXISTS sqlserver_table;
CREATE TABLE sqlserver_table
USING sqlserver
OPTIONS (
dbtable '<schema-name.table-name>',
host '<host-name>',
port '1433',
database '<database-name>',
user '<username>',
password '<password>'
);
Het verouderde JDBC-stuurprogramma gebruiken
In Databricks Runtime 10.4 LTS en hieronder moet u het stuurprogramma en de configuraties opgeven met behulp van de JDBC-instellingen. In het volgende voorbeeld wordt sql Server opgevraagd met behulp van het JDBC-stuurprogramma. Zie Querydatabases met behulp van JDBC voor meer informatie over lezen, schrijven, parallellisme configureren en querypushdown.
Python
driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
database_host = "<database-host-url>"
database_port = "1433" # update if you use a non-default port
database_name = "<database-name>"
table = "<table-name>"
user = "<username>"
password = "<password>"
url = f"jdbc:sqlserver://{database_host}:{database_port};database={database_name}"
remote_table = (spark.read
.format("jdbc")
.option("driver", driver)
.option("url", url)
.option("dbtable", table)
.option("user", user)
.option("password", password)
.load()
)
Scala
val driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
val database_host = "<database-host-url>"
val database_port = "1433" // update if you use a non-default port
val database_name = "<database-name>"
val table = "<table-name>"
val user = "<username>"
val password = "<password>"
val url = s"jdbc:sqlserver://{database_host}:{database_port};database={database_name}"
val remote_table = spark.read
.format("jdbc")
.option("driver", driver)
.option("url", url)
.option("dbtable", table)
.option("user", user)
.option("password", password)
.load()