a tool for flexibly loading schemas from bigquery into looker
Project description
looker-loader
Write rules for how you want fields and measures to be generated from tables into looker.
Are you tired of adding timeframes to dimension_groups manually, of defining simple measures, of adding descriptions to measures? looker_loader removes a lot of the tedious work involved with loading new tables into Looker.
Define field_label, group_label, value_format_name etc in a common source of truth
If you find discrepancies in value formats and labelling across tables to be annoying and tedious, wouldnt it be nice to be able to input a label one place, and have it applied for every table? Looker_loader enables this.
Setup scheduled refreshes of lookml automatically
Fed up with generating new autogenerated tables every time a new field is added to a table? Use looker_loader to refresh tables on a schedule!
Quick Start
-
Install the package:
uv add looker_loader
-
Create configuration files:
loader_config.yml- Define your BigQuery connections and settingsloader_recipe.yml- Define rules for field transformations
loader_config.yml
This file defines your BigQuery connections and loader settings:
config:
loader:
lexicanum: true
output_path: ./views
bigquery:
- project_id: "your-project-id"
dataset_id: "your_dataset"
config:
regex_include: "^fct_|^dim_|^obt_"
regex_exclude: "_temp$|_backup$"
loader_recipe.yml
This file defines rules for how different field types should be transformed:
recipes:
- name: primary_key
filters:
field_order: [0]
dimension:
primary_key: true
- name: hide_records
filters:
db_types: [RECORD]
dimension:
hidden: true
- name: group_ids
dimension:
group_label: Identifiers
value_format_name: id
measures:
- type: count_distinct
filters:
regex_include: _id$|^pk.*_|_code$
- name: numbers
filters:
types: [number]
regex_exclude: _id$|^pk_|_code$
dimension:
group_label: Numbers
value_format_name: decimal_1
measures:
- type: sum
label: "Sum {{ parent_label }}"
- name: time_date_values
filters:
regex_include: _date
types: [date]
dimension:
timeframes:
- raw
- time
- date
- week
- month
- quarter
- year
- Run the loader:
uv run looker_loader
Check the Output
The loader will create LookML files in your specified output directory (default: ./views). You should see files like:
views/
├── fct_sales.view.lkml
├── dim_customers.view.lkml
└── obt_daily_summary.view.lkml
Common Issues
No tables found
- Check your
project_idanddataset_idare correct - Verify your BigQuery permissions
- Check if your
regex_includepattern matches any tables
Authentication errors
- Ensure your Google Cloud credentials are properly set up
Next Steps
Now that you have the basics working:
- Explore Configuration Options - Learn about all available configuration settings
- Create Custom Recipes - Build specialized field transformation rules
- Use Lexicanum - Enhance field definitions by using a common source of truth
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 looker_loader-0.1.34.tar.gz.
File metadata
- Download URL: looker_loader-0.1.34.tar.gz
- Upload date:
- Size: 109.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57f1b27e727b716cc5b81e73db053a5bfdd108fb22bd26460cabe376e6e2fcd5
|
|
| MD5 |
bb23b22d94ac795f74f445ae573cc3c9
|
|
| BLAKE2b-256 |
bca95e01d57a1673aeb042968d882950a10e529c01e9af5039af0d05b233d5b4
|
File details
Details for the file looker_loader-0.1.34-py3-none-any.whl.
File metadata
- Download URL: looker_loader-0.1.34-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d13358483d6794ce7fa0092e5aa1bced084d728d562e28f95231a81fff9c1c4
|
|
| MD5 |
055c3d48eccf420e77d06cef456c76f0
|
|
| BLAKE2b-256 |
d22086a1edf4898e6c2fcdbbeae46abd6bee36fe3986bd372295752b1ae75b6f
|