Ich habe einen Anwendungsfall, in dem ich SQL-basierte Data Warehousing-Aktivitäten mithilfe von Hive implementieren muss.Hive-basierte Data Warehousing-Task - Sequenznummer zu Datensätzen hinzufügen
Die Software würde eine Reihe von CSV-Dateien generieren. Wenn es in die SQL-Tabelle transformiert wird, wird eine eindeutige ID namens Sitzung für jede CSV-Datei zugewiesen und in eine SQL-Tabelle geladen. Nehmen wir an, ich habe 3 Spalten in CSV-Dateien. Ich werde vier Spalten in der SQL-Tabelle haben, wobei die erste Spalte die Sitzung darstellt. Dies bedeutet, dass Werte, die in der ersten CSV-Datei gespeichert sind, in die SQL-Tabelle mit der Sessios-ID '1' geschrieben werden und Werte aus der zweiten CSV-Datei an die SQL-Tabelle mit der Sitzungs-ID '2' angehängt werden.
In Hive,
ich diese CSV-Dateien in hdfs Verzeichnis gespeichert und will eine hive Tabelle mit den zusätzlichen Spalten erstellen, die die Session-ID darstellen. Ich bin mir nicht sicher, wie ich es machen kann. Jede Hilfe oder Anhaltspunkt wird sehr geschätzt.
Können Sie die Tabelle ohne die zusätzliche Spalte erstellen? Woher weiß der Computer, was die ID sein sollte? Haben Sie darüber nachgedacht, das Tagfile-Flag beim Lesen von Dateien zu verwenden (also fügen Sie den Namen der Datei als Spalte hinzu, anstatt eine ID hinzuzufügen) –
Dies ist ein guter Vorschlag, das heißt, den Namen der Datei anstelle von Ich würde. Wenn ich jedoch meine HQL-Abfrage schreibe, wähle ich einige Werte aus mehreren Tabellen aus. In diesem Fall wird ein Fehler angezeigt, dass INPUT__FILE__NAME in mehr als einer Tabelle gefunden wird. Irgendeine Abhilfe hier? – Bala
Ich habe es behoben. Es war ein einfacher Fehler in meiner Abfrage. Ich habe DISTINCT in der Abfrage vermisst. Vielen Dank. Ich werde immer noch die Sitzungen in einer separaten Tabelle speichern müssen, um zu verfolgen, welche Sitzung verarbeitet wird und welche nicht. Ich werde es mit Hilfe der separaten Tabelle tun. – Bala