Aller au contenu principal

Sélection de colonne pour MySQL

Utilisez la sélection de colonnes pour ingérer uniquement les colonnes de table dont vous avez besoin. Cette page couvre les conditions spécifiques à MySQL.

remarque

La sélection de colonnes pour MySQL est disponible uniquement pour les pipelines CDC (Change Data Capture) intégrés. Consultez Créer un pipeline CDC intégré pour MySQL.

Sélectionner les colonnes à ingérer​

Par default, le pipeline ingère toutes les colonnes des tables que vous sélectionnez. Pour ingérer seulement certaines colonnes, définissez include_columns ou exclude_columns dans la configuration de la table. Pour une description de chaque propriété et des définitions de pipeline d’exemple, consultez Sélectionner les colonnes à ingérer.

Colonnes de clé requises​

La CDC maintient la synchronisation de votre table de destination en faisant correspondre chaque modification à une ligne à l'aide de la clé de la table source. Le connecteur choisit la clé dans l'ordre suivant, et votre sélection de colonnes doit conserver toutes les colonnes de cette clé :

  1. Clé primaire : Si la table possède une clé primaire, gardez toutes les colonnes de clé primaire. Les colonnes de clé unique sont facultatives.
  2. Clé unique : si la table ne possède pas de clé primaire, conservez toutes les colonnes de la première clé unique dont les colonnes sont toutes NOT NULL. Les clés uniques sont classées par ordre alphabétique selon le nom de l’index. Par exemple, si uk_email et uk_phone possèdent tous deux uniquement des colonnes NOT NULL, le connecteur utilise uk_email. Pour afficher les noms des index d’une table, exécutez SHOW INDEX FROM <table>.
  3. Aucune clé utilisable : si la table n’en a aucune, vous pouvez inclure ou exclure toutes les colonnes. Une clé unique avec une colonne nullable ne compte pas comme une clé.

Pour conserver une colonne, listez-la dans include_columns ou omettez-la de exclude_columns.

Si votre sélection de colonnes omet une colonne de clé obligatoire, l'ingestion de la table échouera avec l'erreur INGESTION_GATEWAY_KEY_COLUMN_NOT_SELECTED. Pour récupérer, mettez à jour include_columns ou exclude_columns afin que la clé soit entièrement sélectionnée, puis exécutez une refresh complète de la table. Voir refresh complètement les tables cibles.

Modifier la sélection de colonnes pour une table déjà en cours d’ingestion​

Vous pouvez modifier include_columns ou exclude_columns pour une table à tout moment, et la modification est enregistrée dans votre pipeline. Cependant, la modification de la sélection de colonnes pour une table déjà en cours d’ingestion nécessite un refresh complet de cette table. Si vous modifiez la sélection et que vous n’exécutez pas un refresh complet de la table affectée dans la même mise à jour, la mise à jour du pipeline échoue avec l’erreur CANNOT_CHANGE_COLUMN_SELECTION_WITHOUT_FULL_REFRESH.