2017-05-16 5 views
0

Weiß jemand, ob es einen Weg gibt eineWie kann ich INSERT IF EXISTS mit Apache Impala?

INSERT IF NOT EXISTS 

in Apache Impala zu tun?

Ich weiß über INSERT OVERWRITE, aber es entspricht nicht den Anwendungsfällen, an denen ich arbeite.

Vielen Dank.

+0

Welche Art von Abfrage ist das? Ein 'INSERT VALUES'? * [noch nie zuvor diese Syntax gesehen] * - oder ein 'INSERT SELECT WHERE NOT EXISTS (Unterabfrage)' * [Standard SQL] *? –

+0

Die Syntax habe ich nur ein Beispiel war, das ist die vollständige Abfrage, wo ich die SQL-Probe entnommen hat: INSERT INTO Tabelle (Spalten ...) VALUES (...) WHERE NOT EXISTS (SELECT * FROM. ...); (SQL Beispiel) Der Zweck meiner Frage war zu verstehen, ob diese Logik auf Impala reproduziert werden konnte, nicht über die Syntax selbst. – Federico

+0

Sie möchten also ein ** Big ** Data-Framework verwenden, das für ** Stapelverarbeitung ** entwickelt wurde, um ** eine Zeile nach der anderen einzufügen ** - ehrlich gesagt, scheint es ein bisschen doof. Wenn Sie einen Echtzeit-Schlüssel/Wert-Zugriff benötigen, haben Sie HBase. Oder Kudu, mit der Java-API * (die HBase-API ähnlich ist, auf hoher Ebene) * –

Antwort

1

Impala unterstützt das nicht, zumindest nicht mit HDFS, da ein Primärschlüssel benötigt würde. Wenn Sie Impala + Kudu verwenden können, das Primärschlüssel unterstützt, könnte INSERT IF NOT EXISTS durch Einfügen und Ignorieren der Fehler implementiert werden.

+0

Danke. Ich schätze, Kudu ist der richtige Weg, um Impala weiter zu benutzen. Der Mangel an CRUD-Operationen ist wirklich ein Blocker. – Federico