![](https://cdn-images-1.medium.com/max/1100/0*UE2fvt1oAZNVwm4P.png)
前言:
今天進到 [數據分析實作一] Step 2,今天要做的是框起來的地方,我們要把檔案從 Cloud SQL 抽取,並存放到 cloud storage。
![](https://cdn-images-1.medium.com/max/1100/0*1CmvDmCz02_ztjc5.png)
先驗知識:
準備材料:
完成 Day 15
cloud shell
到 Cloud SQL 頁面找到 Service account (服務帳戶):
![](https://cdn-images-1.medium.com/max/1100/0*fbnNY4Fj5dwmFLWF.png)
往下拉可以看到:
![](https://cdn-images-1.medium.com/max/1100/0*6vGzr30Q95QYjCKW.png)
我們把這組服務帳戶複製起來,你的cloud SQL 服務帳戶會和我的不一樣。
置 IAM權限:
到 IAM 頁面,點選身分與存取權管理,點選授予存取權:
![](https://cdn-images-1.medium.com/max/1100/0*Nf5Hc_0nk0b5ajTs.png)
搜尋 GCS,點選 storage 管理員,並建立。
![](https://cdn-images-1.medium.com/max/1100/0*FK5E32_1HNreqCi3.png)
到這裡 Cloud SQL 就能夠讀取和寫入 GCS。
開啟 Cloud shell,執行匯出指令:
![](https://www.datamonica.com/wp-content/uploads/2023/09/image-50.png)
先設定 buket_name:
bucket_name='ithome-bq-test'
gcloud sql export csv mysql-instance \
gs://$bucket_name/mysql_export/tv_shows_dashboard.csv \
–database=bq_test_db \
–offload \
–query=’SELECT * FROM tv_shows;’
跑完後,可以在 cloud storage 底下看到檔案。
![](https://cdn-images-1.medium.com/max/1100/0*6TdvgfG2du5i9vn7.png)
刪除 Cloud SQL:
因為後面不會用到 Cloud SQL了,這裡可以先刪掉避免產生額外的費用。
gcloud sql instances delete mysql-instance
你可能覺得有點奇怪,為什麼這個練習不要直接從 cloud storage就好了,還要很辛苦先建置 cloud SQL,最後還要再刪掉它?
其實是因為我們在模擬實際的情況,通常我們可能會需要先從 Cloud SQL 存取資料,另外,我們一般分析能取用到的資料庫是 clone instance,才不會影響到生產環境。
Summary:
從 Cloud SQL 傳資料到 GCS的執行細節:
- 到 Cloud SQL 頁面找到 Service account (服務帳戶):
- 設置 IAM權限,讓 Cloud SQL有讀寫的權限。
- 開啟 Cloud shell,執行匯出指令:
- 刪除 Cloud SQL,避免本次練習產生額外的費用。