FlexigoTech · Odoo 17/18/19 · Free (LGPL-3)

Export Odoo to BigQuery for free: an ELT connector built on load jobs

BigQuery streaming inserts bill you for every single row. This Odoo connector uses Google's free load jobs path instead: pick the Odoo models you want in your warehouse, schedule the sync, and pay Google only for storage and the queries you run. Free and open source (LGPL-3), with the full source code included.

Try the free demo Get it on the Odoo App Store
Odoo to BigQuery Free ELT Starter connector running on Odoo 19
Open source LGPL-3, source code included Automated test suite included Live demo at flexigotech.com/demo FlexigoTech · Barcelona

The problem

BigQuery is a great warehouse for analytics and BI, but if you push Odoo records in via streaming you pay for every inserted row. With continuous syncs of orders, order lines and stock moves, the warehouse bill quickly becomes unpredictable.

The solution

The connector ingests through load jobs, BigQuery's loading path with no per-row cost. Typical ingestion cost: 1-2 cents per million rows (storage and metadata only). Streaming stays available as an explicit toggle, but we do not recommend it.

What this Odoo BigQuery connector actually does

Free ingestion with load jobs

The default path never charges per row. You only pay Google for the storage of the tables and the queries you run against them.

Full-refresh or incremental, per model

Full reload (truncate-and-load) for master data, or incremental mode with a watermark that exports only what is new or changed since the last sync.

Secrets excluded, logs redacted

Passwords, tokens and API keys are automatically stripped from every export, credentials are redacted from error logs, and access to the configuration is locked down by Odoo security groups.

Data residency (EU, US or any region you pick)

Set the BigQuery region where your data lives to meet GDPR and regional data-governance requirements.

Schema that evolves by itself

Add a field in Odoo and the connector creates the new columns in BigQuery for you, mapping the types (STRING, INT64, BOOL, JSON and more). No manual DDL.

End-to-end traceability

Every sync is recorded in Sync Logs: what moved, when, and whether it failed. Failures notify you via chatter and configuration changes are audited.

How it works: from install to first sync

1

Install the library and the module

Run pip install google-cloud-bigquery on your server and install the module in Odoo.

2

Create the configuration

Under Settings → BigQuery Export → Configurations, enter your GCP project and credentials, then hit Test Connection to confirm they work.

3

Choose models and fields

Select exactly what to export. Passwords, tokens, API keys and secrets are excluded automatically; you can hide any other sensitive field yourself.

4

Sync and monitor

Hit Sync Now or let the cron sync every 15 minutes (the interval is configurable per configuration). Check the outcome in Sync Logs.

Built for production: control, isolation and errors handled with judgement

Multi-company isolation: Odoo record rules make sure company A can never see company B's exports.

Batch processing: a configurable batch size from 100 to 50,000 records lets you export large tables without running out of memory.

Error taxonomy: it tells authentication failures, quota limits and schema mismatches apart, and the cron retries based on the type of error.

Data minimisation (GDPR): export only the fields you need, block whole models, and keep an audit trail of what was exported and when.

Requirements and costs, no fine print

What you need

  • Odoo 17.0, 18.0 or 19.0 (Community or Enterprise)
  • Python with the google-cloud-bigquery library installed
  • A Google Cloud project with the BigQuery API enabled
  • A service account with roles/bigquery.jobUser (project) and roles/bigquery.dataEditor (dataset), or ADC

What it costs

  • Module: €0, one-time, open source LGPL-3, full source code included
  • Load-job ingestion: no per-row charges
  • You pay Google Cloud only for table storage and the queries you run (typical ingestion: 1-2 cents per million rows)
  • Streaming inserts: only if you turn them on explicitly; we advise against them on cost grounds
  • No subscriptions, no seat fees, no hidden paid tier

Frequently asked questions

Why does this Odoo to BigQuery connector use load jobs and not streaming?

BigQuery streaming charges for every inserted row; load jobs have no ingestion cost. For syncing ERP data, load jobs are also faster at volume. Streaming only makes sense for sub-second real time, which Odoo does not need, so it stays as an explicit, not-recommended option.

Does it work with Odoo Community?

Yes. The connector runs on both Odoo Community and Enterprise, on versions 17.0, 18.0 and 19.0. It depends only on the base module and the google-cloud-bigquery Python library, so there is no Enterprise-only dependency to worry about.

How often can I sync Odoo to BigQuery?

As often as you want. A scheduled cron runs the syncs in the background (every 15 minutes is typical) and each configuration follows its own interval. Running a sync has no per-execution cost: you only pay for storage and the queries you run afterwards.

Is it really free? What's the catch?

The module is free and open source (LGPL-3), with no hidden paid tier. The only thing you pay is your own Google Cloud bill: storage for the exported tables and the queries you run on them. The load-job design exists precisely so that ingestion costs you nothing.

Are my data and credentials safe?

Passwords, tokens and API keys are automatically excluded from every export, and you can hide additional sensitive fields. Credentials are redacted from error logs, access to the configuration is limited to a dedicated security group, and the service account uses the minimal IAM roles Google recommends. Record rules isolate data between companies, and you can pin the BigQuery region (for example, EU) for data residency.

Sync your Odoo to BigQuery today, for free

Open-source connector for Odoo 17, 18 and 19, with an automated test suite and a live demo. Install it in minutes and pay Google only for storage and queries.

Try the free demo Get it on the Odoo App Store