E/S gérées Dataflow pour les bases de données

Dataflow permet de lire et d'écrire des données dans des bases de données à l'aide de Java Database Connectivity (JDBC). Dataflow utilise le connecteur Apache Beam JdbcIO pour se connecter aux sources et récepteurs de données JDBC. Managed I/O for Databases est compatible avec les pilotes JDBC standards pour différentes bases de données, y compris PostgreSQL, MySQL et Microsoft SQL Server.

Conditions requises

Les SDK suivants sont compatibles avec les E/S gérées pour les bases de données :

  • SDK Apache Beam pour Java version 2.69.0 ou ultérieure
  • SDK Apache Beam pour Python version 2.69.0 ou ultérieure

Configuration

Les E/S gérées pour les bases de données sont compatibles avec les paramètres de configuration suivants :

POSTGRES Lire

Configuration Type Description
jdbc_url str URL de connexion pour la source JDBC.
connection_properties str Permet de définir les propriétés de connexion transmises au pilote JDBC qui ne sont pas déjà définies en tant que paramètre autonome (par exemple, le nom d'utilisateur et le mot de passe peuvent être définis à l'aide des paramètres ci-dessus). Le format de la chaîne doit être "key1=value1;key2=value2;".
fetch_size int32 Cette méthode permet de remplacer la taille des données qui seront extraites et chargées en mémoire pour chaque appel de base de données. Il ne doit être utilisé que si la valeur par défaut génère des erreurs de mémoire.
emplacement str Nom de la table à partir de laquelle lire les données.
num_partitions int32 Nombre de partitions
output_parallelization boolean Indique s'il faut réorganiser la PCollection résultante afin que les résultats soient distribués à tous les nœuds de calcul.
partition_column str Nom d'une colonne de type numérique qui sera utilisée pour le partitionnement.
mot de passe str Mot de passe pour la source JDBC.
read_query str Requête SQL utilisée pour interroger la source JDBC.
nom d'utilisateur str Nom d'utilisateur pour la source JDBC.

POSTGRES Écriture

Configuration Type Description
jdbc_url str URL de connexion du récepteur JDBC.
partitionnement automatique boolean Si cette option est activée, l'écriture s'effectue à l'aide d'un nombre de segments déterminé de manière dynamique.
batch_size int64 n/a
connection_properties str Permet de définir les propriétés de connexion transmises au pilote JDBC qui ne sont pas déjà définies en tant que paramètre autonome (par exemple, le nom d'utilisateur et le mot de passe peuvent être définis à l'aide des paramètres ci-dessus). Le format de la chaîne doit être "key1=value1;key2=value2;".
emplacement str Nom de la table dans laquelle écrire.
mot de passe str Mot de passe pour la source JDBC.
nom d'utilisateur str Nom d'utilisateur pour la source JDBC.
write_statement str Requête SQL utilisée pour insérer des enregistrements dans le récepteur JDBC.

MYSQL Lire

Configuration Type Description
jdbc_url str URL de connexion pour la source JDBC.
connection_init_sql list[str] Définit les instructions SQL d'initialisation de la connexion utilisées par le pilote. Seuls MySQL et MariaDB sont compatibles avec cette fonctionnalité.
connection_properties str Permet de définir les propriétés de connexion transmises au pilote JDBC qui ne sont pas déjà définies en tant que paramètre autonome (par exemple, le nom d'utilisateur et le mot de passe peuvent être définis à l'aide des paramètres ci-dessus). Le format de la chaîne doit être "key1=value1;key2=value2;".
disable_auto_commit boolean Indique s'il faut désactiver la validation automatique en lecture. Si aucune valeur n'est indiquée, cet attribut est défini par défaut sur "true". La nécessité de cette configuration varie en fonction de la plate-forme de base de données. Informix exige que cette valeur soit définie sur "false", tandis que Postgres exige qu'elle soit définie sur "true".
fetch_size int32 Cette méthode permet de remplacer la taille des données qui seront extraites et chargées en mémoire pour chaque appel de base de données. Il ne doit être utilisé que si la valeur par défaut génère des erreurs de mémoire.
emplacement str Nom de la table à partir de laquelle lire les données.
num_partitions int32 Nombre de partitions
output_parallelization boolean Indique s'il faut réorganiser la PCollection résultante afin que les résultats soient distribués à tous les nœuds de calcul.
partition_column str Nom d'une colonne de type numérique qui sera utilisée pour le partitionnement.
mot de passe str Mot de passe pour la source JDBC.
read_query str Requête SQL utilisée pour interroger la source JDBC.
nom d'utilisateur str Nom d'utilisateur pour la source JDBC.

MYSQL Écriture

Configuration Type Description
jdbc_url str URL de connexion du récepteur JDBC.
partitionnement automatique boolean Si cette option est activée, l'écriture s'effectue à l'aide d'un nombre de segments déterminé de manière dynamique.
batch_size int64 n/a
connection_init_sql list[str] Définit les instructions SQL d'initialisation de la connexion utilisées par le pilote. Seuls MySQL et MariaDB sont compatibles avec cette fonctionnalité.
connection_properties str Permet de définir les propriétés de connexion transmises au pilote JDBC qui ne sont pas déjà définies en tant que paramètre autonome (par exemple, le nom d'utilisateur et le mot de passe peuvent être définis à l'aide des paramètres ci-dessus). Le format de la chaîne doit être "key1=value1;key2=value2;".
emplacement str Nom de la table dans laquelle écrire.
mot de passe str Mot de passe pour la source JDBC.
nom d'utilisateur str Nom d'utilisateur pour la source JDBC.
write_statement str Requête SQL utilisée pour insérer des enregistrements dans le récepteur JDBC.

SQLSERVER Lire

Configuration Type Description
jdbc_url str URL de connexion pour la source JDBC.
connection_properties str Permet de définir les propriétés de connexion transmises au pilote JDBC qui ne sont pas déjà définies en tant que paramètre autonome (par exemple, le nom d'utilisateur et le mot de passe peuvent être définis à l'aide des paramètres ci-dessus). Le format de la chaîne doit être "key1=value1;key2=value2;".
disable_auto_commit boolean Indique s'il faut désactiver la validation automatique en lecture. Si aucune valeur n'est indiquée, cet attribut est défini par défaut sur "true". La nécessité de cette configuration varie en fonction de la plate-forme de base de données. Informix exige que cette valeur soit définie sur "false", tandis que Postgres exige qu'elle soit définie sur "true".
fetch_size int32 Cette méthode permet de remplacer la taille des données qui seront extraites et chargées en mémoire pour chaque appel de base de données. Il ne doit être utilisé que si la valeur par défaut génère des erreurs de mémoire.
emplacement str Nom de la table à partir de laquelle lire les données.
num_partitions int32 Nombre de partitions
output_parallelization boolean Indique s'il faut réorganiser la PCollection résultante afin que les résultats soient distribués à tous les nœuds de calcul.
partition_column str Nom d'une colonne de type numérique qui sera utilisée pour le partitionnement.
mot de passe str Mot de passe pour la source JDBC.
read_query str Requête SQL utilisée pour interroger la source JDBC.
nom d'utilisateur str Nom d'utilisateur pour la source JDBC.

SQLSERVER Écriture

Configuration Type Description
jdbc_url str URL de connexion du récepteur JDBC.
partitionnement automatique boolean Si cette option est activée, l'écriture s'effectue à l'aide d'un nombre de segments déterminé de manière dynamique.
batch_size int64 n/a
connection_properties str Permet de définir les propriétés de connexion transmises au pilote JDBC qui ne sont pas déjà définies en tant que paramètre autonome (par exemple, le nom d'utilisateur et le mot de passe peuvent être définis à l'aide des paramètres ci-dessus). Le format de la chaîne doit être "key1=value1;key2=value2;".
emplacement str Nom de la table dans laquelle écrire.
mot de passe str Mot de passe pour la source JDBC.
nom d'utilisateur str Nom d'utilisateur pour la source JDBC.
write_statement str Requête SQL utilisée pour insérer des enregistrements dans le récepteur JDBC.

Étapes suivantes

Pour en savoir plus et obtenir des exemples de code, consultez les documents suivants :