replication.in.rq

replication.in - Топик запросов к витрине потребителя на формирование хранилищ реплик.

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

createReplicationStorageRequestMessage:
  description: Запрос к витрине потребителя на формирование хранилища реплик
  schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
  bindings:
    kafka:
      key:
        type: string
        format: uuid
        description: Уникальный идентификатор подзапроса
  headers:
    type: object
    properties:
      AGENT_CONSUMER_ID:
        description: Идентификатор агента потребителя
        type: string
  payload:
    $ref: '#/components/schemas/createReplicationStorageRequest'
  examples:
    - name: replication
      headers:
        AGENT_CONSUMER_ID: agent-oktmo
      payload:
        requestId: 2e8c8ab2-44db-4dcb-8ae5-2365121b4e14
        subRequestId:
          string: 00000000-0000-0000-0000-000000000000
        subscriptionId: dcf43fc7-e152-459b-8af5-48d91d4b6a21
        datamartMnemonic: oktmo
        lastSynId: 10
        table:
          tableId:
            string: 00000000-0000-0000-0000-000000000000
          tableName:
            string: tab
          sql:
          string: select * from v1_addrobj
          fields:
            - name: oktmo
              type: VARCHAR
              length: null
              precision: null
              scale: null
              primaryKey: null
              shardingKey: null

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

createReplicationStorageRequest:
  schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
  type: record
  name: CreateReplicationStorageRequest
  namespace: ru.rtlabs.common.replication.storage
  fields:
    - name: requestId
      description: Уникальный идентификатор запроса регистрации
      type:
        type: string
        logicalType: uuid
    - name: subRequestId
      description: Идентификатор подзапроса, идентифицирует одно взаимодействие типа запрос-ответ
      default: null
      type:
        - 'null'
        - type: string
          logicalType: uuid
    - name: subscriptionId
      description: Уникальный идентификатор подписки
      type:
        type: string
        logicalType: uuid
    - name: datamartMnemonic
      description: Наименование целевого датамарта, приходит в ПОДД в момент регистрации подписки через ЕИП
      type: string
    - name: lastSynId
      description: Последний id синхронизации в витрине
      type: int
      default: 0
    - tables:
      description: Структура таблиц хранения реплик
      default: []
      type:
        type: array
        items:
          type: record
          name: ReplicationTableInfo
          namespace: ru.rtlabs.common.replication.storage
          fields:
            - name: tableId
              description: Идентификатор таблицы
              default: null
              type:
                - 'null'
                - type: string
                  logicalType: uuid
            - name: tableName
              description: Наименование таблицы
              type:
                - 'null'
                - type: string
            - name: sql
              description: sql, для которого должна быть создана таблица
              default: null
              type:
                - 'null'
                - type: string
            - name: fields
              description: Поля таблицы
              type:
                type: array
                items:
                  type: record
                  name: ReplicationFieldInfo
                  namespace: ru.rtlabs.common.replication.storage
                  description: Описание поля таблицы
                  fields:
                    - name: name
                      description: Имя поля
                      type: string
                    - name: type
                      description: Тип поля
                      type: string
                    - name: length
                      description: Максимальная длина строки, если пусто, то нет ограничений
                      type:
                        - int
                        - 'null'
                    - name: precision
                      description: Количество значимых цифр у decimal и numeric. Т.е. количество в целой части + количество в дробной части. Если пусто, то без размера
                      type:
                        - int
                        - 'null'
                    - name: scale
                      description: \use only PODD\ Масштаб decimal и numeric. Т.е. количество значимых цифр в дробной части. Если пусто, то нет дробной части
                      default: null
                      type:
                        - 'null'
                        - int
                    - name: primaryKey
                      description: Порядковый номер поля (начиная с 0) в составе первичного ключа. null - если не входит в состав первичного ключа
                      type:
                        - int
                        - 'null'
                    - name: shardingKey
                      description: Порядковый номер поля (начиная с 0) в составе ключа шардирования. null - если не входит в состав ключа шардирования
                      type:
                        - int
                        - 'null'