Options d’écriture serverless pour les connecteurs groupés

Lorsque vous écrivez dans une source de données externe à l’aide d’un connecteur groupé sur le calcul serverless, seul un sous-ensemble d’options de connecteur est pris en charge. Les tableaux suivants répertorient les options prises en charge par connecteur.

Pour obtenir des instructions et des exemples d’installation, consultez les sources de données Spark.

PostgreSQL

Les options suivantes sont prises en charge lors de l’écriture dans PostgreSQL sur le calcul serverless.

Option Description
host Nom d’hôte du serveur PostgreSQL.
port Numéro de port. Valeur par défaut : 5432.
database Nom de la base de données à laquelle se connecter.
connectTimeout Durée maximale en secondes d’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 base de données.
dbtable Nom de la table cible. Prend en charge les noms qualifiés de schéma (par exemple). myschema.mytable
batchsize Nombre de lignes à insérer par lot. Valeur par défaut : 1000.
numPartitions Nombre de partitions Spark pour les opérations d’écriture parallèles.
queryTimeout Durée maximale en secondes d’attente de la fin d’une requête. 0 désactive le délai d’expiration.
isolationLevel Niveau d’isolation des transactions : NONE, , READ_COMMITTEDREAD_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Valeur par défaut : READ_UNCOMMITTED.
truncate Si true, tronque la table cible en overwrite mode au lieu de la supprimer et de la recréer. Valeur par défaut : false.
cascadeTruncate Si true, cascade la troncation vers des tables avec des références de clé étrangère à la table cible. Valeur par défaut : false.

SQL Server

Les options suivantes sont prises en charge lors de l’écriture dans SQL Server sur le calcul serverless.

Option Description
host Nom d’hôte de l’instance SQL Server.
port Numéro de port. Valeur par défaut : 1433.
database Nom de la base de données à laquelle se connecter.
connectionTimeout Durée maximale en secondes d’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. Valeur par défaut : false.
trustServerCertificate Si true, approuve le certificat TLS du serveur sans validation. Pour les environnements de développement uniquement. Valeur par défaut : false.
debug Si true, active la journalisation détaillée du débogage pour le connecteur. Valeur par défaut : false.
user Nom d’utilisateur de la base de données.
password Mot de passe de 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 de schéma (par exemple). myschema.mytable
batchsize Nombre de lignes à insérer par lot. Valeur par défaut : 1000.
numPartitions Nombre de partitions Spark pour les opérations d’écriture parallèles.
queryTimeout Durée maximale en secondes d’attente de la fin d’une requête. 0 désactive le délai d’expiration.
isolationLevel Niveau d’isolation des transactions : NONE, , READ_COMMITTEDREAD_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Valeur par défaut : READ_UNCOMMITTED.
truncate Si true, tronque la table cible en overwrite mode au lieu de la supprimer et de la recréer. Valeur par défaut : false.

MySQL

Les options suivantes sont prises en charge lors de l’écriture dans MySQL sur le calcul serverless.

Option Description
host Nom d’hôte du serveur MySQL.
port Numéro de port. Valeur par défaut : 3306.
database Nom de la base de données à laquelle se connecter.
connectionTimeout Durée maximale en secondes d’attente d’une connexion. 0 désactive le délai d’expiration.
requireSSL Si true, nécessite une connexion chiffrée PAR SSL au serveur. Valeur par défaut : false.
useSSL Si true, active SSL pour la connexion lorsqu’elle est prise en charge par le serveur. Valeur par défaut : false.
user Nom d’utilisateur de la base de données.
password Mot de passe de base de données.
dbtable Nom de la table cible. Prend en charge les noms qualifiés de schéma (par exemple). myschema.mytable
batchsize Nombre de lignes à insérer par lot. Valeur par défaut : 1000.
numPartitions Nombre de partitions Spark pour les opérations d’écriture parallèles.
queryTimeout Durée maximale en secondes d’attente de la fin d’une requête. 0 désactive le délai d’expiration.
isolationLevel Niveau d’isolation des transactions : NONE, , READ_COMMITTEDREAD_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Valeur par défaut : READ_UNCOMMITTED.
truncate Si true, tronque la table cible en overwrite mode au lieu de la supprimer et de la recréer. Valeur par défaut : false.
cascadeTruncate Si true, cascade la troncation vers des tables avec des références de clé étrangère à la table cible. Valeur par défaut : false.

Flocon de neige

Les sections suivantes répertorient 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 session.

Option Description
host Nom d’hôte du compte Snowflake (par exemple, <account>.snowflakecomputing.com).
port Numéro de port. Valeur par défaut : 443.
sfaccount Identificateur de compte Snowflake.
sfauthenticator Méthode d’authentification : snowflake (mot de passe), oauth (jeton) ou snowflake_jwt (paire de clés). Valeur par défaut : snowflake.
networktimeout Délai d’expiration en secondes pour les opérations réseau.
sftimezone Fuseau horaire pour les opérations d’horodatage (par exemple, America/New_York).
client_session_keep_alive Si true, envoie des signaux keepalive pour empêcher le délai d’expiration de session pendant les opérations de longue durée. Valeur par défaut : false.
ocspfailopen Si true, autorise les connexions à continuer lorsque la validation du certificat OCSP n’est pas disponible (mode d’ouverture automatique). Valeur par défaut : true.

Authentication

Les options suivantes fournissent des informations d’identification pour la méthode d’authentification configurée dans sfauthenticator. Les informations d’identification intermédiaires (temporary_aws_*, awsaccesskey, temporary_azure_sas_token) sont requises lorsque Snowflake étape l’écriture de données via le stockage cloud.

Option Description
sfuser Nom d’utilisateur Snowflake.
sfpassword Mot de passe Snowflake. Utilisé quand sfauthenticator est snowflake.
sfToken Jeton d’accès OAuth. Utilisé quand sfauthenticator est oauth.
pem_private_key Clé privée au format PEM pour l’authentification par paire de clés. Utilisé quand sfauthenticator est snowflake_jwt.
temporary_aws_access_key_id ID de clé d’accès AWS temporaire pour la préproduction 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 de secret AWS temporaire pour la préproduction S3.
temporary_aws_session_token Jeton de session AWS temporaire pour la préproduction S3.
temporary_azure_sas_token Jeton SAS de Azure temporaire pour Stockage Blob Azure préproduction.
awsaccesskey Clé d’accès AWS pour la préproduction S3.
awssecretkey Clé secrète AWS pour la préproduction S3.

Cible

Les options suivantes spécifient la base de données Snowflake, le schéma, l’entrepôt et la table dans laquelle écrire.

Option Description
sfdatabase Nom de la base de données Snowflake.
sfschema Nom du schéma Snowflake.
sfwarehouse Entrepôt virtuel Snowflake utilisé pour l’exécution des requêtes.
sfrole Rôle Snowflake pour la session.
dbtable Nom de la table cible.

Comportement d’écriture

Les options suivantes contrôlent la façon dont les données sont écrites dans la table Snowflake cible.

Option Description
column_mapping Correspondance des colonnes DataFrame aux colonnes de la table Snowflake : name (par nom de colonne) ou position (par ordre de colonne). Valeur par défaut : name.
column_mismatch_behavior Comportement lorsque les colonnes dataFrame et table ne s’alignent pas : error ou ignore. Valeur par défaut : error.
truncate_table Si true, tronque la table cible avant d’écrire. Valeur par défaut : false.
usestagingtable Si true, met en scène les données d’une table temporaire avant de permuter dans la cible, en activant les écritures atomiques. Valeur par défaut : true.
internal_execute_query_in_sync_mode Si true, exécute des requêtes Snowflake de manière synchrone. Valeur par défaut : false.
autopushdown Si true, envoie (push) les opérations de filtre et d’agrégation jusqu’à Snowflake pour l’exécution. Valeur par défaut : 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 Nom d’hôte du point de terminaison de cluster Redshift.
port Numéro de port. Valeur par défaut : 5439.
database Nom de la base de données Redshift.
connectionTimeout Durée maximale en secondes d’attente d’une connexion.

Authentication

Les options suivantes configurent les informations d’identification pour Redshift et pour l’emplacement intermédiaire 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 intermédiaires.
temporary_aws_access_key_id ID de clé d’accès AWS temporaire pour la préproduction S3. Préféré aux informations d’identification de longue durée.
temporary_aws_secret_access_key Clé d’accès de secret AWS temporaire pour la préproduction S3.
temporary_aws_session_token Jeton de session AWS temporaire pour la préproduction S3.
forward_spark_s3_credentials Si true, transfère les informations d’identification S3 de Spark à Redshift pour la mise en lots. Utilisez uniquement lorsque Spark et Redshift partagent les mêmes informations d’identification S3. Valeur par défaut : false.

Comportement d’écriture

Les options suivantes contrôlent la façon dont les données sont écrites dans la table Redshift cible, notamment la distribution, les clés de tri et le format intermédiaire.

Option Description
dbtable Nom de la table cible. Prend en charge les noms qualifiés de schéma (par exemple). myschema.mytable
batchsize Nombre de lignes par insertion par lot. Valeur par défaut : 1000.
numPartitions Nombre de partitions Spark pour les opérations d’écriture parallèles.
queryTimeout Durée maximale en secondes d’attente de la fin d’une requête.
isolationLevel Niveau d’isolation des transactions : NONE, , READ_COMMITTEDREAD_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Valeur par défaut : READ_UNCOMMITTED.
diststyle Style de distribution Redshift : EVEN, KEYou ALL.
distkey Colonne à utiliser comme clé de distribution. Obligatoire quand diststyle est KEY.
sortkeyspec Spécification de clé de tri pour la table Redshift (par exemple, SORTKEY(col1, col2)).
csvnullstring Chaîne écrite dans des fichiers CSV intermédiaires pour représenter des NULL valeurs. Valeur par défaut : chaîne vide.
tempformat Format de fichier intermédiaire : CSV ou AVRO. Valeur par défaut : CSV.
truncate Si true, tronque la table cible en overwrite mode au lieu de la supprimer et de la recréer. Valeur par défaut : false.

Écrire dans PostgreSQL sur le calcul serverless

Cet exemple utilise append le mode et récupère les informations d’identification d’une étendue de secret Databricks.

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 d’installation, exemples de code et comparaison des stratégies d’intégration Spark.
  • Connexion JDBC : utilisez une connexion de catalogue Unity avec un pilote 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é.
  • Informations de référence sur les options d’API Spark : référence pour DataFrameReader, DataFrameWriter et options de diffusion en continu pour les formats de fichiers et les sources de diffusion en continu.