report.rq

Внимание

Название топика может быть изменено на этапе внедрения!

Запрос на генерацию файлов. Одно сообщение - один запрос. Один запрос - один набор параметров (в наборе м.б. много параметров, в параметрах м.б. указано «сгенерируй много форматов файлов на основании одной и той же выборки данных»).

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

datamartExecuteQueryRequestMessage:
description: Исполнение sql запроса на витрине
schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
bindings:
    kafka:
    key:
        type: string
        format: uuid
        description: Уникальный идентификатор подзапроса
headers:
    type: object
    properties:
    MESSAGE_TYPE:
        description: Тип сообщения
        type: string
        const: DatamartExecuteQueryRequest: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:
    $ref: '#/components/schemas/datamartExecuteQueryRequest'
examples:
    - name: report
    summary: Запрос к Сервису формирования документов
    headers:
        MESSAGE_TYPE: DatamartExecuteQueryRequest:0.1
    payload:
        requestId: 68758a92-0027-4258-bf17-aa3d24f85094
        subRequestId: 96e6eb99-7ff1-4efa-abae-ef1c5744b723
        replyTo: agent-fias
        datamartMnemonic: fias
        sql: v1_printable_form_address
        parameters:
        - type: STRING
            value:
            string: MIIB9wYJKoZIhvcNAQcCoIIB6DCCAeQCAQExADALBgkqhkiG9w0BBwGgggHMMIIByDCCAXOgAwIBAgIEV/dqTjAMBggqhQMHAQEDAgUAMDUxCzAJBgNVBAYTAlJVMQswCQYDVQQKEwJSVDEZMBcGA1UEAwwQYmxhc3RvZmZfY2FfdGVzdDAeFw0yMjAzMDQwNzQ5MzBaFw0zMjAzMDEwNzQ5MzBaMC0xETAPBgNVBAMMCGl0b25lZGV2MQswCQYDVQQKDAJSVDELMAk
        - type: STRING
            value:
            string: xml
        namedParams: [ ]
        tableParams: [ ]
        isForEstimation: false
        rowCountThreshold: -1
        customerId:
        string: agent-fias
        customerOgrn:
        string: "1053600591197"
        queryMnemonic:
        string: fias.selectAddrobjWithParams.1.0

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

datamartExecuteQueryRequest:
schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
type: record
name: QueryRequest
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: datamartMnemonic
    description: Мнемоника витрины, к которой выполняется запрос
    type: string
    - name: sql
    description: тип отчета
    type: string
    - name: parameters
    description: Параметры к SQL запросу (при запросе к сервису формирования документов, первым параметром ВСЕГДА идет сертификат, а вторым формат файла (xml или pdf))
    default: [ ]
    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: Табличные параметры запроса
    default: [ ]
    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
    - name: isForEstimation
    description: Признак необходимости вернуть статистику по запросу в качестве результата. В случае, если оценка по результату исполнения sql запроса не превышает rowCountThreshold записей, должен сразу отдаваться результат без отправки оценки в ядро
    type: boolean
    default: false
    - name: rowCountThreshold
    description: Максимальное оценочное количество строк результата, при превышении которого возвращается статистика по запросу. Если оценка по запросу не превышет данный параметр, витрина сразу возвращает ответ с результатом. Заполняется в случае isForEstimation = true
    type: long
    default: -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