{"id":491430,"date":"2026-08-19T10:44:25","date_gmt":"2026-08-19T10:44:25","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=491430"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2026-08-19T10:44:25","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=491430","title":{"rendered":"\u041e\u0442 struct \u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443: \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u043c RowBinary-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u043d\u0430 Python"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042f \u0430\u0432\u0442\u043e\u0440 <a href=\"https:\/\/github.com\/darkstussy\/aiochlite\" rel=\"noopener noreferrer nofollow\">aiochlite<\/a> \u2014 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 ClickHouse \u043d\u0430 <code>aiohttp<\/code>. \u041a\u043b\u0438\u0435\u043d\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>RowBinaryWithNamesAndTypes<\/code>. \u0421\u0430\u043c RowBinary-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Python \u0431\u0435\u0437 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f; \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u2014 <code>aiohttp<\/code>.<\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0447\u0438\u0442\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c. \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u043f\u043e \u0442\u0438\u043f\u0443 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0437\u0432\u0430\u043b\u0430 \u043c\u0435\u0442\u043e\u0434 <code>reader<\/code>, \u0442\u043e\u0442 \u2014 <code>struct.unpack_from<\/code>, \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u043b\u043e\u0441\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \u041d\u0430 200 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u0441 \u0434\u0435\u0441\u044f\u0442\u044c\u044e \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u044d\u0442\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0435. Payload \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u043b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 \u043d\u0438 \u0441\u0435\u0442\u044c, \u043d\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u043a \u0434\u0435\u043b\u0443 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u043b\u0438\u0441\u044c.<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u2014 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043d\u0430 Cython, C \u0438\u043b\u0438 Rust. \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0438 \u043f\u0440\u0430\u0432\u0434\u0430 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0432 \u043e\u0434\u0438\u043d \u0444\u043e\u0440\u043c\u0430\u0442 <code>struct<\/code> \u2014 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 \u043e\u0434\u043d\u0438\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430 \u0434\u0435\u0441\u044f\u0442\u0438\u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435. \u0410 \u043d\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0439, \u0433\u0434\u0435 \u0447\u0438\u0441\u043b\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0436\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e\u0433\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u043e\u0432\u0441\u0435. \u042d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430 \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0446\u0438\u043a\u043b \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043b \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0421\u043c\u0435\u0448\u0430\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 1.7 \u0440\u0430\u0437\u0430, \u0441\u0445\u0435\u043c\u0430 \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u2014 \u0432 8.3. \u0422\u043e\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0431\u0443\u0434\u0443\u0442 \u043d\u0438\u0436\u0435.<\/p>\n<p>\u0412 CPython \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0430 C, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u00abPython \u0438\u043b\u0438 C\u00bb, \u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a\u043e\u0434 \u0445\u043e\u0434\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434. \u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0441\u0442. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b, <code>struct<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0451 \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Python-\u0432\u044b\u0437\u043e\u0432 <code>unpack_from<\/code>. \u0415\u0441\u043b\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0435\u0441\u0442\u044c <code>String<\/code> \u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043e\u0442\u0434\u0430\u0442\u044c \u0432\u0441\u0451 \u0440\u0430\u0437\u043e\u043c \u043d\u0435\u0447\u0435\u0433\u043e, \u0438 \u0442\u0430\u043c \u0443\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0435 \u2014 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e \u0442\u0438\u043f\u0430\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0446\u0438\u043a\u043b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435. Python \u0431\u044b\u0441\u0442\u0440\u0435\u0435 C \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0441\u0442\u0430\u043b: \u0432 \u043d\u0451\u043c \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0430 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u0430\u043a \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0437\u0430\u043c\u0435\u0440\u0430 \u0438 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043f\u0440\u0438\u0451\u043c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<h3>\u0427\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 pure Python<\/h3>\n<p>\u041f\u043e\u0434 pure Python \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a <code>.py<\/code>-\u0444\u0430\u0439\u043b\u044b \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u043e\u043c: \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"https:\/\/docs.python.org\/3\/library\/struct.html\" rel=\"noopener noreferrer nofollow\"><code>struct<\/code><\/a> \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 CPython \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u0418 \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435: \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0441\u0430\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 <code>compile()<\/code>. \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0432\u0441\u0451 \u0442\u043e\u0442 \u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440.<\/p>\n<p>Cython \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043d\u0430\u0447\u0435: \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Python-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 C \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u041a \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043d\u0438\u043c \u044f \u0432\u0435\u0440\u043d\u0443\u0441\u044c \u0432 \u043a\u043e\u043d\u0446\u0435, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 Python.<\/p>\n<h3>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d RowBinaryWithNamesAndTypes<\/h3>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c ClickHouse <a href=\"https:\/\/clickhouse.com\/docs\/interfaces\/formats\/RowBinaryWithNamesAndTypes\" rel=\"noopener noreferrer nofollow\"><code>RowBinaryWithNamesAndTypes<\/code><\/a>. \u041f\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0438\u043f\u043e\u0432 \u0435\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>VarUInt              \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043b\u043e\u043d\u043e\u043a NString \u00d7 N           \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043aString \u00d7 N           \u0442\u0438\u043f\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043arow \u00d7 M              \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>String<\/code> \u0437\u0434\u0435\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 \u0432 \u0432\u0438\u0434\u0435 <code>VarUInt<\/code>, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0434\u0443\u0442 \u0431\u0430\u0439\u0442\u044b \u0441\u0442\u0440\u043e\u043a\u0438. \u0422\u0438\u043f\u044b \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0432 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0434\u0443\u0442 \u043f\u043e\u0434\u0440\u044f\u0434. \u0427\u0438\u0441\u043b\u0430 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 little-endian. \u0423 <code>String<\/code>, <code>Array<\/code>, <code>Map<\/code> \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 payload. \u0423 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430 \u0441 \u043e\u0431\u0449\u0435\u0439 \u0434\u043b\u0438\u043d\u043e\u0439, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435\u0442.<\/p>\n<p>\u041e\u0434\u043d\u0430 \u0434\u0435\u0442\u0430\u043b\u044c \u043f\u0440\u043e <code>String<\/code>: \u0432 ClickHouse \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0439\u0442\u043e\u0432, \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 UTF-8 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0414\u0435\u043a\u043e\u0434\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u0437\u043e\u0432\u0451\u0442 <code>.decode(\"utf-8\")<\/code>, \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0443\u043f\u0430\u0434\u0451\u0442. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <code>str<\/code>, \u0430 \u043d\u0435 <code>bytes<\/code> \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435: \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u0430\u043a\u0438\u043c \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u0442\u0438\u043f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u041d\u0430\u0438\u0432\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440<\/h3>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435:<\/p>\n<pre><code class=\"python\">readers = [_reader_for_type(ch_type) for ch_type in column_types] while not reader.eof:    yield [read(reader) for read in readers]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0430\u043c\u0430 \u0438\u0434\u0435\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f: \u0442\u0438\u043f\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u043d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043d\u0438\u0436\u0435. \u0427\u0442\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e <code>UInt64<\/code> \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">def read_uint64(self) -&gt; int:    value = struct.unpack_from(\"&lt;Q\", self._data, self._pos)[0]    self._pos += 8    return value<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c:<\/p>\n<ol>\n<li>\n<p>\u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Python, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0442\u0438\u043f\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 <code>reader<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 <code>struct.unpack_from<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u0442\u0435\u0436\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u0412 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u044d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437. \u041d\u0430 \u0441\u0442\u0430 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u2014 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0440\u0430\u0437. \u041f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 Python \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438.<\/p>\n<\/li>\n<\/ol>\n<h3>\u041e\u0434\u0438\u043d \u0444\u043e\u0440\u043c\u0430\u0442 struct \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0439<\/h3>\n<p><code>struct<\/code> \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c <code>UInt64<\/code>, <code>UInt32<\/code>, <code>Float64<\/code> \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c <code>&lt;QId<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f Python:<\/p>\n<pre><code class=\"python\">import struct  ROW = struct.Struct(\"&lt;QId\")  def decode_row(data: bytes, offset: int = 0) -&gt; tuple[int, int, float]:    first, second, third = ROW.unpack_from(data, offset)    return first, second, third  payload = ROW.pack(42, 1_700_000_000, 3.5)assert decode_row(payload) == (42, 1_700_000_000, 3.5)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0435\u0444\u0438\u043a\u0441 <code>&lt;<\/code> \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d. \u041e\u043d \u0437\u0430\u0434\u0430\u0451\u0442 little-endian \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0431\u0435\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e <code>struct<\/code> \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0433\u0434\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0438 ABI: \u043d\u0430 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 64-\u0431\u0438\u0442\u043d\u043e\u0439 Linux-\u043c\u0430\u0448\u0438\u043d\u0435 <code>QId<\/code> \u0437\u0430\u0439\u043c\u0451\u0442 24 \u0431\u0430\u0439\u0442\u0430 \u0432\u043c\u0435\u0441\u0442\u043e 20. \u0422\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 RowBinary: \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 <code>unpack_from<\/code> \u0443\u043f\u0430\u0434\u0451\u0442, \u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u043e\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b Python \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0442\u0435\u0436. \u041d\u043e \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 <code>unpack_from<\/code> \u0438 \u043e\u0434\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0442\u0435\u0436 \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435.<\/p>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0437\u0434\u0435\u0441\u044c \u043d\u0438 \u043f\u0440\u0438 \u0447\u0451\u043c: \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>struct<\/code> \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u0430 \u043e\u0431\u044a\u0435\u043a\u0442 <code>Struct<\/code> \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e <code>\"&lt;Q\"<\/code> \u0438 \u0431\u0435\u0437 \u0442\u043e\u0433\u043e \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0431\u044b \u0437\u0430\u043d\u043e\u0432\u043e. \u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u2014 \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u043a\u043e\u0440\u0442\u0435\u0436\u0435\u0439, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0434\u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432 \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437 \u043c\u0435\u043d\u044c\u0448\u0435, \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442.<\/p>\n<h3>\u041f\u043b\u0430\u043d \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435<\/h3>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u044f, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">ClickHouse<\/p>\n<\/th>\n<th>\n<p align=\"left\"><code>struct<\/code><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt8<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>B<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>Int16<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>h<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>I<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt64<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Q<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>Float32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>f<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>Float64<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>d<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0438\u043f\u044b \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>DateTime<\/code> \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a <code>UInt32<\/code>, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 <code>datetime<\/code>. <code>DateTime64<\/code> \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 64-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0442\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438. <code>Decimal32<\/code> \u0438 <code>Decimal64<\/code> \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>\u041d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0432 <code>struct<\/code> \u0435\u0441\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0423 <code>Decimal128<\/code>, <code>Decimal256<\/code>, <code>UUID<\/code>, <code>IPv6<\/code> \u0438 <code>FixedString<\/code> \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0435\u0442. \u041d\u043e \u0448\u0438\u0440\u0438\u043d\u0430 \u0443 \u043d\u0438\u0445 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u0438\u0434\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0434 \u0432\u0438\u0434\u0430 <code>16s<\/code> \u2014 <code>struct<\/code> \u043e\u0442\u0434\u0430\u0451\u0442 \u0441\u044b\u0440\u044b\u0435 \u0431\u0430\u0439\u0442\u044b, \u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0443\u0436\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0414\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430, \u0430 \u043d\u0435 \u0442\u043e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u0438 <code>struct<\/code> \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043b\u0430\u043d\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u043a\u043e\u0434 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f <code>struct<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0443\u0436\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0423\u0441\u043b\u043e\u0432\u043d\u043e \u0441\u0445\u0435\u043c\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code>UInt64, DateTime('UTC'), Float64<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432<\/p>\n<pre><code>format:     &lt;QIdconverters: [(1, unix_timestamp_to_datetime)]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 <code>Struct.unpack_from<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c <code>1<\/code>.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u043d \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0432\u0440\u043e\u0434\u0435 <code>Array(Decimal(10, 2))<\/code> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b<\/h3>\n<p>\u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u2014 \u0441\u0442\u0440\u043e\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0448\u0438\u0440\u0438\u043d\u0443. \u0422\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 <code>Struct<\/code> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0435\u0451 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0410 \u0432\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u2014 \u044d\u0442\u043e \u0442\u043e\u0442 \u0436\u0435 \u0444\u043e\u0440\u043c\u0430\u0442, \u043f\u043e\u0432\u0442\u043e\u0440\u0451\u043d\u043d\u044b\u0439 M \u0440\u0430\u0437. \u0414\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0443 <code>Struct<\/code> \u0435\u0441\u0442\u044c <code>iter_unpack<\/code>:<\/p>\n<pre><code class=\"python\">unpacked = unpacker.iter_unpack(memoryview(data)[start:])<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>iter_unpack<\/code> \u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 C-\u043a\u043e\u0434\u0430. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e <code>unpack_from<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442, \u0445\u043e\u0442\u044f \u043a\u043e\u0440\u0442\u0435\u0436\u0438 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b Python \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e. \u042f\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043d\u0430 Python \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u044b \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b:<\/p>\n<pre><code class=\"python\">for values in unpacked:    row = list(values)    for idx, convert in conv_slots:        row[idx] = convert(row[idx])    append(row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u043b\u0435\u0436\u0430\u0442 \u0432 <code>conv_slots<\/code> \u043f\u0430\u0440\u0430\u043c\u0438 \u00ab\u0438\u043d\u0434\u0435\u043a\u0441 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00bb, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0440\u043e\u0433\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0442\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e. \u0415\u0441\u043b\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u043d\u0435\u0442 \u0432\u043e\u0432\u0441\u0435, \u043a\u0430\u043a \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, <code>fetch_rows()<\/code> \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0434\u043d\u0438\u043c <code>list(unpacked)<\/code> \u0431\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u043e \u043f\u043e\u043b\u044f\u043c.<\/p>\n<h3>\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b: \u0446\u0438\u043a\u043b, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443<\/h3>\n<p>\u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0445\u0435\u043c\u0430\u0445 \u043f\u043e\u043b\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0447\u0435\u0440\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u0441\u043e <code>String<\/code>, <code>Array<\/code>, <code>Nullable<\/code> \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b. \u0423 <code>Nullable<\/code> \u043f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u043b\u0430\u0433 null, \u0430 \u0441\u0430\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b. \u041e\u0434\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f:<\/p>\n<pre><code>[UInt64] [String] [DateTime, Float64, Int32]                  \u2514\u2500\u2500\u2500\u2500 \u043e\u0434\u0438\u043d Struct \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0439: \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0443 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u2014 \u0441\u0432\u043e\u044f, \u043d\u0430 <code>String<\/code> \u2014 \u0441\u0432\u043e\u044f. \u0422\u0430\u043a \u0438 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430, \u0438 \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u0432\u044b\u043b\u0435\u0437\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f Python, \u0438 \u0435\u0451 \u0432\u044b\u0437\u043e\u0432 \u043d\u0430\u0434\u043e \u0447\u0435\u043c-\u0442\u043e \u043e\u043f\u043b\u0430\u0442\u0438\u0442\u044c; \u0433\u0440\u0443\u043f\u043f\u0430 \u0438\u0437 \u0434\u0432\u0443\u0445-\u0442\u0440\u0451\u0445 \u043f\u043e\u043b\u0435\u0439 \u043d\u0435 \u043e\u043a\u0443\u043f\u0430\u043b\u0430 \u0441\u0435\u0431\u044f. \u0410 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u0432\u0430\u043b\u0430\u0441\u044c: \u0446\u0438\u043a\u043b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0448\u0451\u043b \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0437\u0432\u0430\u043b \u0438\u0445 \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438.<\/p>\n<p>\u041d\u043e \u0441\u0445\u0435\u043c\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u2014 \u043e\u043d\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430. \u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0446\u0438\u043a\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u044d\u0442\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e:<\/p>\n<pre><code class=\"python\">code = compile(source, f\"&lt;rowbinary:{','.join(types)}&gt;\", \"exec\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c <code>exec<\/code>. \u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0438\u043f\u0430, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0430\u044f \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u043d\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u041f\u043e \u043d\u0435\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440. \u0412 \u0441\u0430\u043c \u043a\u043e\u0434 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043a\u043e\u0434\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 <code>struct<\/code>, \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u043e\u0434\u0435 \u0434\u043b\u0438\u043d\u044b <code>FixedString<\/code> \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<p>\u042f \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b: \u0432 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0443 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u0434\u043b\u044f \u0441\u0445\u0435\u043c\u044b <code>Decimal128(2), FixedString(8), Enum8('x\\' = 1), DateTime64(3, 'Europe\/Moscow'), String<\/code> \u043d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u0430 \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b: <code>v0<\/code>, <code>_s0<\/code>, <code>_c1<\/code>. \u0422\u0435\u043a\u0441\u0442 \u0442\u0438\u043f\u043e\u0432 \u0432\u0438\u0434\u0435\u043d \u043b\u0438\u0448\u044c \u0432 \u0438\u043c\u0435\u043d\u0438 \u00ab\u0444\u0430\u0439\u043b\u0430\u00bb, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 <code>compile()<\/code> \u0440\u0430\u0434\u0438 \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0445 \u0442\u0440\u0435\u0439\u0441\u0431\u0435\u043a\u043e\u0432 \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0422\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u0446\u0438\u043a\u043b \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f, \u0438 \u0432 \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0434\u0430 \u0438\u0437 \u043d\u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f. \u0410 \u0442\u0438\u043f, \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0438 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c <code>exec<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u044d\u0442\u043e\u0442 <code>code object<\/code> \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d, \u043a\u0443\u0434\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u044b <code>Struct<\/code>, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u043d\u0438\u043c \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u2014 <code>_s0<\/code>, <code>_varint<\/code>, <code>_c2<\/code>. \u0412\u043e\u0442 \u0432\u044b\u0432\u043e\u0434 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0441\u0445\u0435\u043c\u044b <code>UInt64, String, DateTime('UTC'), Float64, Int32<\/code>, \u043a\u0430\u043a \u0435\u0441\u0442\u044c:<\/p>\n<pre><code class=\"python\">def _decode(data, pos, end):    rows = []    append = rows.append    while pos &lt; end:        p = pos        _e = p + 8        if _e &gt; end: break        v0, = _s0(data, p)        p = _e        if p &gt;= end: break        _l = data[p]        p += 1        if _l &gt; 0x7F:            _l, p = _varint(data, p - 1, end)            if _l &lt; 0: break        _e = p + _l        if _e &gt; end: break        v1 = data[p:_e].decode()        p = _e        _e = p + 16        if _e &gt; end: break        v2, v3, v4 = _s2(data, p)        p = _e        v2 = _c2(v2)        append([v0, v1, v2, v3, v4])        pos = p    return rows, pos<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e \u0442\u0438\u043f\u0430\u043c \u0437\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u043d\u0435\u0442 \u2014 \u0442\u0438\u043f\u044b \u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438. \u0413\u0440\u0443\u043f\u043f\u0430 \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>_s2<\/code>, \u043d\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443 \u043d\u0435\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442: \u043e\u043d\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0435\u043b\u043e \u0446\u0438\u043a\u043b\u0430, \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0442\u0430\u043b\u0430 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430. \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a <code>v2<\/code> \u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u0414\u043b\u0438\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u043c \u043f\u0443\u0442\u0451\u043c, \u0430 \u043d\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 LEB128 \u043a\u043e\u0434 \u0443\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0431\u0438\u0442 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0433\u0440\u0430\u043d\u0438\u0446 (<code>if _e &gt; end: break<\/code>) \u0442\u043e\u0436\u0435 \u0441\u0442\u0430\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435: \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u043d\u0430 \u0432\u0441\u044e \u0433\u0440\u0443\u043f\u043f\u0443.<\/p>\n<p>\u041a\u043e\u043b\u043e\u043d\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442: \u043e\u043d\u0430 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0446\u0438\u043a\u043b\u0430, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u0442\u0443\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0433\u043b\u0443\u0431\u0436\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439: \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0440\u0430\u0437\u0434\u0443\u0432\u0430\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u0434, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u043e\u043a\u0443\u043f\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h3>\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0434\u0430\u0451\u0442<\/h3>\n<p>\u041f\u0440\u0438\u0451\u043c \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u0440\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u0438\u043d\u0430\u0447\u0435 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0441\u0435\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0451\u0440\u0442\u043e\u043a \u043d\u0430\u0434 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438. Payload \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e \u0434\u0432\u0430 \u043f\u0443\u0442\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u2014 \u0447\u0442\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u2014 \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u044e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430.<\/p>\n<p>\u0420\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0432\u044b\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0437\u0430\u043c\u0435\u0440\u043e\u0432, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0443\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0438\u044f\u043c\u0438, \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c, <code>gc<\/code> \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d. \u041e\u0431\u0430 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u043e \u0441\u0431\u0440\u043e\u0441\u043e\u043c \u043a\u044d\u0448\u0435\u0439 \u043c\u043e\u0434\u0443\u043b\u044f: \u0438\u043d\u0430\u0447\u0435 \u043a\u044d\u0448 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0442\u0451\u043f\u043b\u044b\u043c \u0441 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0438 \u0437\u0430\u043c\u0435\u0440 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0431\u044b\u043b\u0438 \u0431\u044b \u043f\u0440\u043e\u043c\u0430\u0445\u0438. \u041d\u0438\u0436\u0435 \u2014 \u043c\u0435\u0434\u0438\u0430\u043d\u044b \u043f\u043e \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0441\u0435\u0440\u0438\u044f\u043c \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0433\u0440\u0435\u0432\u043e\u0447\u043d\u044b\u0445.<\/p>\n<p>\u0427\u0442\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <strong>\u043d\u0435<\/strong> \u0432\u0445\u043e\u0434\u0438\u0442: \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430. \u041e\u0431\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0434\u043e \u0441\u0442\u0430\u0440\u0442\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0445\u0435\u043c\u044b, \u043d\u0438 <code>compile()<\/code>, \u043d\u0438 <code>exec<\/code> \u0432 \u0446\u0438\u0444\u0440\u044b \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u0438 \u2014 \u0437\u0434\u0435\u0441\u044c \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u043f\u043e \u0433\u043e\u0442\u043e\u0432\u043e\u043c\u0443 payload. \u042d\u0442\u043e \u0438 \u043d\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 aiochlite, \u0438 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446.<\/p>\n<p>\u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435: AMD Ryzen 7 9800X3D, Linux 6.6 (WSL2), CPython 3.14.5, ClickHouse 26.3.17.110, aiochlite 1.7.0, \u043a\u043e\u043c\u043c\u0438\u0442 <code>31e76b0<\/code>, <code>BENCH_ROUNDS=11<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 7). \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u0440\u0443\u0433\u0438\u043c\u0438.<\/p>\n<p>\u0422\u0440\u0438 \u0441\u0445\u0435\u043c\u044b \u043f\u043e 200 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u0445\u0435\u043c\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt64, UInt32, Float64, Int16, DateTime('UTC')<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">199.18 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">108.28 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.84x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt64, String, DateTime('UTC'), Float64, Int32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">231.60 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">133.23 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.74x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt64<\/code> \u00d75 \u0438 <code>Float64<\/code> \u00d75<\/p>\n<\/td>\n<td>\n<p align=\"left\">228.74 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">27.67 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.27x<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0441\u0442\u043e\u0438\u0442 <code>String<\/code>, \u0442\u0440\u0435\u0442\u044c\u044f \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u0438 \u0431\u0435\u0437 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u0430.<\/p>\n<p>\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f. \u042d\u0442\u043e \u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u0441\u0445\u0435\u043c\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0435 \u0434\u0430\u0432\u0430\u043b \u043d\u0438\u0447\u0435\u0433\u043e: \u0441\u0435\u0440\u0438\u0438 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e: \u0432 \u043e\u0434\u043d\u0438\u0445 \u043f\u0440\u043e\u0433\u043e\u043d\u0430\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u044b\u043b \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435 1.00x, \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u2014 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435. \u0417\u043d\u0430\u0447\u0438\u0442, \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0431\u044b\u043b\u0430 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u0438 \u0443\u0431\u0440\u0430\u043b \u0435\u0451 \u0443\u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440.<\/p>\n<p>\u0422\u0440\u0438 \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0442\u0440\u0451\u0445 \u0441\u0445\u0435\u043c\u0430\u0445 \u0435\u0449\u0451 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0448\u0438\u0440\u0438\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0438 \u044f \u043f\u043e\u043c\u0435\u0440\u0438\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u043f\u0440\u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0440\u0430\u0432\u043d\u044b\u0445: N \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a <code>UInt64<\/code>. \u0417\u0434\u0435\u0441\u044c \u044f \u043e\u0441\u0442\u0430\u0432\u0438\u043b 100 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a: \u043f\u0440\u043e\u0433\u043e\u043d \u0434\u0435\u0432\u044f\u0442\u0438 \u0441\u0445\u0435\u043c \u043f\u043e \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u0439 \u043d\u0430 200 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u0438\u043c. \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u044b: \u0442\u0430\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0431\u044a\u0451\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0434\u0438 \u0444\u043e\u0440\u043c\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0447\u0438\u0441\u043b\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u043e\u043b\u043e\u043d\u043e\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">24.74 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.74 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">34.62 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.12 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.40x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">42.05 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.46 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.43x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">52.30 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.23 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.00x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">62.61 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.56 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.26x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">72.22 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.38 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.33x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">81.07 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.91 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.73x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">93.18 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.84 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.89x<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">104.17 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.84 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.79x<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0438\u0434\u043d\u043e \u0438 \u0442\u043e, \u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u043d\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0427\u0442\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u0440\u0430\u0441\u0442\u0451\u0442 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10 \u043c\u0441 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443. \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0443\u0442\u044c \u0440\u0430\u0441\u0442\u0451\u0442 \u0442\u043e\u0436\u0435, \u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 0.6 \u043c\u0441: <code>iter_unpack<\/code> \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443 Python \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435, \u0438 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u0442\u044c\u0441\u044f.<\/p>\n<p>\u041e\u0442\u0441\u044e\u0434\u0430 \u0436\u0435 \u0432\u0438\u0434\u043d\u043e, \u043e\u0442\u043a\u0443\u0434\u0430 \u0440\u0430\u0437\u0440\u044b\u0432 \u043c\u0435\u0436\u0434\u0443 1.84x \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438 10.00x \u0437\u0434\u0435\u0441\u044c: \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0435\u0441\u0442\u044c <code>DateTime<\/code>, \u0435\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043f\u0443\u0442\u044f\u0445 \u0438 \u0440\u0430\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448. \u041f\u043e \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u0447\u0438\u0441\u043b\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0433\u0434\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u043d\u0435\u0442, \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 8.27x. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u043c \u0432\u043a\u043b\u0430\u0434 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u044f \u043d\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u043b.<\/p>\n<p>\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0430\u0441\u0442\u0451\u0442 \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043f\u043b\u0430\u0442\u043e. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 \u0441\u0442\u043e\u0438\u0442, \u043e\u043d\u0438 \u0448\u0443\u043c\u044f\u0442 \u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043a \u043f\u0440\u043e\u0433\u043e\u043d\u0443; \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430. \u041b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043e\u0442 \u0447\u0438\u0441\u043b\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0432\u0438\u0434\u043d\u043e, \u0438 \u044d\u0442\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c: \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u0440\u0430\u0441\u043a\u0438\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f, <code>struct<\/code> \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043a\u043e\u0440\u0442\u0435\u0436\u0438. \u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u044f \u043d\u0435 \u043c\u0435\u0440\u0438\u043b, \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043a\u0440\u0438\u0432\u043e\u0439, \u0430 \u043d\u0435 \u0435\u0451 \u0440\u0430\u0437\u0431\u043e\u0440.<\/p>\n<p>\u041d\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0445 \u0441\u0445\u0435\u043c\u0430\u0445 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0436\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u043e\u0439 \u0434\u0435\u043b\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0417\u0430\u043c\u0435\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043f\u043e\u043b\u044f\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u2014 \u0442\u0430\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u0438\u043d\u0430, \u0441\u0440\u0435\u0437 \u0438 <code>decode<\/code>, \u0438 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u0442\u044c \u0442\u0443\u0442 \u043d\u0435\u0447\u0435\u0433\u043e.<\/p>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043c\u0435\u0440\u0430 \u2014 <a href=\"https:\/\/github.com\/darkstussy\/aiochlite\/blob\/main\/benchmarks\/decode_paths.py\" rel=\"noopener noreferrer nofollow\"><code>benchmarks\/decode_paths.py<\/code><\/a>; \u043e\u043d \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0430 \u043f\u0443\u0442\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c payload \u0438 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043f\u043e \u0441\u0435\u0440\u0438\u044f\u043c. \u0421\u0441\u044b\u043b\u043a\u0430 \u0432\u0435\u0434\u0451\u0442 \u043d\u0430 <code>main<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u043b\u0438\u0437\u0430 1.7.0. \u0418\u0437\u043c\u0435\u0440\u044f\u0435\u043c\u044b\u0439 \u0438\u043c \u043a\u043e\u0434 \u2014 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442, \u0447\u0442\u043e \u0432 \u0442\u0435\u0433\u0435.<\/p>\n<h4>\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u0441\u0430\u043c\u0430 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0420\u0430\u0437 \u043e\u043d\u0430 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u0435\u0451 \u043d\u0430\u0434\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e: \u0438\u043d\u0430\u0447\u0435 \u0432\u0438\u0434\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435, \u043d\u043e \u043d\u0435 \u0446\u0435\u043d\u0443 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430. \u041c\u0435\u0434\u0438\u0430\u043d\u0430 \u043f\u043e \u0441\u043e\u0442\u043d\u044f\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u0445\u0435\u043c\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0445\u043e\u043b\u043e\u0434\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0441\u0445\u0435\u043c\u0430 \u0443\u0436\u0435 \u0432 \u043a\u044d\u0448\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt64, String, DateTime('UTC'), Float64, Int32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">75.5 \u043c\u043a\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.01 \u043c\u043a\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>UInt64, Array(Array(UInt8)), Map(String, Array(UInt8))<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">231.7 \u043c\u043a\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">0.43 \u043c\u043a\u0441<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0441\u0445\u0435\u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0445\u0435\u043c\u044b \u0438 \u0432\u044b\u0431\u043e\u0440 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>compile()<\/code>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u044d\u0442\u0438\u0445 \u0448\u0430\u0433\u043e\u0432 \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 256 \u0441\u0445\u0435\u043c. \u0414\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f:<\/p>\n<\/li>\n<li>\n<p><code>exec<\/code> \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e code object, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0436\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0431\u043e\u0440\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432. \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0443 \u043d\u0438\u0445 \u0441\u0432\u043e\u0451 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441: \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043c\u043d\u0438\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043a\u043e\u0434\u043e\u043c \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u044c \u0436\u0438\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u0412\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0432 \u0442\u0451\u043f\u043b\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443: \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u0432 \u043d\u0435\u0439 \u043d\u0435\u0442, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0434\u0438\u043d <code>exec<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043e\u043a\u0443\u043f\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u0434\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u0443\u0442\u0438. \u041d\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u0443\u0442\u044f\u043c\u0438 \u2014 98.37 \u043c\u0441 \u043d\u0430 200 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043a\u043e\u043b\u043e 0.49 \u043c\u043a\u0441 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443. \u0425\u043e\u043b\u043e\u0434\u043d\u044b\u0435 75.5 \u043c\u043a\u0441 \u043e\u043a\u0443\u043f\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 150 \u0441\u0442\u0440\u043e\u043a\u0430\u0445. \u041e\u0446\u0435\u043d\u043a\u0430 \u0433\u0440\u0443\u0431\u0430\u044f: \u0443 \u043f\u0443\u0442\u0438 \u0441 \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430, \u0438 \u0432 75.5 \u043c\u043a\u0441 \u043e\u043d\u0430 \u043d\u0435 \u0443\u0447\u0442\u0435\u043d\u0430. \u041d\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u043d\u044f\u0442\u0435\u043d \u2014 \u043d\u0430 \u0432\u044b\u0434\u0430\u0447\u0435 \u0432 \u0441\u043e\u0442\u043d\u044e \u0441\u0442\u0440\u043e\u043a \u0441 \u043d\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u0445\u0435\u043c\u043e\u0439 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u044a\u0435\u0434\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c \u0441\u0432\u043e\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u043d\u0430 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0443\u0436\u0435 \u043d\u0435\u0442. \u0421\u0445\u0435\u043c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e, \u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0433\u0440\u0435\u0432\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441.<\/p>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 Cython \u0438\u043b\u0438 C-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435<\/h3>\n<p>\u0412\u0441\u0451 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0448\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b, \u043d\u043e \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043b\u0438 \u043a\u043e\u0440\u0442\u0435\u0436;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c Python;<\/p>\n<\/li>\n<li>\n<p><code>datetime<\/code>, <code>Decimal<\/code>, <code>UUID<\/code> \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0438\u043f\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u0446\u0438\u043a\u043b \u0432\u043d\u0443\u0442\u0440\u0438 C, Cython \u0438\u043b\u0438 Rust: \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a \u0438\u043b\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0410 \u0435\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 \u0432\u0440\u043e\u0434\u0435 NumPy \u0438\u043b\u0438 Arrow, \u043e\u0431\u044a\u0435\u043a\u0442 Python \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443 \u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e C-, Cython- \u0438\u043b\u0438 Rust-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 Cython \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442. \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0437\u043e\u0432\u0443\u0442 \u0438\u0437 Python \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435 \u0438 \u043e\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b Python, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044f \u0442\u0443 \u0436\u0435 \u043c\u0435\u043b\u043a\u0443\u044e \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e, \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0442\u043e\u043b\u043a\u043e\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0420\u0435\u0448\u0430\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u044f\u0437\u044b\u043a, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b:<\/p>\n<pre><code>\u041f\u043b\u043e\u0445\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442\u0441\u044f:Python loop \u2192 compiled function \u2192 Python objectPython loop \u2192 compiled function \u2192 Python objectPython loop \u2192 compiled function \u2192 Python object \u041b\u0443\u0447\u0448\u0435:Python \u2192 compiled function, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u043e\u043b\u0435\u0439 \u2192 Python tuple \u0415\u0449\u0451 \u043b\u0443\u0447\u0448\u0435 \u0434\u043b\u044f bulk workloads:Python \u2192 compiled function, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0431\u043b\u043e\u043a \u0438\u043b\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u2192 contiguous buffer<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e event loop. \u0421\u0430\u043c\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435: \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043d\u0435\u0442 <code>await<\/code>, \u0438 \u043f\u043e\u043a\u0430 \u043e\u043d \u0438\u0434\u0451\u0442, \u0446\u0438\u043a\u043b \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442. \u0412 <code>stream()<\/code> \u0431\u043b\u043e\u043a\u043e\u0432 \u043c\u043d\u043e\u0433\u043e, \u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0436\u0434\u0451\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0443\u0441\u043e\u043a \u043e\u0442\u0432\u0435\u0442\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043c \u0435\u0441\u0442\u044c. \u0410 \u0432\u043e\u0442 <code>fetch()<\/code> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043e\u0442\u0432\u0435\u0442 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0433\u043e \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u043c, \u0438 \u0432\u043e\u0442 \u043e\u043d \u0434\u0435\u0440\u0436\u0438\u0442 \u0446\u0438\u043a\u043b \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u043e \u043a\u043e\u043d\u0446\u0430.<\/p>\n<p>\u041d\u0438 \u0441\u043a\u043b\u0435\u0439\u043a\u0430, \u043d\u0438 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u0438 \u043d\u0435 \u0443\u0431\u0438\u0440\u0430\u044e\u0442 \u2014 \u043e\u043d\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438. \u0415\u0441\u043b\u0438 \u0432\u0430\u0436\u043d\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0437\u0430\u0434\u0430\u0447, \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 <code>stream()<\/code> \u0438\u043b\u0438 \u044f\u0432\u043d\u0430\u044f \u043e\u0442\u0434\u0430\u0447\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0440\u0446\u0438\u044f\u043c\u0438, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h3>\u0415\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439 \u0432\u043e\u043a\u0440\u0443\u0433 \u0433\u043e\u0440\u044f\u0447\u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430<\/h3>\n<p>\u041a\u0440\u0443\u043f\u043d\u043e\u0435 \u0443\u0431\u0440\u0430\u043b, \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u0448\u043b\u0430 \u043c\u0435\u043b\u043e\u0447\u044c: \u0441\u0440\u0435\u0437\u044b \u0431\u0443\u0444\u0435\u0440\u0430, \u043b\u0438\u0448\u043d\u0438\u0439 \u0432\u044b\u0437\u043e\u0432 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <code>datetime<\/code> \u0438\u0437 \u0446\u0435\u043b\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430.<\/p>\n<h4>bytes \u0438 memoryview \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h4>\n<p><code>memoryview<\/code> \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <code>bytes<\/code> \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0431\u0443\u0444\u0435\u0440\u0430, \u0438 <code>unpack_from(data, offset)<\/code> \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u0437 \u043d\u0435\u0433\u043e \u0431\u0435\u0437 \u0441\u0440\u0435\u0437\u0430 \u0438 \u0431\u0435\u0437 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0448\u0443\u043c\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\"><code>bytes<\/code> \u043f\u0440\u043e\u0442\u0438\u0432 <code>memoryview<\/code><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>Struct.unpack_from(buf, offset)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0448\u0443\u043c\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0441\u0440\u0435\u0437 + <code>.decode()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 <code>.tobytes()<\/code> \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 1.6 \u0440\u0430\u0437\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043c\u0430\u043b\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b: \u043e\u043d\u0438 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u0438 \u0434\u0430\u0436\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435. \u0413\u043e\u0440\u0430\u0437\u0434\u043e \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0435\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435; \u043f\u043e\u043c\u0435\u0440\u0438\u0442\u044c \u0443 \u0441\u0435\u0431\u044f \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">.venv\/bin\/python -m timeit -s 'import struct; S=struct.Struct(\"&lt;QId\"); b=S.pack(42,1,3.5)*50; mv=memoryview(b)' 'S.unpack_from(b, 20)'.venv\/bin\/python -m timeit -s 'import struct; S=struct.Struct(\"&lt;QId\"); b=S.pack(42,1,3.5)*50; mv=memoryview(b)' 'S.unpack_from(mv, 20)'.venv\/bin\/python -m timeit -s 'b=b\"hello world\"*3; mv=memoryview(b)' 'b[2:20].decode()'.venv\/bin\/python -m timeit -s 'b=b\"hello world\"*3; mv=memoryview(b)' 'mv[2:20].tobytes().decode()'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>memoryview<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438 \u0432\u0437\u044f\u0442\u0438\u0438 \u0441\u0440\u0435\u0437\u0430 \u2014 \u043d\u0430 \u044d\u0442\u043e\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f <code>int.from_bytes<\/code> \u0434\u043b\u044f 128-\u0431\u0438\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, UUID \u0438 <code>FixedString<\/code>. \u041d\u043e \u00ab\u043d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u00bb \u0438 \u00ab\u0431\u044b\u0441\u0442\u0440\u0435\u0435\u00bb \u2014 \u043d\u0435 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435: \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0440\u0435\u0437\u0430 \u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u0440\u0435\u0437\u043e\u043c \u0434\u0430\u043b\u044c\u0448\u0435. \u041d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u0438 \u043a\u043e\u043f\u0438\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e <code>bytes<\/code> \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0434\u0435\u0448\u0435\u0432\u043b\u0435.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 <code>reader<\/code> \u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0432\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0434\u0438\u043d payload:<\/p>\n<pre><code class=\"python\">self._raw = dataself._data = memoryview(data)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0430\u043c payload \u043d\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, <code>memoryview<\/code> \u043b\u0438\u0448\u044c \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0431\u0443\u0444\u0435\u0440. \u0417\u0430\u0432\u0435\u0434\u0451\u043d \u043e\u043d \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u2014 128-\u0431\u0438\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, UUID \u0438 <code>FixedString<\/code>; \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0441\u0440\u0435\u0437\u0430\u0445 \u043e\u043d \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043f\u0438\u0438 <code>bytes<\/code>.<\/p>\n<h4>\u041a\u043e\u0433\u0434\u0430 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u043e\u0431\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/h4>\n<p>\u041e\u0431\u0449\u0430\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0437\u043e\u0432 Python \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0438 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u043e\u0438\u0442\u044c \u0434\u043e\u0440\u043e\u0436\u0435, \u0447\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0446\u0438\u043a\u043b, \u043e\u0442\u0434\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043a\u0438, \u0438 \u0446\u0438\u043a\u043b, \u043e\u0442\u0434\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0442\u0435\u0436\u0438, \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435 \u0432\u044b\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0445\u043e\u0442\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0440\u0443\u0448\u0438\u043b DRY. \u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u0430\u044e\u0442 \u0434\u0432\u0443\u043c \u0432\u0435\u0442\u043a\u0430\u043c \u0440\u0430\u0437\u044a\u0435\u0445\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e.<\/p>\n<h4>\u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h4>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u044b\u0440\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u0432 <code>datetime<\/code>, <code>timedelta<\/code> \u0438\u043b\u0438 <code>Decimal<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0440\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0442\u0441\u044f, \u043a\u044d\u0448 \u044d\u0442\u0443 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u0431\u0438\u0440\u0430\u0435\u0442. \u041d\u043e \u043f\u0440\u043e\u043c\u0430\u0445 \u043d\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d, \u0438 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0434\u0435\u043b\u043a\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043a\u0440\u0443\u043f\u043d\u0435\u0435, \u0447\u0435\u043c \u044f \u043e\u0436\u0438\u0434\u0430\u043b.<\/p>\n<p>\u0417\u0430\u043c\u0435\u0440 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 <code>UInt64, DateTime('UTC'), Decimal(18, 2)<\/code>, 200 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a, \u0442\u0435 \u0436\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0447\u0442\u043e \u0438 \u0432\u044b\u0448\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421 \u043a\u044d\u0448\u0435\u043c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0411\u0435\u0437 \u043a\u044d\u0448\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">200 \u043c\u0435\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 100 \u0446\u0435\u043d \u043d\u0430 200 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">23.55 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">117.86 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u221280.0%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0412\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">166.44 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">115.72 \u043c\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">+43.8%<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e \u044d\u0442\u0438\u043c \u0437\u0430\u043c\u0435\u0440\u0430\u043c \u0432\u0438\u0434\u043d\u043e \u0442\u0440\u0438 \u0432\u0435\u0449\u0438.<\/p>\n<p><strong>\u041a\u044d\u0448 \u043e\u043a\u0443\u043f\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u0447\u0442\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/strong> \u0412\u044b\u0438\u0433\u0440\u044b\u0448 \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0434\u043e\u043b\u044e \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435. \u0417\u0434\u0435\u0441\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0438\u0434\u0443\u0442 \u0434\u0432\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0438\u0437 \u0442\u0440\u0451\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u043e \u0434\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u0435\u0442 \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e 80%. \u041d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0441 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u043c \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435, \u043d\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u0440\u0438\u0442\u044c.<\/p>\n<p><strong>\u041f\u0440\u043e\u043c\u0430\u0445\u0438 \u0442\u043e\u0436\u0435 \u0441\u0442\u043e\u044f\u0442 \u0434\u0435\u043d\u0435\u0433.<\/strong> \u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0430\u0445 \u0434\u043e\u0431\u0430\u0432\u0438\u043b 44% \u2014 \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0430 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0445\u0435\u043c\u0435 \u044f \u043c\u0435\u0440\u0438\u043b \u043e\u043a\u043e\u043b\u043e 11%. \u0421\u0430\u043c \u043f\u043e\u0438\u0441\u043a \u0432 \u043a\u044d\u0448\u0435 \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u043d\u0435 \u0441\u0442\u0430\u043b \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f, \u0438 \u0442\u0430 \u0436\u0435 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0442\u0430\u043b\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0434\u043e\u043b\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0423\u0441\u043a\u043e\u0440\u0438\u0432 \u043e\u0434\u043d\u0443 \u0447\u0430\u0441\u0442\u044c, \u043b\u0435\u0433\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439 \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e.<\/p>\n<p><strong>\u041e\u0434\u043d\u043e\u0433\u043e \u043b\u0438\u043c\u0438\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/strong> \u0421\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430 \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: <code>lru_cache<\/code> \u043d\u0430 4096 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u0440\u0438 20 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043a\u044d\u0448\u0430, \u2014 224 \u043c\u0441 \u043f\u0440\u043e\u0442\u0438\u0432 174. \u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435: \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u043f\u0440\u043e\u043c\u0430\u0445\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u043a\u043e\u0433\u043e-\u0442\u043e \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u0435\u0442, \u0438 \u043a \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u044d\u0448\u0430.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443: \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u044d\u0448 \u0434\u043e \u043b\u0438\u043c\u0438\u0442\u0430 \u0438 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u041d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0440\u0435\u0436\u0438\u043c\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043c\u0435\u0440\u0438\u043b, \u043e\u043d\u0430 \u0443\u0441\u0442\u0443\u043f\u0438\u043b\u0430 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044e \u0432 \u043e\u0434\u043d\u043e\u043c: 100 \u0442\u044b\u0441\u044f\u0447 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0438 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u0445. \u0417\u0430\u0442\u043e \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043e\u043d\u0430 \u043e\u0431\u043e\u0448\u043b\u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438, \u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0430, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442. \u042d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u0445, \u0430 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438: \u043d\u0430 \u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u043c. \u0426\u0438\u0444\u0440\u044b \u043f\u043e \u0432\u0441\u0435\u043c \u0440\u0435\u0436\u0438\u043c\u0430\u043c \u043b\u0435\u0436\u0430\u0442 \u0432 <a href=\"https:\/\/github.com\/darkstussy\/aiochlite\/blob\/1.7.0\/benchmarks\/README.md\" rel=\"noopener noreferrer nofollow\"><code>benchmarks\/README.md<\/code><\/a>.<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u044d\u0448 \u2014 \u043f\u0430\u043c\u044f\u0442\u044c. \u041e\u043d \u0436\u0438\u0432\u0451\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441, \u0430 \u0432 <code>stream()<\/code> \u044d\u0442\u043e \u0432\u0435\u0441\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u2014 \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u0442\u044c. \u0411\u0435\u0437 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u0440\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0441\u0442\u0440\u043e\u043a \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0430\u0432\u0430\u043b\u0438 \u043f\u0438\u043a \u0432 1033 \u041c\u0438\u0411, \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u2014 24 \u041c\u0438\u0411 (\u044d\u0442\u043e \u043f\u0438\u043a \u043f\u043e <code>tracemalloc<\/code>, \u0430 \u043d\u0435 RSS \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430).<\/p>\n<p>\u0418\u0442\u043e\u0433 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0434\u0430\u043d\u043d\u044b\u0445: \u0434\u043b\u044f \u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u043e \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u043e\u0442\u043c\u0435\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 <code>Decimal<\/code> \u043a\u044d\u0448 \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0448\u0430\u0442\u044c, \u0434\u043b\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0446\u0435\u043d \u2014 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c. \u0421\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043c\u0435\u0440\u0430 \u2014 <a href=\"https:\/\/github.com\/darkstussy\/aiochlite\/blob\/1.7.0\/benchmarks\/converter_cache.py\" rel=\"noopener noreferrer nofollow\"><code>benchmarks\/converter_cache.py<\/code><\/a>; \u0441\u0432\u043e\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0437\u0434\u0435\u0441\u044c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043c\u0435\u0440\u0438\u0442\u044c.<\/p>\n<h3>\u0427\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e \u043c\u043e\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0437\u0430\u043c\u0435\u0440\u044b<\/h3>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00bb. \u041d\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0438 \u0434\u0435\u043b\u0430\u043b \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434, \u0442\u0430\u043a \u0447\u0442\u043e \u043a \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u0440\u0438 \u043f\u0443\u043d\u043a\u0442\u0430.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u0434\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u0430\u0447\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443. \u0423 \u043c\u0435\u043d\u044f \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043c\u0435\u0436\u0434\u0443 \u0441\u0445\u0435\u043c\u0430\u043c\u0438 \u0432\u044b\u0448\u0435\u043b \u043e\u0442 1.84x \u0434\u043e 8.27x, \u0438 \u043e\u0431\u0435 \u0446\u0438\u0444\u0440\u044b \u0447\u0435\u0441\u0442\u043d\u044b\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0441 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u043c, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0435\u0442. \u0412\u044b\u0431\u0435\u0440\u0438 \u044f \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043b\u044e\u0431\u0443\u044e \u043e\u0434\u043d\u0443, \u0432\u044b\u0432\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0431\u044b \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c.<\/p>\n<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0438\u044f\u043c\u0438 \u2014 \u043d\u0430 \u044d\u0442\u043e\u043c \u044f \u0441\u0430\u043c \u043e\u0431\u0436\u0451\u0433\u0441\u044f. \u0415\u0441\u043b\u0438 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0441\u043e\u0431\u0440\u0430\u043d \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0435\u0433\u043e \u043a\u044d\u0448 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u0442\u0451\u043f\u043b\u044b\u043c, \u0438 \u0437\u0430\u043c\u0435\u0440 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0431\u044b\u043b\u0438 \u0431\u044b \u043e\u0434\u043d\u0438 \u043f\u0440\u043e\u043c\u0430\u0445\u0438. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0437\u0430\u043c\u0435\u0440\u043e\u0432 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043a\u0430\u043a \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0445\u043e\u0442\u044f \u043d\u0430 \u0434\u0435\u043b\u0435 \u043a\u044d\u0448 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0412\u0441\u0451, \u0447\u0442\u043e \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u0430 \u0437\u0430\u043c\u0435\u0440\u0430.<\/p>\n<p>\u0418 \u0431\u0435\u0437 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u2014 CPU, \u041e\u0421, \u0432\u0435\u0440\u0441\u0438\u0438 Python \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043a\u043e\u043c\u043c\u0438\u0442 \u043a\u043e\u0434\u0430 \u2014 \u0446\u0438\u0444\u0440\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0438 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043d\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438.<\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0421\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0443 \u043d\u0438\u0445 \u0434\u043e\u043b\u0436\u043d\u044b \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438, \u0440\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f (\u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0439 \u0438\u043b\u0438 \u0441 \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439), \u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a, \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043e\u0431\u044a\u0451\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043d\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u043d\u0430\u0434 \u0434\u0440\u0443\u0433\u043e\u0439.<\/p>\n<h3>\u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442<\/h3>\n<p>Pure Python \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u0448\u0430\u0433 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u043e\u0434\u043e\u043c \u043d\u0430 Python. \u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u0432 CPython \u0443\u0436\u0435 \u0435\u0441\u0442\u044c; \u0437\u0434\u0435\u0441\u044c \u043c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432: \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043b\u0430\u043d \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u043e \u0441\u0445\u0435\u043c\u0435, \u0441\u043a\u043b\u0435\u0438\u0442\u044c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b, \u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443 \u0432\u0435\u0441\u044c \u0446\u0438\u043a\u043b.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u044d\u0442\u0438\u043c \u043d\u0435 \u043b\u0435\u0447\u0438\u0442\u0441\u044f: \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b, \u043f\u043e\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b. \u041c\u043d\u0435 \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0432\u0438\u0434\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u0438\u0437\u043c\u0435\u0440\u0438\u043b \u043a\u0430\u0436\u0434\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0421\u0430\u043c\u044b\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0440 \u0441\u0445\u0435\u043c\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043a\u043b\u0435\u0439\u043a\u0430 \u043d\u0435 \u0434\u0430\u043b\u0430 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430. \u041f\u043e\u0434\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u044b\u043b\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e: \u043c\u0435\u0448\u0430\u043b\u0430 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0437\u0430\u043c\u0435\u0440 \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433. \u0422\u043e\u0442 \u0436\u0435 \u0440\u0430\u0437\u0431\u043e\u0440 \u043d\u0443\u0436\u0435\u043d \u0438 \u043f\u0435\u0440\u0435\u0434 \u0441\u0432\u043e\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432 Python, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0432 C \u0438\u043b\u0438 Rust.<\/p>\n<h3>\u041f\u043e\u0445\u043e\u0436\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/h3>\n<p>\u0412 \u0438\u044e\u043b\u0435 2026 ClickHouse \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b <a href=\"https:\/\/clickhouse.com\/blog\/clickhouse-rowbinary-library-parser-compiler\" rel=\"noopener noreferrer nofollow\"><code>@clickhouse\/rowbinary<\/code><\/a>. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0430\u043c \u0442\u0430 \u0436\u0435 \u2014 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443, \u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0442\u0430\u043a: \u043a\u0440\u043e\u043c\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e \u0442\u0438\u043f\u0430\u043c \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>SKILL.md<\/code>. \u041f\u043e \u043d\u0435\u0439 coding agent \u043f\u0438\u0448\u0435\u0442 \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u043e\u043c \u0438 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u0430\u0432\u0442\u043e\u0440\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u043b\u0438: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0430\u0433\u0435\u043d\u0442, \u0430 \u043f\u0430\u043a\u0435\u0442 \u0434\u0430\u0451\u0442 \u0435\u043c\u0443 \u043a\u0438\u0440\u043f\u0438\u0447\u0438 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u043a\u0430\u043a \u0438\u0445 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0422\u0430\u043c \u0442\u043e\u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443, \u043d\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0422\u0430\u043c \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f: \u0435\u0433\u043e \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442 \u0438 \u043f\u0440\u0430\u0432\u044f\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0445\u0435\u043c\u043e\u0439, \u0437\u0430\u0442\u043e \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0417\u0434\u0435\u0441\u044c \u043f\u0430\u0440\u0441\u0435\u0440 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435 \u043f\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443 \u043e\u0442\u0432\u0435\u0442\u0430, \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c. \u0425\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0447\u0435\u0433\u043e, \u043d\u043e \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0439: \u043f\u043b\u0430\u0442\u0438\u0442 \u0437\u0430 \u043d\u0435\u0451 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u044b, \u0438 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u044d\u0442\u0443 \u043f\u043b\u0430\u0442\u0443 \u043d\u0435 \u043d\u0430 \u0447\u0442\u043e.<\/p>\n<h3>\u0413\u0434\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434<\/h3>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u2014 <a href=\"https:\/\/github.com\/darkstussy\/aiochlite\/blob\/1.7.0\/aiochlite\/converters\/rowbinary.py\" rel=\"noopener noreferrer nofollow\"><code>aiochlite\/converters\/rowbinary.py<\/code><\/a>: \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043e\u0434\u0438\u043d <code>Struct<\/code> \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043b\u0438\u0431\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0446\u0438\u043a\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f; \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043a \u043d\u0443\u0436\u043d\u044b\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, <code>Nullable<\/code>, <code>DateTime64<\/code>, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0451\u043d\u043d\u044b\u0445 payload.<\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0437 PyPI:<\/p>\n<pre><code class=\"bash\">pip install aiochlite<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1072036\/\">https:\/\/habr.com\/ru\/articles\/1072036\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u042f \u0430\u0432\u0442\u043e\u0440 aiochlite \u2014 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 ClickHouse \u043d\u0430 aiohttp. \u041a\u043b\u0438\u0435\u043d\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 RowBinaryWithNamesAndTypes. \u0421\u0430\u043c RowBinary-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Python \u0431\u0435\u0437 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f; \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u2014 aiohttp.\u0412 \u0442\u0430\u043a\u043e\u043c \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0447\u0438\u0442\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c. \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u043f\u043e \u0442\u0438\u043f\u0443 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0437\u0432\u0430\u043b\u0430 \u043c\u0435\u0442\u043e\u0434 reader, \u0442\u043e\u0442 \u2014 struct.unpack_from, \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u043b\u043e\u0441\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \u041d\u0430 200 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u0441 \u0434\u0435\u0441\u044f\u0442\u044c\u044e \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u044d\u0442\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0435. Payload \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u043b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 \u043d\u0438 \u0441\u0435\u0442\u044c, \u043d\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u043a \u0434\u0435\u043b\u0443 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u043b\u0438\u0441\u044c.\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u2014 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043d\u0430 Cython, C \u0438\u043b\u0438 Rust. \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0438 \u043f\u0440\u0430\u0432\u0434\u0430 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432.\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0432 \u043e\u0434\u0438\u043d \u0444\u043e\u0440\u043c\u0430\u0442 struct \u2014 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 \u043e\u0434\u043d\u0438\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430 \u0434\u0435\u0441\u044f\u0442\u0438\u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435. \u0410 \u043d\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0439, \u0433\u0434\u0435 \u0447\u0438\u0441\u043b\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0436\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e\u0433\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u043e\u0432\u0441\u0435. \u042d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430 \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0446\u0438\u043a\u043b \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043b \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0421\u043c\u0435\u0448\u0430\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 1.7 \u0440\u0430\u0437\u0430, \u0441\u0445\u0435\u043c\u0430 \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u2014 \u0432 8.3. \u0422\u043e\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0431\u0443\u0434\u0443\u0442 \u043d\u0438\u0436\u0435.\u0412 CPython \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0430 C, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u00abPython \u0438\u043b\u0438 C\u00bb, \u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a\u043e\u0434 \u0445\u043e\u0434\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434. \u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0441\u0442. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b, struct \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0451 \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Python-\u0432\u044b\u0437\u043e\u0432 unpack_from. \u0415\u0441\u043b\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0435\u0441\u0442\u044c String \u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043e\u0442\u0434\u0430\u0442\u044c \u0432\u0441\u0451 \u0440\u0430\u0437\u043e\u043c \u043d\u0435\u0447\u0435\u0433\u043e, \u0438 \u0442\u0430\u043c \u0443\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0435 \u2014 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e \u0442\u0438\u043f\u0430\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0446\u0438\u043a\u043b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435. Python \u0431\u044b\u0441\u0442\u0440\u0435\u0435 C \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0441\u0442\u0430\u043b: \u0432 \u043d\u0451\u043c \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0430 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u0430\u043a \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0437\u0430\u043c\u0435\u0440\u0430 \u0438 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043f\u0440\u0438\u0451\u043c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\u0427\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 pure Python\u041f\u043e\u0434 pure Python \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a .py-\u0444\u0430\u0439\u043b\u044b \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u043e\u043c: \u043c\u043e\u0434\u0443\u043b\u044c struct \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 CPython \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u0418 \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435: \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0441\u0430\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 compile(). \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0432\u0441\u0451 \u0442\u043e\u0442 \u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440.Cython \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043d\u0430\u0447\u0435: \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Python-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 C \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u041a \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043d\u0438\u043c \u044f \u0432\u0435\u0440\u043d\u0443\u0441\u044c \u0432 \u043a\u043e\u043d\u0446\u0435, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 Python.\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d RowBinaryWithNamesAndTypes\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c ClickHouse RowBinaryWithNamesAndTypes. \u041f\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0438\u043f\u043e\u0432 \u0435\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:VarUInt              \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043b\u043e\u043d\u043e\u043a NString \u00d7 N           \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043aString \u00d7 N           \u0442\u0438\u043f\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043arow \u00d7 M              \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043aString \u0437\u0434\u0435\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 \u0432 \u0432\u0438\u0434\u0435 VarUInt, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0434\u0443\u0442 \u0431\u0430\u0439\u0442\u044b \u0441\u0442\u0440\u043e\u043a\u0438. \u0422\u0438\u043f\u044b \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0432 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0434\u0443\u0442 \u043f\u043e\u0434\u0440\u044f\u0434. \u0427\u0438\u0441\u043b\u0430 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 little-endian. \u0423 String, Array, Map \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 payload. \u0423 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430 \u0441 \u043e\u0431\u0449\u0435\u0439 \u0434\u043b\u0438\u043d\u043e\u0439, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435\u0442.\u041e\u0434\u043d\u0430 \u0434\u0435\u0442\u0430\u043b\u044c \u043f\u0440\u043e String: \u0432 ClickHouse \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0439\u0442\u043e\u0432, \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 UTF-8 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0414\u0435\u043a\u043e\u0434\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u0437\u043e\u0432\u0451\u0442 .decode(&#171;utf-8&#187;), \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0443\u043f\u0430\u0434\u0451\u0442. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c str, \u0430 \u043d\u0435 bytes \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435: \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u0430\u043a\u0438\u043c \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c.\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u0442\u0438\u043f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435.\u041d\u0430\u0438\u0432\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435:readers = [_reader_for_type(ch_type) for ch_type in column_types] while not reader.eof:    yield [read(reader) for read in readers]\u0421\u0430\u043c\u0430 \u0438\u0434\u0435\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f: \u0442\u0438\u043f\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u043d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043d\u0438\u0436\u0435. \u0427\u0442\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e UInt64 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:def read_uint64(self) -&gt; int:    value = struct.unpack_from(&#171;&lt;Q&#187;, self._data, self._pos)[0]    self._pos += 8    return value\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c:\u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Python, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0442\u0438\u043f\u0430;\u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 reader;\u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 struct.unpack_from;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u0442\u0435\u0436\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c;\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u0412 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u044d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437. \u041d\u0430 \u0441\u0442\u0430 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u2014 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0440\u0430\u0437. \u041f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 Python \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438.\u041e\u0434\u0438\u043d \u0444\u043e\u0440\u043c\u0430\u0442 struct \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0439struct \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c UInt64, UInt32, Float64 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c &lt;QId \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f Python:import struct  ROW = struct.Struct(&#171;&lt;QId&#187;)  def decode_row(data: bytes, offset: int = 0) -&gt; tuple[int, int, float]:    first, second, third = ROW.unpack_from(data, offset)    return first, second, third  payload = ROW.pack(42, 1_700_000_000, 3.5)assert decode_row(payload) == (42, 1_700_000_000, 3.5)\u041f\u0440\u0435\u0444\u0438\u043a\u0441 &lt; \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d. \u041e\u043d \u0437\u0430\u0434\u0430\u0451\u0442 little-endian \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0431\u0435\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e struct \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0433\u0434\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0438 ABI: \u043d\u0430 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 64-\u0431\u0438\u0442\u043d\u043e\u0439 Linux-\u043c\u0430\u0448\u0438\u043d\u0435 QId \u0437\u0430\u0439\u043c\u0451\u0442 24 \u0431\u0430\u0439\u0442\u0430 \u0432\u043c\u0435\u0441\u0442\u043e 20. \u0422\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 RowBinary: \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 unpack_from \u0443\u043f\u0430\u0434\u0451\u0442, \u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u043e\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438.\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b Python \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0442\u0435\u0436. \u041d\u043e \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 unpack_from \u0438 \u043e\u0434\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0442\u0435\u0436 \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435.\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0437\u0434\u0435\u0441\u044c \u043d\u0438 \u043f\u0440\u0438 \u0447\u0451\u043c: \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 struct \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u0430 \u043e\u0431\u044a\u0435\u043a\u0442 Struct \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e &#171;&lt;Q&#187; \u0438 \u0431\u0435\u0437 \u0442\u043e\u0433\u043e \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0431\u044b \u0437\u0430\u043d\u043e\u0432\u043e. \u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u2014 \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u043a\u043e\u0440\u0442\u0435\u0436\u0435\u0439, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0434\u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432 \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437 \u043c\u0435\u043d\u044c\u0448\u0435, \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442.\u041f\u043b\u0430\u043d \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u044f, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0435:ClickHousestructUInt8BInt16hUInt32IUInt64QFloat32fFloat64d\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0438\u043f\u044b \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, DateTime \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a UInt32, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 datetime. DateTime64 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 64-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0442\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438. Decimal32 \u0438 Decimal64 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0437\u0436\u0435.\u041d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0432 struct \u0435\u0441\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0423 Decimal128, Decimal256, UUID, IPv6 \u0438 FixedString \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0435\u0442. \u041d\u043e \u0448\u0438\u0440\u0438\u043d\u0430 \u0443 \u043d\u0438\u0445 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u0438\u0434\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0434 \u0432\u0438\u0434\u0430 16s \u2014 struct \u043e\u0442\u0434\u0430\u0451\u0442 \u0441\u044b\u0440\u044b\u0435 \u0431\u0430\u0439\u0442\u044b, \u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0443\u0436\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0414\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430, \u0430 \u043d\u0435 \u0442\u043e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u0438 struct \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043b\u0430\u043d\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438:\u043a\u043e\u0434 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f struct;\u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0443\u0436\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0423\u0441\u043b\u043e\u0432\u043d\u043e \u0441\u0445\u0435\u043c\u0430UInt64, DateTime(&#8216;UTC&#8217;), Float64\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432format:     &lt;QIdconverters: [(1, unix_timestamp_to_datetime)]\u0421\u043d\u0430\u0447\u0430\u043b\u0430 Struct.unpack_from \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 1.\u0422\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u043d \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0432\u0440\u043e\u0434\u0435 Array(Decimal(10, 2)) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b\u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u2014 \u0441\u0442\u0440\u043e\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0448\u0438\u0440\u0438\u043d\u0443. \u0422\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 Struct \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0435\u0451 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0410 \u0432\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u2014 \u044d\u0442\u043e \u0442\u043e\u0442 \u0436\u0435 \u0444\u043e\u0440\u043c\u0430\u0442, \u043f\u043e\u0432\u0442\u043e\u0440\u0451\u043d\u043d\u044b\u0439 M \u0440\u0430\u0437. \u0414\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0443 Struct \u0435\u0441\u0442\u044c iter_unpack:unpacked = unpacker.iter_unpack(memoryview(data)[start:])iter_unpack \u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 C-\u043a\u043e\u0434\u0430. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e unpack_from \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442, \u0445\u043e\u0442\u044f \u043a\u043e\u0440\u0442\u0435\u0436\u0438 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b Python \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e. \u042f\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043d\u0430 Python \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u044b \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b:for values in unpacked:    row = list(values)    for idx, convert in conv_slots:        row[idx] = convert(row[idx])    append(row)\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u043b\u0435\u0436\u0430\u0442 \u0432 conv_slots \u043f\u0430\u0440\u0430\u043c\u0438 \u00ab\u0438\u043d\u0434\u0435\u043a\u0441 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00bb, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0440\u043e\u0433\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0442\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e. \u0415\u0441\u043b\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u043d\u0435\u0442 \u0432\u043e\u0432\u0441\u0435, \u043a\u0430\u043a \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, fetch_rows() \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0434\u043d\u0438\u043c list(unpacked) \u0431\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u043e \u043f\u043e\u043b\u044f\u043c.\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b: \u0446\u0438\u043a\u043b, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0441\u0445\u0435\u043c\u0443\u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0445\u0435\u043c\u0430\u0445 \u043f\u043e\u043b\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0447\u0435\u0440\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u0441\u043e String, Array, Nullable \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b. \u0423 Nullable \u043f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u043b\u0430\u0433 null, \u0430 \u0441\u0430\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b. \u041e\u0434\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f:[UInt64] [String] [DateTime, Float64, Int32]                  \u2514\u2500\u2500\u2500\u2500 \u043e\u0434\u0438\u043d Struct \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u041d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0439: \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0443 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u2014 \u0441\u0432\u043e\u044f, \u043d\u0430 String \u2014 \u0441\u0432\u043e\u044f. \u0422\u0430\u043a \u0438 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430, \u0438 \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u0432\u044b\u043b\u0435\u0437\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f Python, \u0438 \u0435\u0451 \u0432\u044b\u0437\u043e\u0432 \u043d\u0430\u0434\u043e \u0447\u0435\u043c-\u0442\u043e \u043e\u043f\u043b\u0430\u0442\u0438\u0442\u044c; \u0433\u0440\u0443\u043f\u043f\u0430 \u0438\u0437 \u0434\u0432\u0443\u0445-\u0442\u0440\u0451\u0445 \u043f\u043e\u043b\u0435\u0439 \u043d\u0435 \u043e\u043a\u0443\u043f\u0430\u043b\u0430 \u0441\u0435\u0431\u044f. \u0410 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u0432\u0430\u043b\u0430\u0441\u044c: \u0446\u0438\u043a\u043b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0448\u0451\u043b&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-491430","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=491430"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491430\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=491430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=491430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=491430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}