report.rs
Внимание
Название топика может быть изменено на этапе внедрения!
Позитивный ответ на запрос - содержимое сгенерированных файлов и метаданные для них, передается только в случае успешного выполнения генерации. Один запрос - один ответ. Один ответ - несколько сообщений. Одно сообщение - один chunk.
Структура сообщения
datamartExecuteQueryResultChunkMessage:
description: Чанк с данными по исполнению запроса
contentType: 'application/octet-stream'
bindings:
kafka:
key:
$ref: '#/components/schemas/datamartExecuteQueryResultChunk'
headers:
type: object
properties:
MESSAGE_TYPE:
description: Тип сообщения
type: string
const: DatamartExecuteQueryResultChunk:0.1
payload:
description: Бинарные данные чанка
examples:
- name: base64
headers:
MESSAGE_TYPE: DatamartExecuteQueryResultChunk:0.1
payload:
value: JEEJNodyLO7p1pgsRHG9pEiXeYGvHW4YCl4FgrgBmu5C92iVX1PV2GZdcqsb66bx8sk=
Avro-схема Key сообщения
datamartExecuteQueryResultChunk:
schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
type: record
name: QueryResultChunk
namespace: datamart.query
fields:
- name: requestId
description: Уникальный идентификатор запроса
type:
type: string
logicalType: uuid
- name: subRequestId
description: Уникальный идентификатор подзапроса
type:
type: string
logicalType: uuid
- name: replyTo
description: Служебная информация маршрутизации сообщения. Заполняется соответсвующим значением из запроса
type: string
- name: chunkNumber
description: Номер порции по порядку
type: int
minimum: 1
- name: isLastChunk
description: Признак последнего сообщения
type: boolean
- name: streamNumber
description: Номер стрима данных
minimum: 1
type:
- int
- "null"
- name: streamTotal
description: Общее количество стримов
minimum: 1
type:
- int
- "null"
- name: isFragmented
description: Признак присутствия в чанке неполных строк (строк, которые были разбиты на несколько чанков)
type: boolean
- name: uncompressedSize
description: Оригинальный размер чанка в байтах
type: int
minimum: 0
examples:
- requestId: 2e8c8ab2-44db-4dcb-8ae5-2365121b4e14
subRequestId: 608c5a5a-01d4-4439-8220-dda41a8519fe
replyTo: agent-fias
chunkNumber: 1
isLastChunk: true
streamNumber:
int: 1
streamTotal:
int: 1
isFragmented: false
uncompressedSize: 10
Avro-схема Value (для report.rs она универсальная)
{
"type": "record",
"name": "QueryResultRow",
"namespace": "datamart.query",
"fields": [
{
"name": "DocType",
"type": "string"
},
{
"name": "FileName",
"type": "string"
},
{
"name": "Content",
"type": "bytes"
},
{
"name": "Meta",
"type": ["string", "null"]
}
]
}