🚀 Возвращение к трудовым будням после конференций!

Вот и позади конференция "Цифровая Промышленность России" и "Глобальный Цифровой Форум 2025". Время вернуться к разработке и новым задачам!

Сегодня я завершил работу над функцией для записи всех клиентских сообщений в базу данных YDB. Использую параметризованные запросы, и, как оказалось, с ними не всё так просто, как хотелось бы.

🔍 Что я сделал:

1. Декларация структуры: Для начала нужно было продекларировать структуру, которая будет записываться в базу. Это важный шаг, который позволяет YDB понимать, какие данные мы собираемся хранить.     2. Использование REPLACE INTO: Я применил запрос REPLACE INTO, который обновляет значения в столбцах, не читая строки. Это значит, что неуказанным полям присваивается NULL, что делает его быстрее, чем INSERT.     3. Массовая вставка: Запрос позволяет массово вставлять записи в базу, что значительно упрощает работу с данными.

Вот пример SQL-запроса:

DECLARE $clientMessage AS List<Struct<

field_1: Int64,

field_2: Int64,

field_3: Timestamp,

field_4: Timestamp,

field_5: Utf8,

field_6: Utf8,

field_7: Utf8,

field_8: Json>>;

REPLACE INTO ${tableName}

SELECT

field_1,

field_2,

field_3,

field_4,

field_4,

field_5,

field_6,

field_7

FROM AS_TABLE($clientMessage)

;

4. Создание модели: Далее я создал класс (модель) клиентского сообщения, который преобразует типы JavaScript в типы, поддерживаемые базой, и формирует коллекцию в нужном формате.

Теперь остаётся только выполнить запрос!

💡 Если вам интересно, как я реализовал логику запроса и какие сложности возникли, дайте знать, и я с радостью поделюсь подробностями!

#work #YDB #SQL #Программирование #ЦИПР