Ajuda na conversão ou optimização da Base de Dados

Olá a todos,

Tenho o Home Assistant com o recorder original em sqllite, mas sempre pretendi ter dados com um prazo mais alargado, daí ter configurado o parâmetro “purge_keep_days: 365”

Ao ver a base de dados a aumentar muito, coloquei algumas exclusões, mas dia para dia continua a aumentar imenso e neste momento já vai em 28.9 GB!

Sei da possibilidade de usar o InfluxDB para guardar dados por tempo indeterminado, mas não é a abordagem que mais me agrada, pois gosto da simplicidade da clicar num sensor, poder ir logo ao histórico dele, pesquisar por datas, … Ter que andar com o Grafana e outras voltas para obter esses dados não seria a abordagem por mim desejada!

As minhas dúvidas são:
Há alguma forma de escolher as entidades que queremos ter dados por muito tempo e outras só por uns dias, em vez de só se excluírem, sem usar o influxdb? Coloquei as exclusões, mas com isso também perdi os históricos de alguns dados, que por vezes seriam bons reter nem que fosse por uns dias.

Conhecem alguma forma “offline” de conversão da base de dados Sqlite para MariaDB, que possa executar num servidor ou pc externo? Já segui dois tutoriais diferentes que vi pela net, diretamente no Pi4 (com ssd) mas ambos deram erro e não terminaram a conversão.

Alguma outra sugestão?

Configuração do Recorder:

recorder:
  purge_keep_days: 365
  auto_repack: true
  auto_purge: true
  commit_interval: 2
#  db_url: !secret mariadb_url
  exclude:
    domains:
      - device_tracker
      - media_player
      - uptime
      - time_date
    entity_globs:
      - sensor.date*
      - sensor.time*
      - sensor.uptime*
      - sensor.fibergateway*
      - sensr.tasmota_wifi_connect_count*
      - sensor.tasmota_mqtt_connect_count*
      - sensor.tasmota_last_restart_time*
      - sensor.tasmota_restart_reason*
      - sensor.tasmota_ssid*
    entities:
      - sensor.last_boot
      - sensor.load_15m
      - sensor.load_1m
      - sensor.load_5m
      - sensor.memory_free
      - sensor.memory_use
      - sensor.memory_use_percent
      - sensor.network_in_eth0
      - sensor.network_out_eth0
      - sensor.processor_use
      - sensor.gpu_temperature
      - sensor.pocophone_f1_detected_activity 
      - sensor.battery_level 
      - sensor.pocophone_fatima_detected_activity 
      - sensor.pocophone_fatima_battery_level
      

Usar o state_class onde for possivel.

Fica nos statistics.

Isto para dados futuros.

Ja tentaste fazer um script em python que liga a tua base de dados sqlite e 'a mariadb e simplesmente faz um “select * from table” e ao leres os resultados da sqlite inseres para a mariadb?

O que seguiste e falhou com que erro?


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade