4430d55c82
* `cd` into `private-bigquery-etl` repo when generating DAGs. To avoid generated DAGs having incorrect absolute paths for ETLs using SQL scripts. |
||
---|---|---|
.circleci | ||
.github | ||
.vscode | ||
bigquery_etl | ||
docs | ||
script | ||
sql | ||
sql_generators | ||
tests | ||
.bigqueryrc | ||
.dockerignore | ||
.eslintrc.yml | ||
.flake8 | ||
.gitignore | ||
.isort.cfg | ||
.pre-commit-config.yaml | ||
.yamllint.yaml | ||
CODEOWNERS | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
GRAVEYARD.md | ||
LICENSE | ||
M1_MAC_SETUP.md | ||
README.md | ||
bqetl | ||
bqetl_project.yaml | ||
conftest.py | ||
dags.yaml | ||
pytest.ini | ||
requirements.in | ||
requirements.txt | ||
setup.py |
README.md
BigQuery ETL
This repository contains Mozilla Data Team's:
- Derived ETL jobs that do not require a custom container
- User-defined functions (UDFs)
- Airflow DAGs for scheduled bigquery-etl queries
- Tools for query & UDF deployment, management and scheduling
For more information, see https://mozilla.github.io/bigquery-etl/
Quick Start
❗ Apple Silicon (M1) user requirement
Enable Rosetta mode for your terminal BEFORE installing below tools using your terminal. See our M1 Mac Setup Guide for more information
Pre-requisites
- Pyenv (optional) Recommended if you want to install different versions of python, see instructions here. After the installation of pyenv, make sure that your terminal app is configured to run the shell as a login shell.
- Homebrew (not required, but useful for Mac) - Follow the instructions here to install homebrew on your Mac.
- Python 3.10+ - (see this guide for instructions if you're on a mac and haven't installed anything other than the default system Python).
GCP CLI tools
- For Mozilla Employees or Contributors (not in Data Engineering) - Set up GCP command line tools, as described on docs.telemetry.mozilla.org. Note that some functionality (e.g. writing UDFs or backfilling queries) may not be allowed.
- For Data Engineering - In addition to setting up the command line tools, you will want to log in to
shared-prod
if making changes to production systems. Rungcloud auth login --update-adc --project=moz-fx-data-shared-prod
(if you have not run it previously).
Installing bqetl
- Clone the repository
git clone git@github.com:mozilla/bigquery-etl.git
cd bigquery-etl
- Install the
bqetl
command line tool
./bqetl bootstrap
- Install standard pre-commit hooks
venv/bin/pre-commit install
Finally, if you are using Visual Studio Code, you may also wish to use our recommended defaults:
cp .vscode/settings.json.default .vscode/settings.json
cp .vscode/launch.json.default .vscode/launch.json
And you should now be set up to start working in the repo! The easiest way to do this is for many tasks is to use bqetl
. You may also want to read up on common workflows.