Skip to content

feature(connectors): add open-meteo-marine-weather connector#37

Open
kellykohlleffel wants to merge 1 commit into
fivetran:mainfrom
kellykohlleffel:feature/open-meteo-marine-weather
Open

feature(connectors): add open-meteo-marine-weather connector#37
kellykohlleffel wants to merge 1 commit into
fivetran:mainfrom
kellykohlleffel:feature/open-meteo-marine-weather

Conversation

@kellykohlleffel

Copy link
Copy Markdown

Summary

  • Adds an Open-Meteo Marine Weather connector that syncs hourly and daily marine weather data (wave height, wave period, wave direction, swell, wind waves, ocean current) for a configured coastal location
  • Creates two tables: MARINE_HOURLY (15 columns, composite PK: location_id + timestamp) and MARINE_DAILY (12 columns, composite PK: location_id + date)
  • No authentication required — Open-Meteo is a free, open-source API with no API key needed
  • Incremental sync with date-based cursor (last_synced_date) and 1-day overlap for deduplication
  • Intermediate checkpointing every 100 records to enable mid-batch resume without reprocessing
  • Exponential backoff retry logic for transient HTTP errors (408, 429, 500, 502, 503, 504)

fivetran debug results

SDK Version: 2.25.1230.001 | Sync: SUCCEEDED | Records: 375 upserts (2 tables)

Table Run 1 (initial) Run 2 (resume)
MARINE_HOURLY 360 upserts 216 upserts
MARINE_DAILY 15 upserts 9 upserts
Total 375 225

Run 2 validates cursor resume: previous state {"last_synced_date": "2026-06-23"} was picked up correctly, date range advanced to 2026-06-22 (with 1-day overlap), upserts correctly deduplicated via composite PK.

Run 1 — raw fivetran debug output (initial sync)
23-Jun 09:23:28.794 WARNING ⚡ sdk `requirements.txt` file not found in your project folder. 
23-Jun 09:23:30.032 INFO ⚡ sdk Include the following dependency libraries in requirements.txt, to be used by Fivetran production. For more information, see our docs: https://fivetran.com/docs/connectors/connector-sdk/detailed-guide#workingwithrequirementstxtfile 
pytest==9.0.2
23-Jun 09:23:30.032 INFO ⚡ sdk Debugging connector at: /Users/kelly.kohlleffel/Documents/GitHub/fivetran_connector_sdk_personal/snowflakesummitdemos/open_meteo_marine_weather 
23-Jun 09:23:30.040 INFO ⚡ sdk Running connector tester... 
23-Jun 09:23:30.319 INFO ⚡ debugger Version: 2.25.1230.001 
23-Jun 09:23:30.326 INFO ⚡ debugger Destination schema: /Users/kelly.kohlleffel/Documents/GitHub/fivetran_connector_sdk_personal/snowflakesummitdemos/open_meteo_marine_weather/files/warehouse.db/tester 
23-Jun 09:23:31.299 INFO ⚡ debugger Previous state:
{} 
Jun 23, 2026 9:23:32 AM com.fivetran.partner_sdk.client.connector.PartnerSdkConnectorClient schema
INFO: Fetching schema from partner
23-Jun 09:23:32.384 INFO ⚡ sdk Initiating the 'schema' method call... 
23-Jun 09:23:32.394 INFO ⚡ debugger [SchemaChange]: tester.marine_hourly 
23-Jun 09:23:32.395 INFO ⚡ debugger [CreateTable]: tester.marine_hourly 
23-Jun 09:23:32.399 INFO ⚡ debugger [SchemaChange]: tester.marine_daily 
23-Jun 09:23:32.399 INFO ⚡ debugger [CreateTable]: tester.marine_daily 
23-Jun 09:23:32.403 INFO ⚡ sdk Initiating the 'update' method call... 
23-Jun 09:23:32.403 WARNING Example: connectors : open_meteo_marine_weather 
23-Jun 09:23:32.404 INFO Fetching marine weather data for (37.75, -122.52) from 2026-06-16 to 2026-06-30 
23-Jun 09:23:33.027 INFO Processing 360 hourly records 
23-Jun 09:23:33.052 INFO Successfully processed 360 hourly records 
23-Jun 09:23:33.052 INFO Processing 15 daily records 
23-Jun 09:23:33.052 INFO Successfully processed 15 daily records 
23-Jun 09:23:33.275 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 09:23:33.457 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 09:23:33.580 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 09:23:33.670 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 09:23:33.670 INFO ⚡ debugger SYNC PROGRESS:
Operation       | Calls     
----------------+------------
Upserts         | 375       
Updates         | 0         
Deletes         | 0         
Truncates       | 0         
SchemaChanges   | 2         
Checkpoints     | 4         
Note: Fivetran debug's performance is limited by your local machine's resources. Your connector will run faster in production.
read about production system resources at https://fivetran.com/docs/connector-sdk/working-with-connector-sdk#systemresources 
23-Jun 09:23:33.670 INFO ⚡ debugger Sync SUCCEEDED
Run 2 — raw fivetran debug output (resume sync)
23-Jun 10:54:08.669 WARNING ⚡ sdk `requirements.txt` file not found in your project folder. 
23-Jun 10:54:10.053 INFO ⚡ sdk Include the following dependency libraries in requirements.txt, to be used by Fivetran production. For more information, see our docs: https://fivetran.com/docs/connectors/connector-sdk/detailed-guide#workingwithrequirementstxtfile 
pytest==9.0.2
23-Jun 10:54:10.053 INFO ⚡ sdk Debugging connector at: /Users/kelly.kohlleffel/Documents/GitHub/fivetran_connector_sdk_personal/snowflakesummitdemos/open_meteo_marine_weather 
23-Jun 10:54:10.061 INFO ⚡ sdk Running connector tester... 
23-Jun 10:54:10.370 INFO ⚡ debugger Version: 2.25.1230.001 
23-Jun 10:54:10.377 INFO ⚡ debugger Destination schema: /Users/kelly.kohlleffel/Documents/GitHub/fivetran_connector_sdk_personal/snowflakesummitdemos/open_meteo_marine_weather/files/warehouse.db/tester 
23-Jun 10:54:11.583 INFO ⚡ debugger Previous state:
{"last_synced_date": "2026-06-23"} 
Jun 23, 2026 10:54:12 AM com.fivetran.partner_sdk.client.connector.PartnerSdkConnectorClient schema
INFO: Fetching schema from partner
23-Jun 10:54:12.653 INFO ⚡ sdk Initiating the 'schema' method call... 
23-Jun 10:54:12.664 INFO ⚡ debugger [SchemaChange]: tester.marine_hourly 
23-Jun 10:54:12.665 INFO ⚡ debugger [CreateTable]: tester.marine_hourly 
23-Jun 10:54:12.668 INFO ⚡ debugger [SchemaChange]: tester.marine_daily 
23-Jun 10:54:12.668 INFO ⚡ debugger [CreateTable]: tester.marine_daily 
23-Jun 10:54:12.673 INFO ⚡ sdk Initiating the 'update' method call... 
23-Jun 10:54:12.673 WARNING Example: connectors : open_meteo_marine_weather 
23-Jun 10:54:12.675 INFO Fetching marine weather data for (37.75, -122.52) from 2026-06-22 to 2026-06-30 
23-Jun 10:54:13.293 INFO Processing 216 hourly records 
23-Jun 10:54:13.301 INFO Successfully processed 216 hourly records 
23-Jun 10:54:13.301 INFO Processing 9 daily records 
23-Jun 10:54:13.302 INFO Successfully processed 9 daily records 
23-Jun 10:54:13.553 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 10:54:13.720 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 10:54:13.766 INFO ⚡ debugger Checkpoint: {"last_synced_date": "2026-06-23"} 
23-Jun 10:54:13.767 INFO ⚡ debugger SYNC PROGRESS:
Operation       | Calls     
----------------+------------
Upserts         | 225       
Updates         | 0         
Deletes         | 0         
Truncates       | 0         
SchemaChanges   | 2         
Checkpoints     | 3         
Note: Fivetran debug's performance is limited by your local machine's resources. Your connector will run faster in production.
read about production system resources at https://fivetran.com/docs/connector-sdk/working-with-connector-sdk#systemresources 
23-Jun 10:54:13.767 INFO ⚡ debugger Sync SUCCEEDED

Test plan

  • black --line-length 99 — no changes needed
  • flake8 — no issues
  • fivetran debug run 1 (initial sync): SUCCEEDED, 375 upserts, 4 checkpoints
  • fivetran debug run 2 (resume sync): SUCCEEDED, 225 upserts, cursor resume verified
  • Root README.md updated with alphabetical entry for open_meteo_marine_weather
  • configuration.json contains placeholder values only

@fivetran-JenasVimal

Copy link
Copy Markdown
Contributor

Hi @kellykohlleffel ,

Could you please rebase your PR so that the latest checks can run and pass?

Thank you!

Adds a new community connector that syncs hourly and daily marine weather
data from the Open-Meteo Marine Weather API (free, no authentication required)
for a configured coastal location.

Tables synced:
- marine_hourly: wave height, direction, period, swell, wind waves, ocean
  current (15 columns, composite PK: location_id + timestamp)
- marine_daily: daily aggregated marine metrics (12 columns, composite PK:
  location_id + date)

Key implementation details:
- Incremental sync with date-based cursor (last_synced_date) and 1-day
  overlap for deduplication at destination
- Exponential backoff retry for transient errors (408, 429, 500-504)
- Intermediate checkpointing every 100 records to enable mid-batch resume
- Configurable forecast window (1-16 days) and historical window (0-92 days)
- Type-safe configuration validation with placeholder detection

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@kellykohlleffel kellykohlleffel force-pushed the feature/open-meteo-marine-weather branch from 62fdc08 to 961ebe5 Compare July 10, 2026 13:09
@kellykohlleffel

Copy link
Copy Markdown
Author

Thanks @fivetran-JenasVimal — rebased onto the latest main and force-pushed. Both checks (Check Code Quality, Check Updates for New Examples) are now passing. Ready for review whenever you and @fivetran-anushkaparashar have a chance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants