이 예는 JDBC 드라이버를 사용하여 MySQL을 쿼리합니다. 읽기, 쓰기, 병렬 처리 구성 및 쿼리 푸시다운에 대한 자세한 내용은 JDBC를 사용하여 데이터베이스 쿼리를 참조하세요.
중요합니다
레거시 쿼리 페더레이션 설명서가 사용 중지되었으며 업데이트되지 않을 수 있습니다. 이 콘텐츠에 언급된 구성은 Databricks에서 공식적으로 승인되거나 테스트되지 않습니다. Lakehouse Federation이 원본 데이터베이스를 지원하는 경우 Databricks는 대신 이 데이터베이스를 사용하는 것이 좋습니다.
JDBC 사용
파이썬
driver = "com.mysql.cj.jdbc.Driver"
database_host = "<database-host-url>"
database_port = "3306" # update if you use a non-default port
database_name = "<database-name>"
table = "<table-name>"
user = "<username>"
password = "<password>"
url = f"jdbc:mysql://{database_host}:{database_port}/{database_name}"
remote_table = (spark.read
.format("jdbc")
.option("driver", driver)
.option("url", url)
.option("dbtable", table)
.option("user", user)
.option("password", password)
.load()
)
스칼라
val driver = "com.mysql.cj.jdbc.Driver"
val database_host = "<database-host-url>"
val database_port = "3306" # 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:mysql://${database_host}:${database_port}/${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()
Databricks Runtime에서 MySQL 커넥터 사용
Databricks Runtime 11.3 LTS 이상을 사용하여 명명된 커넥터를 사용하여 MySQL을 쿼리할 수 있습니다. 다음 예제를 참조하세요.
파이썬
remote_table = (spark.read
.format("mysql")
.option("dbtable", "table_name")
.option("host", "database_hostname")
.option("port", "3306") # Optional - will use default port 3306 if not specified.
.option("database", "database_name")
.option("user", "username")
.option("password", "password")
.load()
)
SQL
DROP TABLE IF EXISTS mysql_table;
CREATE TABLE mysql_table
USING mysql
OPTIONS (
dbtable '<table-name>',
host '<database-host-url>',
port '3306', /* Optional - will use default port 3306 if not specified. */
database '<database-name>',
user '<username>',
password '<password>'
);
SELECT * from mysql_table;
스칼라
val remote_table = spark.read
.format("mysql")
.option("dbtable", "table_name")
.option("host", "database_hostname")
.option("port", "3306") # Optional - will use default port 3306 if not specified.
.option("database", "database_name")
.option("user", "username")
.option("password", "password")
.load()