.. _report.rq: report.rq ~~~~~~~~~ .. attention:: Название топика может быть изменено на этапе внедрения! Запрос на генерацию файлов. Одно сообщение - один запрос. Один запрос - один набор параметров (в наборе м.б. много параметров, в параметрах м.б. указано "сгенерируй много форматов файлов на основании одной и той же выборки данных"). **Структура сообщения** .. code-block:: yaml 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-схема сообщения** .. code-block:: yaml 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