Create Materialized Views
๐ <ENV> - [BigQuery] Create BigQuery Materialized View
โ
This GitHub Actions workflow is designed to manually trigger the creation of a BigQuery Materialized View using a TypeScript helper script. It authenticates with GCP using a service account and runs the logic defined in the specified TypeScript file.
๐ Workflow Triggerโ
This workflow is triggered manually via the GitHub actions in functions repo
Required Input:โ
table_name
(string): The BigQuery latest table name for which the materialized view should be created.
๐ Environment Variablesโ
Variable | Description |
---|---|
GCP_PROJECT_ID | GCP Project ID (e.g., biddirect-2 ) |
TABLE_NAME | Name of the latest BigQuery table (input) |
๐ Job: deploy-bigquery-materialized-view
โ
Step | Description |
---|---|
Checkout repository | Clones the repo. |
Set project env variable | Stores the GCP project ID in the GitHub Actions environment. |
Set table name variable | Stores the input table_name in the GitHub Actions environment. |
Authenticate with GCP | Authenticates using a service account (ENV_BIGQUERY_ADMIN_SERVICE_ACCOUNT ) stored in GitHub Secrets. |
Set up Cloud SDK | Installs and sets up the Google Cloud SDK CLI. |
Install dependencies | Runs npm install inside the functions directory. |
Create materialized view | Executes the helper script createMaterializedView.ts using npx ts-node . |
๐งน Script Locationโ
The script responsible for creating the BigQuery Materialized View is located at:
functions/src/bqDataLake/definitions/views/helpers/createMaterializedView.ts
Make sure this script handles:
- Connecting to BigQuery using the provided credentials.
- Creating the desired materialized view using the given
TABLE_NAME
.
๐ Required Secretsโ
Secret Name | Description |
---|---|
<ENV>_BIGQUERY_ADMIN_SERVICE_ACCOUNT | Service account key JSON for GCP auth. |
โ Example Usageโ
To run this workflow:
- Go to the Actions tab in your GitHub repository.
- Select the workflow
<ENV> - [BigQuery] Create BigQuery Materialized View
. - Enter the
table_name
(e.g.,accounts_latest
). - Click "Run workflow".