2016-04-25 11 views
0

Mein Ziel ist Hive-Tabelle mit Informatica ETL-Tool.Hive Updates mit Informatica

Updates werden in früheren Hive-Versionen nicht unterstützt. Also, wie sollte ich Updates für Datensätze in diesem Szenario tun. Ist es in Ordnung, für Hive-Update-Funktion mit Hive ACID und Transaktionsfunktion zu gehen.

+0

Insert Update-Ereignisse und eine Karte/reduzieren, um aktuelle Antwort zu erhalten? – jpopesculian

+0

Ich möchte Hive-Daten mit Informatica aktualisieren, aber Hive nicht zulassen, Updates, also irgendwelche Arbeit dafür? – shashank

Antwort

0

Sie sollten in die Ereignisquellensuche (https://msdn.microsoft.com/en-us/library/dn589792.aspx) schauen.

Denken Sie an Ihre Datenbank als Speichern von Ereignissen anstelle von Elementen. Also, wenn Sie ein counter Objekt haben, das Sie in Ihrer Datenbank verwenden möchten, anstatt counter von 0 zu 1 bis 2 usw. zu aktualisieren, fügen Sie einfach ein neues Dokument ein, wenn Sie erhöhen und dann die Summe/Anzahl dieser Dokumente nehmen.

1

Informatica unterstützt Updates für Hive-Tabellen aus Informatica 9.6 HF3-Version vorausgesetzt, die Tabellen unterstützen ACID, für weitere Informationen können Sie auf diesen Link verweisen (https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions), aber anstatt dies zu tun, würde ich lieber dieses eine in zwei step process,

1) Identifizieren Sie alle Datensätze, die nur im Ziel vorhanden sind, und die Datensätze, die NUR in den Stufendaten vorhanden sind. 2) Verbinden Sie diese beiden und laden Sie sie in eine temporäre Tabelle. nur Typ SCD-1-Implementierungen

1

Updates sind nicht die beste Wahl während der Arbeit an Hive, Erstellen von Zwischen temporären Tabellen besseres Design ist 3) Schließlich erneut Name temporäre Tabelle auf den Namen eigentlichen Zieltabelle

Die oben funktionieren würde. Schritte zum Aktualisieren vorhandener Hive-Tabelle -

  1. Angenommen, Sie arbeiten an table-tbl_employee und möchten einige Zeilen aktualisieren.
  2. Erstellen Sie eine neue Zwischentabelle - tbl_employee_update mit genau der gleichen Anzahl von Datensätzen mit aktualisierten Spaltendaten.
  3. Erstellen Sie eine neue Zwischentabelle mit Daten aus der ursprünglichen Tabelle tbl_employee minus Zeilen, die bereits in tbl_employee_update vorhanden sind. Benennen Sie diese Tabelle als tbl_employee_retained
  4. Do Vereinigung auf tbl_employee_retained und tbl_employee_update und nennen Sie es wie tbl_employee_temp
  5. Jetzt tbl_employee mit tbl_employee_temp ersetzen, indem zunächst sicherzustellen, tbl_employee_temp Aufzeichnungen und anderen Gesundheits-Checks wird müssen.
Verwandte Themen