Récemment, lors de l'extraction de données de Mysql et d'autres bases de données relationnelles dans une table Hive, il est nécessaire de synchroniser les commentaires dans la table MySQL. Le script suivant peut générer des instructions de modification des commentaires sur les champs de la table Hive. Il vous présente principalement les informations pertinentes sur la façon dont les métadonnées Mysql génèrent des scripts d'annotation d'instructions de création de table Hive. L'article les présente de manière très détaillée à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de chacun. instructions ci-dessous. Apprenons ensemble.
Remarque : D'autres bases de données relationnelles telles qu'Oracle peuvent être implémentées grâce à la même idée, en lisant les métadonnées et en modifiant la syntaxe du script.
Utilisation :
Exécutez l'instruction suivante dans la métabase mysql : information_schema
SELECT CONCAT('alter table ', TABLE_NAME, ' CHANGE COLUMN ', COLUMN_NAME, ' ', COLUMN_NAME, ' ', DATA_TYPE, ' comment ', '"', COLUMN_COMMENT, '"', ';') FROM (SELECT TABLE_NAME, COLUMN_NAME, CASE WHEN DATA_TYPE = 'varchar' THEN 'string' WHEN DATA_TYPE = 'int' THEN 'int' WHEN DATA_TYPE = 'tinyint' THEN 'tinyint' WHEN DATA_TYPE = 'decimal' THEN 'double' WHEN DATA_TYPE = 'datetime' THEN 'string' WHEN DATA_TYPE = 'timestamp' THEN 'string' WHEN DATA_TYPE = 'float' THEN 'double' WHEN DATA_TYPE = 'double' THEN 'double' WHEN DATA_TYPE = 'bigint' THEN 'bigint' END AS DATA_TYPE, COLUMN_COMMENT FROM COLUMNS WHERE TABLE_NAME = 'o_oms_statistic_profit' ) t;
Lors de l'extraction de données d'autres bases de données relationnelles telles que Mysql dans une table Hive, vous devez synchroniser les commentaires dans la table mysql. Le script suivant peut générer une instruction de création de table Hive. Seules les informations du champ principal de la table ruche sont générées et d'autres informations doivent être ajoutées manuellement.
Exécutez l'instruction suivante dans la base de données de métadonnées MySQL : information_schema
SELECT CONCAT('create table ', TABLE_NAME, '(', substring(column_info, 1, length(column_info) - 1), ')', ' comment ', '"', TABLE_COMMENT, '"', ';') FROM (SELECT TABLE_NAME, TABLE_COMMENT, group_concat(CONCAT(COLUMN_NAME, ' ', DATA_TYPE, ' comment ', '"', COLUMN_COMMENT, '"')) AS column_info FROM (SELECT t1.TABLE_NAME, CASE WHEN t2.TABLE_COMMENT = NULL THEN t1.TABLE_NAME ELSE t2.TABLE_COMMENT END AS TABLE_COMMENT, COLUMN_NAME, CASE WHEN DATA_TYPE = 'varchar' THEN 'string' WHEN DATA_TYPE = 'int' THEN 'int' WHEN DATA_TYPE = 'tinyint' THEN 'tinyint' WHEN DATA_TYPE = 'decimal' THEN 'double' WHEN DATA_TYPE = 'datetime' THEN 'string' WHEN DATA_TYPE = 'timestamp' THEN 'string' WHEN DATA_TYPE = 'float' THEN 'double' WHEN DATA_TYPE = 'double' THEN 'double' WHEN DATA_TYPE = 'bigint' THEN 'bigint' END AS DATA_TYPE, CASE WHEN COLUMN_COMMENT = NULL THEN COLUMN_NAME ELSE COLUMN_COMMENT END AS COLUMN_COMMENT FROM COLUMNS t1 JOIN TABLES t2 ON t1.TABLE_NAME = t2.TABLE_NAME WHERE t1.TABLE_NAME = 'o_oms_statistic_profit' ) t3 GROUP BY TABLE_NAME, TABLE_COMMENT ) t4;
Recommandations associées :
Qu'est-ce que les métadonnées MySQL ? Introduction aux métadonnées et exemple de code
Installation et tests simples de Hive basés sur les métadonnées MySQL
[MySQL] Étapes pour obtenir des métadonnées
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!