Skip to main content

Tooling for building derived datasets in BigQuery

Project description

CircleCI

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

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.11+ - (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 (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. Run gcloud auth login --update-adc to authenticate against GCP.
  • 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. Run gcloud auth login --update-adc --project=moz-fx-data-shared-prod (if you have not run it previously).

Installing bqetl

  1. Clone the repository
git clone git@github.com:mozilla/bigquery-etl.git
cd bigquery-etl
  1. Install the bqetl command line tool
./bqetl bootstrap
  1. 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.

Releasing a new version of bqetl

To push a new version of bqetl to PyPI, update the version in pyproject.toml. The version numbers follow the CalVer scheme, with the Micro version numbers starting at 1. For example, for the first package version getting published in March 2024, the version would be 2024.3.1.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mozilla_bigquery_etl-2024.5.1.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

mozilla_bigquery_etl-2024.5.1-py3-none-any.whl (243.1 kB view details)

Uploaded Python 3

File details

Details for the file mozilla_bigquery_etl-2024.5.1.tar.gz.

File metadata

File hashes

Hashes for mozilla_bigquery_etl-2024.5.1.tar.gz
Algorithm Hash digest
SHA256 197c18798a0fa2575c0d200bce86fd227a218554475146aa70c638edc7530a22
MD5 7ec737089d26bddbc126112a2cecfc4e
BLAKE2b-256 0fdd1b1552d4fe96280d32b3ca8b2b55d667975e1785b124c02dc921e3534869

See more details on using hashes here.

File details

Details for the file mozilla_bigquery_etl-2024.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mozilla_bigquery_etl-2024.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d18603e6b87554c4f5a0122e03a856a9426d212ad84ab942f4b71d0fcd3b87e
MD5 77ee9f468aa5481f5395dcc0481985a6
BLAKE2b-256 7c52bcd9cca77c4babcfbe2be551d8d96133bf512cb7303b05c1857e1faf9cca

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page