Files
doczyai-pipelines/textract-pipeline/terraform/snowsql-cicd.sh
T
2024-06-28 20:16:41 +02:00

59 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ENV_GROUP="$1"
CLIENT_ID="$2"
FULL_NAME="$3"
BUCKET_NAME="$4"
echo "ENV_GROUP=${ENV_GROUP}, CLIENT_ID=${CLIENT_ID}, FULL_NAME=${FULL_NAME}, BUCKET_NAME=${BUCKET_NAME}"
readonly SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
snowflake_secret_name="bb_svc_acc"
echo "# Getting snowflake creds from AWS Secret Manager... snowflake_secret_name=${snowflake_secret_name}"
snowflake_secret_value=$(aws secretsmanager get-secret-value --secret-id "$snowflake_secret_name" --query 'SecretString' --output text)
SNOWFLAKE_ACCOUNT=$(echo $snowflake_secret_value | jq -r '.account_alias')
SNOWFLAKE_DATABASE=$(echo $snowflake_secret_value | jq -r '.database')
SNOWFLAKE_USER=$(echo $snowflake_secret_value | jq -r '.user')
SNOWFLAKE_ROLE=$(echo $snowflake_secret_value | jq -r '.role')
SNOWFLAKE_PASSWORD=$(echo $snowflake_secret_value | jq -r '.password')
echo "SNOWFLAKE_ACCOUNT=${SNOWFLAKE_ACCOUNT}"
echo "SNOWFLAKE_DATABASE=${SNOWFLAKE_DATABASE}"
echo "SNOWFLAKE_USER=${SNOWFLAKE_USER}"
echo "SNOWFLAKE_ROLE=${SNOWFLAKE_ROLE}"
export SNOWSQL_PWD=${SNOWFLAKE_PASSWORD}
#snowsql -a "${SNOWFLAKE_ACCOUNT}" -u "${SNOWFLAKE_USER}" -d "${SNOWFLAKE_DATABASE}" -r "${SNOWFLAKE_ROLE}" -o exit_on_error=true -f "${SCRIPT_DIR}/snowsql-query.sql"
#QUERY="INSERT INTO STG.CLIENT_LOGS(CLIENT_ID, CLIENT_NAME, BUCKET_NAME) VALUES ('${CLIENT_ID}','${FULL_NAME}','${BUCKET_NAME}')"
#echo "QUERY=${QUERY}"
#snowsql -a "${SNOWFLAKE_ACCOUNT}" -u "${SNOWFLAKE_USER}" -d "${SNOWFLAKE_DATABASE}" -r "${SNOWFLAKE_ROLE}" -o exit_on_error=true -q "${QUERY}"
## SHOW THE VALUES
#SELECT_QUERY="SELECT DISTINCT client_id, client_name, bucket_name FROM STG.CLIENT_LOGS"
#echo "Client=${CLIENT_ID}: SELECT_QUERY=${SELECT_QUERY}"
#snowsql -a "${SNOWFLAKE_ACCOUNT}" -u "${SNOWFLAKE_USER}" -d "${SNOWFLAKE_DATABASE}" -r "${SNOWFLAKE_ROLE}" -o exit_on_error=true -q "${SELECT_QUERY}"
INSERT_QUERY=$(cat <<EOF
INSERT INTO STG.CLIENT_LOGS (CLIENT_ID, CLIENT_NAME, BUCKET_NAME)
SELECT '${CLIENT_ID}', '${FULL_NAME}', '${BUCKET_NAME}'
WHERE NOT EXISTS (
SELECT 1
FROM STG.CLIENT_LOGS
WHERE CLIENT_ID = '${CLIENT_ID}'
);
EOF
)
echo "Client=${CLIENT_ID}: INSERT_QUERY=${INSERT_QUERY}"
snowsql -a "${SNOWFLAKE_ACCOUNT}" -u "${SNOWFLAKE_USER}" -d "${SNOWFLAKE_DATABASE}" -r "${SNOWFLAKE_ROLE}" -o exit_on_error=true -q "${INSERT_QUERY}"
# SHOW THE VALUES
SELECT_QUERY="SELECT DISTINCT client_id, client_name, bucket_name FROM STG.CLIENT_LOGS"
echo "Client=${CLIENT_ID}: SELECT_QUERY=${SELECT_QUERY}"
snowsql -a "${SNOWFLAKE_ACCOUNT}" -u "${SNOWFLAKE_USER}" -d "${SNOWFLAKE_DATABASE}" -r "${SNOWFLAKE_ROLE}" -o exit_on_error=true -q "${SELECT_QUERY}"