Folder Structure

S3 bucket organization and file naming conventions

Directory Layout

Parquet files are organized in a predictable hierarchy within your S3 bucket:

downloads/parquet/
└── {organizationId}/                    # Your organization UUID
    ├── device/
    │   └── {year}/
    │       └── {month}/
    │           └── {year}_{month}_{day}_{hour}_{entityType}.parquet
    ├── deviceGroup/
    ├── deviceGroupDevices/
    ├── deviceKeyword/
    ├── measurementAmbientTemperature/
    ├── measurementBatteryPercentage/
    ├── measurementBatteryVoltage/
    ├── measurementBootCount/
    ├── measurementCO2/
    ├── measurementDirectionalMovement/
    ├── measurementDistance/
    ├── measurementOccupancySeconds/
    ├── measurementOccupancyStatus/
    ├── measurementOccupantsCount/
    ├── measurementPosition/
    ├── measurementPositionZone/
    ├── measurementTVOC/
    ├── organization/
    ├── space/
    └── zone/

Entity Folders

Each entity type has its own top-level folder:

FolderContent TypeDescription
organization/EntityOrganization metadata
device/EntityDevice inventory and properties
deviceGroup/EntityDevice group definitions
deviceGroupDevices/RelationshipDevice-to-group mappings
deviceKeyword/EntityDevice tags and labels
space/EntityLocations, buildings, floors
zone/EntityAreas within spaces
measurementXxx/Time-seriesSensor readings by type

File Naming Convention

Files follow the pattern:

{YYYY}_{MM}_{DD}_{HH}_{entityType}.parquet
ComponentFormatDescription
YYYY4 digitsYear (e.g., 2026)
MM2 digitsMonth (01-12)
DD2 digitsDay (01-31)
HH2 digitsHour in 24h format (00-23)
entityTypestringEntity or measurement type

Examples

2026_01_28_08_device.parquet
2026_01_28_14_measurementOccupancyStatus.parquet
2025_12_31_23_measurementAmbientTemperature.parquet

Time-Based Organization

Files are partitioned by time within each entity folder:

measurementOccupancyStatus/
├── 2025/
│   ├── 10/
│   │   ├── 2025_10_01_00_measurementOccupancyStatus.parquet
│   │   ├── 2025_10_01_01_measurementOccupancyStatus.parquet
│   │   └── ...
│   ├── 11/
│   └── 12/
└── 2026/
    └── 01/
        ├── 2026_01_01_00_measurementOccupancyStatus.parquet
        └── ...

Accessing Files

AWS CLI Example

List available files for your organization:

aws s3 ls s3://your-bucket/downloads/parquet/{org-id}/device/2026/01/

Download all device data for January 2026:

aws s3 cp s3://your-bucket/downloads/parquet/{org-id}/device/2026/01/ ./device/ --recursive

Programmatic Access

Most data platforms support direct S3 access. See Integration Examples for platform-specific code samples.

Storage Considerations

AspectDetails
CompressionSnappy compression (Parquet default)
File sizeVaries by data volume; typically 1KB–100MB
RetentionContact Haltian for retention policy details
UpdatesNew files each export cycle; historical files unchanged