Открыть соединение GRPC
Открывает GRPC соединение для работы с ClickHouse
- Параметры
- Расширенный вызов ?
Функция ОткрытьСоединениеGRPC(Знач НастройкиСоединения) Экспорт
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|---|---|---|---|---|
| НастройкиСоединения | - | Структура Из КлючИЗначение | ✔ | Параметры соединения. См. ПолучитьНастройкиСоединенияGRPC |
Возвращаемое значение
Произвольный - Объект коннектора или соответствие с информацией об ошибке
Для текущего метода нет дополнительных параметров расширенного вызова.
Предупреждение
NOCLI: данный метод недоступен для использования в CLI версии
Пример использования для 1С:Предприятие/OneScript
URL = "http://localhost:9101";
Логин = "bayselonarrend";
Пароль = "12we...";
Авторизация = Новый Структура(Логин, Пароль);
// Открытие соединения
НастройкиСоединения = OPI_ClickHouse.ПолучитьНастройкиСоединенияGRPC(URL, Авторизация);
Соединение = OPI_ClickHouse.ОткрытьСоединениеGRPC(НастройкиСоединения);
// Запрос через открытое соединение (создание таблицы)
ТекстЗапроса = "CREATE TABLE IF NOT EXISTS events_grpc (
| id UInt64,
| timestamp DateTime,
| user_id UInt32,
| event_type String,
| payload String
|) ENGINE = MergeTree()
|ORDER BY (timestamp, id)";
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстЗапроса);
Результат = OPI_ClickHouse.ВыполнитьЗапрос(Соединение, Запрос);
// Вставка данных
ТекстЗапроса = "INSERT INTO events_grpc FORMAT JSON";
ФорматДанных = "JSON";
МассивДанных = Новый Массив;
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
Запись1 = Новый Структура;
Запись1.Вставить("id" , 1);
Запись1.Вставить("timestamp" , ТекущаяДата);
Запись1.Вставить("user_id" , 100);
Запись1.Вставить("event_type", "click");
Запись1.Вставить("payload" , "{}");
МассивДанных.Добавить(Запись1);
Мета = Новый Массив;
Мета.Добавить(Новый Структура("name,type", "id" , "UInt64"));
Мета.Добавить(Новый Структура("name,type", "timestamp" , "DateTime"));
Мета.Добавить(Новый Структура("name,type", "user_id" , "UInt32"));
Мета.Добавить(Новый Структура("name,type", "event_type", "String"));
Мета.Добавить(Новый Структура("name,type", "payload" , "String"));
Данные = Новый Структура("meta,data", Мета, МассивДанных);
IDЗапроса = Строка(Новый УникальныйИдентификатор());
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстЗапроса, "default", IDЗапроса, Данные, ФорматДанных);
Результат = OPI_ClickHouse.ВыполнитьЗапрос(Соединение, Запрос);
// Выборка
ТекстВыборки = "SELECT * FROM events_grpc";
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстВыборки, , , , "JSON");
Результат = OPI_ClickHouse.ВыполнитьЗапрос(Соединение, Запрос);
// Запрос с внешней таблицей через gRPC
СтруктураКолонок = Новый Структура;
СтруктураКолонок.Вставить("id" , "UInt64");
СтруктураКолонок.Вставить("name", "String");
Таб = Символы.Таб;
ДанныеТаблицы = "1" + Таб + "John
|2" + Таб + "Jane";
ВнешняяТаблица = OPI_ClickHouse.ПолучитьСтруктуруВнешнейТаблицы("ext_grpc", СтруктураКолонок, ДанныеТаблицы, "TSV");
МассивВнешнихТаблиц = Новый Массив;
МассивВнешнихТаблиц.Добавить(ВнешняяТаблица);
ТекстЗапроса = "SELECT * FROM ext_grpc";
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстЗапроса, , , , "JSON", МассивВнешнихТаблиц);
Результат = OPI_ClickHouse.ВыполнитьЗапрос(Соединение, Запрос);
Результат
{
"data": {
"cancelled": false,
"exception": {
"code": 0,
"display_text": "",
"name": "",
"stack_trace": ""
},
"extremes": {
"BYTES": ""
},
"logs": [],
"output": {
"meta": [
{
"name": "id",
"type": "UInt64"
},
{
"name": "name",
"type": "String"
}
],
"data": [
{
"id": "1",
"name": "John"
},
{
"id": "2",
"name": "Jane"
}
],
"rows": 2,
"statistics": {
"elapsed": 0.001630533,
"rows_read": 0,
"bytes_read": 0
}
},
"output_columns": [],
"output_format": "JSON",
"progress": {
"read_bytes": 42,
"read_rows": 2,
"total_rows_to_read": 0,
"written_bytes": 0,
"written_rows": 0
},
"query_id": "23797a78-9aa0-4994-a69b-0b719340f266",
"stats": {
"allocated_bytes": 8448,
"applied_aggregation": false,
"applied_limit": false,
"blocks": 1,
"rows": 2,
"rows_before_aggregation": 0,
"rows_before_limit": 0
},
"time_zone": "Europe/Moscow",
"totals": {
"BYTES": ""
}
},
"result": true
}