Настройка периода хранения исторических данных в базе

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (5)

просмотр истории страницы
{toc:maxLevel=32}

h1. Как работает архивирование (партиционирование БД)
* *ArchAccountStack* - [детализация расхода|CarbonBilling:Детализация расхода]
* *VoipLog* - [детализация телефонного трафика|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=65798996#%D0%A1%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA%D0%B8%D1%83%D1%81%D0%BB%D1%83%D0%B3.%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%22%D0%A0%D0%B0%D1%81%D1%85%D0%BE%D0%B4%22.-%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%22Voip%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%22]
* *RadiusSessions* - история radius-сессия (не отражается в веб-интерфейсе, требуется предоставлять выгрузку по запросу правоохранительных органов)

Объём данных, сохраняемых в основной базе, можно настроить указав количество месяцев "*month_cnt*" в конфигурационном файле демона, отвечающего за разбиение базы:
h3. Получить данные по звонкам абонента

Получить данные по звонкам абонента ID 2673, 1481, совершенным в январе 2020 август 2023 года:
# Проверьте, что БД с архивом звонков есть на диске. Если её нет, восстановите её из [резервной копии|Система резервного копирования. Описание, настройка и создание резервных копий.]:
{code}
ls /app/asr_billing/var/db/billing/202308/voip_log.fdb
{code}
# Команда выведет все звонки на экран:
{code}
chroot /app/asr_billing/ sqlexec /var/db/billing/202308/voip_log.fdb "set list on; select * from voip_log where abonent_id=1481 and s_time between '2023-08-01 00:00:00.0000' and '2023-08-31 23:59:59.0000' order by S_TIME"
{code}
# Если требуется сохранить данные в текстовый документ, используйте следующую команду
{code}
chroot /app/asr_billing/ sqlexec /var/db/billing/202308/voip_log.fdb "set heading off; select SRC, DST, S_TIME, E_TIME, V_TYPE_ID, SRC_CHAN, DST_CHAN from voip_log where abonent_id=1481 and s_time between '2023-08-01 00:00:00.0000' and '2023-08-31 23:59:59.0000' order by S_TIME" | sed '/^$/d' | sed 's/ * /;/g' > /root/voip_archive_log.csv
{code}

{code}sqlexec -l /var/db/billing/202001/voip_log.fdb "select * from voip_log where abonent_id=2673 s_time between '2020-01-01' and '2020-02-01'"{code}

Если требуется сохранить данные в текстовый документ, используйте следующую команду
{code}sqlexec -l /var/db/billing/202001/voip_log.fdb "select * from voip_log where abonent_id=2673" > /root/voip_archive_log.csv{code}

При использовании команды (*>*) конечный файл /root/voip_archive_log.csv будет перезаписываться, после каждого выполнения команды.
Для дополнения, ранее созданного файла необходимо использовать (*>>*)