Aktualisierung der Daten in Clickhouse

8

Ich bin über die Dokumentation für Clickhouse gegangen und habe weder die Option UPDATE noch DELETE gesehen. Es scheint mir ein Append-Only-System zu sein. Gibt es eine Möglichkeit, vorhandene Datensätze zu aktualisieren, oder gibt es eine Problemumgehung wie das Abschneiden einer Partition, in der sich Datensätze befinden, die geändert wurden, und das erneute Einlesen der gesamten Daten für diese Partition?

    
Jonathan 18.06.2016, 21:07
quelle

2 Antworten

10

ClickHouse unterstützt kein echtes UPDATE / DELETE. Es gibt jedoch nur wenige Möglichkeiten zur Problemumgehung:

  1. Versuchen Sie, Daten auf eine Weise zu organisieren, die nicht aktualisiert werden muss. Sie könnten ein Protokoll der Aktualisierungsereignisse in eine Tabelle schreiben und dann Berichte aus diesem Protokoll berechnen. Anstatt also vorhandene Datensätze zu aktualisieren, fügen Sie neue Datensätze an eine Tabelle an.

  2. Verwenden der Tabellen-Engine, die während der Zusammenführung Daten im Hintergrund verarbeitet. Zum Beispiel (eher spezifische) CollapsingMergeTree-Tabellen-Engine: Ссылка Auch gibt es ErsatzMergeTree-Tabellen-Engine (noch nicht dokumentiert, können Sie Beispiel in Tests finden: Ссылка ) Nachteil ist, dass Sie nicht wissen, wann Hintergrundzusammenführung gemacht wird, und wird es jemals getan werden.

Sehen Sie sich auch samdojs Antwort an.

    
uYSIZfoz 20.06.2016 04:35
quelle
5

Sie können neue Tabellen löschen und erstellen, aber abhängig von ihrer Größe kann dies sehr zeitaufwendig sein. Sie könnten so etwas tun:

Zum Löschen könnte so etwas funktionieren.

%Vor%

Ähnlich können Sie eine Zeile aktualisieren, indem Sie sie zuerst auf diese Weise löschen und dann hinzufügen.

    
samdoj 18.06.2016 22:01
quelle

Tags und Links