Платформа "1С:Предприятие" 8.3.14
15.11.2018

Использование "Дата акселератора"

В составе платформы "1С:Предприятие" версии 8.3.14 доступны два новых механизма для работы с данными:

Совместное использование этих механизмов позволяет:

Технология Дата акселератора реализована в виде сервиса кластера серверов "1С" и обладает рядом специфических особенностей:

1. Требования к среде для работы сервиса

Сервис недоступен при использовании режима совместимости 8.3.13 и ниже.
Минимальные системные требования:

Фактический объем потребляемой оперативной памяти будет зависеть от выполняемых запросов и объема таблиц, размещенных в Дата акселераторе.

1.1. Изменение стратегии управления памятью в Linux

За стратегию управления выделением памяти отвечает параметр overcommit_memory. Значение по умолчанию – 0.

Необходимо установить значение 1 (всегда выделять столько памяти, сколько просит приложение). Устанавливается с помощью команды sudo sysctl -w vm.overcommit_memory=1. Проверить можно с помощью команды sudo cat /proc/sys/vm/overcommit_memory.

Для того чтобы политика выделения памяти оставалась такой же и после перезагрузки сервера необходимо сделать следующее:

  1. Создать файл в каталоге /etc/sysctl.d/
  2. Создать в нем файл 40-dbda.conf
  3. В файле указать vm.overcommit_memory=1
  4. Перезагрузить сервер.
  5. Проверить состояние. sudo cat /proc/sys/vm/overcommit_memory должен вернуть 1.

1.2. Управление файлом подкачки

Управление файлом подкачки осуществляется через дополнительные параметры системы в свойствах компьютера. Нажимаем кнопку Параметры в секции Быстродействие.

В открывшемся окне на вкладке Дополнительно находим секцию Виртуальная память и нажимаем кнопку Изменить.

Выбираем диск для размещения файла подкачки. Выбираем переключатель Указать размер. Указываем размер файла подкачки (и минимальный, и максимальный). Нажимаем кнопку Задать, затем ОК. Выполняем перезагрузку компьютера.

2. Варианты развертывания сервиса "Дата акселератора"

Возможны два основных варианта развертывания сервиса Дата акселератора:

3. Управление копиями баз данных

Для управления копиями баз данных необходимо через меню Все функции вызвать соответствующую стандартную обработку.

В открывшемся окне можно управлять копиями баз данных и составом метаданных, хранящихся в них.

Важно обратить внимание на следующие параметры:

Справа, в дереве метаданных, необходимо указать те объекты метаданных, для которых будет создана копия.

При нажатии на кнопку Обновить копию начнется обновление текущей выделенной копии базы данных. Обновление копии выполняется в синхронном вызове, т.е. клиентское приложение после нажатия кнопки не будет отвечать, пока не будет полностью выполнен перенос данных. По окончании переноса клиентское приложение снова станет доступно.

Параллельное обновление копий баз данных невозможно. При попытке выполнения одновременного обновления будет возвращена ошибка "Параллельное обновление копии невозможно".
Для управления копиями баз данных из встроенного языка необходимо использовать менеджер "КопииБазыДанных".

4. Использование возможностей "Дата акселератора".

Использование возможностей Дата акселератора доступно только:

Разработчик или пользователь указывает требования к запрашиваемым данным через свойства запроса или отчета. Требования задаются через свойства Требуемая актуальность данных и Требуемое время актуальности данных. Сервис копий баз данных решает, на какой базе будет выполняться запрос. Перед выполнением запроса проверяются следующие условия возможности его выполнения на копии базы данных:

В схеме компоновки данных за использование копии базы данных отвечают параметры Требуемая актуальность данных и Требуемое время актуальности данных на закладке Дополнительные настройки. Параметры Выводить актуальность данных и Выводить копию базы данных позволяют увидеть, где фактически выполнился запрос. Информация выводится в шапке отчета.

В запросе за использование копии баз данных отвечают свойства:

В результате запроса есть свойство КопияБазыДанных, в котором указывается имя копии, на которой выполнен запрос.

Определить, что запрос или отчет выполнялся Дата акселератором можно с помощью технологического журнала по событию "DBDA". Если копия базы данных расположена не в Дата акселераторе, то имя события в технологическом журнале будет соответствовать типу СУБД.

5. Автоматическое добавление объектов метаданных в копию

Для того чтобы отчет мог выполниться на копии, необходимо чтобы все таблицы, используемые при формировании отчета, были расположены в копии базы данных. Отчеты могут обращаться к множеству объектов метаданных. В некоторых случаях эти объекты метаданных могут явно не встречаться в тексте запроса на языке "1С", поэтому настройка списка объектов метаданных для размещения в копии может вызывать трудности.

Для упрощения этой процедуры можно воспользоваться обработкой Подбор таблиц для Дата акселератора. Она позволяет настроить копию несколькими способами:

По полученным данным обработка выбирает для копирования в копию необходимые объекты метаданных и запускает процесс обновления данных в копии так, чтобы она была готова к выполнению запроса.
Ниже приводится инструкция для сбора данных и использования этой обработки.

5.1. Сбор информации о запросах

5.1.1. Из технологического журнала

Необходимо узнать тип СУБД, на котором размещена база данных. Для этого можно воспользоваться консолью администрирования, посмотрев свойства информационной базы.

Далее потребуется понять, к каким таблицам идет обращение на СУБД при выполнении отчета. Сделать это можно с помощью технологического журнала. Ознакомиться с тем, что такое технологический журнал можно по ссылке https://its.1c.ru/db/v83doc#bookmark:adm:TI000000446

Настройки технологического журнала (logcfg.xml):

Копировать в буфер обмена
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log history="48" location="[ПутьКТехнологическомуЖурналу]">
<event>
<eq property="Name" value="[ИмяСобытия]"/>
<like property="Context" value="%[ИмяОтчета]%"/>
</event>
<property name="all"/>
</log>
</config>

В конфигурационном файле необходимо указать следующие параметры:

Если база продуктивная (параллельно работают другие пользователи) или в кластере зарегистрировано несколько информационных баз, то необходимо установить дополнительные отборы для свойств "processName" или "Usr" - например, добавив следующую строку в секцию event:

Копировать в буфер обмена
<eq property="USR" value="[ИмяВашегоПользователя]"/>
Выполняем отчет один раз. Убеждаемся, что в каталоге технологического журнала появился каталог рабочего процесса (rphost), содержащий не пустой файл логов.

5.1.2. Из текста запроса

Найдите нужный текст запроса в конфигурации. Получите его текст запроса и скопируйте в буфер обмена.

5.1.3. Из отчета конфигурации

Определите имя отчета в терминах метаданных конфигурации.

5.2. Добавление таблиц в копию

Необходимо воспользоваться обработкой Подбор таблиц для Дата акселератора.

В поле Имя базы в Дата акселераторе необходимо указать имя копии базы данных. Можно указать как имя существующей копии, так и имя новой копии – при необходимости обработка создаст новую копию. Существующую копию можно выбрать по кнопке выбора.

В зависимости от выбранного способа получения информации о запросах в п 5.1. выполняем следующие действия:

Нажимаем кнопку Добавить таблицы и обновить копию. Обработка выполнит анализ текстов запросов, затем найдет соответствующие имена объектов метаданных, выполнит поиск копии базы данных по указанному ранее имени (в случае отсутствия создаст копию), добавит таблицы в копию и вызовет перенос данных.

По окончании работы в нижней табличной части будет указан список метаданных в терминах "1С" и СУБД, а также выдана информация о произведённых действиях или сообщение об ошибке в случае ее возникновения.

5.3. Проверка выполнения отчета в копии баз данных

Убедитесь, что в дополнительных настройках СКД указаны параметры Требуемая актуальность данных, Требуемое время актуальности данных, Выводить актуальность данных и Выводить копию базы данных.

Запустите выполнение отчета.

По окончании его формирования в заголовке табличного документа будет указана копия базы данных, из которой получены данные и дата актуальности данных.

Если в заголовке указано "Копия базы данных: не используется", значит, отчет был выполнен в основной базе. В таком случае проверьте настройки СКД на закладке Дополнительные настройки.

6. Примеры настроек

Данные о конфигурации кластера:

Настраиваем требования назначения функциональности (см. раздел 2):

Применяем настроенные требования.

6.1. Пример для выполнения запроса в "Дата акселераторе"

  1. С помощью стандартной обработки "Управление копиями баз данных" создаем копию с признаком "Встроенный Дата акселератор" - "Да"

  2. Выбираем объекты метаданных, которые будут размещены в копии базы данных.
  3. Нажимаем кнопку Обновить копию. Ждем окончания переноса данных.
  4. Проверяем выполнение запроса из встроенного языка с признаком "Требуемая актуальность данных" = "Любые". Если таблица не была изменена с момента переноса данных, то в результате выполнения запроса будет возвращено имя копии баз данных, в которой выполнился запрос.

6.2. Пример для выполнения отчета в "Дата акселератор".

  1. Выбираем отчет. Например, "Ведомость по товарам на складах" в конфигурации ERP 2.4.4.
  2. Настраиваем технологический журнал для получения запросов отчета: Копировать в буфер обмена

    <?xml version="1.0"?>
    <config xmlns="http://v8.1c.ru/v8/tech-log">
    <log history="48" location="C:\techlogs\Report">
    <event>
    <eq property="Name" value="DBMSSQL"/>
    <like property="Context" value="%Отчет.ВедомостьПоТоварамНаСкладах%"/>
    </event>
    <property name="all"/>
    </log>
    </config>
  3. Выполняем отчет. Полученный текст технологического журнала вставляем в обработку "Подбор таблиц для Дата акселератора". Указываем имя копии базы в поле Имя базы. Жмем на кнопку Добавить отчеты и обновить копию. Дожидаемся завершения выполнения команды.
  4. Открываем отчет "Ведомость по товарам на складах". Переходим в Еще - Прочее - Изменить вариант отчета.
  5. Открываем вкладку Дополнительные настройки. Указываем настройки:
    • Требуемая актуальность данных = Любые;
    • Требуемое время актуальности данных = 86400;
    • Выводить актуальность данных = Выводить;
    • Выводить копию базы данных = Выводить
  6. Нажимаем кнопку Сформировать. Ждем завершения выполнения отчета. В шапке должно быть указано имя копии базы данных.

7. Устранение неполадок

  1. Возникновение ошибки "Exception caught: bad allocation"

    Ошибка возникает, потому что для выполнения операции не хватило виртуальной памяти. Проблема решается в зависимости от используемой операционной системы:

    • Операционная система семейства Windows:
      • Если ошибка возникает при выполнении запроса или отчета, попробуйте удалить из копии баз данных неиспользуемые таблицы.
      • Попробуйте увеличить размер файла подкачки.
      • Попробуйте увеличить объем оперативной памяти.
    • Операционная система семейства Linux:
      • Проверьте значение параметра overcommit_memory с помощью команды sudo cat /proc/sys/vm/overcommit_memory, если значение отличается от 1, установите его с помощью команды sudo sysctl -w vm.overcommit_memory=1.
      • Попробуйте увеличить объем оперативной памяти.
  2. Отчет или запрос не выполняется в копии базы данных

    Такая проблема может возникнуть, потому что нет ни одной копии, в которой бы располагались все таблицы, необходимые для выполнения запроса, либо данные в копиях устарели. Способы решения проблемы:

    • Увеличьте значение параметра Требуемое время актуальности данных.
    • Проверьте, все ли таблицы есть в копии. Это можно сделать, например, выполнив поочередное обращение к таблицам с помощью запросов. В свойстве КопияБазыДанных объекта РезультатЗапроса будет указано, на какой копии выполнился запрос.
    • Проверьте текст запроса на языке "1С" и состав объектов метаданных в копии. В некоторых случаях необходимо вручную добавить используемые перечисления и константы.

8. Обращение в техподдержку

В случае, если настройки выполнены корректно, а устранить проблему своими силами не получается, необходимо отправить информацию в техническую поддержку.
Для этого необходимо предоставить следующую информацию:

Отправлять собранные данные необходимо на электронный адрес betaplatform@1c.ru с отметкой "DBDA" в теме письма.
 

ВЫ МОЖЕТЕ ПРЯМО СЕЙЧАС СКАЧАТЬ ОБРАБОТКУ "Подбор таблиц для Дата акселератора"
НА ЖЕСТКИЙ ДИСК ВАШЕГО КОМПЬЮТЕРА

Копировать