Есть ли способ клонировать стол в Кусто? - PullRequest
0 голосов
/ 18 января 2020

Есть ли способ клонировать таблицу точно в Kusto, чтобы она имела все экстенты исходной таблицы? Даже если невозможно сохранить экстенты, по крайней мере, есть эффективный способ скопировать таблицу в новую таблицу. Я попробовал следующее: -

.set new_table <| existing_table;

Он работал вечно и получил ошибку тайм-аута. Есть ли способ копирования, чтобы движок Kusto распознал, что это просто дамп-копия, поэтому вместо использования движка Kusto он просто сделает простое копирование большого двоичного объекта из серверной части и просто укажет новую таблицу на скопированный большой двоичный объект, минуя всю Кусто, маршрут обработки?

1 Ответ

2 голосов
/ 18 января 2020

1. Копирование схемы и данных одной таблицы в другую возможно с помощью упомянутой вами команды (другой вариант для копирования данных - экспорт его содержимого в облачное хранилище, затем глотать артефакты хранилища результатов, используя API приема Kusto или инструмент, который его использует, например LightIngest или ADF )

Конечно, если В исходной таблице много данных, поэтому вам нужно разделить эту команду на несколько, каждая из которых имеет дело с подмножеством исходных данных (которое можно «разбить», например, по времени).

Ниже приведен только один пример (он, очевидно, зависит от того, сколько данных у вас в исходной таблице):

.set-or-append [async] new_table <| existing_table | where ingestion_time() > X and ingestion_time() < X + 1h

.set-or-append [async] new_table <| existing_table | where ingestion_time() >= X+1h and ingestion_time() < X + 2h

...

Обратите внимание, что async является необязательным и позволяет избежать потенциального тайм-аута на стороне клиента (по умолчанию через 10 минут). Сама команда продолжает выполняться на сервере до неконфигурируемого тайм-аута в 60 минут (хотя настоятельно рекомендуется избегать таких длительных команд, например, путем выполнения «разбиения», упомянутого выше).

2. На ваш другой вопрос: невозможно скопировать данные между таблицами без повторного ввода данных (в настоящее время фрагмент / экстент данных не может принадлежать более чем одной таблице).

3. Если вам необходимо «дублировать» поступающие данные в таблицу T1 непрерывно в таблицу T2, а T1 и T2 находятся в одной базе данных, вы можете добиться этого с помощью политики обновления .

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