Skip to main content

Écriture base de données

Écrit le flux d'entrée dans n'importe quelle base de données. Le type de SGBD (db_type) est choisi sur la brick ; la connexion porte les identifiants. Cette brick unifiée remplace les anciennes bricks PostgreSQL / MySQL / SQL Server / Oracle / SQLite / Snowflake Export.

La brick consomme l'entrée in et n'a pas de port de sortie. Elle nécessite une connexion base de données du projet, voir Créer une connexion.

Paramètres​

ParamètreTypeRequisDescription
db_typeEnumOuipostgres, mysql, snowflake, mssql, oracle, sqlite, bigquery, redshift, databricks.
connection_idStringOuiConnexion base de données utilisée.
schema_nameStringNonSchéma cible.
table_nameStringOuiTable cible.
write_modeEnumOuiappend (défaut), replace ou upsert.
create_if_missingBooleanNonCrée la table si elle n'existe pas (défaut true).
batch_sizeIntegerNonTaille des lots d'écriture (défaut 1 000).
primary_key_columnsArrayOui (upsert)Colonnes clés servant à détecter les lignes existantes.

Modes d'écriture​

ModeComportement
appendAjoute les lignes à la fin de la table.
replaceRecrée la table à partir du DataFrame (drop + create) puis insère.
upsertInsère les nouvelles lignes et met à jour les existantes, sur la base de primary_key_columns.

L'écriture se fait par lots (batch_size). En modes append / replace, PostgreSQL et MySQL utilisent des INSERT multi-lignes pour de meilleures performances.

Détail de l'upsert par dialecte​

BaseMécanisme
PostgreSQL, SQLiteINSERT … ON CONFLICT … DO UPDATE
MySQLINSERT … ON DUPLICATE KEY UPDATE
SnowflakeMERGE INTO … WHEN MATCHED / WHEN NOT MATCHED
warning

Le mode upsert n'est pas disponible pour SQL Server, Oracle, BigQuery, Redshift et Databricks SQL : la brick échoue explicitement. Utilisez append avec une clé de déduplication en amont, ou une brick Exécuter SQL.

En mode upsert avec create_if_missing, la table est créée vide (structure du DataFrame) avant le premier lot si elle n'existe pas. Les colonnes de primary_key_columns doivent exister dans le flux d'entrée, sans quoi la brick échoue avant toute écriture.

Bases supportées​

Les paramètres de brick sont identiques quelle que soit la base ; la connexion porte les spécificités, voir Types de connexions.

  • PostgreSQL : port 5432, ssl_mode optionnel ;
  • MySQL : port 3306, charset utf8mb4 ;
  • SQL Server (MSSQL) : port 1433, pilote ODBC, chiffrement activé par défaut ;
  • Oracle : port 1521, connexion par service_name ;
  • SQLite : chemin de fichier local au runner ;
  • Snowflake : account, warehouse, schema (défaut PUBLIC), role optionnel ;
  • BigQuery, Redshift, Databricks SQL : également disponibles dans db_type.
Environnements

La connexion étant définie au projet avec des valeurs par environnement, le même pipeline écrit dans la base de dev en dev et dans la base de production en prod, sans modification. Voir Environnements et déploiement.