HDP-2.5.0.0 mit Ambari 2.4.0.1Alter (leer) Tabellenpartition COLUMN
Es gibt mehrere SQL Server und Oracle Datenbank-Schema hinzufügen, die auf HDFS/Hive importiert müssen.
Der derzeitige Ansatz funktioniert gut:
- Sqoop Import von RDBMS HDFS in avro Format
- Erstellung eines Hive externen Tabelle oben auf die Avro-Dateien nämlich. dataaggregate_avro_compressed
- Erstellen Sie die finale Tabelle aus Schritt 2. AUTOMATE dieser Schritt
- einfügen Daten aus der Tabelle in Schritt 2 an den Final Table
Nun wird der Schritt 3. Tabelle muss ORC + COMPRESSED + PARTITIONED und möglicherweise MANAGED sein. Manuell kann getan werden, folgende:
CREATE TABLE `dataaggregate_orc_empty`(......)PARTITIONED BY (`datedimensionid` bigint) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' TBLPROPERTIES ('orc.compress'='ZLIB');
Aber es ist automatische Erstellung ist eine Herausforderung, ich bin mit den folgenden Ansätze zu kämpfen:
CTAS leere Tabelle
CREATE TABELLE dataaggregate_orc_empty LIKE dataaggregate_avro_compressed ROW-FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' GESPEICHERT ALS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc. OrcInputFormat 'OUTPUTFORMAT' org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat 'TBLPROPERTIES (' orc.compress '=' ZLIB ');
Nun, diese Tabelle enthält die Partitionsspalte datedimensionid, die aus der Tabelle entfernt werden muss, sondern eine ‚Tabelle Drop Spalte ändern‘ wird nicht unterstützt
CTAS mit REGEX column spec. :
set hive.support.quoted.identifiers = none; CREATE TABLE datenaggregate_orc_empty AS SELECT
(datedimensionid)?+.+
VON dataaggregate_avro_compressed limit 0;
Diese die Tabelle ohne die Partitionsspalte datedimensionid schafft aber jetzt wie diese leere Tabelle zu ändern, um die Trennwandkolonne aufzunehmen, ist dies, wo auch der erste Ansatz auf die Wand trifft! Die documentation talks about adding partitions mit einer Spezifikation, aber ich habe keine zu diesem Zeitpunkt - Ich möchte nur, dass diese Tabelle die gleiche manuell erstellt werden (am Anfang des Beitrags gezeigt).
Wie soll ich fortfahren?
'HiveMetaStoreClient' kann Ihre Anforderung helfen. Ich gab Beispiel Ansatz auf diese Weise modifizierten Partitionen. Sie können versuchen –