Procedure Records
The procedure_records table stores individual data records generated by procedure runs, designed for columnar storage.
Table Schema
| Column Name | Data Type | Description |
|---|---|---|
id |
UUID |
Primary Key. Unique identifier for the procedure record. |
timestamp |
TIMESTAMP |
Timestamp of the record. |
procedure_id |
UUID |
Foreign key referencing the procedure. |
procedure_name |
String(255) |
The name of the procedure. |
procedure_run_id |
UUID |
Foreign key referencing the procedure run. |
procedure_data |
JSONB |
Additional JSONB data for the procedure. |
experiment_id |
UUID |
Foreign key referencing the experiment. |
experiment_name |
String(255) |
The name of the experiment. |
season_id |
UUID |
Foreign key referencing the season. |
season_name |
String(255) |
The name of the season. |
site_id |
UUID |
Foreign key referencing the site. |
site_name |
String(255) |
The name of the site. |
record_file |
String(255) |
The file where the record is stored. |
record_info |
JSONB |
Additional JSONB data for the record. |
Constraints and Indexes
- Unique Constraint: A
UniqueConstraintontimestamp,procedure_id,procedure_name,procedure_run_id,experiment_id,experiment_name,season_id,season_name,site_id, andsite_nameensures uniqueness for each record. - GIN Index: A GIN index named
idx_procedure_records_record_infois applied to therecord_infocolumn to optimize queries on the JSONB data.
Methods
filter_records: A class method that allows filtering procedure records based on various parameters such asstart_timestamp,end_timestamp,procedure_names,procedure_run_ids,experiment_names,season_names, andsite_names. This method leverages a PostgreSQL functiongemini.filter_procedure_recordsfor efficient filtering.