Aracılığıyla paylaş


Azure Databricks ile SQL Server'ı sorgulama

Bu makalede, verileri okumak ve yazmak için Azure Databricks'i Microsoft SQL server'a nasıl bağlayabileceğiniz gösterilmektedir.

Önemli

Eski sorgu federasyon belgeleri kullanımdan kaldırıldı ve güncelleştirilmeyebilir. Bu içerikte belirtilen yapılandırmalar Databricks tarafından resmi olarak onaylanmaz veya test edilmemektedir. Lakehouse Federation kaynak veritabanınızı destekliyorsa Databricks bunun yerine bunu kullanmanızı önerir.

SQL server'a bağlantı yapılandırma

Databricks Runtime 11.3 LTS ve sonraki sürümlerde, SQL server'a bağlanmak için dahil edilen sürücüyü kullanmak için sqlserver anahtar kelimesini kullanabilirsiniz. DataFrame'lerle çalışırken aşağıdaki söz dizimini kullanın:

Piton

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 programlama dili

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

SQL ile çalışırken, aşağıdaki örnekte gösterildiği gibi sqlserver yan tümcüğünde USING belirtin ve tablo oluştururken seçenekleri belirtin.

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>'
);

Eski JDBC sürücüsünü kullanma

Databricks Runtime 10.4 LTS ve altında, JDBC ayarlarını kullanarak sürücü ve yapılandırmaları belirtmeniz gerekir. Aşağıdaki örnek, JDBC sürücüsünü kullanarak SQL Server'ın sorgularını yapar. Daha fazla bilgi için okuma, yazma, paralelliği yapılandırma ve sorgu aktarma konularında JDBC kullanarak veritabanlarını sorgulama'ya bakın.

Piton

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 programlama dili

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