Настройка DataSpace для записи в сервис CCI#

Сервис CCI позволяет централизованно использовать данные, находящиеся в разных зональных хранилищах:

  • создается несколько экземпляров приложения, каждый со своим dataspace и БД (шарды);

  • в сервисе CCI создается один или несколько индексов распределения ключей по шардам — CCI-индексы;

  • экземпляр приложения при создании данных добавляет в CCI-индексе привязку ключей создаваемых данных к своему шарду;

  • перед приложением устанавливается маршрутизатор, который по данным в запросе к приложению определяет ССI-индекс и значение ключа, запрашивает в сервисе CCI шард, привязанный к ключу в соответствующем CCI-индексе, и направляет запрос в соответствующий этому шарду экземпляр приложения.

Ключи и связанные с ними CCI-индексы можно разметить в описании модели (файле model.xml) с помощью тега <cci-index>:

  • Пример варианта с простым CCI-индексом по одному атрибуту:

    <class name="Product" label="Агрегат Product, ключ шардирования — ID клиента">
        ...
        <property name="code" type="String"/>
        <reference name="epkId" type="ClientEPK" label="ID клиента"/>
        <reference name="actualOperation" type="PerformedOperation" label="Операция"/>
        ...
        <cci-index name="CCI_Client">
            <property name="epkId"/>
        </cci-index>
        ...
    </class>
    
  • Пример варианта с составным CCI-индексом по нескольким атрибутам:

    <class name="Product" label="Агрегат Product, ключ шардирования — код Региона и ID клиента">
        ...
        <property name="code" type="String"/>
        <property name="regionCode" type="Integer" label="код региона, входит в индекс CCI"/>
        <reference name="epkId" type="ClientEPK" label="ID клиента, входит в индекс CCI"/>
        <reference name="actualOperation" type="PerformedOperation" label="Операция"/>
        ...
        <cci-index name="CCI_RegionClient">
            <property name="regionCode"/>
            <property name="epkId"/>
        </cci-index>
        ...
    </class>
    

Внимание!

Атрибуты, входящие в состав CCI-индекса, становятся обязательными.