L'instruction CREATE TABLE AS (CTAS) synchronise en temps réel les modifications de données et de schéma d'une table source vers une table de destination. Cela simplifie la création et la maintenance de la table de destination à mesure que le schéma source évolue. Cette rubrique décrit l'utilisation de l'instruction CTAS et fournit des exemples pratiques.
Nous vous recommandons d'utiliser des jobs d'ingestion de données basés sur YAML pour synchroniser les données d'une source vers une destination. Les jobs SQL CTAS/CDAS existants peuvent être convertis en jobs YAML en un seul clic grâce à la fonctionnalité Génération de job CTAS/CDAS.
Avantages de la fonctionnalité YAML : les jobs YAML couvrent toutes les capacités de CTAS/CDAS, y compris la synchronisation complète de base de données, la synchronisation mono-table, la synchronisation de tables et bases de données fragmentées, la synchronisation de nouvelles tables, les modifications de schéma et la synchronisation de colonnes calculées. Ils offrent également des fonctionnalités supplémentaires telles que la synchronisation immédiate des modifications de schéma, la synchronisation brute des binlogs, le filtrage par clause WHERE, l'élagage de colonnes et les fonctions définies par l'utilisateur (UDF).
Avantages en termes de performances YAML : par rapport aux jobs SQL, les jobs YAML utilisent par défaut un seul opérateur source pour lire depuis plusieurs tables et un seul opérateur de destination pour écrire dans plusieurs tables. Cette approche réduit la consommation de ressources.
Pour plus d'exemples, consultez les bonnes pratiques d'ingestion de données Flink CDC.
Fonctionnalités clés
Synchronisation des données
|
Fonctionnalité |
Description |
|
Synchronisation mono-table |
Synchronise en temps réel les données complètes et incrémentielles d'une table source vers une table de destination. (Voir Exemple : Synchronisation mono-table.) |
|
Fusion et synchronisation de tables et bases de données fragmentées |
Identifie plusieurs tables et bases de données fragmentées en utilisant une expression régulière pour définir leurs noms. Les données correspondantes sont ensuite fusionnées et synchronisées dans une seule table de destination. (Voir Exemple : Fusion et synchronisation de tables et bases de données fragmentées.) Remarque
Le caractère caret ( |
|
Synchronisation de colonnes calculées |
Définit des colonnes calculées pour effectuer des transformations sur les données de la table source. Les colonnes calculées peuvent utiliser des fonctions intégrées ou personnalisées, et leurs positions peuvent être spécifiées. Ces nouvelles colonnes sont créées en tant que colonnes physiques dans la table de destination, et leurs résultats sont synchronisés en temps réel. (Voir Exemple : Synchronisation de colonnes calculées.) |
|
Instructions CTAS multiples |
|
Synchronisation des modifications de schéma
Tout en synchronisant les données en temps réel, l'instruction CTAS réplique également les modifications de schéma de la table source vers la table de destination. Les modifications de schéma incluent la création initiale de la table et toute altération ultérieure de la table.
-
Modifications de schéma prises en charge
Modification de schéma
Description
Ajout d'une colonne nullable
La colonne correspondante est automatiquement ajoutée à la fin du schéma de la table de destination et ses données sont synchronisées. La nouvelle colonne est nullable par défaut et sa valeur pour les lignes préexistantes est définie sur NULL.
Ajout d'une colonne non null
La colonne correspondante est automatiquement ajoutée à la fin du schéma de la table de destination et ses données sont synchronisées.
Suppression d'une colonne nullable
La colonne n'est pas supprimée de la table de destination. Au lieu de cela, ses données sont automatiquement définies sur NULL.
Renommage d'une colonne
Cette opération est traitée comme l'ajout d'une nouvelle colonne et la suppression de l'ancienne. La colonne renommée est ajoutée à la fin du schéma de la table de destination et les données de la colonne d'origine sont automatiquement définies sur NULL.
RemarquePar exemple, si
col_aest renommé encol_b,col_best ajouté à la fin de la table de destination et les données decol_asont définies sur NULL.Modification du type de données d'une colonne
-
Si le système de destination prend en charge les modifications de type de données : actuellement, seul Paimon prend en charge la gestion des modifications de type de données. CTAS prend en charge les modifications de type pour les colonnes standard, par exemple de INT à BIGINT.
Les modifications de type prises en charge dépendent des règles de la destination. Reportez-vous à la documentation du connecteur de destination spécifique pour plus de détails.
-
Si le système de destination ne prend pas en charge les modifications de type de données : actuellement, seul Hologres prend en charge le mode de normalisation de type pour gérer les modifications de type de données. Dans ce mode, un job CTAS crée une table en aval avec des types de données plus larges. Cette approche tire parti de la compatibilité de la destination avec les modifications de type de données. Pour plus de détails, voir Exemple : Synchronisation des données en mode de normalisation de type.
ImportantVous devez activer le mode de normalisation de type lors du premier démarrage du job CTAS. Sinon, vous devez supprimer la table de destination et effectuer un redémarrage sans état pour que ce mode prenne effet.
ImportantCTAS détecte les modifications de schéma en comparant les schémas des enregistrements consécutifs plutôt qu'en identifiant l'opération DDL spécifique.
Si une colonne est supprimée puis rajoutée sans aucune modification de données entre-temps, CTAS ne détecte pas de modification de schéma.
CTAS détecte une modification de schéma uniquement après l'ajout d'une nouvelle colonne et la survenue de modifications de données. Il synchronise ensuite la modification de schéma vers la table de destination.
-
-
Modifications de schéma non prises en charge
Modifications des contraintes, telles qu'une clé primaire ou un index.
Suppression de colonnes non null.
Passage d'une colonne de NOT NULL à NULLABLE.
ImportantSi une modification de schéma non prise en charge se produit, vous devez supprimer manuellement la table de destination et redémarrer le job CTAS. Cela recrée la table de destination et resynchronise les données historiques.
Processus de démarrage
L'exemple suivant illustre le processus de synchronisation des données de MySQL vers Hologres en utilisant CTAS.
|
Organigramme |
Processus de démarrage |
|
|
L'exécution d'une instruction CTAS déclenche le processus suivant :
|
Prérequis
Avant d'exécuter une instruction CTAS, assurez-vous qu'un catalogue de destination a été enregistré dans votre espace de travail. Pour plus d'informations, reportez-vous à la section Gestion des données.
Limites
Limites de syntaxe
La fonctionnalité de débogage n'est pas prise en charge.
Vous ne pouvez pas utiliser d'instructions
INSERT INTOdans la même tâche.La synchronisation vers des tables partitionnées StarRocks n'est pas prise en charge.
-
Les configurations MiniBatch ne sont pas prises en charge.
ImportantAvant de créer une tâche SQL : sur la page Configurations, veillez à supprimer tous les paramètres MiniBatch de la section Other Configuration sous l'onglet Deployment Defaults.
Après la création d'une tâche SQL : pour résoudre le problème, consultez la rubrique Erreur : Currently does not support merge StreamExecMiniBatchAssigner type ExecNode in CTAS/CDAS syntax.
Compatibilité des sources et des puits
Le tableau suivant répertorie les connecteurs source et puits pris en charge pour CTAS.
|
Connecteur |
Table source |
Table puits |
Notes |
|
√ |
× |
|
|
|
√ |
× |
Aucune. |
|
|
√ |
× |
|
|
|
× |
√ |
Aucune. |
|
|
× |
√ |
Seul StarRocks sur EMR est pris en charge. |
|
|
× |
√ |
Si le puits est Hologres, CTAS crée un nombre de connexions pour chaque table en fonction du paramètre Remarque
Lors de la synchronisation des données vers Hologres, si votre table source contient des types de données non pris en charge par Fixed Plan, nous vous recommandons d'utiliser une instruction INSERT INTO pour effectuer la conversion de type au sein de Flink avant de synchroniser les données. N'utilisez pas CTAS pour créer la table puits, car cette méthode ne peut pas utiliser Fixed Plan et entraîne de mauvaises performances d'écriture. |
|
|
× |
√ |
Seul VVR 11.1 ou version ultérieure du moteur Realtime Compute for Apache Flink prend en charge la synchronisation des données vers une table puits Paimon DLF 2.5. |
Syntaxe
CREATE TABLE IF NOT EXISTS <sink_table>
(
[ <table_constraint> ]
)
[COMMENT table_comment]
[PARTITIONED BY (partition_column_name1, partition_column_name2, ...)]
WITH (
key1=val1,
key2=val2,
...
)
AS TABLE <source_table> [/*+ OPTIONS(key1=val1, key2=val2, ... ) */]
[ADD COLUMN { <column_component> | (<column_component> [, ...])}];
<sink_table>:
[catalog_name.][db_name.]table_name
<table_constraint>:
[CONSTRAINT constraint_name] PRIMARY KEY (column_name, ...) NOT ENFORCED
<source_table>:
[catalog_name.][db_name.]table_name
<column_component>:
column_name AS computed_column_expression [COMMENT column_comment] [FIRST | AFTER column_name]
La syntaxe CTAS repose sur l'instruction CREATE TABLE. Le tableau suivant décrit ses paramètres.
|
Paramètre |
Description |
|
|
Nom de la table puits pour la synchronisation des données. Vous pouvez spécifier les noms de catalogue et de base de données. |
|
|
Description de la table puits. Par défaut, la description de la |
|
|
Crée une table partitionnée basée sur une ou plusieurs colonnes. Important
La synchronisation vers des tables partitionnées StarRocks n'est pas prise en charge. |
|
|
Définit la contrainte de clé primaire pour la table, qui garantit l'unicité des données. |
|
|
Options de la table puits. Vous pouvez saisir n'importe quel paramètre Remarque
La clé et la valeur doivent être des chaînes. Par exemple, |
|
|
Nom de la table source pour la synchronisation des données. Vous pouvez spécifier les noms de catalogue et de base de données. |
|
|
Options de la table source. Vous pouvez saisir n'importe quel paramètre Remarque
La clé et la valeur doivent être de type chaîne, par exemple 'server-id' = '65500'. |
|
|
Définit de nouvelles colonnes ou renomme des colonnes pour la table puits par rapport à la table source. Prend en charge les alias de colonne et les colonnes calculées. Important
Un mappage de champ pur, tel que |
|
|
Définition d'une nouvelle colonne. |
|
|
Expression utilisée pour calculer une colonne. |
|
|
Place la nouvelle colonne en tant que premier champ dans le schéma logique de la table. Si ce paramètre n'est pas spécifié, la nouvelle colonne est ajoutée par défaut à la fin du schéma logique. |
|
|
Place la nouvelle colonne après une colonne existante spécifiée. |
Le mot-clé IF NOT EXISTS est obligatoire. Si la table puits n'existe pas dans le stockage de destination, elle est d'abord créée. Sinon, l'étape de création est ignorée.
Le schéma de la table puits hérite du schéma de la table source, y compris la clé primaire ainsi que les noms et types des colonnes physiques. Il n'inclut pas les colonnes calculées, les colonnes de métadonnées ni les watermarks.
Les types de données des colonnes sont convertis via le mappage de types de la table source vers la table puits. Pour plus d'informations, consultez la section sur le mappage de types dans la documentation du connecteur correspondant.
Exemples de code
Synchronisation d'une table unique
Scénario : Synchronisez la table web_sales depuis MySQL vers Hologres.
Prérequis : Vous avez enregistré les catalogues suivants dans votre espace de travail.
Un catalogue Hologres nommé holo.
Un catalogue MySQL nommé mysql.
Exemple de code :
L'instruction CTAS s'utilise généralement avec des catalogues pour la source et la destination. Un catalogue source analyse automatiquement le schéma et les options de la table source, ce qui évite la rédaction manuelle du DDL. Cette approche permet une synchronisation complète et incrémentielle des données de la table source vers la table de destination.
USE CATALOG holo;
CREATE TABLE IF NOT EXISTS web_sales -- If no database is specified, the table is synchronized to the web_sales table in the default database.
WITH ('jdbcWriteBatchSize' = '1024') -- Optional: Specifies parameters for the sink table.
AS TABLE mysql.tpcds.web_sales
/*+ OPTIONS('server-id'='8001-8004') */; -- Specifies additional parameters for the mysql-cdc source table.
Fusion de tables et de bases de données fragmentées
Scénario : Utilisez l'instruction CTAS pour fusionner plusieurs tables MySQL fragmentées en une seule table Hologres.
Solution : En combinaison avec un catalogue MySQL, utilisez une expression régulière pour faire correspondre les noms de base de données et de table que vous souhaitez synchroniser. Les noms de base de données et de table sont inscrits sous forme de deux colonnes supplémentaires dans la table de destination. Pour garantir l'unicité de la clé primaire, le nom de la base de données, le nom de la table et la clé primaire d'origine sont combinés afin de former une nouvelle clé primaire composite pour la table Hologres.
Exemple de code et résultat de la fusion :
|
Exemple de code |
Résultat de la fusion |
|
Scénario de fusion et de synchronisation de tables fragmentées :
|
|
|
Scénario de modification du schéma de la table source : Une colonne age est ajoutée à la table user02 et un enregistrement est inséré. Bien que les schémas des tables fragmentées soient incohérents, les modifications ultérieures des données et du schéma dans la table user02 sont automatiquement synchronisées en temps réel vers la table en aval.
|
|
Synchronisation de colonnes calculées
Scénario : Ajoutez des colonnes calculées personnalisées à une table Hologres lors du processus de fusion et de synchronisation de tables MySQL fragmentées.
Exemple de code et résultat de la fusion :
|
Exemple de code |
Résultat de la fusion |
|
|
Plusieurs instructions CTAS dans une seule tâche
Scénario : Synchronisez la table MySQL web_sales et les tables utilisateur fragmentées vers Hologres au sein d'une seule tâche.
Solution : Utilisez la syntaxe STATEMENT SET pour valider plusieurs instructions CTAS en une seule tâche. Cette approche permet de réutiliser un nœud source unique pour lire les données de plusieurs tables métier, ce qui réduit le nombre d'ID de serveur, les connexions à la base de données et la charge de lecture sur la source MySQL CDC.
La source ne peut être réutilisée que si les
OPTIONSdes tables sources sont identiques.Pour plus d'informations sur la configuration de l'ID de serveur dans le connecteur MySQL, consultez Définir l'ID de serveur pour éviter les conflits de consommation du journal binaire.
Exemple de code :
USE CATALOG holo;
BEGIN STATEMENT SET;
-- Synchronize the web_sales table.
CREATE TABLE IF NOT EXISTS web_sales
AS TABLE mysql.tpcds.web_sales
/*+ OPTIONS('server-id'='8001-8004') */;
-- Synchronize the sharded user tables.
CREATE TABLE IF NOT EXISTS user
AS TABLE mysql.`wp.*`.`user[0-9]+`
/*+ OPTIONS('server-id'='8001-8004') */;
END;
Synchronisation d'une source vers plusieurs tables de destination
-
Si les tables de destination ne nécessitent pas de colonnes calculées
USE CATALOG `holo`; BEGIN STATEMENT SET; -- Use a CTAS statement to synchronize the MySQL user table to the user table in the database1 of the Hologres data warehouse. CREATE TABLE IF NOT EXISTS `database1`.`user` AS TABLE `mysql`.`tpcds`.`user` /*+ OPTIONS('server-id'='8001-8004') */; -- Use a CTAS statement to synchronize the MySQL user table to the user table in the database2 of the Hologres data warehouse. CREATE TABLE IF NOT EXISTS `database2`.`user` AS TABLE `mysql`.`tpcds`.`user` /*+ OPTIONS('server-id'='8001-8004') */; END; -
Si les tables de destination nécessitent des colonnes calculées
-- Create a temporary table user_with_changed_id based on the source table user. It supports defining computed columns, such as computed_id, which is calculated based on the id from the source table. CREATE TEMPORARY TABLE `user_with_changed_id` ( `computed_id` AS `id` + 1000 ) LIKE `mysql`.`tpcds`.`user`; -- Create a temporary table user_with_changed_age based on the source table user. It supports defining computed columns, such as computed_age, which is calculated based on the age from the source table. CREATE TEMPORARY TABLE `user_with_changed_age` ( `computed_age` AS `age` + 1 ) LIKE `mysql`.`tpcds`.`user`; BEGIN STATEMENT SET; -- Use a CTAS statement to synchronize the MySQL user table to the user_with_changed_id table in the Hologres data warehouse. The table will contain the computed ID in the computed_id column. CREATE TABLE IF NOT EXISTS `holo`.`tpcds`.`user_with_changed_id` AS TABLE `user_with_changed_id` /*+ OPTIONS('server-id'='8001-8004') */; -- Use a CTAS statement to synchronize the MySQL user table to the user_with_changed_age table in the Hologres data warehouse. The table will contain the computed age in the computed_age column. CREATE TABLE IF NOT EXISTS `holo`.`tpcds`.`user_with_changed_age` AS TABLE `user_with_changed_age` /*+ OPTIONS('server-id'='8001-8004') */; END;
Synchronisation d'une nouvelle table
Scénario : Après le démarrage d'une tâche contenant plusieurs instructions CTAS, vous devez ajouter une nouvelle instruction CTAS pour synchroniser les données d'une table nouvellement ajoutée.
Solution : Activez la fonctionnalité de détection de nouvelles tables dans la tâche SQL, ajoutez la nouvelle instruction CTAS, puis redémarrez la tâche à partir d'un point de sauvegarde. Une fois la nouvelle table capturée, ses données seront synchronisées.
Limitations :
La fonctionnalité de détection de nouvelles tables est prise en charge dans VVR 8.0.1 et versions ultérieures.
Lors de la synchronisation depuis une table source CDC, la fonctionnalité de détection de nouvelles tables n'est prise en charge que pour les tâches dont le mode de démarrage de la table source est défini sur initial.
La configuration de la nouvelle table source dans l'instruction CTAS ajoutée doit être identique aux configurations des tables sources existantes pour garantir la réutilisation de la source.
Les paramètres de configuration de la tâche, tels que le mode de démarrage, ne peuvent pas être modifiés avant et après l'ajout de la nouvelle instruction CTAS.
Procédure :
Lorsque vous devez ajouter une nouvelle instruction CTAS, accédez à la page Deployments, arrêtez la tâche et sélectionnez Stop With Savepoint.
-
Dans la tâche SQL, activez la détection de nouvelles tables, ajoutez la nouvelle instruction CTAS, puis Deploy à nouveau la tâche.
-
Ajoutez l'instruction suivante à la tâche SQL pour activer la détection de nouvelles tables.
SET 'table.cdas.scan.newly-added-table.enabled' = 'true'; -
Ajoutez la nouvelle instruction CTAS à la tâche SQL. Le code complet final est le suivant.
-- Enable new table detection. SET 'table.cdas.scan.newly-added-table.enabled' = 'true'; USE CATALOG holo; BEGIN STATEMENT SET; -- Synchronize the web_sales table. CREATE TABLE IF NOT EXISTS web_sales AS TABLE mysql.tpcds.web_sales /*+ OPTIONS('server-id'='8001-8004') */; -- Synchronize the sharded user tables. CREATE TABLE IF NOT EXISTS user AS TABLE mysql.`wp.*`.`user[0-9]+` /*+ OPTIONS('server-id'='8001-8004') */; -- Synchronize the product table. (New table) CREATE TABLE IF NOT EXISTS product AS TABLE mysql.tpcds.product /*+ OPTIONS('server-id'='8001-8004') */; END; Cliquez sur Deploy.
-
-
Restaurez la tâche à partir du point de sauvegarde.
Sur la page Deployments, cliquez sur le nom de la tâche cible, accédez à l'onglet State et cliquez sur History.
Dans la liste Savepoints, recherchez le point de sauvegarde créé lors de l'arrêt de la tâche.
Dans la colonne Actions du point de sauvegarde cible, sélectionnez pour démarrer la tâche. Pour plus d'informations, consultez Démarrer une tâche.
Synchronisation vers une table partitionnée Hologres
Scénario : Utilisez une instruction CTAS pour synchroniser une table source MySQL vers une table partitionnée Hologres.
Règle de partitionnement Hologres : Dans Hologres, si une clé primaire est définie pour la table de destination, les colonnes de partition doivent être incluses dans la clé primaire.
Exemple de code :
L'instruction DDL de la table source MySQL est la suivante :
CREATE TABLE orders (
order_id INTEGER NOT NULL,
product_id INTEGER NOT NULL,
city VARCHAR(100) NOT NULL
order_date DATE,
purchaser INTEGER,
PRIMARY KEY(order_id, product_id)
);
L'approche diffère selon que la clé primaire de la table source inclut ou non la clé de partition.
-
Si la clé primaire source inclut la colonne de partition, vous pouvez synchroniser directement avec une instruction CTAS.
Hologres vérifie automatiquement que la colonne de partition fait partie de la clé primaire.
CREATE TABLE IF NOT EXISTS `holo`.`tpcds`.`orders` PARTITIONED BY (product_id) AS TABLE `mysql`.`tpcds`.`orders`; -
Si la clé primaire source n'inclut pas la colonne de partition, redéclarez la clé primaire de la table de destination dans l'instruction CTAS.
Si une colonne de partition (par exemple,
city) ne fait pas partie de la clé primaire de la table source, la tâche échoue. Vous devez redéclarer la clé primaire de la table de destination dans l'instruction CTAS pour garantir que la colonne de partition en fait partie.-- You can use the following SQL to specify the primary key of the Hologres partitioned table as order_id, product_id, and city. CREATE TABLE IF NOT EXISTS `holo`.`tpcds`.`orders`( CONSTRAINT `PK_order_id_city` PRIMARY KEY (`order_id`,`product_id`,`city`) NOT ENFORCED ) PARTITIONED BY (city) AS TABLE `mysql`.`tpcds`.`orders`;
Synchronisation des données en mode de normalisation des types
Scénario : Lorsque vous utilisez une instruction CTAS pour synchroniser des données vers une table Hologres, vous devez prendre en charge les scénarios nécessitant l'ajustement de la précision des types de données existants (par exemple, passer de VARCHAR(10) à VARCHAR(20)) ou le changement du type de données (par exemple, passer de SMALLINT à INT).
Solution : Utilisez le mode de normalisation des types de Hologres pour synchroniser les données. Ce mode doit être activé au premier démarrage de la tâche CTAS. S'il n'est pas activé au démarrage, vous devrez supprimer la table en aval et effectuer un redémarrage sans état de la tâche pour que la modification soit prise en compte.
Règles de normalisation des types :
Lorsqu'un type de données en amont est modifié, si le nouveau type et le type d'origine se normalisent vers le même type cible, la tâche s'exécute normalement. Dans le cas contraire, la modification est considérée comme incompatible et la tâche CTAS génère une exception. Les règles spécifiques sont les suivantes :
Les types
TINYINT,SMALLINT,INTetBIGINTsont normalisés versBIGINT.Les types
CHAR,VARCHARetSTRINGsont normalisés versSTRING.Les types
FLOATetDOUBLEsont normalisés versDOUBLE.Les autres types de données sont créés selon les règles de mappage des types d'origine. Pour plus d'informations, consultez la section Mappage des types.
Exemple de code :
CREATE TABLE IF NOT EXISTS `holo`.`tpcds`.`orders`
WITH (
'connector' = 'hologres',
'enableTypeNormalization' = 'true' -- Enable type normalization mode.
) AS TABLE `mysql`.`tpcds`.`orders`;
Synchronisation de MongoDB vers Hologres
Limites :
Nécessite Realtime Compute for Apache Flink VVR 8.0.6 ou version ultérieure et MongoDB 6.0 ou version ultérieure.
Dans les indices SQL, définissez scan.incremental.snapshot.enabled et scan.full-changelog sur true.
La fonctionnalité d'images avant et après doit être activée dans la base de données MongoDB. Pour savoir comment l'activer, consultez la documentation Document Preimages.
-
La synchronisation de plusieurs collections MongoDB dans une seule tâche impose les exigences suivantes :
La configuration MongoDB doit être identique pour chaque table, y compris les paramètres
hosts,scheme,username,passwordetconnectionOptions.Le paramètre
scan.startup.modedoit être identique pour chaque table.
Exemple de code :
BEGIN STATEMENT SET;
CREATE TABLE IF NOT EXISTS `holo`.`database`.`table1`
AS TABLE `mongodb`.`database`.`collection1`
/*+ OPTIONS('scan.incremental.snapshot.enabled'='true','scan.full-changelog'='true') */;
CREATE TABLE IF NOT EXISTS `holo`.`database`.`table2`
AS TABLE `mongodb`.`database`.`collection2`
/*+ OPTIONS('scan.incremental.snapshot.enabled'='true','scan.full-changelog'='true') */;
END;
FAQ
Fonctionnement des tâches
Problème de délai d'expiration : Erreur : akka.pattern.AskTimeoutException
Performances des tâches
Comment résoudre les problèmes de contre-pression des tâches ?
Comment investiguer une instabilité de la consommation des données depuis une source en amont ?
Synchronisation des données
Erreur lors de l'utilisation de la configuration MiniBatch : Erreur : Currently does not support merge StreamExecMiniBatchAssigner type ExecNode in CTAS/CDAS syntax
Comment identifier les problèmes empêchant Flink de lire les données source ?
Comment résoudre les problèmes d'inexactitude des données dans une tâche ?
Documents connexes
-
CTAS utilise des catalogues pour gérer les métadonnées persistantes des tables, surmontant ainsi des limitations telles que l'impossibilité de persister le schéma et d'accéder aux tables entre différentes tâches. Pour l'utilisation courante des catalogues, consultez :
-
Cas d'utilisation et scénarios pratiques pour CTAS et CDAS :
Synchronisation d'une base de données complète, fusion de bases de données ou synchronisation de nouvelles tables ajoutées dans une base de données source : Instruction CREATE DATABASE AS (CDAS).
Synchronisation d'une base de données MySQL entière vers Kafka pour réduire la charge de la base de données générée par plusieurs tâches : Synchroniser une base de données MySQL vers Kafka avec Flink CDC.
Tutoriels sur la mise en œuvre de la synchronisation des données à l'aide de CTAS et CDAS : Ingestion de base de données en temps réel, Construire un entrepôt de données en temps réel Hologres ou Lakehouse streaming Paimon et StarRocks.
-
Mise en œuvre de la synchronisation des données via des tâches YAML :
Démarrage rapide : Tâches d'ingestion de données Flink CDC.
Conversion d'une tâche CTAS en tâche YAML : Créer des tâches d'ingestion de données Flink CDC.


