Aller au contenu principal

Interroger PostgreSQL avec Databricks

Cet exemple query PostgreSQL à l'aide de son Driver JDBC. Pour plus de détails sur la lecture, l’écriture, la configuration du parallélisme et le pushdown de query, consultez Interroger des bases de données à l’aide de JDBC.

info

Expérimental

La documentation sur la fédération des query héritées a été retirée et pourrait ne pas être mise à jour. Les configurations mentionnées dans ce contenu ne sont ni officiellement approuvées ni testées par Databricks. Si la Lakehouse Federation prend en charge votre base de données source, Databricks recommande d'utiliser cette dernière.

Utilisation de JDBC

Python
driver = "org.postgresql.Driver"

database_host = "<database-host-url>"
database_port = "5432" # update if you use a non-default port
database_name = "<database-name>"
table = "<table-name>"
user = "<username>"
password = "<password>"

url = f"jdbc:postgresql://{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()
)

Utilisation du connecteur PostgreSQL dans Databricks Runtime

À partir de Databricks Runtime 11,3 LTS et supérieur, vous pouvez utiliser le connecteur nommé pour query PosgresQL. Voir les exemples suivants.

Python
remote_table = (spark.read
.format("postgresql")
.option("dbtable", "schema_name.table_name") # if schema_name not provided, default to "public".
.option("host", "database_hostname")
.option("port", "5432") # Optional - will use default port 5432 if not specified.
.option("database", "database_name")
.option("user", "username")
.option("password", "password")
.load()
)