Управляющие команды#
DataGrid поддерживает стандартные управляющие команды.
COPY#
Копирует содержимое файла из локальной файловой системы на сервер и применяет его данные к таблице SQL.
При выполнении команды содержимое файла считывается в двоичной форме в пакеты данных, затем эти пакеты отправляются на сервер. Далее содержимое файла синтаксически анализируется и выполняется в потоковом режиме.
Примечание
Применяйте эту команду, если для хранения данных используется файл.
Синтаксис команды#
COPY FROM '<path-to-local-file>' INTO tableName (columnName, columnName, ...) FORMAT CSV [CHARSET '<charset-name>']
Входные параметры#
</path-to-local-file>— путь к файлу;tableName— имя таблицы, в которую будут скопированы данные;columnName— имя столбца таблицы, соответствущего столбцу в файле;<charset-name>— необязательный параметр для указания кодировки.
Внимание!
Команда
COPYподдерживается только при работе через JDBC-драйвер и может применяться только для файлов формата CSV.
Пример использования#
В примере взят файл city.csv, который расположен в каталоге {IGNITE_HOME}/examples/src/main/resources/sql/ дистрибутива DataGrid.
COPY FROM '/path/to/local/file.csv' INTO city (ID, Name, CountryCode, District, Population) FORMAT CSV
SET STREAMING#
Управляет потоковой передачей массивов данных из файла в таблицу SQL на целевом кластере.
Если потоковая передача включена (ON), драйвер JDBC/ODBC упаковывает команды в пакеты и отправляет их на сервер — кластер DataGrid. На стороне сервера пакет преобразуется в поток команд обновления кеша, которые асинхронно распределяются между узлами сервера. Асинхронное выполнение этих операций увеличивает пиковую пропускную способность, так как в любой момент времени все узлы кластера заняты загрузкой данных.
Синтаксис команды#
SET STREAMING [OFF|ON];
Сценарий работы#
Для потоковой передачи данных в кластер добавьте в скрипт команду
SET STREAMING ON.Потоковый режим передачи данных отключается после отправки команды
SET STREAMING OFF
Пример использования#
В примере рассмотрена потоковая передача данных из заранее подготовленного SQL-файла.
Внимание!
На целевом кластере должна существовать таблица, в которую будут добавляться передаваемые данные. Если такой таблицы нет, ее необходимо создать непосредственно перед передачей данных.
-- Создание таблицы --
CREATE TABLE City (
ID INT(11),
Name CHAR(35),
CountryCode CHAR(3),
District CHAR(20),
Population INT(11),
PRIMARY KEY (ID, CountryCode)
) WITH "template=partitioned, backups=1, affinityKey=CountryCode, CACHE_NAME=City, KEY_TYPE=demo.model.CityKey, VALUE_TYPE=demo.model.City";
-- Включение потоковой передачи --
SET STREAMING ON;
-- Добавление данных в таблицу --
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (1,'Moscow','RUS','Moscow',13010112);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (2,'Saint-Petersburg','RUS','Saint-Petersburg',5601911);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (3,'Novosibirsk','RUS','Novosibirsk Oblast',1633595);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (4,'Yekaterinburg','RUS','Sverdlovsk Oblast',1588665);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (5,'Kazan','RUS','Tatarstan',1308660);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (6,'Nizhny Novgorod','RUS','Nizhny Novgorod Oblast',1249861);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (7,'Chelyabinsk','RUS','Chelyabinsk Oblast',1189525);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (8,'Krasnoyarsk','RUS','Krasnoyarsk Krai',1188533);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (9,'Samara','RUS','Samara Oblast',1173393);
INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES (10,'Ufa','RUS','Bashkortostan',1144809);
-- Следующие команды INSERT --
После подготовки файла запустите утилиту SQLLine (подробнее описано в разделе «Утилиты SQLLine (sqlline.sh, ise-sqlline.sh)») и выполните команду:
!run /apache_ignite_version/examples/sql/world.sql
Примечание
Для примера использован файл
world.sql, который расположен в каталоге{IGNITE_HOME}/examples/sql/дистрибутива DataGrid.
После выполнения вышеуказанной команды и завершения JDBC-соединения все данные будут загружены на кластер и станут готовы для дальнейших запросов.

Внимание!
После завершения загрузки данных обязательно завершите соединение JDBC/ODBC для полной загрузки данных на кластер.
Известные ограничения#
Хотя потоковый режим позволяет загружать данные гораздо быстрее, чем другие упомянутые в этом руководстве методы загрузки, он имеет ограничения:
Разрешена только команда
INSERT. При попытке использовать командуSELECTили любую другую команду DML или DDL эта команда завершится ошибкой выполнения, при этом командыINSERTбудут выполнены.Из-за асинхронной природы потокового режима пользователь не может получать значение количества обновлений для каждой выполненной команды. Все команды JDBC/ODBC, возвращающие количество обновлений, будут возвращать 0.
KILL QUERY#
Отменяет выполнение запущенного запроса.
Когда запрос отменяется командой KILL, все части запроса, запущенные на всех других узлах, также завершаются.
Синтаксис команды#
KILL QUERY {ASYNC} 'query_id'
QueryMXBean mxBean = ...;
mxBean.cancelSQL(queryId);
./control.sh --kill SQL query_id
control.bat --kill SQL query_id
Входные параметры#
query_id— идентификатор запроса, значение которого можно получить через системное представлениеSQL_QUERIES(см. документ «Руководство по системному администрированию», раздел «События мониторинга», глава SQL_QUERIES);ASYNC— необязательный параметр, который возвращает управление немедленно, не дожидаясь завершения отмены запроса.
KILL TRANSACTION#
Отменяет выполнение запущенной транзакции.
Синтаксис команды#
KILL TRANSACTION 'xid'
TransactionMXBean mxBean = ...;
mxBean.cancel(xid);
./control.sh --kill TRANSACTION xid
control.bat --kill TRANSACTION xid
Входные параметры#
xid— идентификатор транзакции, значение которого можно получить через системное представлениеTRANSACTIONS.
KILL SCAN#
Отменяет выполнение запущенного запроса на сканирование.
Синтаксис команды#
KILL SCAN 'origin_node_id' 'cache_name' query_id
QueryMXBean mxBean = ....;
mxBean.cancelScan(originNodeId, cacheName, queryId);
./control.sh --kill SCAN origin_node_id cache_name query_id
control.bat --kill SCAN origin_node_id cache_name query_id
Входные параметры#
origin_node_id— идентификатор узла, инициировавшего запрос;cache_name— имя кеша;query_id— идентификатор запроса.
Значения параметров можно получить через системное представление SCAN_QUERIES (см. документ «Руководство по системному администрированию», раздел «События мониторинга», глава SCAN_QUERIES).
Пример использования#
KILL SCAN '6fa749ee-7cf8-4635-be10-36a1c75267a7_54321' 'cache-name' 1
KILL COMPUTE#
Отменяет выполнение запущенного вычисления.
Синтаксис команды#
KILL COMPUTE 'session_id'
ComputeMXBean#cancel
./control.sh --kill COMPUTE session_id
control.bat --kill COMPUTE session_id
Входные параметры#
session_id— идентификатор сессии, значение которого можно получить через системное представлениеTASKSилиJOBS(см. документ «Руководство по системному администрированию», раздел «События мониторинга», глава TASKS или JOBS).
KILL CONTINUOUS#
Отменяет выполнение запроса типа continuousQuery.
Синтаксис команды#
KILL CONTINUOUS 'origin_node_id', 'routine_id'
QueryMXBean mxBean = ...;
mxBean.cancelContinuous(originNodeId, routineId);
./control.sh --kill CONTINUOUS origin_node_id routine_id
control.bat --kill CONTINUOUS origin_node_id routine_id
Входные параметры#
origin_node_id— идентификатор узла, инициировавшего запрос;routine_id— идентификатор запроса.
Значения параметров можно получить через системное представление CONTINUOUS_QUERIES (см. документ «Руководство по системному администрированию», раздел «События мониторинга», глава CONTINUOUS_QUERIES).
KILL SERVICE#
Останавливает запущенный сервис.
Синтаксис команды#
KILL SERVICE 'name'
ServiceMXBean mxBean = ...;
mxBean.cancel(name);
./control.sh --kill SERVICE name
control.bat --kill SERVICE name
Входные параметры#
name— имя сервиса, назначенное при развертывании. Можно получить через системное представлениеSERVICES(см. документ «Руководство по системному администрированию», раздел «События мониторинга», глава SERVICES).
KILL CONSISTENCY (операции по проверке и восстановлению согласованности данных)#
Отменяет выполнение запущенных операций по проверке и восстановлению согласованности данных.
Синтаксис команды#
./control.sh --kill CONSISTENCY
control.bat --kill CONSISTENCY
KILL CLIENT#
Прерывает соединение с локальным клиентом (тонкий клиент/JDBC/ODBC).
Синтаксис команды#
./control.sh --kill CLIENT connection_id [--node-id node_id]
control.bat --kill CLIENT connection_id [--node-id node_id]
Входные параметры#
connection_id— идентификатор соединения клиента. УкажитеALLдля прерывания ВСЕХ соединений.connection_id— локальное значение, поэтому может отличаться для разных узлов на одном кластере. Значение можно получить через системное представлениеCLIENT_CONNECTIONS(см. документ «Руководство по системному администрированию», раздел «События мониторинга», глава CLIENT_CONNECTIONS).node_id— идентификатор узла, для которого нужно прервать соединение.