Skip to content
Open
67 changes: 67 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Deploy Templatized Data Environment

on:
pull_request:
types: [closed]
branches:
- staging
- main
push:
branches:
- staging
- main

jobs:
deploy_data_environment:
# Only run when PR is merged or on direct push to environment branches
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.merged == true)
runs-on: ubuntu-latest

env:
# Read connection secret
SNOWFLAKE_CONNECTIONS_ADVANCED_DATA_ENGINEERING_SNOWFLAKE_ACCOUNT: ${{ secrets.SNOWFLAKE_ACCOUNT }}
SNOWFLAKE_CONNECTIONS_ADVANCED_DATA_ENGINEERING_SNOWFLAKE_USER: ${{ secrets.SNOWFLAKE_USER }}
SNOWFLAKE_CONNECTIONS_ADVANCED_DATA_ENGINEERING_SNOWFLAKE_PASSWORD: ${{ secrets.SNOWFLAKE_PASSWORD }}

steps:
# Checkout step is necessary to access repository files
- name: Checkout repository
uses: actions/checkout@v4

# Determine environment based on target branch
- name: Set environment
id: set_env
run: |
TARGET_BRANCH="${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}"

if [[ $TARGET_BRANCH == "staging" ]]; then
echo "DEPLOY_ENV=staging" >> $GITHUB_ENV
echo "Environment set to staging"
elif [[ $TARGET_BRANCH == "main" ]]; then
echo "DEPLOY_ENV=prod" >> $GITHUB_ENV
echo "Environment set to production"
else
echo "Unexpected branch: $TARGET_BRANCH"
exit 1
fi

# Install Snowflake CLI GitHub Action and point to config file
- name: Install SnowflakeCLI
uses: snowflakedb/snowflake-cli-action@v1.5
with:
cli-version: "latest"
default-config-file-path: "config.toml"

# Fetch latest changes from the repository to Snowflake
- name: Fetch latest changes to Snowflake
run: snow git fetch course_repo.public.advanced_data_engineering_snowflake

# Deploy templates to the data environment -
- name: Deploy templates to data environment
run: |
# Export TARGET_BRANCH for use in this step
echo "Using branch: ${GITHUB_REF_NAME}"
snow git execute @advanced_data_engineering_snowflake/branches/${GITHUB_REF_NAME}/module-1/hamburg_weather/pipeline/data/ \
-D "env='${{ env.DEPLOY_ENV }}'" \
--database=COURSE_REPO \
--schema=PUBLIC
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ To successfully follow along with the instructor during the course, you'll need

1. Fork the repo to create a copy associated with your GitHub Account: https://github.com/Snowflake-Labs/advanced-data-engineering-snowflake/fork

2. Clone your fork:
2. Clone your fork FIXED:

```bash
git clone https://github.com/<your-GitHub-user-name>/modern-data-engineering-snowflake.git
git clone https://github.com/<your-GitHub-user-name>/advanced-data-engineering-snowflake.git
```

Where `<your-GitHub-user-name>` is replaced by your GitHub user name. This workflow is covered in the course.
Expand Down
27 changes: 14 additions & 13 deletions module-1/hamburg_weather/pipeline/data/load_tasty_bytes.sql
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ CREATE TABLE {{env}}_tasty_bytes.raw_pos.country
iso_currency VARCHAR(3),
iso_country VARCHAR(2),
city VARCHAR(16777216),
city_population VARCHAR(16777216)
city_population VARCHAR(16777216),
city_id NUMBER(19,0)
);


Expand Down Expand Up @@ -293,17 +294,17 @@ USE WAREHOUSE demo_build_wh;


-- country table load
-- COPY INTO {{env}}_tasty_bytes.raw_pos.country
-- (
-- country_id,
-- country,
-- iso_currency,
-- iso_country,
-- city_id,
-- city,
-- city_population
-- )
-- FROM @{{env}}_tasty_bytes.public.s3load/raw_pos/country/;
COPY INTO {{env}}_tasty_bytes.raw_pos.country
(
country_id,
country,
iso_currency,
iso_country,
city_id,
city,
city_population
)
FROM @{{env}}_tasty_bytes.public.s3load/raw_pos/country/;


-- franchise table load
Expand Down Expand Up @@ -338,4 +339,4 @@ FROM @{{env}}_tasty_bytes.public.s3load/raw_pos/subset_order_header/;

-- order_detail table load
COPY INTO {{env}}_tasty_bytes.raw_pos.order_detail
FROM @{{env}}_tasty_bytes.public.s3load/raw_pos/subset_order_detail/;
FROM @{{env}}_tasty_bytes.public.s3load/raw_pos/subset_order_detail/;
4 changes: 2 additions & 2 deletions module-1/hamburg_weather/pipeline/objects/views/views.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ SELECT
TO_VARCHAR(hd.date_valid_std, 'YYYY-MM') AS yyyy_mm,
pc.city_name AS city,
c.country AS country_desc
FROM WEATHER_SOURCE_LLC_FROSTBYTE.onpoint_id.history_day hd
JOIN WEATHER_SOURCE_LLC_FROSTBYTE.onpoint_id.postal_codes pc
FROM FROSTBYTE_WEATHERSOURCE.onpoint_id.history_day hd
JOIN FROSTBYTE_WEATHERSOURCE.onpoint_id.postal_codes pc
ON pc.postal_code = hd.postal_code
AND pc.country = hd.country
JOIN {{env}}_tasty_bytes.raw_pos.country c
Expand Down