query.tp

query.tp - Топик чанков табличных параметров

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

datamartTableParamChunkMessage:
  description: Чанк с данными табличных параметров
  contentType: 'application/octet-stream'
  bindings:
    kafka:
      key:
        $ref: '#/components/schemas/datamartTableParamChunkKey'
  headers:
    type: object
    properties:
      MESSAGE_TYPE:
        description: Тип сообщения
        type: string
        const: DatamartTableParamChunkKey:0.1
      REQUEST_ID:
        description: Идентификатор запроса
        type: string
      QUERY_DEADLINE:
        description: Время в миллисекундах от эпохи, до которого запрос должен быть выполнен
        type: string
        format: int64
      AGENT_CONSUMER_ID:
        description: Мнемоника потребителя (мнемоника агента)
        type: string
      QUERY_MNEMONIC:
        description: '<Полная мнемоника РЗ>.<версия РЗ>'
        type: string
  payload:
    description: Бинарные данные чанка
  examples:
    - name: base64
      headers:
        MESSAGE_TYPE: DatamartTableParamChunkKey:0.1
      payload:
        value: JEEJNodyLO7p1pgsRHG9pEiXeYGvHW4YCl4FgrgBmu5C92iVX1PV2GZdcqsb66bx8sk=

Avro-схема Key сообщения

datamartTableParamChunkKey:
  schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
  type: record
  name: DatamartTableParamChunkKey
  namespace: datamart.query
  fields:
    - name: requestId
      description: Уникальный идентификатор запроса
      type:
        type: string
        logicalType: uuid
    - name: subRequestId
      description: Уникальный идентификатор подзапроса
      type:
        type: string
        logicalType: uuid
    - name: tableParamId
      description: Идентификатор табличного параметра
      type:
        type: string
        logicalType: uuid
    - name: datamartMnemonic
      description: Мнемоника витрины, к которой выполняется запрос
      type: string
    - name: chunkNum
      description: Номер порции по порядку
      type: int
      minimum: 1
    - name: isLast
      description: Признак последнего сообщения
      type: boolean
    - name: streamNum
      description: Номер стрима данных
      type: int
      minimum: 1
    - name: streamTotal
      description: Общее количество стримов
      type: int
      minimum: 1
    - name: customerId
      description: Мнемоника ИС Потребителя
      type:
        - 'null'
        - string
      default: null
    - name: customerOgrn
      description: ОГРН ИС Потребителя
      type:
        - 'null'
        - string
      default: null
    - name: queryMnemonic
      description: 'Мнемоника РЗ, сформированная по правилу: <мнемоника витрины>.<мнемоника РЗ>.<версия РЗ> Если запрос распределенный, то формируется по правилу: podd.<мнемоника РЗ>.<версия РЗ>'
      type:
        - 'null'
        - string
      default: null
    - name: queryParams
      description: Информация о запросе
      type:
        type: record
        name: QueryParams
        namespace: datamart.query
        fields:
        - name: sql
          description: Текст SQL-запроса
          type: string
        - name: replyTo
          description: Служебная информация маршрутизации сообщения. Ответ, формируемый витриной, обязан содержать переданное значение без каких либо искажений
          type: string
        - name: parameters
          default: [ ]
          description: Параметры к SQL запросу
          type:
            type: array
            items:
              type: record
              name: QueryParameter
              description: Описание параметра
              fields:
                - name: type
                  type: string
                  description: Тип параметра
                  enum:
                    - BIG_DECIMAL
                    - BINARY
                    - BOOLEAN
                    - DATE
                    - DOUBLE
                    - FLOAT
                    - INTEGER
                    - LONG
                    - SHORT
                    - STRING
                    - TIME
                    - TIMESTAMP
                - name: value
                  description: Значение параметра
                  type:
                    - string
                    - 'null'
        - name: namedParams
          description: Именованные параметры запроса
          default: [ ]
          type:
            type: array
            items:
              type: record
              name: NamedParam
              description: Описание именованного параметра
              fields:
                - name: name
                  description: Имя (мнемоника) параметра
                  type: string
                - name: type
                  type: string
                  description: Тип параметра
                  enum:
                    - BIG_DECIMAL
                    - BINARY
                    - BOOLEAN
                    - DATE
                    - DOUBLE
                    - FLOAT
                    - INTEGER
                    - LONG
                    - SHORT
                    - STRING
                    - TIME
                    - TIMESTAMP
                - name: value
                  description: Значение параметра
                  type:
                    - string
                    - 'null'
        - name: tableParams
          description: Табличные параметры запроса
          type:
            type: array
            items:
              type: record
              name: TableParam
              fields:
                - name: id
                  description: Уникальный идентификатор
                  type:
                    type: string
                    logicalType: uuid
                - name: name
                  description: Имя параметра
                  type: string
                - name: columns
                  description: Описание колонок таблицы
                  type:
                    type: array
                    items:
                      type: record
                      description: Описание колонки
                      name: TableParamColumnInfo
                      fields:
                        - name: name
                          type: string
                          description: Имя колонки
                        - name: type
                          type: string
                          description: Тип атрибута
                          enum:
                            - BIG_DECIMAL
                            - BINARY
                            - BOOLEAN
                            - DATE
                            - DOUBLE
                            - FLOAT
                            - INTEGER
                            - LONG
                            - SHORT
                            - STRING
                            - TIME
                            - TIMESTAMP
  examples:
    - queryParams:
        summary: Пример запроса с параметрами
        sql: select * from v1_addrobj where oktmo = ? and name = @tbl.fullname
        replyTo: agent-fias
        parameters:
          - type: STRING
            value:
              string: asdasdasd
        namedParams: []
        tableParams:
          - id: 6bba1b55-031c-4931-94ef-daccdc203f8d
            name: tbl
            columns:
              - name: fullname
                type: STRING
      requestId: 114a6659-4b7b-4a2a-8c22-d2177f91091a
      subRequestId: 8c1e7130-989a-4943-b23b-75e242e9d77e
      tableParamId: f3ff5c24-5039-4a00-8212-063114d6411b
      datamartMnemonic: fias
      chunkNum: 1
      isLast: true
      streamNum: 1
      streamTotal: 1
      customerId:
        string: agent-fias
      customerOgrn:
        string: "1053600591197"
      queryMnemonic:
        string: fias.selectAllAddrobj.1.0
      customerId:
        string: agent-fias
      customerOgrn:
        string: "1053600591197"
      queryMnemonic:
        string: fias.selectAllAddrobj.1.0
    - queryParams:
        summary: Пример запроса с именованными параметрами
        sql: select * from v1_addrobj where oktmo = p1 and name = @tbl.fullname
        replyTo: agent-fias
        parameters: []
        namedParams:
          - name: p1
            type: STRING
            value:
              string: asdasdasd
        tableParams:
          - id: 6bba1b55-031c-4931-94ef-daccdc203f8d
            name: tbl
            columns:
              - name: fullname
                type: STRING
      requestId: 114a6659-4b7b-4a2a-8c22-d2177f91091a
      subRequestId: 8c1e7130-989a-4943-b23b-75e242e9d77e
      tableParamId: f3ff5c24-5039-4a00-8212-063114d6411b
      datamartMnemonic: fias
      chunkNum: 1
      isLast: true
      streamNum: 1
      streamTotal: 1
      customerId:
        string: agent-fias
      customerOgrn:
        string: "1053600591197"
      queryMnemonic:
        string: fias.selectAllAddrobj.1.0