Compartir a través de


Consulta de MySQL con Azure Databricks

En este ejemplo se consulta MySQL mediante su controlador de JDBC. Para obtener más información sobre la lectura, escritura, configuración del paralelismo e inserción de consultas, vea Consulta de bases de datos mediante JDBC.

Importante

Las configuraciones descritas en este artículo son experimentales. Las características experimentales se proporcionan tal cual y no cuentan con soporte técnico de Databricks a través del soporte técnico al cliente. Para obtener compatibilidad completa con la federación de consultas, debe usar la federación de Lakehouse, que permite a los usuarios de Azure Databricks aprovechar la sintaxis de Unity Catalog y las herramientas de gobernanza de datos.

Uso de JDBC

Python

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

Scala

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

Uso del conector de MySQL en Databricks Runtime

Con Databricks Runtime 11.3 LTS y versiones posteriores, puede usar el conector con nombre para consultar MySQL. Consulte los siguientes ejemplos:

Python

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;

Scala

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