ETL for BigQuery
Project description
BQSeine
Bigquery AI agent and data loader
Seine is a data loader that pushes data in a dictionary to BigQuery in relational normalized form. Seine also has functionality to use Gemini to get data insights from Bigquery.
Usage
AI insights
from bqseine.agent import chat
response = chat([question, context])
In making the call to chat([question, context], history, temperature, mode, model), where:
- history of type list[gtypes.Content] (gtypes from google.genai)
- context argument explains to the LLM how the tables in Bigquery and their fields refer to each other and what they mean
- temperature (set by default to 0.4) is how creative the model is allowed to get with 2 being max
- mode (set by default to "AUTO") is the tool mode
- model (set by default to "gemini-2.5-pro") is the AI model to be used
To run, you will need the following environment variables:
- GOOGLE_API_KEY, storing your Google AI Studio API key
- GOOGLE_CLOUD_PROJECT, storing your Google Cloud Project name
- GOOGLE_APPLICATION_CREDENTIALS, that points to a credential with which you can access Bigquery
Data loading
from bqseine.polyp import sync
sourceData = [
{
'item': 'Juice',
'price': 20.0,
'stock': [
{
'batch': '2025-01-20',
'qty': 300
},
{
'batch': '2025-02-02',
'qty': 50
}
]
},
{
'item': 'Burger',
'price': 30.0,
'stock': [
{
'batch': '2025-02-10',
'qty': 200
}
]
}
]
sync('someGoogleProject', sourceData, 'catalog', 'US')
### The arguments above are:
### sync(<Google project name>, <dict>, <main table name>, <BigQuery region>)*
The above example will generate the following tables in BigQuery:
catalog
| seine_id | seine_parent_id | item | price | injected |
|---|---|---|---|---|
| 1 | 0 | 'Juice' | 20.0 | now() |
| 2 | 0 | 'Burger' | 30.0 | now() |
catalog_stock
| seine_id | seine_parent_id | batch | qty | injected |
|---|---|---|---|---|
| 1 | 1 | '2025-01-20' | 300 | now() |
| 2 | 1 | '2025-02-02' | 50 | now() |
| 3 | 2 | '2025-02-10' | 200 | now() |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bqseine-0.4.0.tar.gz.
File metadata
- Download URL: bqseine-0.4.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09f5fec329dcb224e18b11fdd69d0e7ce0210665aaae1e45e0d7e6a406c1fd07
|
|
| MD5 |
52737a489d1910a851f4382d190b32fe
|
|
| BLAKE2b-256 |
51a019ae362d56b85bcd7e4b43c9798d7ddf1ed8077421e56c27d42ae5c1d2f5
|
File details
Details for the file bqseine-0.4.0-py3-none-any.whl.
File metadata
- Download URL: bqseine-0.4.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d76ddb18d74fb7e77b3ebfd0e5e8a6c56f04818434d94aeb494c1497f23d5e88
|
|
| MD5 |
6002fe4d3674bd6a6fb9cf36de49de1a
|
|
| BLAKE2b-256 |
ba0735d74f0291ad3994500bf3279877b2c7ad166d317da31a77e70a9e597bb5
|