Видалення документів з S3 Ceph-бакетів і Redis

1. Огляд

Цей документ описує процедуру видалення документів, пов’язаних із завершеними бізнес-процесами, з S3 Ceph-бакетів і Redis. Процес включає генерацію списку активних бізнес-процесів, роботу з утилітою для видалення та налаштування параметрів для її запуску.

2. Кроки для видалення документів

  1. Генерація CSV-файлу з активними бізнес-процесами.

    У поді operational-instance реєстру увійдіть до бази даних camunda і виконайте SQL-скрипт, що згенерує CSV-файл з ID та start-form-document-key активних інстансів бізнес-процесів. Ці ключі НЕ повинні бути видалені.

    psql
    \c camunda
    
    COPY (select ae.id_ "process-instance-id", arv.text_ "start-form-document-key"  from act_ru_execution ae left join act_ru_variable arv on ae.id_ = arv.proc_inst_id_ and arv.name_ = 'start_form_ceph_key' where ae.parent_id_ is null) TO '/tmp/process_instance_ids.csv' csv header;
  2. Копіювання згенерованого CSV-файлу на локальну машину.

    Після генерації файлу /tmp/process_instance_ids.csv, скопіюйте його на локальну машину за допомогою наступної команди:

    oc cp --retries=-1 operational-instance-pod:/tmp/process_instance_ids.csv ./process_instance_ids.csv
  3. (Опціонально) Встановлення OpenJDK.

    Якщо у вас ще не встановлений OpenJDK, це можна зробити на цьому етапі.

  4. Завантаження утиліти для очищення сховищ.

    Завантажте останню версію утиліти: storage-cleanup-cli-1.4.0-20240920.130342-1.jar.

  5. Режими роботи утиліти.

    Утиліта підтримує три основні режими роботи:

    • dry-run: зчитує CSV-файл з активними екземплярами процесів та ідентифікує ключі, які потрібно видалити, але не здійснює фактичного видалення. Ідентифіковані ключі записуються у CSV-файли для Ceph і Redis.

    • remove-only: використовується для видалення ключів, які визначено на етапі dry-run. Не потребує повторної ідентифікації ключів.

    • full-run: зчитує CSV-файл з активними екземплярами процесів, ідентифікує та видаляє непотрібні ключі. Результати записуються у ті ж CSV-файли, що й при dry-run.

  6. Запуск утиліти.

    Запустіть утиліту з наступними параметрами:

    java -jar storage-cleanup-cli.jar
             --execute-mode=<arg>
             --running-processes-csv-file=<arg>
             --s3-ceph-url=<arg>
             --lowcode-file-storage-secret-key=<arg>
             --lowcode-file-storage-access-key=<arg>
             --lowcode-form-data-storage-secret-key=<arg>
             --lowcode-form-data-storage-access-key=<arg>
             --ceph-removal-output-csv-file=<arg>
             --redis-url=<arg>
             --redis-secret=<arg>
             --redis-removal-output-csv-file=<arg>
             --removal-batch-size=<arg>
             --log-output=<arg>

3. Опис параметрів утиліти

Утиліта storage-cleanup-cli підтримує наступні параметри конфігурації:

  • --execute-mode=<режим>: виберіть режим роботи утиліти (dry-run, remove-only або full-run).

  • --running-processes-csv-file=<шлях>: шлях до CSV-файлу з активними екземплярами процесів.

  • --s3-ceph-url=<URL>: URL для Ceph сховища. Якщо не вказано, документи з Ceph не будуть видалені.

    Необов’язково, якщо надано Redis URL.
  • --lowcode-file-storage-secret-key=<ключ>: секретний ключ для кошика lowcode-file-storage.

    Необов’язково.
  • --lowcode-file-storage-access-key=<ключ>: ключ доступу для кошика lowcode-file-storage.

    Необов’язково.
  • --lowcode-form-data-storage-secret-key=<ключ>: секретний ключ для кошика lowcode-form-data-storage.

    Необов’язково.
  • --lowcode-form-data-storage-access-key=<ключ>: ключ доступу для кошика lowcode-form-data-storage.

    Необов’язково.
  • --ceph-removal-output-csv-file=<шлях>: шлях до CSV-файлу для зберігання ключів Ceph, що підлягають видаленню.

  • --redis-url=<URL>: URL для Redis сховища. Якщо не вказано, документи з Redis не будуть видалені.

    Необов’язково, якщо надано Ceph URL.
  • --redis-secret=<секрет>: пароль для Redis.

  • --redis-removal-output-csv-file=<шлях>: шлях до CSV-файлу для зберігання ключів Redis, що підлягають видаленню.

  • --removal-batch-size=<значення>: розмір пакета для операцій видалення. За замовчуванням: 1000.

  • --log-output=<шлях>: шлях до файлу з логами, що створюється після виконання утиліти. За замовчуванням: s3-storage-cleanup-cli.log.

4. Додаткові інструкції