pub struct ParquetStore { /* private fields */ }Expand description
Parquet storage for Garmin data
Supports concurrent writes to different partitions. Each partition has its own lock to prevent lost updates when multiple workers write to the same partition.
Implementations§
Source§impl ParquetStore
impl ParquetStore
Sourcepub fn new(base_path: impl Into<PathBuf>) -> Self
pub fn new(base_path: impl Into<PathBuf>) -> Self
Create a new ParquetStore at the given base path
Sourcepub fn has_daily_health(&self, profile_id: i32, date: NaiveDate) -> Result<bool>
pub fn has_daily_health(&self, profile_id: i32, date: NaiveDate) -> Result<bool>
Check if daily health data exists for a profile/date
Sourcepub fn has_performance_metrics(
&self,
profile_id: i32,
date: NaiveDate,
) -> Result<bool>
pub fn has_performance_metrics( &self, profile_id: i32, date: NaiveDate, ) -> Result<bool>
Check if performance metrics exist for a profile/date
Sourcepub fn has_track_points(
&self,
activity_id: i64,
date: NaiveDate,
) -> Result<bool>
pub fn has_track_points( &self, activity_id: i64, date: NaiveDate, ) -> Result<bool>
Check if track points exist for an activity/date partition
Sourcepub fn partition_path(&self, entity: EntityType, partition_key: &str) -> PathBuf
pub fn partition_path(&self, entity: EntityType, partition_key: &str) -> PathBuf
Get the full path for a partition file
Sourcepub fn write_activities(&self, activities: &[Activity]) -> Result<()>
pub fn write_activities(&self, activities: &[Activity]) -> Result<()>
Write activities to weekly partitions
Sourcepub fn upsert_activities(&self, activities: &[Activity]) -> Result<()>
pub fn upsert_activities(&self, activities: &[Activity]) -> Result<()>
Upsert activities (read existing, merge, write)
Sourcepub async fn upsert_activities_async(
&self,
activities: &[Activity],
) -> Result<()>
pub async fn upsert_activities_async( &self, activities: &[Activity], ) -> Result<()>
Upsert activities with partition-level locking for concurrent writes
Sourcepub fn upsert_daily_health(&self, records: &[DailyHealth]) -> Result<()>
pub fn upsert_daily_health(&self, records: &[DailyHealth]) -> Result<()>
Upsert daily health records
Sourcepub async fn upsert_daily_health_async(
&self,
records: &[DailyHealth],
) -> Result<()>
pub async fn upsert_daily_health_async( &self, records: &[DailyHealth], ) -> Result<()>
Upsert daily health records with partition-level locking for concurrent writes
Sourcepub fn write_track_points(
&self,
activity_date: NaiveDate,
points: &[TrackPoint],
) -> Result<()>
pub fn write_track_points( &self, activity_date: NaiveDate, points: &[TrackPoint], ) -> Result<()>
Write track points for an activity
Sourcepub async fn write_track_points_async(
&self,
activity_date: NaiveDate,
points: &[TrackPoint],
) -> Result<()>
pub async fn write_track_points_async( &self, activity_date: NaiveDate, points: &[TrackPoint], ) -> Result<()>
Write track points with partition-level locking for concurrent writes
Sourcepub fn upsert_performance_metrics(
&self,
records: &[PerformanceMetrics],
) -> Result<()>
pub fn upsert_performance_metrics( &self, records: &[PerformanceMetrics], ) -> Result<()>
Upsert performance metrics records
Sourcepub async fn upsert_performance_metrics_async(
&self,
records: &[PerformanceMetrics],
) -> Result<()>
pub async fn upsert_performance_metrics_async( &self, records: &[PerformanceMetrics], ) -> Result<()>
Upsert performance metrics records with partition-level locking for concurrent writes
Sourcepub fn upsert_weight(&self, records: &[WeightEntry]) -> Result<()>
pub fn upsert_weight(&self, records: &[WeightEntry]) -> Result<()>
Upsert weight entries
Sourcepub fn write_profiles(&self, profiles: &[Profile]) -> Result<()>
pub fn write_profiles(&self, profiles: &[Profile]) -> Result<()>
Write profiles (overwrites entire file)
Sourcepub fn read_profiles(&self) -> Result<Vec<Profile>>
pub fn read_profiles(&self) -> Result<Vec<Profile>>
Read all profiles
Trait Implementations§
Source§impl Clone for ParquetStore
impl Clone for ParquetStore
Source§fn clone(&self) -> ParquetStore
fn clone(&self) -> ParquetStore
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more