Утилиты SQLLine (sqlline.sh, ise-sqlline.sh)#
DataGrid поставляется с SQLLine — консольной утилитой для подключения к реляционным базам данных и выполнения SQL-запросов. Утилита ise-sqlline.sh нужна для работы с кластером, в котором настроен плагин безопасности. В остальных случаях используйте sqlline.sh.
Подключение к кластеру#
Внимание
Если кластер настроен на работу с плагином безопасности, используйте утилиту ise-sqlline.sh.
Чтобы подключиться к кластеру с плагином безопасности, используйте команду:
sh $IGNITE_HOME/bin/ise-sqlline.sh -u "<dbc:ignite:thin://<hostname>/?sslMode=require
&sslClientCertificateKeyStoreUrl=<путь к хранилищу ключей (keystore)>
&sslTrustCertificateKeyStoreUrl=<путь к доверенному хранилищу (truststore)>"
-n <имя пользователя>
Если не указать обязательные параметры ключей -u и -n, система запросит их через консоль.
Пример запуска:
sh $IGNITE_HOME/bin/ise-sqlline.sh -u "jdbc:ignite:thin://xxx.x.x.x/?sslMode=require
&sslClientCertificateKeyStoreUrl=src/main/resources/validUser.jks
&sslTrustCertificateKeyStoreUrl=src/main/resources/truststore.jks"
-n validUser
Подключиться к узлу:
./sqlline.sh --verbose=true -u jdbc:ignite:thin://<hostname>/
Если ключ --verbose принимает значение true, при возникновении ошибки выведется вся трассиовка стека Java и информация об отладке.
После подключения к кластеру можно выполнять SQL-запросы и команды SQLLine.
Получить справку по SQLLine:
./sqlline.sh -h
./sqlline.sh --help
Команды SQLLine#
Описание команд:
Команда |
Описание |
|---|---|
!all |
Выполнить указанный SQL-запрос для всех текущих соединений |
!batch |
Выполнить набор SQL-запросов |
!brief |
Включить режим краткого вывода |
!closeall |
Закрыть все текущие открытые соединения |
!columns |
Вывести все столбцы всех таблиц |
!connect |
Подключиться к базе данных |
!dbinfo |
Вывести информацию о текущем соединении |
!dropall |
Удалить все таблицы в базе данных |
!go |
Перейти на другое активное соединение |
!help |
Вывести справочную информацию |
!history |
Вывести историю команд |
!indexes |
Отобразить все индексы всех таблиц |
!list |
Отобразить все активные соединения |
!manual |
Показать руководство по SQLLine |
!nickname |
Создать понятное имя для подключения (обновляет командную строку) |
!outputformat |
Изменить метод отображения результатов SQL-запросов |
!primarykeys |
Отобразить столбцы первичного ключа таблицы |
!properties |
Подключиться к базе данных, которая определена в конфигурационном файле |
!quit |
Выйти из SQLLine |
!reconnect |
Переподключиться к текущей базе данных |
!record |
Начать записывать весь вывод SQL-запросов |
!run |
Выполнить набор команд из файла |
!script |
Сохранить выполненные команды в файл |
!sql |
Выполнить SQL-запрос |
!tables |
Вывести список всех таблиц |
!verbose |
Включить режим подробного вывода |
Примеры#
Создать таблицы:
0: jdbc:ignite:thin://xxx.x.x.x/> CREATE TABLE City (id LONG PRIMARY KEY, name VARCHAR) WITH "template=replicated";
No rows affected (0.301 seconds)
0: jdbc:ignite:thin://xxx.x.x.x/> CREATE TABLE Person (id LONG, name VARCHAR, city_id LONG, PRIMARY KEY (id, city_id))WITH "backups=1, affinityKey=city_id";
No rows affected (0.078 seconds)
0: jdbc:ignite:thin://xxx.x.x.x/> !tables
+-----------+--------------+--------------+-------------+-------------+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS |
+-----------+--------------+--------------+-------------+-------------+
| | PUBLIC | CITY | TABLE | |
| | PUBLIC | PERSON | TABLE | |
+-----------+--------------+--------------+-------------+-------------+
Создать индексы:
0: jdbc:ignite:thin://xxx.x.x.x/> CREATE INDEX idx_city_name ON City (name);
No rows affected (0.039 seconds)
0: jdbc:ignite:thin://xxx.x.x.x/> CREATE INDEX idx_person_name ON Person (name);
No rows affected (0.013 seconds)
0: jdbc:ignite:thin://xxx.x.x.x/> !indexes
+-----------+--------------+--------------+-------------+-----------------+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | NON_UNIQUE | INDEX_QUALIFIER |
+-----------+--------------+--------------+-------------+-----------------+
| | PUBLIC | CITY | true | |
| | PUBLIC | PERSON | true | |
+-----------+--------------+--------------+-------------+-----------------+