---
title: 'Prezentarea modulelor de bază'
section: 'Concepts'
weight: 1
related:
  - basic-modules/advantages
  - architecture/abstract-data-layer
  - basic-modules
  - equipment/equipment-types
---

În Data Platform datele sunt organizate în tabele, care se pot clasifica după principalele module de reprezentare a datelor.

Aceste module descriu cum se îmbină datele brute de măsurare, dispozitivele care le generează, sesiunile de comunicație în care sunt colectate și nomenclatoarele după care sunt clasificate. Tabelele de mai jos prezintă câmpurile principale ale fiecărui modul și cheile străine care leagă modulele între ele.

## Arhive de date

Arhivele de date stochează informații istorice, precum indicatorii dispozitivelor IoT, datele echipamentelor și alte măsurări. Tabelul principal în care se stochează datele arhivelor este `channel_data`.

| Câmp              | Tip                              | Descriere                                          |
| ----------------- | -------------------------------- | -------------------------------------------------- |
| `id`              | `bigint`                         | Identificatorul unic al înregistrării (cheie primară). |
| `equipment_id`    | `bigint`                         | Referință la echipament (`equipment.id`).          |
| `seance_id`       | `bigint`                         | Referință la sesiune (`seances.id`).               |
| `channel_id`      | `bigint`                         | Referință la canal (`channels.id`).                |
| `unit_id`         | `bigint`                         | Referință la unitatea de măsură (`units.id`).      |
| `archive_type_id` | `integer`                        | Referință la tipul de arhivă (`referenceparameters.id`). |
| `event_time`      | `integer`                        | Momentul evenimentului (de ex. marcă temporală).   |
| `value`           | `character varying(100)`         | Valoarea primită de la canal.                      |
| `created_at`      | `timestamp(6) without time zone` | Momentul creării înregistrării.                    |
| `updated_at`      | `timestamp(6) without time zone` | Momentul ultimei actualizări a înregistrării.      |

Acest tabel stochează datele primite de la canalele echipamentelor și asociază fiecare înregistrare, prin chei străine, cu echipamentul, sesiunea, canalul și unitatea de măsură. Astfel, datele pot fi clasificate după aceste atribute pentru analiză și prelucrare ulterioară.

- `equipment_id` face referire la tabelul `equipment`.
- `seance_id` face referire la tabelul `seances`.
- `channel_id` face referire la tabelul `channels`.
- `unit_id` face referire la tabelul `units`.
- `archive_type_id` face referire la tabelul `referenceparameters`.

## Puncte de măsurare

Tabelul `equipment` stochează informații despre echipamentele utilizate în sistem. Acest modul este esențial pentru gestionarea datelor asociate dispozitivelor fizice, precum contoare, senzori, controlere și alte tipuri de echipamente.

| Câmp                | Tip                              | Descriere                                      |
| ------------------- | -------------------------------- | ---------------------------------------------- |
| `id`                | `bigint`                         | Identificatorul unic al înregistrării (cheie primară). |
| `equipment_type_id` | `bigint`                         | Referință la tipul de echipament.              |
| `serial_number`     | `character varying(25)`          | Numărul de serie al echipamentului.            |
| `manufacture_date`  | `timestamp(6) without time zone` | Data fabricației echipamentului.               |
| `installation_date` | `timestamp(6) without time zone` | Data instalării echipamentului.                |
| `program_version`   | `character varying(100)`         | Versiunea de software a echipamentului.        |
| `created_at`        | `timestamp(6) without time zone` | Momentul creării înregistrării.                |
| `updated_at`        | `timestamp(6) without time zone` | Momentul ultimei actualizări a înregistrării.  |

Tabelul `equipment`:

- stochează datele de bază despre echipamente, precum numărul de serie, data fabricației și data instalării;
- utilizează câmpul `program_version` pentru a urmări versiunea software-ului instalat pe echipament;
- utilizează câmpurile `created_at` și `updated_at` pentru a urmări modificările datelor despre echipamente;
- este legat prin chei străine de alte tabele, precum `equipment_types`, `channel_data` și `channels`;
- vă permite să adăugați, să actualizați și să obțineți informații despre echipamentele din sistem.

Modulul de reprezentare a datelor bazat pe tabelul `equipment` permite gestionarea eficientă a informațiilor despre echipamentele din sistem.

Acesta asigură:

- stocarea datelor de bază despre echipamente;
- gestionarea versiunilor de software;
- legătura cu alte entități din sistem.

## Sesiuni de comunicație

Tabelul `seances` stochează informații despre sesiunile de comunicație și despre activitatea echipamentelor. Sesiunile sunt perioade de activitate în care echipamentele schimbă date cu sistemul. Acest modul este esențial pentru gestionarea și analiza datelor asociate sesiunilor de comunicație.

Să examinăm mai îndeaproape acest modul.

| Câmp           | Tip                              | Descriere                                      |
| -------------- | -------------------------------- | ---------------------------------------------- |
| `id`           | `bigint`                         | Identificatorul unic al înregistrării (cheie primară). |
| `telemetry_id` | `bigint`                         | Referință la telemetrie (`telemetry.id`).      |
| `event_time`   | `integer`                        | Momentul evenimentului.                        |
| `evtid`        | `smallint`                       | Identificatorul evenimentului.                 |
| `trycnt`       | `smallint`                       | Numărul de încercări.                          |
| `tryfl`        | `character varying(12)`          | Marcajul încercării.                           |
| `state`        | `smallint`                       | Statusul sesiunii.                             |
| `btm`          | `integer`                        | Starea de încărcare a bateriei.                |
| `rssi`         | `integer`                        | Puterea semnalului (dacă se utilizează).       |
| `created_at`   | `timestamp(6) without time zone` | Momentul creării înregistrării.                |
| `updated_at`   | `timestamp(6) without time zone` | Momentul ultimei actualizări a înregistrării.  |

Modulul `seances` se utilizează pentru:

- stocarea informațiilor despre sesiunile de comunicație și despre funcționarea echipamentelor;
- gestionarea datelor legate de sesiuni (de exemplu, momentul evenimentului, statusul sesiunii, puterea semnalului și starea de încărcare a bateriei);
- analiza sesiunilor, pentru a identifica problemele sau a optimiza funcționarea sistemului;
- gestionarea statusului sesiunii: câmpul `state` vă permite să monitorizați statusul sesiunii (de exemplu, reușită, eroare etc.);
- analiza sesiunilor: câmpurile `duration_session` și `session_traffic` vă permit să analizați durata sesiunii și volumul traficului de date al acesteia;
- urmărirea modificărilor: câmpurile `created_at` și `updated_at` vă permit să urmăriți modificările datelor despre sesiuni.

## Tipuri de arhive

Atributul `archive_type_id` clasifică datele din tabelul `channel_data` după tipul de arhivă. Astfel, datele pot fi organizate în diferite categorii, precum arhivele orare, zilnice și lunare, arhiva regimurilor anormale și alte tipuri de arhive. Tabelul `referenceparameters` stochează nomenclatorul tipurilor de arhive.

Acest modul se bazează pe relația dintre tabelele `channel_data` și `referenceparameters`.

| Câmp                | Tip                              | Descriere                                        |
| ------------------- | -------------------------------- | ------------------------------------------------ |
| `id`                | `bigint`                         | Identificatorul unic al înregistrării (cheie primară). |
| `name`              | `character varying(30)`          | Denumirea tipului de arhivă.                     |
| `varname`           | `character varying(30)`          | Numele scurt de variabilă al tipului de arhivă.  |
| `description`       | `character varying(100)`         | Descrierea tipului de arhivă.                    |
| `parent_id`         | `integer`                        | Referință la parametrul părinte (ierarhie).      |
| `referencemodel_id` | `integer`                        | Referință la modelul nomenclatorului.            |
| `created_at`        | `timestamp(6) without time zone` | Momentul creării înregistrării.                  |
| `updated_at`        | `timestamp(6) without time zone` | Momentul ultimei actualizări a înregistrării.    |
| `deleted_at`        | `timestamp(6) without time zone` | Momentul ștergerii logice a înregistrării (soft delete). |

Câmpul `archive_type_id` din tabelul `channel_data` vă permite să clasificați datele după tipul de arhivă.

De exemplu:

```ruby
[ 'Archive types', 'archive_types', 'Archive types (hourly, daily, monthly)',
  [
    ['Hourly readings archive', 'hourly'],
    ['Daily readings archive', 'daily'],
    ['Monthly readings archive', 'monthly'],
    ['Emergency situations archive', 'nesht'],
    ['Events archive', 'event'],
    ['Valve status', 'valve'],
    ['Current state', 'current_state'],
    ['Updated firmware', 'update_app'],
    ['Send SMS', 'send_sms'],
    ['Send JSON', 'send_json'],
    ...
  ]
]
```

La nevoie, aceste arhive pot fi organizate în grupuri:

- date curente (`current_state`) – citirile din momentul sesiunii de comunicație;
- date agregate (`hourly`, `daily`, `monthly`) – citiri de sinteză pe o anumită perioadă;
- evenimente și regimuri anormale (`nesht`, `event`) – înregistrări ale unor modificări sau întâmplări semnificative din sistem, care pot fi legate de echipamente, de utilizatori sau de factori externi;
- starea robinetului (`valve`) – starea și comanda robinetului contorului, dacă acesta există;
- acțiuni de comandă (`update_app`, `send_sms`, `send_json`) – înregistrări ale unor comenzi sau acțiuni executate pentru comanda sistemului sau a echipamentelor;
- și altele.

Modulul de reprezentare a datelor `archive_type_id` vă permite să clasificați eficient datele pe tipuri de arhive și să gestionați nomenclatorul acestora. Acesta asigură:

- clasificarea datelor din tabelul `channel_data`;
- gestionarea nomenclatorului tipurilor de arhive;
- analiza datelor pe tipuri de arhive.
