IBM Cloud Docs
用於雲端資料的 SQL 資料庫

用於雲端資料的 SQL 資料庫

本指導教學可能會產生成本。 使用「成本估算器」根據您的預計用量生成成本估算。

本指導教學顯示如何佈建 SQL (關聯式) 資料庫服務。 作為管理者,您可以建立表格,並將大型資料集 (城市資訊) 載入至資料庫。 然後,將 Web 應用程式 "worldcities" 部署至 IBM Cloud® Code Engine。 此應用程式可讓一般使用者從雲端資料庫查閱記錄。 該應用程式使用 Flask 框架以 Python。

架構圖
教學架構圖

目標

  • 佈建 SQL 資料庫
  • 建立資料庫綱目 (表格) 並載入資料
  • 將預先建置的容器化應用程式部署至 Code Engine
  • 連接應用程式和資料庫服務(共用認證)
  • 雲端資料庫的監視、安全、備份及回復

開始之前

本指導教學需要:

  • IBM Cloud CLI,具有 Code Engine 外掛程式,
  • git,以複製原始碼儲存庫。

若要避免安裝這些工具,您可以從 IBM Cloud 主控台使用 Cloud Shell

您將在 指導教學入門 手冊中找到針對您的作業環境下載及安裝這些工具的指示。

  1. 複製 本指導教學的 Github 儲存庫,並切換至其目錄。 在終端機中,執行下列各行:
    git clone https://github.com/IBM-Cloud/cloud-sql-database.git
    cd cloud-sql-database
    
  2. 移至 GeoNames,並下載並解壓縮檔案 cities1000.zip。 此文件包含有關人口超過 1000 的縣/市的資訊。 您將使用此文件作為資料集。

佈建 SQL 資料庫

首先建立 IBM Db2 Warehouse SaaS 服務的實體。

  1. 造訪 IBM Cloud® 主控台。 按一下頂端導覽列的型錄
  2. 按一下左窗格中的 資料庫,然後選取 Db2 Warehouse
  3. 選擇 Flex One 計劃,並將建議的服務名稱變更為 sqldatabase (稍後會使用該名稱)。 挑選資源群組及位置,以部署資料庫。
  4. 按一下建立。 即會開始佈建。
  5. 資源清單中,找出 資料庫 下的新實例,並等待它可用 (有時您可能需要重新整理頁面)。 按一下 IBM Db2 Warehouse SaaS 服務的項目。
  6. 按一下「開啟主控台」以啟動資料庫主控台。

建立表格

您需要表格來存放資料範例。 請使用主控台來建立。

  1. 在 IBM Db2 Warehouse SaaS 的主控台中,按一下左上方功能表圖示,然後在導覽列中 執行 SQL
  2. 按一下 未命名-1 標籤旁的 + 符號 (新增 Script)。
  3. 按一下 來源檔案,並從先前複製到本端目錄的 GitHub 儲存庫中選取檔案 cityschema.txt,然後開啟它。
  4. 按一下 全部執行 以執行陳述式。 它應該會顯示成功訊息。

載入資料

既然已建立了 "cities" 表格,現在要將資料載入到該表格中。 這可以用不同的方式來執行,例如從本端機器或雲端物件儲存體 (COS) 或 Amazon S3 介面。 在本指導教學中,將從機器上傳資料。 在此程序中,可以調整表格結構和資料格式,以完全符合檔案內容。

  1. 在 IBM Db2 Warehouse SaaS 的主控台中,按一下左上方功能表圖示,然後按一下導覽列中的 資料

  2. 作為 來源,保留 我的電腦上的選項。

  3. File selection(檔案選擇 )下,按一下 Drag a file here(將檔案拖曳至此)或 browse files(瀏覽檔案 ),以找到並選取您在本指南第一節下載的檔案 cities1000.txt "。

  4. 下一步,以取得「綱目」選項的「目標」概觀。 選擇綱目 BLUADMIN,然後選擇表格 CITS。 再次按下一步

    因為表格是空的,所以附加到現有資料或改寫現有資料都是一樣的效果。

  5. 現在,自訂在載入程序中如何解釋 "cities1000.txt" 檔案中的資料。 首先,停用第一行的 Header,因為檔案只包含資料。

  6. 接下來,輸入 0x09 作為分隔符。 這意味著檔案中的值將用跳格鍵分隔。

  7. 最後,選取 "YYYY-MM-DD" 作為日期格式。 現在,所有內容都應該與此畫面擷取中顯示的內容類似。

    畫面擷取顯示取樣資料
    畫面擷取顯示取樣資料

  8. 下一步,即可檢閱載入設定。 同意並按一下開始載入,即可開始將資料載入 CITIES 資料表。 系統將顯示進度。 上傳資料後,應該只需幾秒鐘就可完成載入,隨即會顯示一些統計資料。

  9. 按一下 檢視表格 以瀏覽資料。 您可以向下捲動或按一下直欄名稱來變更排序順序。

使用 SQL 驗證載入的資料

資料已載入到關聯式資料庫中。 未發生任何錯誤,但仍然應該執行一些快速測試。 請使用內建 SQL 編輯器來鍵入並執行一些 SQL 陳述式。

  1. 在左側導覽中,按一下 執行 SQL 以回到 SQL 編輯器。 按一下 + 符號 (新增 Script) 和 建立新的項目,以建立新的編輯器標籤。

    您可以不使用內建 SQL 編輯器,而改為藉由 IBM Db2 Warehouse SaaS,在桌面或伺服器機器上使用以雲端為基礎和傳統的 SQL 工具。 您可以在左側導覽的 管理 功能表中找到連線資訊。

  2. 在編輯器中輸入或複製以下查詢:

    select count(*) from cities;
    

    選取查詢文字,然後在 全部執行旁的下拉清單中,選擇 已選取執行。 在顯示結果的部分,應顯示與載入程序報告的相同行數。

  3. 在「SQL 編輯器」中,在新的一行輸入下列陳述式:

    select countrycode, count(name) from cities
    group by countrycode
    order by 2 desc;
    

    標示上述陳述式的文字,然後按一下 執行選取的項目 按鈕。 僅執行此語句,並在結果部分回傳一些按國家分類的統計資料。

  4. 最後,以類似方式執行下列陳述式,以擷取加州舊金山的相關詳細資料:

    select * from cities
    where name='San Francisco'
    and countrycode='US';
    

部署應用程式碼

變更回終端機。 現在,您將使用預先建置的容器映像檔來部署應用程式碼。 您可以修改應用程式碼,並自行建置容器映像檔。 如需詳細資料,請參閱 GitHub 儲存庫中的指示

  1. 如果您尚未登入,請使用 ibmcloud loginibmcloud login --sso 以互動方式登入。 將地區及資源群組設為已佈建資料庫的位置。 相應地取代 RESOURCE_GROUPREGION

    ibmcloud target -g RESOURCE_GROUP -r REGION
    
  2. 建立名為 sqldatabase 的新 Code Engine 專案:

    ibmcloud ce project create --name sqldatabase
    

    選取新專案作為作用中專案:

    ibmcloud ce project select --name sqldatabase
    
  3. 然後,部署將其命名為 worldcities 的應用程式。

    ibmcloud ce app create --name worldcities --image icr.io/solution-tutorials/tutorial-cloud-sql-database:latest --min-scale 1
    
  4. 最後,在現有 IBM Db2 Warehouse SaaS 資料庫與應用程式之間建立服務連結:

    ibmcloud ce application bind --name worldcities --service-instance sqldatabase
    

    建立連結之後,即會啟動新的應用程式修訂。

  5. 現在您可以檢查應用程式的詳細資訊,以瞭解其狀態並擷取其 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 範本以進行呈現。

清理

若要清除本指導教學使用的資源,請執行以下步驟:

  1. 請造訪 IBM Cloud® 資源清單
  2. 在 Code Engine 區段中找到專案 sqldatabase。 按一下三個點並選取 刪除,以刪除專案及其應用程式。
  3. 資料庫下找出資料庫 sqldatabase。 再次按一下三個點,然後選取 刪除 以刪除資料庫。

視資源而定,它可能不會立即刪除,但會保留 (依預設會保留 7 天)。 您可以透過永久刪除資源或在保留期間內還原資源來收回資源。 請參閱本文件,以瞭解如何 使用資源收回

擴展指導教學

要延伸此應用程式嗎? 以下是一些構想:

  1. 提供對替代名稱的萬用字元搜尋。
  2. 搜尋特定國家/地區中僅特定人口值的縣/市。
  3. 藉由取代 CSS 樣式和延伸範本,變更頁面佈置。
  4. 允許以表格方式建立新的城市資訊,或允許更新現有資料,例如人口。

相關內容