Обработать отправку GRPC
Инициализирует поток, передает запрос и набор данных в указанном порядке с получением одного сообщения по окончании
- Параметры
- Расширенный вызов ?
Функция ОбработатьОтправкуGRPC(Знач Соединение, Знач Запрос, Знач Данные, Знач Сессия = Неопределено, Знач Таймаут = 10000) Экспорт
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|---|---|---|---|---|
| Соединение | --conn | Произвольный | ✔ | Существующее соединение или параметры соединения |
| Запрос | --req | Структура Из КлючИЗначение | ✔ | Данные запроса. См. ПолучитьНастройкиЗапроса |
| Данные | --data | Массив Из Произвольный | ✔ | Массив строк, коллекций, двоичных данных или путей к файлам |
| Сессия | --session | Структура Из КлючИЗначение | ✖ | Настройки сессии. См. ПолучитьНастройкиСессии |
| Таймаут | --tout | Число | ✖ | Таймаут (в мс) |
Возвращаемое значение
Соответствие Из КлючИЗначение - Результат обработки
| Параметр | Описание |
|---|---|
| dontwait | Создает фоновое задание и возвращает его данные (только для 1С и OneScript) |
Пример использования для 1С:Предприятие/OneScript
URL = "http://localhost:9101";
Логин = "bayselonarrend";
Пароль = "12we...";
Авторизация = Новый Структура(Логин, Пароль);
НастройкиСоединения = OPI_ClickHouse.ПолучитьНастройкиСоединенияGRPC(URL, Авторизация);
Соединение = OPI_ClickHouse.ОткрытьСоединениеGRPC(НастройкиСоединения);
ТекстЗапроса = "INSERT INTO events_stream_test FORMAT JSONEachRow";
ФорматДанных = "JSON";
ТекущаяДата = Дата("20260101100000");
Запрос = Неопределено;
МассивДанных = Новый Массив;
Счетчик = 0;
Пока Счетчик < 5 Цикл
Запись = Новый Структура;
Запись.Вставить("id" , Счетчик + 1);
Запись.Вставить("timestamp" , ТекущаяДата);
Запись.Вставить("user_id" , 100 + Счетчик);
Запись.Вставить("event_type", "stream_test");
Запись.Вставить("payload" , "{}");
Запись = OPI_Инструменты.JSONСтрокой(Запись) + Символы.ПС;
Если Счетчик = 0 Тогда
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстЗапроса, "default", , Запись, ФорматДанных);
Иначе
МассивДанных.Добавить(Запись);
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
Результат = OPI_ClickHouse.ОбработатьОтправкуGRPC(Соединение, Запрос, МассивДанных);
- Bash
- CMD/Bat
# JSON данные также могут быть переданы как путь к файлу .json
oint clickhouse ОбработатьОтправкуGRPC \
--conn "{'address':'http://127.0.0.1:9101','auth_type':'basic','password':'***','transport':'grpc','user':'bayselonarrend'}" \
--req "{'query':'INSERT INTO events_stream_test FORMAT JSONEachRow','database':'default','data':{'id':'1','timestamp':'1/1/2026 10:00:00 AM','user_id':'100','event_type':'stream_test','payload':{}},'format':'JSON'}" \
--data "[{'id':'2','timestamp':'1/1/2026 10:00:00 AM','user_id':'101','event_type':'stream_test','payload':{}},{'id':'3','timestamp':'1/1/2026 10:00:00 AM','user_id':'102','event_type':'stream_test','payload':{}},{'id':'4','timestamp':'1/1/2026 10:00:00 AM','user_id':'103','event_type':'stream_test','payload':{}},{'id':'5','timestamp':'1/1/2026 10:00:00 AM','user_id':'104','event_type':'stream_test','payload':{}}]"
:: JSON данные также могут быть переданы как путь к файлу .json
oint clickhouse ОбработатьОтправкуGRPC ^
--conn "{'address':'http://127.0.0.1:9101','auth_type':'basic','password':'***','transport':'grpc','user':'bayselonarrend'}" ^
--req "{'query':'INSERT INTO events_stream_test FORMAT JSONEachRow','database':'default','data':{'id':'1','timestamp':'1/1/2026 10:00:00 AM','user_id':'100','event_type':'stream_test','payload':{}},'format':'JSON'}" ^
--data "[{'id':'2','timestamp':'1/1/2026 10:00:00 AM','user_id':'101','event_type':'stream_test','payload':{}},{'id':'3','timestamp':'1/1/2026 10:00:00 AM','user_id':'102','event_type':'stream_test','payload':{}},{'id':'4','timestamp':'1/1/2026 10:00:00 AM','user_id':'103','event_type':'stream_test','payload':{}},{'id':'5','timestamp':'1/1/2026 10:00:00 AM','user_id':'104','event_type':'stream_test','payload':{}}]"
Результат
{
"result": true,
"request_sending": {
"result": true
},
"data_sending": [
{
"result": true
},
{
"result": true
},
{
"result": true
},
{
"result": true
}
],
"received_message": {
"message": {
"cancelled": false,
"exception": {
"code": 0,
"display_text": "",
"name": "",
"stack_trace": ""
},
"extremes": "<Двоичные данные>",
"logs": [],
"output": "<Двоичные данные>",
"output_columns": [],
"output_format": "",
"progress": {
"read_bytes": 0,
"read_rows": 0,
"total_rows_to_read": 0,
"written_bytes": 235,
"written_rows": 5
},
"query_id": "860c1020-fc1f-426f-ac53-f79be5ce98bf",
"stats": {
"allocated_bytes": 0,
"applied_aggregation": false,
"applied_limit": false,
"blocks": 0,
"rows": 0,
"rows_before_aggregation": 0,
"rows_before_limit": 0
},
"time_zone": "Europe/Moscow",
"totals": "<Двоичные данные>"
},
"result": true
},
"stream_closing": {
"result": true
}
}