Heim  >  Artikel  >  Datenbank  >  Informationen dazu, wie MySQL-Metadaten Annotationsskripts für Hive-Tabellenerstellungsanweisungen generieren

Informationen dazu, wie MySQL-Metadaten Annotationsskripts für Hive-Tabellenerstellungsanweisungen generieren

小云云
小云云Original
2017-12-22 14:18:112299Durchsuche

In letzter Zeit ist es beim Extrahieren von Daten aus MySQL und anderen relationalen Datenbanken in eine Hive-Tabelle erforderlich, die Kommentare in der MySQL-Tabelle zu synchronisieren. Das folgende Skript kann Anweisungen zur Änderung von Hive-Tabellenfeldkommentaren generieren. Es stellt Ihnen hauptsächlich die relevanten Informationen darüber vor, wie MySQL-Metadaten Anmerkungsskripte zur Erstellung von Hive-Tabellen generieren. Der Artikel stellt es ausführlich anhand von Beispielcode vor. Es hat einen gewissen Referenz-Lernwert für alle, die es beim Lernen oder Arbeiten benötigen . Lasst uns gemeinsam lernen.

Hinweis: Andere relationale Datenbanken wie Oracle können mit derselben Idee implementiert werden, indem Metadaten gelesen und die Skriptsyntax geändert werden.

Verwendung:

Führen Sie die folgende Anweisung in der MySQL-Metabasis aus: 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;

Wenn Sie Daten aus anderen relationalen Datenbanken wie MySQL in eine Hive-Tabelle extrahieren, müssen Sie die Kommentare in der MySQL-Tabelle synchronisieren. Das folgende Skript kann eine Anweisung zur Erstellung einer Hive-Tabelle generieren. Es werden nur die Hauptfeldinformationen der Hive-Tabelle generiert, andere Informationen müssen manuell hinzugefügt werden.

Führen Sie die folgende Anweisung in der MySQL-Metadatendatenbank aus: 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;

Verwandte Empfehlungen:

Was sind MySQL-Metadaten? Einführung in Metadaten und Beispielcode

Installation und einfaches Testen von Hive basierend auf MySQL-Metadaten

[MySQL] Schritte zum Abrufen von Metadaten

Das obige ist der detaillierte Inhalt vonInformationen dazu, wie MySQL-Metadaten Annotationsskripts für Hive-Tabellenerstellungsanweisungen generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn