insert в jdbc driver. Запрос выглядит так:
http-outgoing-2 >> "POST /?query=INSERT+INTO+objects+ЗДЕСЬ МНОГО КОЛОНОК++FORMAT+TabSeparated&database=default&user=default&compress=1 HTTP/1.1
http-outgoing-2 >> "Transfer-Encoding: chunked[\r][\n]"
http-outgoing-2 >> "Host: localhost:33128[\r][\n]"
http-outgoing-2 >> "Connection: Keep-Alive[\r][\n]"
http-outgoing-2 >> "User-Agent: Apache-HttpClient/4.5.12 (Java/14)[\r][\n]"
http-outgoing-2 >> "[\r][\n]"
http-outgoing-2 >> "2f23[\r][\n]"
http-outgoing-2 >> “ЗДЕСЬ ДАННЫЕ”
То есть в случае batch запрос разбит на 2 части, 1 часть в query param, вторая в body. В документации нашел:
Send the request as a URL ‘query’ parameter, or as a POST. Or send the beginning of the query in the ‘query’ parameter, and the rest in the POST (we’ll explain later why this is necessary). The size of the URL is limited to 16 KB, so keep this in mind when sending large queries.
У меня как раз больше из-за большого числа колонок. А как быть то в этой ситуации?
Если jdbc, то пользуйте preparedstatement :)
Обсуждают сегодня