用於雲端資料的 SQL 資料庫
本指導教學可能會產生成本。 使用「成本估算器」根據您的預計用量生成成本估算。
本指導教學顯示如何佈建 SQL (關聯式) 資料庫服務。 作為管理者,您可以建立表格,並將大型資料集 (城市資訊) 載入至資料庫。 然後,將 Web 應用程式 "worldcities" 部署至 IBM Cloud® Code Engine。 此應用程式可讓一般使用者從雲端資料庫查閱記錄。 該應用程式使用 Flask 框架以 Python。
目標
- 佈建 SQL 資料庫
- 建立資料庫綱目 (表格) 並載入資料
- 將預先建置的容器化應用程式部署至 Code Engine
- 連接應用程式和資料庫服務(共用認證)
- 雲端資料庫的監視、安全、備份及回復
開始之前
本指導教學需要:
- IBM Cloud CLI,具有 Code Engine 外掛程式,
git
,以複製原始碼儲存庫。
若要避免安裝這些工具,您可以從 IBM Cloud 主控台使用 Cloud Shell。
您將在 指導教學入門 手冊中找到針對您的作業環境下載及安裝這些工具的指示。
- 複製 本指導教學的 Github 儲存庫,並切換至其目錄。 在終端機中,執行下列各行:
git clone https://github.com/IBM-Cloud/cloud-sql-database.git cd cloud-sql-database
- 移至 GeoNames,並下載並解壓縮檔案 cities1000.zip。 此文件包含有關人口超過 1000 的縣/市的資訊。 您將使用此文件作為資料集。
佈建 SQL 資料庫
首先建立 IBM Db2 Warehouse SaaS 服務的實體。
- 造訪 IBM Cloud® 主控台。 按一下頂端導覽列的型錄。
- 按一下左窗格中的 資料庫,然後選取 Db2 Warehouse。
- 選擇 Flex One 計劃,並將建議的服務名稱變更為 sqldatabase (稍後會使用該名稱)。 挑選資源群組及位置,以部署資料庫。
- 按一下建立。 即會開始佈建。
- 在 資源清單中,找出 資料庫 下的新實例,並等待它可用 (有時您可能需要重新整理頁面)。 按一下 IBM Db2 Warehouse SaaS 服務的項目。
- 按一下「開啟主控台」以啟動資料庫主控台。
建立表格
您需要表格來存放資料範例。 請使用主控台來建立。
- 在 IBM Db2 Warehouse SaaS 的主控台中,按一下左上方功能表圖示,然後在導覽列中 執行 SQL。
- 按一下 未命名-1 標籤旁的 + 符號 (新增 Script)。
- 按一下 來源檔案,並從先前複製到本端目錄的 GitHub 儲存庫中選取檔案
cityschema.txt
,然後開啟它。 - 按一下 全部執行 以執行陳述式。 它應該會顯示成功訊息。
載入資料
既然已建立了 "cities" 表格,現在要將資料載入到該表格中。 這可以用不同的方式來執行,例如從本端機器或雲端物件儲存體 (COS) 或 Amazon S3 介面。 在本指導教學中,將從機器上傳資料。 在此程序中,可以調整表格結構和資料格式,以完全符合檔案內容。
-
在 IBM Db2 Warehouse SaaS 的主控台中,按一下左上方功能表圖示,然後按一下導覽列中的 資料。
-
作為 來源,保留 我的電腦上的選項。
-
在 File selection(檔案選擇 )下,按一下 Drag a file here(將檔案拖曳至此)或 browse files(瀏覽檔案 ),以找到並選取您在本指南第一節下載的檔案 cities1000.txt "。
-
按 下一步,以取得「綱目」選項的「目標」概觀。 選擇綱目 BLUADMIN,然後選擇表格 CITS。 再次按下一步。
因為表格是空的,所以附加到現有資料或改寫現有資料都是一樣的效果。
-
現在,自訂在載入程序中如何解釋 "cities1000.txt" 檔案中的資料。 首先,停用第一行的 Header,因為檔案只包含資料。
-
接下來,輸入 0x09 作為分隔符。 這意味著檔案中的值將用跳格鍵分隔。
-
最後,選取 "YYYY-MM-DD" 作為日期格式。 現在,所有內容都應該與此畫面擷取中顯示的內容類似。
-
按下一步,即可檢閱載入設定。 同意並按一下開始載入,即可開始將資料載入 CITIES 資料表。 系統將顯示進度。 上傳資料後,應該只需幾秒鐘就可完成載入,隨即會顯示一些統計資料。
-
按一下 檢視表格 以瀏覽資料。 您可以向下捲動或按一下直欄名稱來變更排序順序。
使用 SQL 驗證載入的資料
資料已載入到關聯式資料庫中。 未發生任何錯誤,但仍然應該執行一些快速測試。 請使用內建 SQL 編輯器來鍵入並執行一些 SQL 陳述式。
-
在左側導覽中,按一下 執行 SQL 以回到 SQL 編輯器。 按一下 + 符號 (新增 Script) 和 建立新的項目,以建立新的編輯器標籤。
您可以不使用內建 SQL 編輯器,而改為藉由 IBM Db2 Warehouse SaaS,在桌面或伺服器機器上使用以雲端為基礎和傳統的 SQL 工具。 您可以在左側導覽的 管理 功能表中找到連線資訊。
-
在編輯器中輸入或複製以下查詢:
select count(*) from cities;
選取查詢文字,然後在 全部執行旁的下拉清單中,選擇 已選取執行。 在顯示結果的部分,應顯示與載入程序報告的相同行數。
-
在「SQL 編輯器」中,在新的一行輸入下列陳述式:
select countrycode, count(name) from cities group by countrycode order by 2 desc;
標示上述陳述式的文字,然後按一下 執行選取的項目 按鈕。 僅執行此語句,並在結果部分回傳一些按國家分類的統計資料。
-
最後,以類似方式執行下列陳述式,以擷取加州舊金山的相關詳細資料:
select * from cities where name='San Francisco' and countrycode='US';
部署應用程式碼
變更回終端機。 現在,您將使用預先建置的容器映像檔來部署應用程式碼。 您可以修改應用程式碼,並自行建置容器映像檔。 如需詳細資料,請參閱 GitHub 儲存庫中的指示。
-
如果您尚未登入,請使用
ibmcloud login
或ibmcloud login --sso
以互動方式登入。 將地區及資源群組設為已佈建資料庫的位置。 相應地取代 RESOURCE_GROUP 和 REGION。ibmcloud target -g RESOURCE_GROUP -r REGION
-
建立名為 sqldatabase 的新 Code Engine 專案:
ibmcloud ce project create --name sqldatabase
選取新專案作為作用中專案:
ibmcloud ce project select --name sqldatabase
-
然後,部署將其命名為 worldcities 的應用程式。
ibmcloud ce app create --name worldcities --image icr.io/solution-tutorials/tutorial-cloud-sql-database:latest --min-scale 1
-
最後,在現有 IBM Db2 Warehouse SaaS 資料庫與應用程式之間建立服務連結:
ibmcloud ce application bind --name worldcities --service-instance sqldatabase
建立連結之後,即會啟動新的應用程式修訂。
-
現在您可以檢查應用程式的詳細資訊,以瞭解其狀態並擷取其 URL:
ibmcloud ce app get --name worldcities
在輸出中,尋找以 URL 開頭的一行。 顯示的 URL 應該具有類似
https://worldcities.unique-subdomain.region.codeengine.appdomain.cloud
的模式。 按一下鏈結以存取應用程式。 另一個擷取應用程式詳細資料的方法是造訪 Code Engine 主控台。
安全,備份與復原,監控
IBM Db2 Warehouse SaaS 是一項受管理服務。 IBM 負責確保環境安全、處理每日備份和系統監視。 當您使用其中一個企業方案時,有 數個選項可用來管理存取權 及配置 加強資料加密。
除了傳統管理選項之外,IBM Db2 Warehouse SaaS 服務還提供 REST API,用於監視、使用者管理、公用程式、載入、儲存體存取等等。
測試應用程式
根據載入的資料集顯示縣/市資訊的應用程式已縮減至最小。 它提供一個搜尋表單,可指定城市名稱 - 名稱區分大小寫 - 以及幾個預先設定的城市。 這些將轉換為 /search?name=cityname
(搜尋表單)或 /city/cityname
(直接指定的縣/市)。 這兩個要求都在背景從相同的程式碼行進行處理。 為了安全起見,cityname
會使用參數標記作為值傳給準備好的 SQL 語句。 從資料庫中提取行,然後將其傳遞給
HTML 範本以進行呈現。
清理
若要清除本指導教學使用的資源,請執行以下步驟:
- 請造訪 IBM Cloud® 資源清單。
- 在 Code Engine 區段中找到專案 sqldatabase。 按一下三個點並選取 刪除,以刪除專案及其應用程式。
- 在 資料庫下找出資料庫
sqldatabase
。 再次按一下三個點,然後選取 刪除 以刪除資料庫。
視資源而定,它可能不會立即刪除,但會保留 (依預設會保留 7 天)。 您可以透過永久刪除資源或在保留期間內還原資源來收回資源。 請參閱本文件,以瞭解如何 使用資源收回。
擴展指導教學
要延伸此應用程式嗎? 以下是一些構想:
- 提供對替代名稱的萬用字元搜尋。
- 搜尋特定國家/地區中僅特定人口值的縣/市。
- 藉由取代 CSS 樣式和延伸範本,變更頁面佈置。
- 允許以表格方式建立新的城市資訊,或允許更新現有資料,例如人口。