Жичкин Дмитрий

1456
Рейтинг

zhichkin
Дмитрий Жичкин



  •   Регистрация: 08.06.2015 (8 лет назад)

  •   Был(а) на сайте: вчера в 10:54

Друзья
  • Danil Potapov
  • Алексей Потехин
  • Павел Апарин
  • Elena Duyun
  • Дмитрий Котов
  • Алик Трахман
  • Евгений Комиссаров
  • Таня Татьяна
  • Andpyxa Тюtюнниk
  • Sergey S
  • Андрей Карпов
  • Сергей Космачев
  • Михаил Вдовин
  • Алексей Орловский
  • Василина Соболева
Подписчики 148

Группы

Профессиональный разработчик

IE 2017 Докладчик

IE 2019 Докладчик

Участник Meetup

IE 2021 Online

Лауреат Infostart Awards

IE2021_msk Online

IE2023 Докладчик

Рейтинг 1456

DaJet Stream Service: сервис обмена данными 24/7/365

Инструменты и обработки Программист Платформа 1С v8.3 Абонемент ($m) Архив с данными Перенос данных 1C

Кросс-платформенный хост (служба/сервис/демон) для многопоточного выполнения скриптов DaJet Stream в режиме 24/7/365 (потоковый обмен данными).

1 стартмани

01.04.2024    463    3    zhichkin    0       

6

DaJet Stream: RabbitMQ

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла WEB-интеграция

Команды CONSUME и PRODUCE языка запросов DaJet Stream

17.03.2024    620    zhichkin    0       

5

DaJet Stream: Apache Kafka

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла WEB-интеграция

Команды CONSUME и PRODUCE языка запросов DaJet Stream.

16.03.2024    783    zhichkin    0       

5

DaJet Stream: потоковый обмен данными

Статья Программист Бесплатно (free) Нет файла Перенос данных 1C

Проект DaJet Stream предлагает обсудить возможную альтернативу и развитие типовой практики использования конвертации данных. В основу проекта легли современные концепции потоковой обработки и обмена данными, реализованные в таких продуктах как, например: Apache Kafka Streaming, Azure U-SQL, Apache Spark Structured Streaming и тому подобных.

13.02.2024    1507    zhichkin    0       

16

Скрипты DaJet Stream для обмена данными (первое знакомство)

Видео Интеграция

Новый проект DaJet Stream для потокового обмена данными при помощи скриптов. Один скрипт описывает и полностью реализует обмен точка-точка между двумя базами данных. Сценарии использования, рассмотренные в данном видео: 03:15 Выгрузка РС — РС (одна база для тестов) 13:12 Выгрузка РС — РС (обмен между двумя базами) 19:34 Выгрузка РС — РС (несколько баз получателей) 22:15 Выгрузка РС — РС (обновление статуса отправки) 25:57 Выгрузка РС — РС (удаление записей после отправки) 29:27 Выгрузка план обмена — РС (конвертация данных) 38:09 Формирование сложного JSON 45:15 Параллельная выгрузка (многопоточная) P.S. "РС" в тексте выше обозначает регистр сведений, используемый в качестве очереди сообщений.

09.02.2024    353    zhichkin    0       

0

DaJet Flow: проектирование конвейеров потоковой обработки данных, обменов данными и интеграции

Видео

DaJet Flow: проектирование конвейеров. На примере учебного проекта dajet-flow-tutorial, исходный код которого опубликован на GitHub, мы научимся проектировать конвейеры потоковой обработки данных DaJet Flow. Разберём исходный код учебного проекта и узнаем какие виды блоков конвейера мы можем самостоятельно создавать: - простые, - условные, - итеративные, - транзакционные, - асинхронные. Научимся синхронизировать работу блоков конвейера между собой в транзакционных и асинхронных сценариях обработки данных.

14.12.2023    420    zhichkin    0       

1

DaJet Flow: многопоточный контекст выполнения плагинов и внедрение зависимостей

Видео Интеграция

1. Описание контекста выполнения и общей архитектуры DaJet Flow. 2. Внедрение зависимостей (программных сервисов) в плагины DaJet Flow. 3. Взаимодействие плагинов между собой через контексты пайплайна, менеджера пайплайнов и глобальный контекст сервера.

05.12.2023    350    zhichkin    0       

1

DaJet Flow: подсистема настроек

Видео

Видео-урок о подсистеме настроек платформы DaJet и разработке пользовательских настроек для плагинов DaJet Flow в Visual Studio 2022 на C#.

29.11.2023    439    zhichkin    0       

1

DaJet Flow: разработка плагинов

Видео Интеграция

Видео-урок по созданию плагинов для DaJet Flow в Visual Studio 2022 на C#.

29.11.2023    349    zhichkin    0       

1

Комментарии

ОбменDaJet Stream: HTTP сервисы#2 04.04.24 19:58
(1) Хороший вопрос. Я думал над этим и пока отложил реализацию такой безусловно полезной возможности.
Сейчас это реализовано в языке запросов DaJet следующим образом.
Мы уже с Вами начали обсуждение работы с JSON в скриптах DaJet Stream... Создайте, пожалуйста, новый issue на GitHub именно по этой задаче - передача массива объектов JSON как табличного параметра в запрос SQL. Я в принципе планировал это сделать. Просто чтобы не забылось =)
HighLoad[Замер] Кто самый быстрый в конфигураторе?#21 02.04.24 17:10
(20) Конечно же есть =) Если коротко, то есть такой объект СУБД SEQUENCE (реализован как в SQL Server, так и в PostgreSQL). Подробнее могу рассказать здесь
ОбменDaJet Stream Service: сервис обмена данными 24/7/365#0 31.03.24 16:07
Кросс-платформенный хост (служба/сервис/демон) для многопоточного выполнения скриптов DaJet Stream в режиме 24/7/365 (потоковый обмен данными).
HighLoad[Замер] Кто самый быстрый в конфигураторе?#17 29.03.24 1:50
Статья размещена а разделе highload. По этой причине, прошу не судить строго, но считаю необходимым добавить следующее.
Оба способа формирования очереди исходящих сообщений, описанные в статье, на уровне СУБД выполняют команду INSERT в кластерный индекс. Это очень важный момент!
Идеальным кластерным индексом в таком сценарии использования должен быть индекс, имеющий следующие требования к своему первичному ключу:
1. Минимально возможный размер.
2. Последовательный рост значений.
Например, таким идеальным ключом является число, но точно не случайно генерируемый уникальный идентификатор.
На практике при highload обменах обычного integer (4 байта) не хватает (примерно 4 млрд. значений). Используется тип biginteger (8 байт).
Таким образом, для 1С идельным регистром сведений, который используется как таблица-очередь, является независимый регистр сведений, имеющий одно измерение с типом данных Число(15,0) - 7 байт для SQL Server и 8 байт для PostgreSQL.
Как "заставить" 1С генерировать достаточно быстро последовательные числа в высоко конкурентной среде... это отдельная тема =)
Кроме всего прочего очень важным вопросом является именно последовательное потребление записей из таблиц-очередей с дальнейшим их удалением из того же самого кластерного индекса...
HighLoad[Замер] Кто самый быстрый в конфигураторе?#11 28.03.24 17:50
(5) В своё время использовал именно справочники для регистрации исходящих сообщений. Однако, если в конфигурации используется подсистема БСП "Управление доступом", то это, при каждой записи элемента такого справочника, порождает дополнительные накладные расходы и нагрузку, что вообще неочевидно. Приходится как-то шаманить и что-то с этим делать. В итоге решил для себя использовать запись в регистры сведений в режиме вставки. Подробнее в моём комментарии (9)
HighLoad[Замер] Кто самый быстрый в конфигураторе?#9 28.03.24 17:10
Спасибо большое за Вашу работу!

Уточните, пожалуйста, запись набора регистра сведений выполнялась в режиме замещения, то есть получается так, что сначала удаляются все записи в регистре сведений, а затем пишется набор с n-ым количеством записей ?

Самый быстрый вариант записи в регистр сведений был в своё время описан в статье Сергея Носкова.
Код выглядит вот так (объяснение в статье по ссылке):
Код
Набор.ОбменДанными.Загрузка = Истина;
Набор.Записать(Ложь);

Обычно для регистрации исходящих данных к обмену при высоко нагруженных базах используют именно этот вариант записи в регистр сведений (в режиме вставки).
ОбменDaJet Stream: RabbitMQ#0 17.03.24 8:00
Команды CONSUME и PRODUCE языка запросов DaJet Stream
ОбменDaJet Stream: Apache Kafka#0 16.03.24 8:00
Команды CONSUME и PRODUCE языка запросов DaJet Stream.
ОбменDaJet Stream: HTTP сервисы#0 15.03.24 17:00
Команда REQUEST языка запросов DaJet Stream.
ОбменПоинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?#28 12.03.24 12:54
Добрый день! Прошу прояснить некоторые моменты.

1. Не совсем понял термин "внешние сервисы интеграции". Ясно, что это что-то вне текущей информационной базы, но что конкретно ?

2. Не совсем понятно как связаны между собой таблицы:
- IntegServiceMsgBody
- IntegServiceExtMsgBody
- IntegChannelInQueue
- IntegChannelOutQueue

Из статьи следует, что тела сообщений хранятся в таблицах IntegChannelInQueue и IntegChannelOutQueue. А для чего тогда таблицы IntegServiceMsgBody и IntegServiceExtMsgBody и что в них хранится ?

3. При получении каналов мы обращаемся куда-то с портом 9090. Это что такое ? И куда мы обращаемся ?

4. Как работает 1С:Шина на забор сообщений из ИБ 1С ? Это PUSH или PULL со стороны ИБ ? Я так понял, что пока мы не запустим регламентное задание на стороне ИБ в 1С:Шину ничего не уедет. Регламентное задание "пихает" (push) сообщения в 1С:Шину ? Вероятно как раз-таки вот в этот загадочный сервис с портом 9090 ?

5. Как работает 1С:Шина на отправку сообщений в ИБ 1С ? Это PUSH или PULL со стороны 1С:Шины ? То есть она сама пишет ИБ 1С ? Через что она это делает: кластер 1С или напрямую в БД ? Или опять же через тот самый сервис с портом 9090 ?

Спасибо заранее за ответы.