query.rs

query.rs - Топик c чанками данных исполнения запросов

Структура сообщения

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-схема сообщения

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