Ich habe dies in dem Sqoop Handbuch bemerkt:Belastungstabelle von Oracle nach Hive, Datum und Zeitstempel umwandeln String
24,5. Schemadefinition im Hive
Hive-Benutzer werden feststellen, dass zwischen SQL-Typen und Hive-Typen keine Eins-zu-Eins-Zuordnung besteht. Im Allgemeinen werden SQL-Typen, die keine direkte Zuordnung haben (z. B. DATE, TIME und TIMESTAMP), in Hive zu STRING gezwungen. Die SQL-Typen NUMERIC und DECIMAL werden zu DOUBLE gezwungen. In diesen Fällen wird Sqoop in seinen Protokollmeldungen eine Warnung ausgeben, die Sie über den Genauigkeitsverlust informiert.
Und ich weiß Sqoop die Spalte angeben können - Typzuordnung mit
--map-column-java
--map-column-hive
Aber mein Fall ist ich eine allgemeine Art benötigen Zuordnung zu geben, von RDBMS Geben Sie in das HIVE-Typ-Mapping ein, das eine Datums- oder Datumszeit-Konvertierung in ein Datum oder einen Zeitstempel erfordert.
Gibt es eine Lösung?
Das Format von Datum und Zeitstempel umwandeln ** ist nicht dasselbe ** in Bienenstock und in RDBMS-Datenbanken. Sie können also keine generische Lösung dafür finden. Sie müssen es manuell konvertieren, indem Sie '--map-column-hive' für jedes RDBMS verwenden. –
Können Sie den Unterschied zwischen Datum und Zeitstempel in Hive und in RDBMS und den Grund, warum es keine generische Lösung gibt, genauer beschreiben. – cdhit