Baca dalam bahasa Inggris

Bagikan melalui


Kueri SQL Server dengan Azure Databricks

Artikel ini memperlihatkan cara menyambungkan Azure Databricks ke server Microsoft SQL untuk membaca dan menulis data.

Penting

Konfigurasi yang dijelaskan dalam artikel ini bersifat Eksperimental. Fitur eksperimental disediakan apa adanya dan tidak didukung oleh Databricks melalui dukungan teknis pelanggan. Untuk mendapatkan dukungan federasi kueri penuh, Anda harus menggunakan Federasi Lakehouse, yang memungkinkan pengguna Azure Databricks Anda memanfaatkan sintaksIs dan alat tata kelola data Unity Catalog.

Mengonfigurasi koneksi ke server SQL

Di Databricks Runtime 11.3 LTS ke atas, Anda dapat menggunakan sqlserver kata kunci untuk menggunakan driver yang disertakan untuk menyambungkan ke server SQL. Saat bekerja dengan DataFrames, gunakan sintaks berikut:

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

Saat bekerja dengan SQL, tentukan sqlserver dalam USING opsi klausa dan teruskan saat membuat tabel, seperti yang ditunjukkan dalam contoh berikut:

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

Menggunakan driver JDBC warisan

Di Databricks Runtime 10.4 LTS dan di bawahnya, Anda harus menentukan driver dan konfigurasi menggunakan pengaturan JDBC. Contoh berikut mengkueri SQL Server menggunakan driver JDBC-nya. Untuk detail selengkapnya tentang membaca, menulis, mengonfigurasi paralelisme, dan pushdown kueri, lihat Database kueri menggunakan JDBC.

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