Deleting all BigQuery datasets across multiple projects
Mon, 01 July 2019
delete-all-bigquery-datasets-across-projects.sh
#!/usr/bin/env sh
PROJECTS="my-first-project-id
my-second-project-id
my-third-project-id
my-fourth-project-id"
COUNTER=0
for PROJECT_ID in ${PROJECTS}
do
echo "${PROJECT_ID}"
SINGLE_SETS=`bq ls --project_id="${PROJECT_ID}"`
for DATASET in ${SINGLE_SETS}
do
if [[ ${DATASET} == *"datasetId"* ]]; then
echo " - Skipped ${DATASET}"
else
if [[ ${DATASET} == *"----"* ]]; then
echo " - Skipped ${DATASET}"
else
COUNTER=$((COUNTER+1))
FULL_NAME="${PROJECT_ID}:${DATASET}"
echo "Deleting ${FULL_NAME}"
DELETED=`bq rm -r -f ${FULL_NAME}`
echo " - Progress - ${COUNTER} deleted so far"
fi
fi
done
done
echo "${COUNTER} Deleted total"