Инструкция пользователя: Экстрактор данных 1С в ClickHouse
Название
Экстрактор данных 1С в ClickHouse
https://github.com/kimkarus/Extractor_1C_Clickhouse
Краткое описание
Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouse. Это дополнительная подключаемая обработка.
Описание
Обработка рассчитана на опытных пользователей 1С тех, кто знает, что такое СКД и конфигуратор 1С. Если вы не из таких, обратитесь к соответствующему специалисту.
В инструкции нет картинок.
Все настройки вписываются внутрь самой обработки и в параметры СКД.
В обработке нет кода для обхода RLS.
Результат работы обработки
- Создать базу данных ClickHouse, если есть права и ее нет.
- Создать таблицу данных по имени запроса.
- В фоновом режиме исполнить добавленные макеты запросов по добавленным командам.
Требования
- Должная быть открытая для соединений база ClickHouse.
- Должен быть пользователь базы, который может делать INSERT в базу.
- Лучше заранее создать необходимое для вас имя базы.
- Должно быть право использовать и добавлять дополнительны обработки в информационную базу.
- В запросах рекомендуется использовать “ВЫБРАТЬ РАЗРЕШЕННЫЕ” (несмотря на то, что исполнение фоновое), чтобы не попадать на проблемы с правами по модели RLS.
Особенности
- Используется тип таблиц “ReplacingMergeTree”, что означает замещение не ключевых значений новыми значениями.
- Не использовать поле “Период” в выходном слое отчета.
- Параметры не формат даты должны быть предопределены.
- Заранее указать форматы для данных, которые не следует рассматривать, как ключи.
- Если формат данных в СКД не указать, то обработка будет воспринимать это поле, как ключевое значение и строковое.
- Все строковые поля попадут в ключи.
- Если изменилась структура запроса, то добавьте новую команду в интерфейс. Обработка не умеет переделывать таблицы под ваш запрос. Обработка не добавляет новые колонки.
Установка
Настройка параметров
Открываем обработку в режиме конфигуратора.
Действия -> Открыть модуль объекта
Процедура “СведенияОВнешнейОбработке”
Удаляем не наши “ДобавитьКоманду” и оставляем одну, чтобы по образу и подобию добавить свою фоновую задачу выгрузки.
Команда выглядит следующим образом:
ДобавитьКоманду(ТаблицаКоманд, "БросаниеВагоновТип фоновое", "Синхронизация1C_ClickHouseНаСервере_БросаниеВагоновТип" , "ВызовСерверногоМетода");
“ТаблицаКоманд” – системная таблица команд обработки. Из это таблицы в интерфейсе информационной базы 1С будет показывать наши добавленные команды таким образом.
“БросаниеВагоновТип фоновое” – Видимое и понятное имя команды для пользователя
“”Синхронизация1C_ClickHouseНаСервере_БросаниеВагоновТип” – Системное имя команды, по которой ориентируется обработка.
Здесь важно отметить, что нижние подчеркивания “_”, это функциональная и обязательная часть имени. Всего должно быть 2 подчеркивания всегда.
“_БросаниеВагоновТип” – После второго подчеркивания, это имя запроса, который мы положили в макеты обработки.
Функция ЗаполнитьПараметры
Здесь указываем параметры подключения к нашему серверу, где хранится наша уже созданная база данных или нет.
Функция ЗаполнитьПараметры() Экспорт ТекущаяДата = ТекущаяДата(); СтруктураПараметры = Новый Структура; СтруктураПараметры.Вставить("Адрес", "IP"); СтруктураПараметры.Вставить("Порт", 8123); СтруктураПараметры.Вставить("Логин", "default"); СтруктураПараметры.Вставить("Пароль", "password"); СтруктураПараметры.Вставить("ИмяБазы", "db_name"); СтруктураПараметры.Вставить("ИмяТаблицы", "БросаниеВагоновТип"); СтруктураПараметры.Вставить("ДатаНачала", ДатаДнейНазад(ТекущаяДата, 1)); СтруктураПараметры.Вставить("ДатаОкончания", КонецДня(ТекущаяДата)); Возврат СтруктураПараметры; КонецФункции
Добавление отчетов на основе СКД
Макеты -> Добавить
Формируем или вставляем наш запрос.
Требования
Добавить в параметры своего отчета
Всегда использовать Период, как дату, а не стандартный период в параметрах СКД.
КоличествоДнейНазад – за какое количество дней формировать отчет и обновлять записи в базе. По умолчанию = 1
Начало и окончание дат периода должны быть обозначены Дата1 и Дата2.
Остальные примеры для месяца и дня смотри функцию ВернутьДату_Запрос_НаСервере
Добавление обработки в информационную базу
Администрирование -> Дополнительные обработки и отчеты
Добавить из файла.
Для добавленных команд в таблицу команд, будет возможность использовать их как фоновое задание. Отмечаем галочками и выставляем расписание исполнения.
Как только сохраните обработку в таком виде, запустятся столько фоновых здание, сколько отметите галками.
Чтобы запустить вручную каждое, необходимо зайти в Администрирование -> Обслуживание -> Регламентные и фоновые задания.
Общая форма обработки не предусмотрена. Используйте команды и кнопки для взаимодействия по образу и подобию из нашей “боевой” обработки.
Have fun!