Delen via


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()