Aller au contenu principal

Options d'écriture Serverless pour les connecteurs groupés

Lors de l'écriture vers une source de données externe à l'aide d'un connecteur groupé sur compute serverless, seule une partie des options de connecteur sont prises en charge. Les tableaux suivants répertorient les options prises en charge par connecteur.

Pour les instructions de configuration et les exemples, consultez sources de données Spark.

PostgreSQL

Les options suivantes sont prises en charge lors de l'écriture vers PostgreSQL sur le compute serverless.

Option

Description

host

Hostname du serveur PostgreSQL.

port

Numéro de port. Default : 5432.

database

Nom de la base de données à laquelle se connecter.

connectTimeout

Durée maximale en secondes pour l'attente d'une connexion. 0 désactive le délai d'expiration.

user

Nom d'utilisateur de la base de données.

password

Mot de passe de la base de données.

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes à insérer par batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximal en secondes à attendre pour qu'une query se termine. 0 désactive le délai d'expiration.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

cascadeTruncate

Si true, la troncation est transmise en cascade aux tables ayant des références de clé étrangère à la table cible. Default: false.

Option

Description

host

Hostname du serveur PostgreSQL.

port

Numéro de port. Default : 5432.

database

Nom de la base de données à laquelle se connecter.

connectTimeout

Durée maximale en secondes pour l'attente d'une connexion. 0 désactive le délai d'expiration.

user

Nom d'utilisateur de la base de données.

password

Mot de passe de la base de données.

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes à insérer par batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximal en secondes à attendre pour qu'une query se termine. 0 désactive le délai d'expiration.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

cascadeTruncate

Si true, la troncation est transmise en cascade aux tables ayant des références de clé étrangère à la table cible. Default: false.

SQL Server

Les options suivantes sont prises en charge lors de l'écriture vers SQL Server sur compute serverless.

Option

Description

host

Hostname de l'instance SQL Server.

port

Numéro de port. Default : 1433.

database

Nom de la base de données à laquelle se connecter.

connectionTimeout

Durée maximale en secondes pour l'attente d'une connexion. 0 désactive le délai d'expiration.

encrypt

Si true, chiffre toutes les données envoyées entre le client et le serveur à l'aide de TLS. Default: false.

trustServerCertificate

Si true, fait confiance au certificat TLS du serveur sans validation. Pour les environnements de développement uniquement. Default: false.

debug

Si true, active la journalisation de débogage détaillée pour le connecteur. Default: false.

user

Nom d'utilisateur de la base de données.

password

Mot de passe de la base de données.

authentication

Type d'authentification. Valeurs prises en charge : SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes à insérer par batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximal en secondes à attendre pour qu'une query se termine. 0 désactive le délai d'expiration.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

Option

Description

host

Hostname de l'instance SQL Server.

port

Numéro de port. Default : 1433.

database

Nom de la base de données à laquelle se connecter.

connectionTimeout

Durée maximale en secondes pour l'attente d'une connexion. 0 désactive le délai d'expiration.

encrypt

Si true, chiffre toutes les données envoyées entre le client et le serveur à l'aide de TLS. Default: false.

trustServerCertificate

Si true, fait confiance au certificat TLS du serveur sans validation. Pour les environnements de développement uniquement. Default: false.

debug

Si true, active la journalisation de débogage détaillée pour le connecteur. Default: false.

user

Nom d'utilisateur de la base de données.

password

Mot de passe de la base de données.

authentication

Type d'authentification. Valeurs prises en charge : SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes à insérer par batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximal en secondes à attendre pour qu'une query se termine. 0 désactive le délai d'expiration.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

MySQL

Les options suivantes sont prises en charge lors de l'écriture sur MySQL sur compute serverless.

Option

Description

host

Hostname du serveur MySQL.

port

Numéro de port. Default : 3306.

database

Nom de la base de données à laquelle se connecter.

connectionTimeout

Durée maximale en secondes pour l'attente d'une connexion. 0 désactive le délai d'expiration.

requireSSL

Si true, requiert une connexion chiffrée SSL au serveur. Default: false.

useSSL

Si true, active SSL pour la connexion lorsque le serveur le prend en charge. Default: false.

user

Nom d'utilisateur de la base de données.

password

Mot de passe de la base de données.

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes à insérer par batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximal en secondes à attendre pour qu'une query se termine. 0 désactive le délai d'expiration.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

cascadeTruncate

Si true, la troncation est transmise en cascade aux tables ayant des références de clé étrangère à la table cible. Default: false.

Option

Description

host

Hostname du serveur MySQL.

port

Numéro de port. Default : 3306.

database

Nom de la base de données à laquelle se connecter.

connectionTimeout

Durée maximale en secondes pour l'attente d'une connexion. 0 désactive le délai d'expiration.

requireSSL

Si true, requiert une connexion chiffrée SSL au serveur. Default: false.

useSSL

Si true, active SSL pour la connexion lorsque le serveur le prend en charge. Default: false.

user

Nom d'utilisateur de la base de données.

password

Mot de passe de la base de données.

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes à insérer par batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximal en secondes à attendre pour qu'une query se termine. 0 désactive le délai d'expiration.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

cascadeTruncate

Si true, la troncation est transmise en cascade aux tables ayant des références de clé étrangère à la table cible. Default: false.

Snowflake

Les sections suivantes énumèrent les options prises en charge pour le connecteur Snowflake, organisées par fonction.

Connexion

Les options suivantes configurent la connexion à Snowflake et contrôlent le comportement de la session.

Option

Description

host

Hostname du compte Snowflake (par exemple, <account>.snowflakecomputing.com).

port

Numéro de port. Default : 443.

sfaccount

Identifiant de compte Snowflake.

sfauthenticator

Méthode d'authentification : snowflake (mot de passe), oauth (jeton) ou snowflake_jwt (paire de clés). Default: snowflake.

networktimeout

Délai d’expiration en secondes pour les opérations réseau.

sftimezone

Fuseau horaire pour les opérations de timestamp (par exemple, America/New_York).

client_session_keep_alive

Si true, envoie des signaux de maintien en vie pour éviter l'expiration de la session pendant les opérations de longue durée. Default: false.

ocspfailopen

Si true, permet aux connexions de se poursuivre lorsque la validation du certificat OCSP n'est pas disponible (mode de défaillance ouverte). Default: true.

Option

Description

host

Hostname du compte Snowflake (par exemple, <account>.snowflakecomputing.com).

port

Numéro de port. Default : 443.

sfaccount

Identifiant de compte Snowflake.

sfauthenticator

Méthode d'authentification : snowflake (mot de passe), oauth (jeton) ou snowflake_jwt (paire de clés). Default: snowflake.

networktimeout

Délai d’expiration en secondes pour les opérations réseau.

sftimezone

Fuseau horaire pour les opérations de timestamp (par exemple, America/New_York).

client_session_keep_alive

Si true, envoie des signaux de maintien en vie pour éviter l'expiration de la session pendant les opérations de longue durée. Default: false.

ocspfailopen

Si true, permet aux connexions de se poursuivre lorsque la validation du certificat OCSP n'est pas disponible (mode de défaillance ouverte). Default: true.

Authentification

Les options suivantes fournissent des identifiants pour la méthode d'authentification configurée dans sfauthenticator. Les identifiants de staging (temporary_aws_*, awsaccesskey, temporary_azure_sas_token) sont requis lorsque les étapes de Snowflake écrivent des données via le stockage cloud.

Option

Description

sfuser

Nom d'utilisateur Snowflake.

sfpassword

Mot de passe Snowflake. Utilisé lorsque sfauthenticator est snowflake.

sfToken

Jeton d'accès OAuth. Utilisé lorsque sfauthenticator est oauth.

pem_private_key

Clé privée au format PEM pour l'authentification par paire de clés. Utilisé lorsque sfauthenticator est snowflake_jwt.

temporary_aws_access_key_id

ID de clé d'accès AWS temporaire pour la préparation S3. Préféré à awsaccesskey lors de l'utilisation d'informations d'identification de courte durée.

temporary_aws_secret_access_key

Clé d'accès secrète AWS temporaire pour la mise en zone de transit S3.

temporary_aws_session_token

Jeton de session AWS temporaire pour la mise en scène S3.

temporary_azure_sas_token

Jeton SAS Azure temporaire pour la préparation de Azure Blob Storage.

awsaccesskey

Clé d'accès AWS pour le staging S3.

awssecretkey

Clé secrète AWS pour la préparation S3.

Option

Description

sfuser

Nom d'utilisateur Snowflake.

sfpassword

Mot de passe Snowflake. Utilisé lorsque sfauthenticator est snowflake.

sfToken

Jeton d'accès OAuth. Utilisé lorsque sfauthenticator est oauth.

pem_private_key

Clé privée au format PEM pour l'authentification par paire de clés. Utilisé lorsque sfauthenticator est snowflake_jwt.

temporary_aws_access_key_id

ID de clé d'accès AWS temporaire pour la préparation S3. Préféré à awsaccesskey lors de l'utilisation d'informations d'identification de courte durée.

temporary_aws_secret_access_key

Clé d'accès secrète AWS temporaire pour la mise en zone de transit S3.

temporary_aws_session_token

Jeton de session AWS temporaire pour la mise en scène S3.

temporary_azure_sas_token

Jeton SAS Azure temporaire pour la préparation de Azure Blob Storage.

awsaccesskey

Clé d'accès AWS pour le staging S3.

awssecretkey

Clé secrète AWS pour la préparation S3.

Cible

Les options suivantes spécifient la base de données Snowflake, le schéma, le warehouse et la table dans laquelle écrire.

Option

Description

sfdatabase

Nom de la base de données Snowflake.

sfschema

Nom du schéma Snowflake.

sfwarehouse

Snowflake virtual warehouse utilisé pour l'exécution des query.

sfrole

Rôle Snowflake pour la session.

dbtable

Nom de la table cible.

Option

Description

sfdatabase

Nom de la base de données Snowflake.

sfschema

Nom du schéma Snowflake.

sfwarehouse

Snowflake virtual warehouse utilisé pour l'exécution des query.

sfrole

Rôle Snowflake pour la session.

dbtable

Nom de la table cible.

Comportement d'écriture

Les options suivantes contrôlent la manière dont les données sont écrites dans la table Snowflake cible.

Option

Description

column_mapping

Comment les colonnes DataFrame sont mises en correspondance avec les colonnes de table Snowflake : name (par nom de colonne) ou position (par ordre de colonne). default: name.

column_mismatch_behavior

Comportement lorsque les colonnes de DataFrame et de table ne s'alignent pas : error ou ignore. default: error.

truncate_table

Si true, tronque la table cible avant l'écriture. Default: false.

usestagingtable

Si true, les données sont stockées temporairement dans une table temporaire avant d'être échangées avec la cible, ce qui permet des écritures atomiques. Default: true.

internal_execute_query_in_sync_mode

Si true, exécute des requêtes Snowflake de manière synchrone. Default: false.

autopushdown

Si true, pousse les Opérations de filtre et d'agrégation vers Snowflake pour l'exécution. Default: true.

Option

Description

column_mapping

Comment les colonnes DataFrame sont mises en correspondance avec les colonnes de table Snowflake : name (par nom de colonne) ou position (par ordre de colonne). default: name.

column_mismatch_behavior

Comportement lorsque les colonnes de DataFrame et de table ne s'alignent pas : error ou ignore. default: error.

truncate_table

Si true, tronque la table cible avant l'écriture. Default: false.

usestagingtable

Si true, les données sont stockées temporairement dans une table temporaire avant d'être échangées avec la cible, ce qui permet des écritures atomiques. Default: true.

internal_execute_query_in_sync_mode

Si true, exécute des requêtes Snowflake de manière synchrone. Default: false.

autopushdown

Si true, pousse les Opérations de filtre et d'agrégation vers Snowflake pour l'exécution. Default: true.

Redshift

Les sections suivantes répertorient les options prises en charge pour le connecteur Redshift, organisées par fonction.

Connexion

Les options suivantes configurent la connexion au cluster Redshift.

Option

Description

host

Redshift cluster Endpoint Hostname.

port

Numéro de port. Default : 5439.

database

Nom de la base de données Redshift.

connectionTimeout

Délai maximal en secondes pour attendre une connexion.

Option

Description

host

Redshift cluster Endpoint Hostname.

port

Numéro de port. Default : 5439.

database

Nom de la base de données Redshift.

connectionTimeout

Délai maximal en secondes pour attendre une connexion.

Authentification

Les options suivantes configurent les identifiants pour Redshift et pour l'emplacement de staging S3 que Redshift utilise pendant les opérations d'écriture.

Option

Description

user

Nom d'utilisateur Redshift.

password

Mot de passe Redshift.

aws_iam_role

ARN du rôle IAM que Redshift utilise pour accéder à S3 pour les données de staging.

temporary_aws_access_key_id

ID de clé d'accès AWS temporaire pour la préparation S3. Préféré aux identifiants de longue durée.

temporary_aws_secret_access_key

Clé d'accès secrète AWS temporaire pour la mise en zone de transit S3.

temporary_aws_session_token

Jeton de session AWS temporaire pour la mise en scène S3.

forward_spark_s3_credentials

Si true, transmet les identifiants S3 de Spark à Redshift pour le staging. À utiliser uniquement lorsque Spark et Redshift partagent les mêmes identifiants S3. Default: false.

Option

Description

user

Nom d'utilisateur Redshift.

password

Mot de passe Redshift.

aws_iam_role

ARN du rôle IAM que Redshift utilise pour accéder à S3 pour les données de staging.

temporary_aws_access_key_id

ID de clé d'accès AWS temporaire pour la préparation S3. Préféré aux identifiants de longue durée.

temporary_aws_secret_access_key

Clé d'accès secrète AWS temporaire pour la mise en zone de transit S3.

temporary_aws_session_token

Jeton de session AWS temporaire pour la mise en scène S3.

forward_spark_s3_credentials

Si true, transmet les identifiants S3 de Spark à Redshift pour le staging. À utiliser uniquement lorsque Spark et Redshift partagent les mêmes identifiants S3. Default: false.

Comportement d'écriture

Les options suivantes contrôlent la manière dont les données sont écrites dans la table Redshift cible, y compris la distribution, les clés de tri et le format de staging.

Option

Description

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes par insertion de batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximum en secondes pour attendre qu'une query se termine.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

diststyle

Style de distribution Redshift : EVEN, KEY ou ALL.

distkey

Colonne à utiliser comme clé de distribution. Obligatoire lorsque diststyle est KEY.

sortkeyspec

Spécification de la clé de tri pour la table Redshift (par exemple, SORTKEY(col1, col2)).

csvnullstring

Chaîne écrite dans des fichiers CSV de staging pour représenter les valeurs NULL. default: empty string.

tempformat

Format de fichier de staging : CSV ou AVRO. default: CSV.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

Option

Description

dbtable

Nom de la table cible. Prend en charge les noms qualifiés par schéma (par exemple, myschema.mytable).

batchsize

Nombre de lignes par insertion de batch. Default : 1000.

numPartitions

Nombre de partitions Spark pour les opérations d'écriture parallèles.

queryTimeout

Temps maximum en secondes pour attendre qu'une query se termine.

isolationLevel

Niveau d'isolation des transactions : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. Default: READ_UNCOMMITTED.

diststyle

Style de distribution Redshift : EVEN, KEY ou ALL.

distkey

Colonne à utiliser comme clé de distribution. Obligatoire lorsque diststyle est KEY.

sortkeyspec

Spécification de la clé de tri pour la table Redshift (par exemple, SORTKEY(col1, col2)).

csvnullstring

Chaîne écrite dans des fichiers CSV de staging pour représenter les valeurs NULL. default: empty string.

tempformat

Format de fichier de staging : CSV ou AVRO. default: CSV.

truncate

Si true, tronque la table cible en mode overwrite au lieu de la supprimer et de la recréer. default: false.

Écrire sur PostgreSQL avec le compute serverless

Cet exemple utilise le mode append et récupère les identifiants d'un Secret Scope Databricks.

Python
df.write \
.format("postgresql") \
.option("host", dbutils.secrets.get(scope="<scope>", key="<host>")) \
.option("port", "<port>") \
.option("database", "<database-name>") \
.option("dbtable", "<table-name>") \
.option("user", dbutils.secrets.get(scope="<scope>", key="<user>")) \
.option("password", dbutils.secrets.get(scope="<scope>", key="<password>")) \
.mode("append") \
.save()

Étapes suivantes

  • Sources de données Spark: Instructions de configuration, exemples de code et comparaison des stratégies d'intégration Spark.
  • Connexion JDBC: utilisez une connexion Unity Catalog avec un Driver JDBC pour les options non prises en charge par les connecteurs groupés sur Serverless, ou pour les sources de données sans connecteur groupé.
  • Référence des options de l'API Spark: référence pour DataFrameReader, DataFrameWriter et les options de streaming pour les formats de fichier et les sources de streaming.