Upsert / Merge в MemSQL конвейере - PullRequest
0 голосов
/ 05 июня 2019

Есть ли способ использовать функцию Upsert / Merge в MemSQL Pipeline с использованием процедур.

Я пытался использовать ON DUPLICATE KEY UPDATE в процедуре, но мой конвейер завершился ошибкой Feature 'INSERT ... ON DUPLICATE KEY UPDATE for columnar tables' is not supported by MemSQL.

Дайте мне знать, если потребуется дополнительная информация.

Спасибо, Сантош

Ответы [ 2 ]

1 голос
/ 11 июля 2019

MemSQL не поддерживает уникальные индексы для столбцовых таблиц. От https://docs.memsql.com/concepts/v6.8/columnstore/

Обратите внимание, что у вас может быть только один ключ CLUSTERED COLUMNSTORE, а также ключ SHARD. За исключением необязательных уникальных ключей только для метаданных, вы не можете добавить любой другой ключ, включая PRIMARY KEY, в таблицу columnstore.

Если возможно изменить таблицу с столбчатого на хранилище строк, вы можете создать уникальный индекс.

1 голос
/ 15 июня 2019

Я говорил с MemSQL Support, вот что они сказали.

Единственный способ добиться upserts - это вручную написать логику, чтобы сначала удалить запись при обнаружении дублирующего ключа, а затем вставить новую запись.

Если у вас есть файлы на локальном компьютере, вы можете использовать https://docs.memsql.com/sql-reference/v6.8/load-data/. Это заботится о upserts.

...